<?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>188400</bug_id>
          
          <creation_ts>2018-08-07 19:34:10 -0700</creation_ts>
          <short_desc>[WHLSL] Start making the compiler match the spec</short_desc>
          <delta_ts>2018-08-15 22:53:16 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>187988</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>178981</dependson>
          <blocked>188542</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1448663</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-07 19:34:10 -0700</bug_when>
    <thetext>[WHLSL] Start making the compiler match the spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448664</commentid>
    <comment_count>1</comment_count>
      <attachid>346751</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-07 19:34:54 -0700</bug_when>
    <thetext>Created attachment 346751
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448666</commentid>
    <comment_count>2</comment_count>
      <attachid>346752</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-07 19:35:47 -0700</bug_when>
    <thetext>Created attachment 346752
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448895</commentid>
    <comment_count>3</comment_count>
      <attachid>346808</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-08 18:34:16 -0700</bug_when>
    <thetext>Created attachment 346808
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1448964</commentid>
    <comment_count>4</comment_count>
      <attachid>346826</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-08 23:37:29 -0700</bug_when>
    <thetext>Created attachment 346826
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449022</commentid>
    <comment_count>5</comment_count>
      <attachid>346839</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-09 10:13:38 -0700</bug_when>
    <thetext>Created attachment 346839
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449110</commentid>
    <comment_count>6</comment_count>
      <attachid>346861</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-09 14:41:01 -0700</bug_when>
    <thetext>Created attachment 346861
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449138</commentid>
    <comment_count>7</comment_count>
      <attachid>346870</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-09 16:21:48 -0700</bug_when>
    <thetext>Created attachment 346870
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449194</commentid>
    <comment_count>8</comment_count>
      <attachid>346880</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-09 17:48:16 -0700</bug_when>
    <thetext>Created attachment 346880
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449240</commentid>
    <comment_count>9</comment_count>
      <attachid>346897</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-09 23:32:58 -0700</bug_when>
    <thetext>Created attachment 346897
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449419</commentid>
    <comment_count>10</comment_count>
      <attachid>346942</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-10 17:10:21 -0700</bug_when>
    <thetext>Created attachment 346942
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449454</commentid>
    <comment_count>11</comment_count>
      <attachid>346954</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-10 19:41:57 -0700</bug_when>
    <thetext>Created attachment 346954
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1449583</commentid>
    <comment_count>12</comment_count>
      <attachid>346998</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-13 00:21:25 -0700</bug_when>
    <thetext>Created attachment 346998
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1450604</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-08-15 22:53:16 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 187988 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346751</attachid>
            <date>2018-08-07 19:34:54 -0700</date>
            <delta_ts>2018-08-07 19:35:46 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180807193453.patch</filename>
            <type>text/plain</type>
            <size>290371</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDM1CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwu
anMKaW5kZXggMTVkZDdjY2FiOTQ2OTJhMzJhY2QyN2I5ZGFjOTZjOGE4ZjU1ZDY1OC4uYTA3ZWQ2
YzUxYTdhODUwZjY0NTEzMzRiOTdmYWE2YTI2OTAzM2VlOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0FsbC5qcwpAQCAtNTgsNyArNTgsNiBAQCBsb2FkKCJDaGVja2VyLmpzIik7CiBsb2Fk
KCJDbG9uZVByb2dyYW0uanMiKTsKIGxvYWQoIkNvbW1hRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
Q29uc3RleHByRm9sZGVyLmpzIik7Ci1sb2FkKCJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIik7
CiBsb2FkKCJDb250aW51ZS5qcyIpOwogbG9hZCgiQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNz
aW9uLmpzIik7CiBsb2FkKCJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMiKTsKQEAgLTc3LDcgKzc2
LDYgQEAgbG9hZCgiRXhwcmVzc2lvbkZpbmRlci5qcyIpOwogbG9hZCgiRXh0ZXJuYWxPcmlnaW4u
anMiKTsKIGxvYWQoIkZpZWxkLmpzIik7CiBsb2FkKCJGaW5kSGlnaFpvbWJpZXMuanMiKTsKLWxv
YWQoIkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiKTsKIGxvYWQoIkZsYXR0ZW5lZFN0cnVjdE9m
ZnNldEdhdGhlcmVyLmpzIik7CiBsb2FkKCJGbG9hdExpdGVyYWwuanMiKTsKIGxvYWQoIkZsb2F0
TGl0ZXJhbFR5cGUuanMiKTsKQEAgLTk1LDcgKzkzLDYgQEAgbG9hZCgiSW5kZXhFeHByZXNzaW9u
LmpzIik7CiBsb2FkKCJJbmZlclR5cGVzRm9yQ2FsbC5qcyIpOwogbG9hZCgiSW5saW5lLmpzIik7
CiBsb2FkKCJJbmxpbmVyLmpzIik7Ci1sb2FkKCJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiKTsK
IGxvYWQoIkludExpdGVyYWwuanMiKTsKIGxvYWQoIkludExpdGVyYWxUeXBlLmpzIik7CiBsb2Fk
KCJJbnRyaW5zaWNzLmpzIik7CkBAIC0xMjUsMTAgKzEyMiw2IEBAIGxvYWQoIlByZXBhcmUuanMi
KTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGlu
Z3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7Ci1sb2FkKCJQcm90
b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbEZ1bmNE
ZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRyVHlwZS5qcyIpOwog
bG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiUmVjdXJzaW9uQ2hl
Y2tlci5qcyIpOwpAQCAtMTUzLDEwICsxNDYsNyBAQCBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7
CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKIGxvYWQo
IlR5cGVPclZhcmlhYmxlUmVmLmpzIik7Ci1sb2FkKCJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMi
KTsKIGxvYWQoIlR5cGVSZWYuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJsZS5qcyIpOwotbG9hZCgi
VHlwZVZhcmlhYmxlVHJhY2tlci5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5qcyIpOwogbG9hZCgi
VWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFsVHlwZS5qcyIpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwppbmRleCA4MGFlN2Q5MmE0ZmE2
MjY2NmRiMmEyZmY1MjIwZDE0OWE3ZjM4ZTljLi4yMTZhN2UyZTMzZGU5OTFiMDZhYjYzNmRiNWNm
Y2FiNDA1ZDhlZTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9B
dXRvV3JhcHBlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3Jh
cHBlci5qcwpAQCAtMzUsMTEgKzM1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdy
aXRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0
ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBWYXJpYWJsZVJl
Zi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBWYXJpYWJsZVJlZi53cmFwKG5vZGUpOwpAQCAtNjAsMTEg
KzU1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIHJl
dHVybiBUeXBlUmVmLndyYXAobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0VHlwZVZhcmlh
YmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFwKG5vZGUpOwotICAg
IH0KLSAgICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxF
eHByZXNzaW9uLmpzCmluZGV4IGI1YWUwZmU0OWZjZWRjOGZhNzZhNjY3OTNjZmUwY2IxZjA4YjQ1
NzEuLmMxZWIzZGE1YTJhYWVlZjE4YzM0ZGNjNTBhODA2NzhiOTkzODI3YzggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCkBAIC0yNSwxMSAr
MjUsMTAgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBF
eHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMs
IGFyZ3VtZW50TGlzdCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIGFyZ3VtZW50TGlz
dCkKICAgICB7CiAgICAgICAgIHN1cGVyKG9yaWdpbik7CiAgICAgICAgIHRoaXMuX25hbWUgPSBu
YW1lOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50czsKICAgICAg
ICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gYXJndW1lbnRMaXN0OwogICAgICAgICB0aGlzLmZ1bmMg
PSBudWxsOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBmYWxzZTsKQEAgLTM3LDcgKzM2LDYgQEAg
Y2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICB9CiAgICAgCiAg
ICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVu
dHMoKSB7IHJldHVybiB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGFyZ3VtZW50TGlz
dCgpIHsgcmV0dXJuIHRoaXMuX2FyZ3VtZW50TGlzdDsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJl
dHVybiB0aGlzLl9pc0Nhc3Q7IH0KICAgICBnZXQgcmV0dXJuVHlwZSgpIHsgcmV0dXJuIHRoaXMu
X3JldHVyblR5cGU7IH0KQEAgLTU3LDQ2ICs1NSwyMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBl
eHRlbmRzIEV4cHJlc3Npb24gewogICAgICAgICBpZiAoIXBvc3NpYmxlT3ZlcmxvYWRzKQogICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
RGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbnMgbmFtZWQgIiArIHRoaXMubmFtZSk7CiAgICAgICAg
IAotICAgICAgICBsZXQgb3ZlcmxvYWQgPSBudWxsOwogICAgICAgICBsZXQgZmFpbHVyZXMgPSBb
XTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiB0eXBlUGFyYW1ldGVyc0luU2Nv
cGUpIHsKLSAgICAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBUeXBlVmFy
aWFibGUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCF0eXBl
UGFyYW1ldGVyLnByb3RvY29sKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgbGV0IHNpZ25hdHVyZXMgPQotICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIucHJvdG9j
b2wucHJvdG9jb2xEZWNsLnNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKHRoaXMubmFt
ZSwgdHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICBpZiAoIXNpZ25hdHVyZXMpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9h
ZEltcGwoc2lnbmF0dXJlcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMs
IHRoaXMucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBpZiAob3ZlcmxvYWQuZnVuYykKLSAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2Fk
SW1wbCgKKyAgICAgICAgICAgIHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLmFyZ3VtZW50VHlwZXMs
IHRoaXMucmV0dXJuVHlwZSk7CisgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewogICAgICAg
ICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0gICAgICAgICAgICBv
dmVybG9hZCA9IG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFvdmVybG9hZCkgewotICAg
ICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAg
IHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewot
ICAgICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAg
ICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAi
ICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7Ci0gICAgICAgICAgICAgICAgaWYgKHRo
aXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0g
InR5cGUgYXJndW1lbnRzIDwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4gYW5kICI7Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZSArPSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFyZ3VtZW50
VHlwZXMgKyAiKSI7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkKLSAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVy
blR5cGU7Ci0gICAgICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSArPSAiLCBidXQgY29uc2lkZXJlZDpcbiIgKyBmYWlsdXJlcy5qb2lu
KCJcbiIpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4u
b3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgIGxldCB0eXBlQXJndW1lbnRUeXBlID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAg
ICAgIGxldCB0eXBlUGFyYW1ldGVyID0gb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsK
LSAgICAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICgh
dHlwZVBhcmFtZXRlci50eXBlLmVxdWFsc1dpdGhDb21taXQodHlwZUFyZ3VtZW50VHlwZSkpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdCAiICsgdGhpcy5vcmlnaW4ub3JpZ2lu
U3RyaW5nICsgIiBjb25zdGV4cHIgdHlwZSBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVzIG5v
dCBlcXVhbDogYXJndW1lbnQgPSAiICsgdHlwZUFyZ3VtZW50VHlwZSArICIsIHBhcmFtZXRlciA9
ICIgKyB0eXBlUGFyYW1ldGVyLnR5cGUpOworICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlk
IG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGgg
IjsKKyAgICAgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gInR5cGUgYXJndW1lbnRzIDwiICsgdGhpcy50eXBlQXJndW1lbnRz
ICsgIj4gYW5kICI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiAr
IHRoaXMuYXJndW1lbnRUeXBlcyArICIpIjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5
cGUpCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlz
LnJldHVyblR5cGU7CisgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigi
XG4iKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHRoaXMuYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3Vt
ZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlc1tpXTsKQEAgLTExMiw4ICs4NCw2IEBAIGNsYXNz
IENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgcmVzb2x2ZVRvT3Zlcmxv
YWQob3ZlcmxvYWQpCiAgICAgewogICAgICAgICB0aGlzLmZ1bmMgPSBvdmVybG9hZC5mdW5jOwot
ICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBvdmVybG9hZC50eXBlQXJndW1lbnRz
Lm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGluc3RhbmNlb2YgVHlwZSA/IHR5cGVB
cmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0eXBlQXJndW1lbnQpOwotICAgICAg
ICB0aGlzLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMgPSB0aGlzLmFjdHVhbFR5cGVB
cmd1bWVudHM7CiAgICAgICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUu
c3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCiAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQ
YXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoIXJl
c3VsdCkKQEAgLTEyNSwxMSArOTUsMTAgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBF
eHByZXNzaW9uIHsKICAgICAKICAgICBiZWNvbWVDYXN0KHJldHVyblR5cGUpCiAgICAgewotICAg
ICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFt
ZSwgdGhpcy5fdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcg
VHlwZVJlZih0aGlzLm9yaWdpbiwgdGhpcy5uYW1lKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlw
ZS50eXBlID0gcmV0dXJuVHlwZTsKICAgICAgICAgdGhpcy5fbmFtZSA9ICJvcGVyYXRvciBjYXN0
IjsKICAgICAgICAgdGhpcy5faXNDYXN0ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3Vt
ZW50cyA9IFtdOwogICAgIH0KICAgICAKICAgICBzZXRDYXN0RGF0YShyZXR1cm5UeXBlKQpAQCAt
MTQxLDggKzExMCw2IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgdG9TdHJpbmcoKQogICAgIHsKICAgICAgICAgcmV0dXJuICh0aGlzLmlzQ2FzdCA/ICJv
cGVyYXRvciAiICsgdGhpcy5yZXR1cm5UeXBlIDogdGhpcy5uYW1lKSArCi0gICAgICAgICAgICAi
PCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiIgKwotICAgICAgICAgICAgKHRoaXMuYWN0dWFs
VHlwZUFyZ3VtZW50cyA/ICI8PCIgKyB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgKyAiPj4iIDog
IiIpICsKICAgICAgICAgICAgICIoIiArIHRoaXMuYXJndW1lbnRMaXN0ICsgIikiOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlv
bi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwppbmRl
eCBmMGYwMzlmNTQ2MmQwNzgxZDgyYjM0NjRjODc0Nzg3MTRjMGExNzM3Li43NDk1NzYwZjJjNWQ4
MWQ4Mzk0NTZjZGU0YzQ1OTc3MGJjYzMzMGZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCkBAIC0yNSwxNyArMjUsMTcgQEAKICJ1c2Ugc3RyaWN0
IjsKIAogLy8gVGhpcyBhbGxvd3MgeW91IHRvIHBhc3Mgc3RydWN0cyBhbmQgYXJyYXlzIGluLXBs
YWNlLCBidXQgaXQncyBhIG1vcmUgYW5ub3lpbmcgQVBJLgotZnVuY3Rpb24gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCkKK2Z1bmN0aW9uIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVudExpc3QpCiB7CiAgICAgbGV0IGFyZ3Vt
ZW50VHlwZXMgPSBhcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnR5cGUpOwot
ICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwg
bmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgdHJ1ZSk7CisgICAgbGV0IGZ1bmNP
ckZhaWx1cmVzID0gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVu
dFR5cGVzLCB0cnVlKTsKICAgICBpZiAoIShmdW5jT3JGYWlsdXJlcyBpbnN0YW5jZW9mIEZ1bmMp
KSB7CiAgICAgICAgIGxldCBmYWlsdXJlcyA9IGZ1bmNPckZhaWx1cmVzOwotICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5jdGlvbj4iLCAiQ2Fubm90IHJlc29sdmUgZnVuY3Rp
b24gY2FsbCAiICsgbmFtZSArICI8IiArIHR5cGVBcmd1bWVudHMgKyAiPigiICsgYXJndW1lbnRM
aXN0ICsgIikiICsgKGZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1cmVzLmpv
aW4oIlxuIikgOiAiIikpOworICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5j
dGlvbj4iLCAiQ2Fubm90IHJlc29sdmUgZnVuY3Rpb24gY2FsbCAiICsgbmFtZSArICIoIiArIGFy
Z3VtZW50TGlzdCArICIpIiArIChmYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWls
dXJlcy5qb2luKCJcbiIpIDogIiIpKTsKICAgICB9CiAgICAgbGV0IGZ1bmMgPSBmdW5jT3JGYWls
dXJlczsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmMucGFyYW1ldGVycy5sZW5ndGg7ICsr
aSkgewotICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNbaV0uaW5zdGFudGlhdGVkVHlw
ZTsKKyAgICAgICAgbGV0IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldOwogICAgICAgICB0eXBlLnZp
c2l0KG5ldyBTdHJ1Y3RMYXlvdXRCdWlsZGVyKCkpOwogICAgICAgICBmdW5jLnBhcmFtZXRlcnNb
aV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudExpc3RbaV0uZVB0ciwgdHlwZS5zaXplKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwppbmRleCA4ZDU1YzUwZDgz
NmMxNTQ4NmZkMjU4MGM1OGU5NjA2Y2FkNTk2ZWNiLi5iNzI0YzBhNjU3ZjEyZTgzY2ZjMDAyMTY5
ZTQyYTJlMDdlMjc0ODhmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DaGVja2VyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIu
anMKQEAgLTQzLDggKzQzLDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAg
ICAgICAKICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBub2RlLnR5cGVzLnZhbHVlcygpKQogICAg
ICAgICAgICAgZG9TdGF0ZW1lbnQodHlwZSk7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9m
IG5vZGUucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICAgICAgZG9TdGF0ZW1lbnQocHJvdG9j
b2wpOwogICAgICAgICBmb3IgKGxldCBmdW5jcyBvZiBub2RlLmZ1bmN0aW9ucy52YWx1ZXMoKSkg
ewogICAgICAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykgewogICAgICAgICAgICAgICAg
IHRoaXMudmlzaXRGdW5jKGZ1bmMpOwpAQCAtODQsMTUgKzgyLDYgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAoIWZ1bmMubmFtZS5zdGFydHNXaXRoKCJvcGVy
YXRvciIpKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3BlcmF0b3Igb3Zlcmxv
YWQgbmFtZTogIiArIGZ1bmMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgdHlwZVZhcmlh
YmxlVHJhY2tlciA9IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgIGZvciAobGV0
IHBhcmFtZXRlclR5cGUgb2YgZnVuYy5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgIHBhcmFt
ZXRlclR5cGUudmlzaXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIE5vZGUudmlzaXQo
ZnVuYy5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFja2Vy
KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJz
KSB7Ci0gICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFy
YW1ldGVyKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlUGFyYW1l
dGVyLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRl
ciArICIgdG8gb3BlcmF0b3IgIiArIGZ1bmMudG9EZWNsU3RyaW5nKCkgKyAiIGlzIG5vdCBpbmZl
cnJhYmxlIGZyb20gdmFsdWUgcGFyYW1ldGVycyIpOwotICAgICAgICB9Ci0gICAgICAgIAogICAg
ICAgICBsZXQgY2hlY2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAgICAgICAgICAgbGV0IG51bUV4
cGVjdGVkUGFyYW1ldGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIgOiAxOwogICAgICAgICAgICAg
aWYgKGZ1bmMucGFyYW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzKQpAQCAt
MTE1LDcgKzEwNCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIGlmICghZ2V0dGVyRnVuY3MpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXZlcnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1h
dGNoaW5nIGdldHRlciwgYnV0IGRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb24gbmFtZWQgIiArIGdl
dHRlck5hbWUgKyAiIHRvIG1hdGNoICIgKyBmdW5jLm5hbWUpOwogICAgICAgICAgICAgbGV0IGFy
Z3VtZW50VHlwZXMgPSBmdW5jLnBhcmFtZXRlclR5cGVzLnNsaWNlKDAsIG51bUV4cGVjdGVkUGFy
YW1ldGVycyAtIDEpOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2Fk
SW1wbChnZXR0ZXJGdW5jcywgW10sIGFyZ3VtZW50VHlwZXMsIG51bGwpOworICAgICAgICAgICAg
bGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChnZXR0ZXJGdW5jcywgYXJndW1lbnRU
eXBlcywgbnVsbCk7CiAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRGlk
IG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyBmdW5jLm5hbWUgKyAiIHdpdGggYXJndW1lbnRz
ICIgKyBhcmd1bWVudFR5cGVzICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVk
OlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwogICAgICAgICAgICAg
bGV0IHJlc3VsdFR5cGUgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5p
ZmljYXRpb24oCkBAIC0yMTEsMjMgKzIwMCw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKICAgICB7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKSB7Ci0g
ICAgICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9IG5ldyBUeXBlVmFyaWFibGVUcmFj
a2VyKCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXJUeXBlIG9mIHNpZ25hdHVyZS5w
YXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJUeXBlLnZpc2l0KHR5cGVW
YXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAgICAgTm9kZS52aXNpdChzaWduYXR1cmUucmV0dXJu
VHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbiwgdHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAg
ICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycykg
ewotICAgICAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQ
YXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBXVHlwZUVycm9yKHR5cGVQYXJh
bWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyIHRvIHByb3RvY29sIHNp
Z25hdHVyZSBub3QgaW5mZXJyYWJsZSBmcm9tIHZhbHVlIHBhcmFtZXRlcnMiKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKG5vZGUu
dHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihzaWdu
YXR1cmUub3JpZ2luLm9yaWdpblN0cmluZywgIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoIiAr
IG5vZGUubmFtZSArICIpIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlOiAiICsgc2lnbmF0dXJl
KTsKLSAgICAgICAgICAgIHRoaXMuX2NoZWNrT3BlcmF0b3JPdmVybG9hZChzaWduYXR1cmUsIG5h
bWUgPT4gbm9kZS5zaWduYXR1cmVzQnlOYW1lKG5hbWUpKTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICAKICAgICB2aXNpdEVudW1UeXBlKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLmJhc2VUeXBl
LnZpc2l0KHRoaXMpOwpAQCAtMjc4LDI5ICsyNTAsMTIgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiRW51bSBkb2VzIG5vdCBoYXZlIGEgbWVtYmVyIHdpdGggdGhlIHZhbHVl
IHplcm8iKTsKICAgICB9CiAgICAgCi0gICAgX2NoZWNrVHlwZUFyZ3VtZW50cyhvcmlnaW4sIHR5
cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB0eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IGFy
Z3VtZW50SXNUeXBlID0gdHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7Ci0gICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAg
ICAgIGlmIChhcmd1bWVudElzVHlwZSkgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0
eXBlQXJndW1lbnRzW2ldLmluaGVyaXRzKHR5cGVQYXJhbWV0ZXJzW2ldLnByb3RvY29sKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IGRv
ZXMgbm90IGluaGVyaXQgcHJvdG9jb2w6ICIgKyByZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzV2l0aENvbW1pdCh0
eXBlUGFyYW1ldGVyc1tpXS50eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIHR5cGUgZm9yIGNvbnN0ZXhwciIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJl
Zihub2RlKQogICAgIHsKICAgICAgICAgaWYgKCFub2RlLnR5cGUpCiAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlR5cGUgcmVmZXJlbmNlIHdpdGhvdXQgYSB0eXBlIGluIGNoZWNrZXI6ICIg
KyBub2RlICsgIiBhdCAiICsgbm9kZS5vcmlnaW4pOwogICAgICAgICBpZiAoIShub2RlLnR5cGUg
aW5zdGFuY2VvZiBTdHJ1Y3RUeXBlKSkKICAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlz
KTsKLSAgICAgICAgdGhpcy5fY2hlY2tUeXBlQXJndW1lbnRzKG5vZGUub3JpZ2luLCBub2RlLnR5
cGUudHlwZVBhcmFtZXRlcnMsIG5vZGUudHlwZUFyZ3VtZW50cyk7CiAgICAgfQogICAgIAogICAg
IHZpc2l0QXJyYXlUeXBlKG5vZGUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTNjMTgyNmVkNTVmM2ZlNTZmN2UwZWQyYTAzZGZkYTAyOGRhNWIzOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyIGV4dGVuZHMg
VmFsdWUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZSkKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhp
cy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgIH0KLSAgICAK
LSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUo
KSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90
eXBlOyB9Ci0gICAgZ2V0IGlzQ29uc3RleHByKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBp
c1VuaWZpYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgdmFySXNMVmFsdWUoKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29u
dGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFZhbHVl
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMudHlwZS51
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZVVuaWZ5
SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdW5pZnlJ
bXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy50eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzUGFy
YW1ldGVyKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0
OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMudHlwZSArICIgIiArIHRoaXMubmFtZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKaW5kZXggMTI5
MTRkYTMxMzdmZDZiOTBmZWRhNzI1ODYyN2VmZmZmYmQ0ZTU0MS4uZjM2YTVkNjMxODc5MjkzYjAz
ODIzYjcwMWNiZTgxYTVjNzczMjUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24g
Y3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICAgICAgc3VwZXIoKTsKICAgICAgICAg
ICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFs
dWU7Ci0gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4s
IGNvbmZpZy5wcmVmZXJyZWRUeXBlTmFtZSwgW10pOworICAgICAgICAgICAgdGhpcy5wcmVmZXJy
ZWRUeXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVkVHlwZU5hbWUpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5f
b3JpZ2luOyB9CkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNv
bmZpZykKICAgICAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAg
ICAgewogICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQo
dGhpcyk7Ci0gICAgICAgICAgICBpZiAocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUg
fHwgcmVhbFRoaXMuaXNMaXRlcmFsKSB7CisgICAgICAgICAgICBpZiAocmVhbFRoaXMuaXNMaXRl
cmFsKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHJlYWxUaGlzLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdGhpcy5wcmVmZXJyZWRU
eXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCmlu
ZGV4IDMwZTZiMDMxYTZkZDY2NTk3NDA3ZjNmNmI3ZmU3MTNlZDhmZGNjNGEuLmE0NWUzZTNjMTVi
MzdkOTc0YjA2MGJiYWIzZWJiY2UwNTE0MDRlZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwpAQCAtNDYsMTEgKzQ2LDYgQEAgY2xh
c3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aGlzLl9jYWxs
YmFjayhub2RlLnR5cGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJh
bWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0QXNzaWdubWVudChub2RlKQogICAgIHsKICAgICAgICAgdGhp
cy5fY2FsbGJhY2sobm9kZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzYxNzJkOThkMWUyYzAwOGVkYjVkODE4M2Y1ZWVmZDY3OGRjOGVlOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0p
Ci17Ci0gICAgbGV0IHZpc2l0aW5nID0gbmV3IFZpc2l0aW5nU2V0KCk7Ci0gICAgCi0gICAgZnVu
Y3Rpb24gZmxhdHRlbihwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wuZXh0
ZW5kcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgICAgICB2aXNp
dGluZy5kb1Zpc2l0KHByb3RvY29sLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJl
bnQgb2YgcHJvdG9jb2wuZXh0ZW5kcykgewotICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVu
dC5wcm90b2NvbERlY2w7Ci0gICAgICAgICAgICAgICAgZmxhdHRlbihwYXJlbnQpOwotICAgICAg
ICAgICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBwYXJlbnQuc2lnbmF0dXJlcykgewotICAg
ICAgICAgICAgICAgICAgICBsZXQgbmV3U2lnbmF0dXJlID0gc2lnbmF0dXJlLnZpc2l0KAotICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3IFN1YnN0aXR1dGlvbihbcGFyZW50LnR5cGVWYXJpYWJs
ZV0sIFtwcm90b2NvbC50eXBlVmFyaWFibGVdKSk7Ci0gICAgICAgICAgICAgICAgICAgIHByb3Rv
Y29sLmFkZChuZXdTaWduYXR1cmUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHByb3RvY29sLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgfSk7Ci0gICAgfQot
ICAgIAotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygp
KQotICAgICAgICBmbGF0dGVuKHByb3RvY29sKTsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmMuanMKaW5kZXggNmZhN2M5ZDFiNmY0Yjk1ODMzNTk4MWMyNzI4YmU4NjVhNTZlNzNh
ZS4uNmZjNzMzMjc2MWQ0NjNjMzVhOGM0MGMyYTc2ZjJmNGIzNmMyMzIyMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5h
bWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRl
clR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewogICAgICAgICBpZiAoIShvcmlnaW4gaW5z
dGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG9y
aWdpbjogIiArIG9yaWdpbik7CkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBO
b2RlIHsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7Ci0gICAgICAg
IHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBpc0Nhc3Q7CiAg
ICAgICAgIHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwpAQCAtNDgsOCArNDcsNiBAQCBj
bGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMu
X29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdl
dCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAgIGdldCB0eXBl
UGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0gICAgZ2V0IHR5
cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKSB7IHJldHVybiB0aGlzLnR5cGVQYXJhbWV0
ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzOyB9
CiAgICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLm1hcChw
YXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9CiAgICAgZ2V0IGlzQ2FzdCgpIHsgcmV0dXJu
IHRoaXMuX2lzQ2FzdDsgfQpAQCAtNjUsOSArNjIsOSBAQCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9k
ZSB7CiAgICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCiAgICAgICAgICAgICByZXN1bHQgKz0g
dGhpcy5zaGFkZXJUeXBlICsgIiAiOwogICAgICAgICBpZiAodGhpcy5pc0Nhc3QpCi0gICAgICAg
ICAgICByZXN1bHQgKz0gIm9wZXJhdG9yPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gIiAr
IHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3IgIiArIHRo
aXMucmV0dXJuVHlwZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMu
cmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMg
KyAiPiI7CisgICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsgIiAiICsgdGhp
cy5uYW1lOwogICAgICAgICByZXR1cm4gcmVzdWx0ICsgIigiICsgdGhpcy5wYXJhbWV0ZXJzICsg
IikiOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpz
CmluZGV4IDExZmEwOTJlM2IyMjc4ZTIxNWEwYTY3ZTk1MWUxN2RhYmExMzZhODMuLmNhMDU5N2Zj
ZDI5NGRmYWI2MDQ0MjE0ZTA3NTRmN2VmOTQ0Yjg3OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0RlZi5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJpY3QiOwogCiBj
bGFzcyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBz
aGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFy
YW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3VwZXIo
b3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXND
YXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLl9ib2R5ID0g
Ym9keTsKICAgICAgICAgdGhpcy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICB9CkBAIC0zNiw4
ICszNiw2IEBAIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKICAgICAKICAgICByZXdyaXRl
KHJld3JpdGVyKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxlbmd0
aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgYW4gdW5pbnN0
YW50aWF0ZWQgZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHRoaXMuX3Jl
dHVyblR5cGUudmlzaXQocmV3cml0ZXIpOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gdGhp
cy5fcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChyZXdyaXRlcikp
OwogICAgICAgICB0aGlzLl9ib2R5ID0gdGhpcy5ib2R5LnZpc2l0KHJld3JpdGVyKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTI4NjJhNmRkODU2NWVlMzdlNDIwNjMxZDdhZjcw
ZDUyMjdlNTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jSW5zdGFudGlhdG9yIHsK
LSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZ3JhbSA9
IHByb2dyYW07Ci0gICAgICAgIHRoaXMuX2luc3RhbmNlcyA9IG5ldyBNYXAoKTsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IGluc3RhbmNlcygpIHsgcmV0dXJuIHRoaXMuX2luc3RhbmNlczsgfQotICAg
IAotICAgIC8vIFJldHVybnMgYSBGdW5jIG9iamVjdCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMg
YSBwYXJ0aWN1bGFyIHN5c3RlbSBvZiB0eXBlIGFyZ3VtZW50cy4gWW91IG11c3QKLSAgICAvLyBp
bnRhbnRpYXRlIHRoaW5ncyB3aXRoIGNvbmNyZXRlIHR5cGVzLCBiZWNhdXNlIHRoaXMgY29kZSBj
YXN1YWxseSBhc3N1bWVzIHRoaXMuIE5vdGUgdGhhdCB0aGlzCi0gICAgLy8gd2lsbCByZXR1cm4g
YSBkaWZmZXJlbnQgZnVuYyBmcm9tIGBmdW5jYCBubyBtYXR0ZXIgd2hhdC4gVGhpcyBlbnN1cmVz
IHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAgICAvLyByZXR1cm5lZCBmdW5jIGZvciByZXdyaXRlcyB0
aGF0IGluc3RhbnRpYXRlIHR5cGVzIHdpdGhvdXQgZGVzdHJveWluZyBvdXIgYWJpbGl0eSB0byBk
byBvdmVybG9hZAotICAgIC8vIHJlc29sdXRpb25zIG9uIHRoZSBvcmlnaW5hbCBQcm9ncmFtLgot
ICAgIGdldFVuaXF1ZShmdW5jLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgY2xhc3Mg
RmluZFR5cGVWYXJpYWJsZSBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICAgICAgdmlzaXRUeXBl
UmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgdHlwZUFy
Z3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAg
ICAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgdmFyaWFibGU6ICIgKyBub2RlICsgIiB3aGVuIGluc3Rh
bnRpYXRpbmcgIiArIGZ1bmMgKyAiIHdpdGggYXJndW1lbnRzICIgKyB0eXBlQXJndW1lbnRzKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2YgdHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdChuZXcgRmlu
ZFR5cGVWYXJpYWJsZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW5jZXMgPSB0aGlz
Ll9pbnN0YW5jZXMuZ2V0KGZ1bmMpOwotICAgICAgICBpZiAoIWluc3RhbmNlcykKLSAgICAgICAg
ICAgIHRoaXMuX2luc3RhbmNlcy5zZXQoZnVuYywgaW5zdGFuY2VzID0gW10pOwotICAgICAgICAK
LSAgICAgICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7Ci0gICAgICAgICAgICBs
ZXQgb2sgPSB0cnVlOwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc3RhbmNlLnR5cGVBcmd1
bWVudHMubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS50eXBl
QXJndW1lbnRzW2ldLmVxdWFscyh0eXBlQXJndW1lbnRzW2ldKSkgewotICAgICAgICAgICAgICAg
ICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmZ1bmM7Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGxldCB0aGlzSW5zdGFudGlhdG9yID0gdGhpczsKLSAgICAg
ICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24gZXh0ZW5kcyBTdWJz
dGl0dXRpb24gewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdENhbGxFeHBy
ZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIHJlLXJlc29sdmUgdGhlIGZ1bmN0aW9uIGNhbGwsIGlmIGl0IHdhcyBhIGNhbGwg
dG8gYSBwcm90b2NvbAotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZS4KLSAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0LmZ1bmMgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwocmVzdWx0
LnBvc3NpYmxlT3ZlcmxvYWRzLCByZXN1bHQudHlwZUFyZ3VtZW50cywgcmVzdWx0LmFyZ3VtZW50
VHlwZXMsIHJlc3VsdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFvdmVy
bG9hZC5mdW5jKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3Vs
ZCBub3QgcmVzb2x2ZSBwcm90b2NvbCBzaWduYXR1cmUgZnVuY3Rpb24gY2FsbCBkdXJpbmcgaW5z
dGFudGlhdGlvbjogIiArIHJlc3VsdC5mdW5jICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/
ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAocmVz
dWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYXRpdmVGdW5j
SW5zdGFuY2UgPSB0aGlzSW5zdGFudGlhdG9yLmdldFVuaXF1ZShyZXN1bHQuZnVuYywgcmVzdWx0
LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbihmdW5j
LnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLQotICAgICAgICBjbGFzcyBJbnN0YW50
aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgSW5zdGFudGlhdGVJbW1lZGlhdGVz
IHsKLSAgICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGNlcnRhaW4gdGhpbmdzIHRo
YXQgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQsIGJ1dCB0aGF0IHdlIGNhbm5vdAotICAgICAgICAg
ICAgICAgIC8vIGluc3RhbnRpYXRlIHdpdGhvdXQgYnJlYWtpbmcgY2hhaW4taW5zdGFudGlhdGlv
bnMgKGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgZ2VuZXJpYwotICAgICAgICAgICAgICAgIC8vIGZ1
bmN0aW9uIHNvIHRoZXJlZm9yZSB0aGUgaW5zdGFudGlhdGVkIGdlbmVyaWMgZnVuY3Rpb24gbXVz
dCBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIC8vICh1bmluc3RhbnRp
YXRlZCkgdHlwZXMgdG8gaW5zdGFudGlhdGUgdGhlIGdlbmVyaWMgZnVuY3Rpb24gdGhhdCBpdCBj
YWxscykuCi0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbigK
LSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJn
dW1lbnRzLAotICAgICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJndW1l
bnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSB0aGlzLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9IEFycmF5LmZy
b20obm9kZS5hcmd1bWVudFR5cGVzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0Nhc3Qp
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2RlLnJldHVyblR5cGUp
OwotICAgICAgICAgICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gQXJyYXkuZnJv
bShub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRpb25JbnN0YW50aWF0
ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRlIHsKLSAg
ICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGxldCByZXR1cm5UeXBlID0gZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHJldHVyblR5cGUudmlzaXQoaW5zdGFudGlh
dGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IGZ1bmMucGFy
YW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pKTsK
LSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKTsKLSAgICAgICAgICAgICAg
ICBsZXQgYm9keSA9IGZ1bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAg
ICAgIGJvZHkgPSBib2R5LnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKAotICAgICAgICAgICAgICAgICAgICBmdW5jLm9yaWdp
biwgZnVuYy5uYW1lLCByZXR1cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nh
c3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhmdW5jKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuY0luc3RhbmNlKAot
ICAgICAgICAgICAgICAgICAgICBmdW5jLAotICAgICAgICAgICAgICAgICAgICBmdW5jLnJldHVy
blR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpLAot
ICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJh
bWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKSwK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1
bmMuc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uKHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChuZXcgSW5zdGFudGlhdGUoKSk7Ci0g
ICAgICAgIHJlc3VsdGluZ0Z1bmMudW5pbnN0YW50aWF0ZWRSZXR1cm5UeXBlID0gZnVuYy5yZXR1
cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgIGxldCBpbnN0YW5jZSA9IHtmdW5j
OiByZXN1bHRpbmdGdW5jLCB0eXBlQXJndW1lbnRzfTsKLSAgICAgICAgaW5zdGFuY2VzLnB1c2go
aW5zdGFuY2UpOwotICAgICAgICByZXR1cm4gcmVzdWx0aW5nRnVuYzsKLSAgICB9Ci19Ci0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxs
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMK
aW5kZXggNDQ2YjM1MWRhNTcxNWM2OGEzNWQ3Njk3OTY5ZDY5OGVjNzNlNzRmOC4uMDlhN2U4ZjY4
NzUwOTZkNTljNzhhYmYyMDRlYjI5NDM3ODFjM2RiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKQEAgLTI0LDE5ICsyNCwxMSBA
QAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMs
IHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCitmdW5jdGlvbiBpbmZl
clR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogewotICAgIGlm
ICh0eXBlQXJndW1lbnRzLmxlbmd0aCAmJiB0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBmdW5jLnR5
cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3Zlcmxv
YWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRz
IChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVuYy50
eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBpZiAoYXJndW1lbnRUeXBlcy5sZW5n
dGggIT0gZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBu
ZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyAocGFzc2VkICIgKyBhcmd1bWVudFR5cGVzLmxlbmd0aCArICIsIHJlcXVpcmUgIiArIGZ1
bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0
ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChmdW5jLnR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29s
dXRpb24pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsr
aSkgewotICAgICAgICBsZXQgYXJndW1lbnQgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAgICBs
ZXQgcGFyYW1ldGVyID0gZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAgaWYgKCFhcmd1
bWVudC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHBhcmFtZXRlcikpCi0gICAgICAgICAgICBy
ZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJUeXBl
IGFyZ3VtZW50ICMiICsgKGkgKyAxKSArICIgZm9yIHBhcmFtZXRlciAiICsgcGFyYW1ldGVyLm5h
bWUgKyAiIGRvZXMgbm90IG1hdGNoIChwYXNzZWQgIiArIGFyZ3VtZW50ICsgIiwgcmVxdWlyZSAi
ICsgcGFyYW1ldGVyICsgIikiKX07Ci0gICAgfQogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJn
dW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICBpZiAoIWFyZ3VtZW50VHlwZXNbaV0p
CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgYXJndW1lbnQgdHlwZSBhdCBpID0g
IiArIGkpOwpAQCAtNDgsMTYgKzQwLDYgQEAgZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVu
YywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICBsZXQgdmVy
aWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwogICAgIGlmICgh
dmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcg
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29u
KX07Ci0gICAgbGV0IHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cyA9ICF0eXBlQXJndW1lbnRzLmxl
bmd0aDsKLSAgICBpZiAoc2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzKQotICAgICAgICB0eXBlQXJn
dW1lbnRzID0gW107Ci0gICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJh
bWV0ZXJzKSB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnQgPSB1bmlmaWNhdGlvbkNvbnRleHQu
ZmluZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVudCA9PSB0eXBlUGFy
YW1ldGVyKQotICAgICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0
aW9uRmFpbHVyZShmdW5jLCAiVHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIGRp
ZCBub3QgZ2V0IGFzc2lnbmVkIGEgdHlwZSIpfTsKLSAgICAgICAgaWYgKHNob3VsZEJ1aWxkVHlw
ZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudHMucHVzaCh0eXBlQXJndW1lbnQp
OwotICAgIH0KLSAgICByZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dCwgdHlwZUFyZ3Vt
ZW50c307CisgICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHR9OwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKaW5kZXggZjAyODczYmQyNzNkOTEwYjNk
ZjA0ZmQyYTUxYTNjN2MwYTQ2N2NlZi4uODQwNWUzY2FiYWRkNTNlNDBlNWU4YjU5ZmIwZWY1Mjcz
ODQ3YjZkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwpAQCAtMjks
NyArMjksNiBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKICAgICBmb3IgKGxldCBmdW5jTGlz
dCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3IgKGxldCBmdW5j
IG9mIGZ1bmNMaXN0KSB7CiAgICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFtZXRlcnMubGVu
Z3RoKSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5n
ZXRVbmlxdWUoZnVuYywgW10pCiAgICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dy
YW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTU1LDE0ICs1NCwxNCBAQCBmdW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwg
ZnVuYywgdmlzaXRpbmcpCiAgICAgZnVuYy5pbmxpbmVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24g
cmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1
bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVJbmxp
bmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50
ID0gZmFsc2UpCiB7Ci0gICAgbGV0IG92ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4
dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMs
IHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBvaW50KTsKKyAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFt
Lmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBl
cywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIGlmICghb3ZlcmxvYWQuZnVuYykK
ICAgICAgICAgcmV0dXJuIG92ZXJsb2FkLmZhaWx1cmVzOwogICAgIGlmICghb3ZlcmxvYWQuZnVu
Yy50eXBlUGFyYW1ldGVycykKICAgICAgICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7Ci0gICAgbGV0
IGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKG92ZXJsb2FkLmZ1bmMs
IG92ZXJsb2FkLnR5cGVBcmd1bWVudHMpOworICAgIGxldCBmdW5jID0gb3ZlcmxvYWQuZnVuYzsK
ICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KG92ZXJs
b2FkLmZ1bmMpKTsKICAgICByZXR1cm4gZnVuYzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbmxpbmVyLmpzCmluZGV4IDQ5MWVmM2UyMjFmYzA2MzE4ZWUwMzY3YTM4MTY5OWU1NzIz
YmZlNWEuLmQ5MDZmNzZkZDUzM2U2ZGU2ZTM1Y2FkZjQwYjM0MWMwMTkzNWY4NjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwpAQCAtMzgsNyArMzgsNyBAQCBjbGFz
cyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICBpZiAocmVzdWx0Lm5hdGl2ZUZ1
bmNJbnN0YW5jZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIHJldHVybiB0
aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUuZnVuYywgKCkgPT4gewotICAgICAgICAgICAgbGV0
IGZ1bmMgPSB0aGlzLl9wcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5m
dW5jLCByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7CisgICAgICAgICAgICBsZXQgZnVuYyA9
IHJlc3VsdC5mdW5jOwogICAgICAgICAgICAgaWYgKGZ1bmMuaXNOYXRpdmUpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIG5hdGl2ZSBmdW5jOiAiICsgZnVuYyk7
CiAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24odGhpcy5fcHJvZ3JhbSwgZnVuYywgdGhpcy5f
dmlzaXRpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjM5
ZWQ2NjM4MTQxMzQ4YWJjMTI3Njk2YjZlZTMxZTBiMGM1OGI2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgUmV3cml0ZXIgewotICAg
IHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZSA9IHN1cGVyLnZpc2l0VHlw
ZVJlZihub2RlKTsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUuaW5zdGFudGlhdGUpIHsKLSAgICAg
ICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigidHlwZSBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbnRpYXRpb246ICIgKyB0
eXBlICsgIiAoIiArIHR5cGUuY29uc3RydWN0b3IubmFtZSArICIpIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS50eXBlLmluc3RhbnRp
YXRlKG5vZGUudHlwZUFyZ3VtZW50cykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwotICAgIH0K
LSAgICAKLSAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBub2RlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJp
bnNpY3MuanMKaW5kZXggOTMzZGZlMDExMzAyYjBmYmM4MzQ0OTk0YTFhNWMxZjc3YzA1MmE2Zi4u
MDkzMjgzY2NlMDMxZTFkNGUxZmY2YWE1NGJkOTA1ZWMyOTkzYzg5NyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC00OTksMzMgKzQ5OSw2IEBAIGNs
YXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRy
ZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkg
aW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5v
ZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihU
W10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChy
ZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQogCiAgICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dpenpsZU9wLmFsbFN3
aXp6bGVPcGVyYXRvcnMoKSkgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzd2l6emxlLnRv
U3RyaW5nKCksIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFt
ZUNvbnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5q
cwppbmRleCBjMzFiYzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNjZTcx
MjM0ZjVhYWNkZWYzZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xhc3Mg
TmFtZUNvbnRleHQgewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAgcmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1
cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJsb2Fk
KG5hbWUsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwog
ICAgICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtd
fTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9u
cywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBv
aW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1
bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAKICAg
ICBnZXQgY3VycmVudFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZUZpbmRlci5qcwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIxZWU5
YzdkLi40M2U0NzFhYWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2IEBA
IGNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29ya2xp
c3QucHVzaChuYW1lKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRQ
cm90b2NvbFJlZihub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAg
ICAgewogICAgICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4OTgx
MjUyMjMyNTAzYmNmYWJjMzAuLjQ0YWJmMDkwMGJlOWUzOTRjYzQyYjE5OGI1ODY1NzUxYWQzZjhi
MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZl
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMK
QEAgLTExNSwzNCArMTE1LDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgICAgIG5vZGUuYm9keS52aXNpdChuZXdSZXNvbHZlcik7CiAgICAgfQogICAgIAotICAg
IHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwYXJlbnQg
b2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcGFyZW50LnZpc2l0KHRoaXMpOwotICAgICAg
ICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwot
ICAgICAgICBuYW1lQ29udGV4dC5hZGQobm9kZS50eXBlVmFyaWFibGUpOwotICAgICAgICBsZXQg
Y2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxl
dCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZp
c2l0KGNoZWNrZXIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0g
ICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFByb3RvY29s
LCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHBy
b3RvY29sIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnByb3RvY29sRGVjbCA9
IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbGV0IGZ1bmNzID0g
dGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghZnVu
Y3MpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJDYW5ub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyBub2RlLm5hbWUpOwot
ICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVuY3M7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0VHlwZURlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3
IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKQEAgLTE3Nyw3ICsxNDksNyBAQCBjbGFz
cyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgICAgICBpZiAodGhp
bmcgaW5zdGFuY2VvZiBWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50c1tp
XSA9IG5ldyBWYXJpYWJsZVJlZih0eXBlQXJndW1lbnQub3JpZ2luLCB0eXBlQXJndW1lbnQubmFt
ZSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpbmcgaW5zdGFuY2VvZiBUeXBlKQotICAg
ICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzW2ldID0gbmV3IFR5cGVSZWYodHlwZUFyZ3Vt
ZW50Lm9yaWdpbiwgdHlwZUFyZ3VtZW50Lm5hbWUsIFtdKTsKKyAgICAgICAgICAgICAgICAgICAg
dHlwZUFyZ3VtZW50c1tpXSA9IG5ldyBUeXBlUmVmKHR5cGVBcmd1bWVudC5vcmlnaW4sIHR5cGVB
cmd1bWVudC5uYW1lKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
VHlwZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9mIHRoaW5nOiAiICsgdGhpbmcu
a2luZCk7CiAgICAgICAgICAgICB9CkBAIC0yMDMsMTIgKzE3NSw5IEBAIGNsYXNzIE5hbWVSZXNv
bHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5s
ZW5ndGggIT0gbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCkKICAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0
eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwg
ZXhwZWN0ZWQgIiArIHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsKICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBsZXQgcGFyYW1ldGVySXNUeXBlID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBp
bnN0YW5jZW9mIFR5cGVWYXJpYWJsZTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9
IG5vZGUudHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7CiAgICAgICAgICAgICBub2Rl
LnR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVy
SXNUeXBlICYmICFhcmd1bWVudElzVHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290
IHZhbHVlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklz
VHlwZSAmJiBhcmd1bWVudElzVHlwZSkKKyAgICAgICAgICAgIGlmIChhcmd1bWVudElzVHlwZSkK
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBlIGF0IGFyZ3VtZW50ICMiICsgaSk7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYXRpdmVGdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZl
RnVuYy5qcwppbmRleCBhNTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1MTgyNDg3Li5k
YzBmZjc4MWI2OTJlMTg0NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwxMiBAQAogInVz
ZSBzdHJpY3QiOwogCiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3Ry
dWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVy
cywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0
dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAg
c3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVy
cywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1
cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLmlz
UmVzdHJpY3RlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVsbDsK
ICAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhpcy5p
bnN0YW50aWF0ZUltcGxlbWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307CiAgICAgICAg
IHRoaXMudmlzaXRJbXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNp
dG9yKSA9PiBudWxsOwogICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0
aW9uRGF0YSA9IGltcGxlbWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCmluZGV4IGI4YjFhNDczMzBiNWZkNTFm
ZjAyMWFmMDY1ODY4NDRjMmFjYmE4ZWEuLjIwZWI1OTBkMGMzMzcxOWI4MmYxNWI1ZGZkMTRkODMz
ZTRjZGYwZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2
ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5q
cwpAQCAtMjUsMTQgKzI1LDE0IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZVR5cGUg
ZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0
ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKICAgICB7
CiAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXJzIGluc3RhbmNlb2YgQXJyYXkpKQogICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBlIHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlw
ZVBhcmFtZXRlcnMpOwogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBv
cmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFy
YW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOworICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0g
dHlwZUFyZ3VtZW50czsKICAgICAgICAgdGhpcy5faXNOdW1iZXIgPSBmYWxzZTsKICAgICAgICAg
dGhpcy5faXNJbnQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faXNGbG9hdGluZyA9IGZhbHNlOwpA
QCAtNDEsNyArNDEsNyBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgCiAg
ICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkg
eyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJu
IHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CisgICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJldHVy
biB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIAogICAgIC8vIFdlIGxldCBJbnRyaW5zaWNzLmpzIHNldCB0aGVzZSBhcyBpdCBs
aWtlcy4KQEAgLTU0LDE1ICs1NCw2IEBAIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsK
ICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc1ByaW1pdGl2ZTsgfQogICAg
IHNldCBpc1ByaW1pdGl2ZSh2YWx1ZSkgeyB0aGlzLl9pc1ByaW1pdGl2ZSA9IHZhbHVlOyB9CiAg
ICAgCi0gICAgaW5zdGFudGlhdGUodHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGlmICh0
eXBlQXJndW1lbnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRv
IGluc3RhbnRpYXRpb24iKTsKLSAgICAgICAgaWYgKCF0eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJbnN0
YW5jZSh0aGlzLCB0eXBlQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCiAgICAgdG9TdHJpbmcoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuICJuYXRpdmUgdHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIjwi
ICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UGFyc2UuanMKaW5kZXggNmQyYjQzMTYxNTYwMWFiOWRkM2QwOTM4ZmJmYjM4NWVlMmE0ZGFmMS4u
ZmJlZTFkNzFhOTRiN2ZlODM0ZjA2MTgwZTBiZDUxNzA3NjEzYTJiOCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKQEAgLTEyMSwxMiArMTIxLDYgQEAgZnVuY3Rpb24gcGFy
c2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVBy
b3RvY29sUmVmKCkKLSAgICB7Ci0gICAgICAgIGxldCBwcm90b2NvbFRva2VuID0gY29uc3VtZUtp
bmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2NvbFJlZihwcm90b2Nv
bFRva2VuLCBwcm90b2NvbFRva2VuLnRleHQpOwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBj
b25zdW1lRW5kT2ZUeXBlQXJncygpCiAgICAgewogICAgICAgICBsZXQgcmlnaHRTaGlmdCA9IHRy
eUNvbnN1bWUoIj4+Iik7CkBAIC0xMzYsMzQgKzEzMCw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dy
YW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAg
ICAgIGNvbnN1bWUoIj4iKTsKICAgICB9CiAgICAgCi0gICAgZnVuY3Rpb24gcGFyc2VUeXBlUGFy
YW1ldGVycygpCi0gICAgewotICAgICAgICBpZiAoIXRlc3QoIjwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBbXTsKLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgY29u
c3VtZSgiPCIpOwotICAgICAgICB3aGlsZSAoIXRlc3QoIj4iKSkgewotICAgICAgICAgICAgbGV0
IGNvbnN0ZXhwciA9IGxleGVyLmJhY2t0cmFja2luZ1Njb3BlKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICAgICAgICAgIGxldCBuYW1lID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnROZXh0KCIs
IiwgIj4iLCAiPj4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5hbWUudGV4dCwgdHlwZSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGlmIChjb25zdGV4cHIpCi0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2go
Y29uc3RleHByKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGxldCBuYW1l
ID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBsZXQgcHJvdG9j
b2wgPSB0cnlDb25zdW1lKCI6IikgPyBwYXJzZVByb3RvY29sUmVmKCkgOiBudWxsOwotICAgICAg
ICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBUeXBlVmFyaWFibGUobmFtZSwgbmFtZS50ZXh0LCBw
cm90b2NvbCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0cnlDb25zdW1lKCIs
IikpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZUVu
ZE9mVHlwZUFyZ3MoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAg
ZnVuY3Rpb24gcGFyc2VUZXJtKCkKICAgICB7CiAgICAgICAgIGxldCB0b2tlbjsKQEAgLTIyMiw3
ICsxODgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgdG9rZW47CiAgICAgICAg
IGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi0iKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2Fs
bEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlVGVy
bSgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3Bl
cmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlVGVybSgpXSk7CiAgICAgICAgIGxldCBsZWZ0ID0g
cGFyc2VUZXJtKCk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi4iKSkKICAgICAg
ICAgICAgIGxlZnQgPSBuZXcgRG90RXhwcmVzc2lvbih0b2tlbiwgbGVmdCwgY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKS50ZXh0KTsKQEAgLTI4Miw4ICsyNDgsNyBAQCBmdW5jdGlvbiBwYXJzZShw
cm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAg
ICAgICAgICBhZGRyZXNzU3BhY2UgPSB0b2tlbi50ZXh0OwogICAgICAgICAKICAgICAgICAgbGV0
IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3Vt
ZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwotICAgICAgICBsZXQgdHlwZSA9IG5ldyBUeXBl
UmVmKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCB0eXBlID0g
bmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0KTsKICAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9u
IGdldEFkZHJlc3NTcGFjZSgpCiAgICAgICAgIHsKQEAgLTMxOCwxMSArMjgzLDEwIEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJ0eXBlZGVmIik7CiAg
ICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAg
ICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGNv
bnN1bWUoIj0iKTsKICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgY29u
c3VtZSgiOyIpOwotICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycywgdHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5h
bWUsIHR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBnZW5lcmljUGFyc2VMZWZ0KHRl
eHRzLCBuZXh0UGFyc2VyLCBjb25zdHJ1Y3RvcikKQEAgLTMzOSwxMyArMzAzLDEyIEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICB0ZXh0
cywgbmV4dFBhcnNlciwKICAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+Ci0gICAg
ICAgICAgICAgICAgbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4u
dGV4dCwgW10sIFtsZWZ0LCByaWdodF0pKTsKKyAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJl
c3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbbGVmdCwgcmlnaHRdKSk7CiAg
ICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlQ2FsbEV4cHJlc3Npb24oKQogICAgIHsKICAg
ICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQg
dHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICBjb25zdW1lKCIo
Iik7CiAgICAgICAgIGxldCBhcmd1bWVudExpc3QgPSBbXTsKICAgICAgICAgd2hpbGUgKCF0ZXN0
KCIpIikpIHsKQEAgLTM1NSw3ICszMTgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY29uc3VtZSgiKSIpOwotICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRMaXN0KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihu
YW1lLCBuYW1lLnRleHQsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIApAQCAtMzYzLDcgKzMyNiw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9y
aWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAg
IHJldHVybiBsZXhlci50ZXN0U2NvcGUoKCkgPT4gewogICAgICAgICAgICAgY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAg
ICAgICAgY29uc3VtZSgiKCIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC0zODEsNyArMzQzLDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAobmFtZSA9PSAib3BlcmF0b3IiKQogICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1lKTsKICAgICAgICAgCi0g
ICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5hbWUsIFtdLCBhcmdzKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwgYXJncyk7CiAg
ICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGZpbmlzaFBhcnNpbmdQb3N0SW5jcmVtZW50KHRva2Vu
LCBsZWZ0KQpAQCAtNDU0LDcgKzQxNiw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKHRlc3Qo
IisrIiwgIi0tIikpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VQcmVJbmNyZW1lbnQoKTsKICAg
ICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKyIsICItIiwgIn4iKSkKLSAgICAgICAgICAg
IHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0
LCBbXSwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOworICAgICAgICAgICAgcmV0dXJuIG5ldyBD
YWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtwYXJzZVBvc3Np
YmxlUHJlZml4KCldKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKiIpKQogICAg
ICAgICAgICAgcmV0dXJuIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9z
c2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiYiKSkKQEAg
LTQ2Myw3ICs0MjUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IE1ha2VB
cnJheVJlZkV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAg
IGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiEiKSkgewogICAgICAgICAgICAgbGV0IHJlbWFpbmRl
ciA9IHBhcnNlUG9zc2libGVQcmVmaXgoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTG9naWNh
bE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29sIiwg
W10sIFtyZW1haW5kZXJdKSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IExvZ2ljYWxOb3QodG9r
ZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5kZXIub3JpZ2luLCAiYm9vbCIsIFtyZW1haW5k
ZXJdKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlUG9zc2libGVTdWZmaXgoKTsK
ICAgICB9CkBAIC00OTMsNyArNDU1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2Vu
ZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIFsiPT0iLCAiIT0iXSwgcGFyc2VQb3NzaWJsZVJl
bGF0aW9uYWxJbmVxdWFsaXR5LAogICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4g
ewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4s
ICJvcGVyYXRvcj09IiwgW10sIFtsZWZ0LCByaWdodF0pOworICAgICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09IiwgW2xlZnQsIHJp
Z2h0XSk7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gIiE9IikKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gbmV3IExvZ2ljYWxOb3QodG9rZW4sIHJlc3VsdCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUxOSw3ICs0ODEsNyBAQCBmdW5jdGlvbiBw
YXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQp
CiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRl
eHRzLCBuZXh0UGFyc2VyLAotICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gbmV3
IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Npb24o
bGVmdC5vcmlnaW4sICJib29sIiwgW10sIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdo
dC5vcmlnaW4sICJib29sIiwgW10sIFtyaWdodF0pKSk7CisgICAgICAgICAgICAodG9rZW4sIGxl
ZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5l
dyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbbGVmdF0pLCBuZXcgQ2FsbEV4
cHJlc3Npb24ocmlnaHQub3JpZ2luLCAiYm9vbCIsIFtyaWdodF0pKSk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVMb2dpY2FsQW5kKCkKQEAgLTY1Niw3ICs2MTgsNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBlbHNlQm9keTsKICAgICAgICAgaWYgKHRyeUNvbnN1
bWUoImVsc2UiKSkKICAgICAgICAgICAgIGVsc2VCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAg
ICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihj
b25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNl
Qm9keSk7CisgICAgICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4
cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pLCBib2R5
LCBlbHNlQm9keSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VXaGlsZSgpCkBAIC02NjYs
NyArNjI4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4
cHJlc3Npb24oKTsKICAgICAgICAgY29uc3VtZSgiKSIpOwogICAgICAgICBsZXQgYm9keSA9IHBh
cnNlU3RhdGVtZW50KCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3
IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlv
bmFsXSksIGJvZHkpOworICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9vcChvcmlnaW4sIG5ldyBD
YWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSks
IGJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlRm9yKCkKQEAgLTY4Nyw3ICs2NDks
NyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1i
ZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgY29uZGl0aW9uID0g
cGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAg
ICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wi
LCBbXSwgW2NvbmRpdGlvbl0pOworICAgICAgICAgICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHBy
ZXNzaW9uKGNvbmRpdGlvbi5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbl0pOwogICAgICAgICB9
CiAgICAgICAgIGxldCBpbmNyZW1lbnQ7CiAgICAgICAgIGlmICh0cnlDb25zdW1lKCIpIikpCkBA
IC03MDgsNyArNjcwLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBjb25zdW1lKCIoIik7CiAgICAg
ICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1l
KCIpIik7Ci0gICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcg
Q2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9u
YWxdKSk7CisgICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcg
Q2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0p
KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xzKCkKQEAgLTg1
OCwxMyArODIwLDExIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbjsKICAgICAgICAg
bGV0IHJldHVyblR5cGU7CiAgICAgICAgIGxldCBuYW1lOwotICAgICAgICBsZXQgdHlwZVBhcmFt
ZXRlcnM7CiAgICAgICAgIGxldCBpc0Nhc3Q7CiAgICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAg
ICAgICBsZXQgb3BlcmF0b3JUb2tlbiA9IHRyeUNvbnN1bWUoIm9wZXJhdG9yIik7CiAgICAgICAg
IGlmIChvcGVyYXRvclRva2VuKSB7CiAgICAgICAgICAgICBvcmlnaW4gPSBvcGVyYXRvclRva2Vu
OwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAg
ICAgICAgICAgICByZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgICAgICBuYW1lID0g
Im9wZXJhdG9yIGNhc3QiOwogICAgICAgICAgICAgaXNDYXN0ID0gdHJ1ZTsKQEAgLTg3Nyw0NCAr
ODM3LDE3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
IG9yaWdpbiA9IHJldHVyblR5cGUub3JpZ2luOwogICAgICAgICAgICAgbmFtZSA9IHBhcnNlRnVu
Y05hbWUoKTsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVy
cygpOwogICAgICAgICAgICAgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbGV0
IHBhcmFtZXRlcnMgPSBwYXJzZVBhcmFtZXRlcnMoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5j
KG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlz
Q2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUs
IHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gcGFyc2VQcm90b2NvbEZ1bmNEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBm
dW5jID0gcGFyc2VGdW5jRGVjbCgpOwotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sRnVuY0Rl
Y2woZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJh
bWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwot
ICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZ1bmNEZWYoKQogICAgIHsKICAgICAgICAg
bGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VCbG9j
aygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwg
ZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGJv
ZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAKLSAgICBmdW5j
dGlvbiBwYXJzZVByb3RvY29sRGVjbCgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29u
c3VtZSgicHJvdG9jb2wiKTsKLSAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRp
ZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG9yaWdp
biwgbmFtZSk7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsKLSAgICAgICAgICAgIHdo
aWxlICghdGVzdCgieyIpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFkZEV4dGVuZHMocGFy
c2VQcm90b2NvbFJlZigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgY29uc3VtZSgieyIpOwotICAgICAgICB3aGlsZSAoIXRyeUNvbnN1bWUoIn0iKSkgewot
ICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZVByb3RvY29sRnVuY0RlY2woKSk7Ci0gICAgICAg
ICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0
dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJU
eXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGaWVsZCgpCkBAIC05MjksOCAr
ODYyLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5l
TnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUo
InN0cnVjdCIpOwogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIiku
dGV4dDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygp
OwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycyk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4s
IG5hbWUpOwogICAgICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAgIHdoaWxlICghdHJ5Q29uc3Vt
ZSgifSIpKQogICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZUZpZWxkKCkpOwpAQCAtOTQxLDcg
Kzg3Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5j
RGVjbCgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZl
RnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBh
cmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7
CisgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBm
dW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVy
VHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlTmF0aXZlKCkKQEAgLTk0OSw5
ICs4ODEsOSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJuYXRp
dmUiKTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoInR5cGVkZWYiKSkgewogICAgICAgICAgICAg
bGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgbGV0IHBh
cmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICBsZXQgYXJndW1l
bnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcmFt
ZXRlcnMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZS50
ZXh0LCBhcmd1bWVudHMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZU5hdGl2ZUZ1
bmMoKTsKICAgICB9CkBAIC05ODUsNyArOTE3LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAo
dHJ5Q29uc3VtZSgiOiIpKQogICAgICAgICAgICAgYmFzZVR5cGUgPSBwYXJzZVR5cGUoKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50
IiwgW10pOworICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50Iik7
CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFbnVtVHlw
ZShuYW1lLCBuYW1lLnRleHQsIGJhc2VUeXBlKTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ9Iikp
IHsKQEAgLTEwMTMsOCArOTQ1LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBv
cmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgcHJvZ3JhbS5h
ZGQocGFyc2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJl
bnVtIikKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRW51bVR5cGUoKSk7Ci0gICAgICAg
IGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInByb3RvY29sIikKLSAgICAgICAgICAgIHByb2dyYW0u
YWRkKHBhcnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwcm9n
cmFtLmFkZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1ByZXBhcmUuanMKaW5kZXggYTIwNDhhOWFkM2U4M2JkMThiNzY0NDRjYTU1NDZlNDhmZTAx
MTlhMC4uZTdjM2YyMzY2MDRmOGJhMDg3YWMxZTY2ZjU4ZDY3ODYwMWM1NzZjNiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00MiwxNiArNDIsMTMgQEAgbGV0
IHByZXBhcmUgPSAoKCkgPT4gewogICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFtKTsKICAg
ICAgICAgbGV0IG5hbWVSZXNvbHZlciA9IGNyZWF0ZU5hbWVSZXNvbHZlcihwcm9ncmFtKTsKICAg
ICAgICAgcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwotICAgICAg
ICByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwogICAgICAg
ICByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pOwotICAgICAgICByZXNvbHZlVHlwZURl
ZnNJblByb3RvY29scyhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tSZWN1cnNpdmVUeXBlcyhwcm9n
cmFtKTsKICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKTsKICAgICAg
ICAgc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVOYW1l
c0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBl
RGVmc0luRnVuY3Rpb25zKHByb2dyYW0pOwotICAgICAgICAKLSAgICAgICAgZmxhdHRlblByb3Rv
Y29sRXh0ZW5kcyhwcm9ncmFtKTsKKwogICAgICAgICBjaGVjayhwcm9ncmFtKTsKICAgICAgICAg
Y2hlY2tMaXRlcmFsVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVQcm9wZXJ0aWVzKHBy
b2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3Jh
bS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKaW5kZXggYmJj
NGIyNGE2MjI3YjFjZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZjNmY3OTNlZTZlNzNlZWNh
NWE2YWE3NGE0NDBhNjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm9ncmFtLmpzCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsK
ICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAgICAgICAgIHRoaXMuX2Z1
bmN0aW9ucyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMgPSBuZXcgTWFwKCk7Ci0g
ICAgICAgIHRoaXMuX3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fZnVuY0lu
c3RhbnRpYXRvciA9IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwogICAgICAgICB0aGlzLl9n
bG9iYWxOYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAgICAgICB0aGlzLl9nbG9i
YWxOYW1lQ29udGV4dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNv
bnRleHQucmVjb2duaXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAsNiBAQCBjbGFzcyBQcm9n
cmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVtZW50cygpIHsgcmV0dXJu
IHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5jdGlvbnMoKSB7IHJldHVy
biB0aGlzLl9mdW5jdGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJldHVybiB0aGlzLl90eXBl
czsgfQotICAgIGdldCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9wcm90b2NvbHM7IH0KLSAg
ICBnZXQgZnVuY0luc3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1bmNJbnN0YW50aWF0b3I7
IH0KICAgICBnZXQgZ2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0aGlzLl9nbG9iYWxOYW1l
Q29udGV4dDsgfQogICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01Niw4ICs1Miw2IEBAIGNs
YXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFycmF5LnB1c2goc3RhdGVt
ZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBUeXBlKQogICAg
ICAgICAgICAgdGhpcy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQpOwotICAg
ICAgICBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2NvbCkKLSAgICAgICAgICAg
IHRoaXMuX3Byb3RvY29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVtZW50IGlzIG5vdCBhIGZ1
bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0aGlzLl90b3BMZXZlbFN0
YXRlbWVudHMucHVzaChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUHJvdG9jb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm90b2NvbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmODQ1NjQ3N2VjYTJl
OGRjZjY2Y2Y0NWMyZDQ3M2NhMDg1N2Q4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2wgZXh0
ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAg
ICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhp
cy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAg
Z2V0IGtpbmQoKSB7IHJldHVybiBQcm90b2NvbDsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNTBiY2ZjZjMzYmE3Mzk1YzU2ZDk1MmE1NzlkMDk5MjdiMGJlNzY3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0
cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sRGVjbCBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUp
OwotICAgICAgICB0aGlzLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9
IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRo
aXMuX3R5cGVWYXJpYWJsZSA9IG5ldyBUeXBlVmFyaWFibGUob3JpZ2luLCBuYW1lLCBudWxsKTsK
LSAgICB9Ci0gICAgCi0gICAgYWRkRXh0ZW5kcyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuZXh0ZW5kcy5wdXNoKHByb3RvY29sKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKHNpZ25hdHVy
ZSkKLSAgICB7Ci0gICAgICAgIGlmICghKHNpZ25hdHVyZSBpbnN0YW5jZW9mIFByb3RvY29sRnVu
Y0RlY2wpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaWduYXR1cmUgaXNuJ3QgYSBQ
cm90b2NvbEZ1bmNEZWNsIGJ1dCBhICIgKyBzaWduYXR1cmUuY29uc3RydWN0b3IubmFtZSk7Ci0g
ICAgICAgIAotICAgICAgICBzaWduYXR1cmUucHJvdG9jb2xEZWNsID0gdGhpczsKLSAgICAgICAg
dGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgICAgIGxldCBvdmVybG9hZHMg
PSB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KHNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgaWYgKCFv
dmVybG9hZHMpCi0gICAgICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAuc2V0KHNpZ25hdHVyZS5u
YW1lLCBvdmVybG9hZHMgPSBbXSk7Ci0gICAgICAgIG92ZXJsb2Fkcy5wdXNoKHNpZ25hdHVyZSk7
Ci0gICAgfQotICAgIAotICAgIGdldCBzaWduYXR1cmVzKCkgeyByZXR1cm4gdGhpcy5fc2lnbmF0
dXJlczsgfQotICAgIHNpZ25hdHVyZXNCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fc2lnbmF0
dXJlTWFwLmdldChuYW1lKTsgfQotICAgIGdldCB0eXBlVmFyaWFibGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlVmFyaWFibGU7IH0KLSAgICAKLSAgICBzaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJp
YWJsZShuYW1lLCB0eXBlVmFyaWFibGUpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9u
ID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy50eXBlVmFyaWFibGVdLCBbdHlwZVZhcmlhYmxlXSk7
Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUobmFtZSk7Ci0gICAg
ICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIHJldHVy
biByZXN1bHQubWFwKHNpZ25hdHVyZSA9PiBzaWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKSk7
Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVyUHJvdG9jb2wpCi0gICAgewotICAgICAg
ICBpZiAoIW90aGVyUHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgICAgIAotICAgICAgICBpZiAob3RoZXJQcm90b2NvbCBpbnN0YW5jZW9mIFByb3RvY29s
UmVmKQotICAgICAgICAgICAgb3RoZXJQcm90b2NvbCA9IG90aGVyUHJvdG9jb2wucHJvdG9jb2xE
ZWNsOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgb3RoZXJTaWduYXR1cmUgb2Ygb3RoZXJQ
cm90b2NvbC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlcyA9IHRoaXMu
c2lnbmF0dXJlc0J5TmFtZShvdGhlclNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgICAgIGlmICgh
c2lnbmF0dXJlcykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNv
bjogIlByb3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIGRvZXMgbm90IGhhdmUgYSBmdW5jdGlvbiBu
YW1lZCAiICsgb3RoZXJTaWduYXR1cmUubmFtZSArICIgKGxvb2tpbmcgYXQgc2lnbmF0dXJlICIg
KyBvdGhlclNpZ25hdHVyZSArICIpIn07Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNv
bHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAgIHNpZ25hdHVyZXMsIFtdLAotICAgICAg
ICAgICAgICAgIG90aGVyU2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLAotICAgICAgICAgICAgICAg
IG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwotICAgICAg
ICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0
OiBmYWxzZSwgcmVhc29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBmb3IgIiAr
IG90aGVyU2lnbmF0dXJlICsgIiBpbiAiICsgdGhpcy5uYW1lICsgKG92ZXJsb2FkLmZhaWx1cmVz
Lmxlbmd0aCA/ICIgKHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIp
IiA6ICIiKX07Ci0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlID0KLSAgICAg
ICAgICAgICAgICBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRp
b24oCi0gICAgICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92
ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVk
UmV0dXJuVHlwZS5lcXVhbHMob3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZSkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJSZXR1cm4gdHlwZSBtaXNtYXRj
aCBiZXR3ZWVuICIgKyBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0
aXR1dGVkUmV0dXJuVHlwZX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgIH0KLSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAgewotICAgICAgICBsZXQg
c3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy5fdHlwZVZhcmlhYmxlXSwgW3R5
cGVdKTsKLSAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXM7Ci0gICAgICAg
IGZvciAobGV0IG9yaWdpbmFsU2lnbmF0dXJlIG9mIHNpZ25hdHVyZXMpIHsKLSAgICAgICAgICAg
IGxldCBzaWduYXR1cmUgPSBvcmlnaW5hbFNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pOwot
ICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChzaWduYXR1cmUu
cG9zc2libGVPdmVybG9hZHMsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycywgc2lnbmF0dXJlLnBh
cmFtZXRlclR5cGVzLCBzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7
Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0Y2hpbmcgc2lnbmF0dXJl
IGZvciAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3JpZ2luYWxTaWduYXR1cmUu
b3JpZ2luLm9yaWdpblN0cmluZyArICIpIHdpdGggdHlwZSAiICsgdHlwZSArIChvdmVybG9hZC5m
YWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsg
IikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0
ZWRSZXR1cm5UeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZp
Y2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92
ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVk
UmV0dXJuVHlwZS5lcXVhbHMoc2lnbmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiQXQgc2lnbmF0dXJlICIgKyBvcmlnaW5h
bFNpZ25hdHVyZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nICsgIik6IHJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIHNpZ25hdHVyZS5yZXR1
cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZSArICIgaW4gZm91bmQgZnVu
Y3Rpb24gIiArIG92ZXJsb2FkLmZ1bmMudG9EZWNsU3RyaW5nKCl9OwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuICJwcm90b2NvbCAiICsgdGhpcy5uYW1lICsgIiB7ICIgKyB0
aGlzLnNpZ25hdHVyZXMuam9pbigiOyAiKSArICI7IH0iOwotICAgIH0KLX0KLQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODliNWM5YjhlNzE2MTg2OGExY2U0NWQ1ODg2NjM5MmMw
MjIyNDRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbEZ1bmNEZWNsIGV4dGVu
ZHMgRnVuYyB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnMuY29uY2F0KHRoaXMucHJvdG9j
b2xEZWNsLnR5cGVWYXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
M2MwZWEzMGQ3NDhkOGI5ZTE2MTA3YTlmODA4YzIzYjMyODY1ZTY0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Byb3RvY29sUmVmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1j
bGFzcyBQcm90b2NvbFJlZiBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUpOwotICAgICAgICB0
aGlzLnByb3RvY29sRGVjbCA9IG51bGw7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVy
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmluaGVyaXRzKG90aGVy
KTsKLSAgICB9Ci0gICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMucHJvdG9jb2xEZWNsLmhhc0hlaXIodHlwZSk7Ci0gICAgfQotICAgIAotICAgIGdldCBp
c1ByaW1pdGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaXNQ
cmltaXRpdmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmVzb2x2ZU5hbWVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVz
b2x2ZU5hbWVzLmpzCmluZGV4IDE5MjJlOGVjMjdmYzM5ZDk1YjRhYThiZmE5YTU2YzkxMGY2ZTY4
YjIuLjQ5ZGM4NjM3ZDRlMTQzYTliMDdkNTljZjNmYjk3NWNmODRhNjVlMTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKQEAgLTM1LDEyICszNSw2
IEBAIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQog
ICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQodHlwZSk7CiB9CiAKLWZ1bmN0aW9uIHJl
c29sdmVOYW1lc0luUHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKLXsKLSAgICBmb3Ig
KGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgbmFt
ZVJlc29sdmVyLmRvU3RhdGVtZW50KHByb3RvY29sKTsKLX0KLQogZnVuY3Rpb24gcmVzb2x2ZU5h
bWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogewogICAgIGZvciAobGV0IGZ1
bmNzIG9mIHByb2dyYW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcwppbmRleCA3ZTIyMTU2
ZGUxYWM1ZTJhNmM3MjRhZDM0NjlkYzkxZTc0NmYyNTY2Li5kNTRiOTRkMzZjZGIwYjA2ODI5OTYy
NmFmMDU2NWE4MmJhNzc3NWM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogInVz
ZSBzdHJpY3QiOwogCi1mdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0g
ZmFsc2UpCitmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJndW1lbnRU
eXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7CiAgICAgaWYgKCFm
dW5jdGlvbnMpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBmdW5jdGlvbnM7IHRoYXQg
c2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgYnkgdGhlIGNhbGxlci4iKTsKQEAgLTM2LDcgKzM2LDcg
QEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMs
IGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gobmV3
IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIkZ1bmN0aW9uIGlzIGEgIiArIGZ1bmMu
c2hhZGVyVHlwZSArICIgc2hhZGVyLCBzbyBpdCBjYW5ub3QgYmUgY2FsbGVkIGZyb20gd2l0aGlu
IGFuIGV4aXN0aW5nIHNoYWRlci4iKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0gICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOworICAgICAgICBsZXQgb3ZlcmxvYWQg
PSBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKTsKICAg
ICAgICAgaWYgKG92ZXJsb2FkLmZhaWx1cmUpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG92
ZXJsb2FkLmZhaWx1cmUpOwogICAgICAgICBlbHNlCkBAIC03NCw3ICs3NCw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlCiAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyRnVuYyA9IHN1Y2Nlc3Nl
c1tqXS5mdW5jOwogICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwo
CiAgICAgICAgICAgICAgICAgcGFyYW1ldGVyRnVuYywKLSAgICAgICAgICAgICAgICB0eXBlQXJn
dW1lbnRzLmxlbmd0aCA/IGFyZ3VtZW50RnVuYy50eXBlUGFyYW1ldGVycyA6IFtdLAogICAgICAg
ICAgICAgICAgIGFyZ3VtZW50RnVuYy5wYXJhbWV0ZXJUeXBlcywKICAgICAgICAgICAgICAgICBh
cmd1bWVudEZ1bmMucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7CiAgICAgICAgICAg
ICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Jlc29sdmVUeXBlRGVmcy5qcwppbmRleCAzYmQyYTRkNjVmNTY0ZjcwOGIwZWY0NzU5ZTQz
YjJjODhkNDhjMjM0Li5lODdiZGMzYzM0ODMxOTk1MmZmOWQ4ZjAzOTlmMzQ4ZWE5NTBkNjBlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpz
CkBAIC0zMSwxMyArMzEsNiBAQCBmdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dy
YW0pCiAgICAgICAgIHR5cGUudmlzaXQocmVzb2x2ZXIpOwogfQogCi1mdW5jdGlvbiByZXNvbHZl
VHlwZURlZnNJblByb3RvY29scyhwcm9ncmFtKQotewotICAgIGxldCByZXNvbHZlciA9IG5ldyBU
eXBlRGVmUmVzb2x2ZXIoKTsKLSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3Rv
Y29scy52YWx1ZXMoKSkKLSAgICAgICAgcHJvdG9jb2wudmlzaXQocmVzb2x2ZXIpOwotfQotCiBm
dW5jdGlvbiByZXNvbHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKQogewogICAgIGxldCBy
ZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmV3cml0ZXIuanMKaW5kZXggZjQwZDZiODhiMjZlZWRjYmY4MjlmMWJhYmIxMGEyMDQ1
YjdhOGU4My4uNzlmYmM3OTk3YjNjYTRmYmQ4NWJiYzZkZGQ2ZThkZDVkNGE5YzVhZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTU3LDMwICs1Nyw4IEBA
IGNsYXNzIFJld3JpdGVyIHsKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkgeyByZXR1cm4gbm9k
ZTsgfQogICAgIHZpc2l0VHlwZURlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRT
dHJ1Y3RUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5v
ZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdEVudW1UeXBlKG5vZGUpIHsgcmV0dXJuIG5v
ZGU7IH0KIAotICAgIC8vIFRoaXMgaXMgYWxtb3N0IHdyb25nLiBXZSBpbnN0YW50aWF0ZSBGdW5j
IGluIFN1YnN0aXR1dGlvbiBpbiBQcm90b2NvbERlY2wuIFRoZW4sIHdlIGVuZCB1cAotICAgIC8v
IG5vdCByZXdyaXRpbmcgdHlwZSB2YXJpYWJsZXMuIEkgdGhpbmsgdGhhdCBqdXN0IHdvcmtzIGJl
Y2F1c2Ugbm90IHJld3JpdGluZyB0aGVtIHRoZXJlIGlzIE9LLgotICAgIC8vIEV2ZXJ5d2hlcmUg
ZWxzZSwgaXQncyBtYW5kYXRvcnkgdGhhdCB3ZSBkb24ndCByZXdyaXRlIHRoZXNlIGJlY2F1c2Ug
d2UgYWx3YXlzIGFzc3VtZSB0aGF0Ci0gICAgLy8gdHlwZSB2YXJpYWJsZXMgYXJlIG91dHNpZGUg
dGhlIHNjb3BlIG9mIHJld3JpdGluZy4KLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7IHJl
dHVybiBub2RlOyB9Ci0KLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICB7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xGdW5jRGVjbCgKLSAgICAgICAgICAgIG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQo
dGhpcyksCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4g
cGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKLSAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAo
cGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLmlz
Q2FzdCwKLSAgICAgICAgICAgIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAgICAgIHJlc3VsdC5wcm90
b2NvbERlY2wgPSBub2RlLnByb3RvY29sRGVjbDsKLSAgICAgICAgcmVzdWx0LnBvc3NpYmxlT3Zl
cmxvYWRzID0gbm9kZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0gICAgCiAgICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKApAQCAtMTI1LDE0ICsxMDMsOSBA
QCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0pKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQ
cm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAo
dHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFtZSk7CiAgICAgICAgIHJl
c3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjkwLDYgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAg
ICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpCiAgICAgewotICAgICAgICBs
ZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewotICAgICAg
ICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGFj
dHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1bWVudCA9PiBhY3R1YWxUeXBlQXJn
dW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRz
ID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAg
ICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1
bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgbGV0
IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50VHlwZXM7CiAgICAgICAgIGlmIChhcmd1bWVu
dFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVudFR5cGVz
Lm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRUeXBlLnZpc2l0KHRoaXMpKTsKQEAgLTM0Miw3
ICszMDcsNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwK
LSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVB
cmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAo
YXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKICAgICAgICAgcmV0dXJu
IHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDkzZjZiOWI5MzJkMjcyZDc3
YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLmI2MzZlOTJjY2YwMTAxYTQ4OTkwZGNkMGE5ZjBiZWU5
ZjI2ZTIwODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAt
NDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJU
b0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRvV2hp
bGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcgKzYwLDYgQEAgdGQgewogICAgIDxzY3JpcHQg
c3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZpZWxk
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC03OSw3ICs3
Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJ
bW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMDksMTAgKzEw
Niw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
UHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5j
RGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTE0MSwxMCArMTM0LDcg
QEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
VHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlUGFy
YW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJV
aW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TUElSVkNvZGVnZW4uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNv
ZGVnZW4uanMKaW5kZXggYjRmNTA4NTlhODdhZmI2MGU1NGIzNjBjNjA1OWM0YWFjOGMyM2JjYS4u
YTlmZGVlY2U0NzU4NjY4NjYzZWQxMDMyZjcyYjIwM2U4MjA1MmFhMSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcwpAQCAtNTMsNyArNTMsNyBAQCBm
dW5jdGlvbiBnZW5lcmF0ZVNQSVJWKHNwaXJ2LCBwcm9ncmFtKQogICAgIHR5cGVNYXAuc2V0KHBy
b2dyYW0uaW50cmluc2ljcy51aW50MzIsIGN1cnJlbnRJZCsrKTsKIAogICAgIGZvciAobGV0IGVu
dHJ5UG9pbnQgb2YgZmluZEVudHJ5UG9pbnRzKCkpIHsKLSAgICAgICAgbGV0IGlubGluZWRTaGFk
ZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGVudHJ5UG9pbnQsIFtdKTsK
KyAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBvaW50OwogICAgICAgICBfaW5saW5l
RnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGVudHJ5UG9p
bnQpKTsKIAogICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0gbmV3IFNQSVJWVHlwZUFuYWx5emVy
KHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggMTk4ODcyM2MzNTQ4MDgxYzY2N2Zh
Yzc4NjJmNDAyNjdmOWY4Yjg1Ny4uZGU2YzRhMTYzNjhmNzZhZWEwMjE3Y2E3MjE3ZDUxYjYxMDAw
NzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRM
aWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGli
cmFyeS5qcwpAQCAtMTQ1LDE0ICsxNDUsNiBAQCBib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQog
ICAgIHJldHVybiAhdmFsdWU7CiB9CiAKLXByb3RvY29sIEFkZGFibGUgewotICAgIEFkZGFibGUg
b3BlcmF0b3IrKEFkZGFibGUsIEFkZGFibGUpOwotfQotCi1wcm90b2NvbCBFcXVhdGFibGUgewot
ICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7Ci19Ci0KIHJlc3RyaWN0
ZWQgb3BlcmF0b3I8VD4gVCgpCiB7CiAgICAgVCBkZWZhdWx0VmFsdWU7CkBAIC0xNjQsMTEgKzE1
Niw2IEBAIHJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChUIHgpCiAgICAgcmV0dXJuIHg7CiB9CiAK
LW9wZXJhdG9yPFQ6RXF1YXRhYmxlPiBib29sKFQgeCkKLXsKLSAgICByZXR1cm4geCAhPSBUKCk7
Ci19Ci0KIHN0cnVjdCB2ZWMyPFQ+IHsKICAgICBUIHg7CiAgICAgVCB5OwpAQCAtMTg2LDExICsx
NzMsNiBAQCBvcGVyYXRvcjxUPiB2ZWMyPFQ+KFQgeCwgVCB5KQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMjxUPiBhLCB2ZWMyPFQ+IGIp
Ci17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKLX0KLQogdGhyZWFkIFQq
IG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMyPFQ+KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAg
aWYgKGluZGV4ID09IDApCkBAIC0yMzcsMTEgKzIxOSw2IEBAIG9wZXJhdG9yPFQ+IHZlYzM8VD4o
VCB4LCB2ZWMyPFQ+IHYyKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgb3BlcmF0b3I9
PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwotfQotCiB0aHJlYWQgVCogb3BlcmF0
b3ImW108VD4odGhyZWFkIHZlYzM8VD4qIGZvbywgdWludCBpbmRleCkKIHsKICAgICBpZiAoaW5k
ZXggPT0gMCkKQEAgLTMzNCwxMSArMzExLDYgQEAgb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIHZl
YzM8VD4gdjMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBvcGVyYXRvcj09PFQ6RXF1
YXRhYmxlPih2ZWM0PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKLX0KLQogdGhyZWFkIFQq
IG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWM0PFQ+KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAg
aWYgKGluZGV4ID09IDApCkBAIC0zODYsNCArMzU4LDQgQEAgZnVuY3Rpb24gaW50VG9TdHJpbmco
eCkKIAogLy8gVGhlcmUgYXJlIDQ4MSBzd2l6emxlIG9wZXJhdG9ycywgc28gd2UgY29tcGlsZSB0
aGVtIGFzIG5hdGl2ZSBmdW5jdGlvbnMKIHN0YW5kYXJkTGlicmFyeSArPSBTd2l6emxlT3AuYWxs
U3dpenpsZU9wZXJhdG9ycygpLmpvaW4oIjtcbiIpICsgIjsiOwotY29uc29sZS5sb2coc3RhbmRh
cmRMaWJyYXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjb25zb2xlLmxvZyhzdGFu
ZGFyZExpYnJhcnkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVt
ZW50Q2xvbmVyLmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3ZjdmYzFhNjNiYzcxY2Yz
MTYuLjY0YTJmMGI3NDhmMzY4MGJiYmE2MTQ3Nzg0MmM5ZDdmMmE5MzQ2ZDEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKQEAgLTI3LDEx
ICsyNyw5IEBACiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAg
dmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBu
b2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlz
aXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNEZWYoCiAgICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZp
c2l0KHRoaXMpLAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICBub2Rl
LnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAg
ICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3Qs
IG5vZGUuc2hhZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNzIFN0YXRlbWVudENsb25l
ciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOYXRpdmVGdW5j
KAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUu
cmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMu
bWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAg
ICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhp
cykpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CiAgICAgICAg
IHJlc3VsdC5pc1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKQEAgLTc1LDMxICs3Miw2
IEBAIGNsYXNzIFN0YXRlbWVudENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVy
KG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIo
bm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgICAgICBm
b3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICByZXN1bHQuYWRk
RXh0ZW5kcyhwcm90b2NvbC52aXNpdCh0aGlzKSk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVy
ZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICByZXN1bHQuYWRkKHNpZ25hdHVyZS52
aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRU
eXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZVZhcmlhYmxl
KG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwgdGhpcykp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gbmV3IFByb3RvY29sUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgIH0K
LSAgICAKICAgICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4g
bmV3IEJvb2xMaXRlcmFsKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCmluZGV4IDRm
OThjNTczYTFhMzgyMzdlMTY0NTBhZTEwYjg2Y2IyZTYxZDEyMzAuLmEwZjUyMTliNGUzNDg5NDJi
ZTJkOTY5ODA0NmUxMWFjNTU3NTYzNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwpAQCAtNzYsMTMgKzc2LDYgQEAgY2xh
c3MgU3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAg
Zm9yIChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2Rl
LnZpc2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMg
PSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJn
dW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlw
ZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9k
ZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChu
b2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5y
ZXN1bHRUeXBlLCB0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RydWN0VHlwZS5qcwppbmRleCBmOWQ4YzdkYTQ4NTgzMjE2MWU1NWQyMmE0Mzg3NjI5OTMzN2Ni
OTM2Li4zOTQ3ZmRiYWMwNzAwMGRlODBmZmY2NWZkNjZjNmUwMDU4YTI3ZWMxIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKQEAgLTI1LDEyICsyNSwxMSBA
QAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7Ci0gICAg
Y29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9v
cmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlz
Ll90eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9maWVsZHMg
PSBuZXcgTWFwKCk7CiAgICAgfQogICAgIApAQCAtNDQsNyArNDMsNiBAQCBjbGFzcyBTdHJ1Y3RU
eXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9u
YW1lOyB9CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdl
dCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAg
CiAgICAgZ2V0IGZpZWxkTmFtZXMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMua2V5cygpOyB9CiAg
ICAgZmllbGRCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmdldChuYW1lKTsgfQpA
QCAtNTgsMzIgKzU2LDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1l
bnRzID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsOwotICAg
ICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLnR5cGVQYXJhbWV0ZXJzOwotICAgICAgICAK
LSAgICAgICAgaWYgKHR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1l
bnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBu
dW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHRoaXMudHlwZVBh
cmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBb
XTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRl
cyA9IG5ldyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBTdHJ1Y3RUeXBlKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKLSAg
ICAgICAgZm9yIChsZXQgZmllbGQgb2YgdGhpcy5maWVsZHMpIHsKLSAgICAgICAgICAgIGxldCBu
ZXdGaWVsZCA9IGZpZWxkOwotICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbikKLSAgICAgICAg
ICAgICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAg
ICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0g
ICAgICAgICAgICByZXN1bHQuYWRkKG5ld0ZpZWxkKTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwp
CkBAIC05NCw2ICs2Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAK
ICAgICB0b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5u
YW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IHsgIiArIEFycmF5LmZyb20odGhp
cy5maWVsZHMpLmpvaW4oIjsgIikgKyAiOyB9IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QgIiAr
IHRoaXMubmFtZSArICIgeyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSAr
ICI7IH0iOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhj
MjlmMWVhMDUxMGNlMjllMjgwYTU2Zi4uMTdiNjE4NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0
MDAxNzliMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhl
c2l6ZUVudW1GdW5jdGlvbnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKQEAgLTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBz
eW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFtKQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsK
ICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAg
ICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAi
Ym9vbCIsIFtdKSwgW10sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBu
ZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgImJvb2wiKSwKICAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYo
dHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKSwKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUu
bmFtZSwgW10pKQorICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2lu
LCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSksCisgICAgICAgICAg
ICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5
cGUub3JpZ2luLCB0eXBlLm5hbWUpKQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIGlzQ2Fz
dCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4gRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFs
dWUoKSk7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAg
ICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4s
ICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBb
XSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBl
Lm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0
ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGws
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nh
c3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAg
ICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5
cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3Jp
dGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwg
bnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAg
ICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5l
dyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdp
biwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAg
ICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMp
OwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAg
ICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSwgW10pLCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0
b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpLAogICAgICAgICAg
ICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZp
c2l0KG5ldyBSZXdyaXRlcigpKSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
ICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1
Y3RBY2Nlc3NvcnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzLmpzCmluZGV4IGY3ODE2ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1
ZTRiZmUzYTkuLmE3OTg3ODg1NTIyYTc5ZTgyYTIwNzM0MTY0ZjE1MmIxODM4YzQyMmYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0
cnVjdEFjY2Vzc29ycy5qcwpAQCAtMzEsMjggKzMxLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0
cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAog
ICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiB0eXBlLmZpZWxkcykgewotICAgICAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiB0eXBlLnR5cGVQYXJhbWV0ZXJzLm1hcCgKLSAgICAgICAgICAgICAgICAgICAg
dHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3
cml0ZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBmdW5j
dGlvbiBjcmVhdGVUeXBlQXJndW1lbnRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRl
ci52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
CiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5j
LCBpbXBsZW1lbnRhdGlvbikKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYXRpdmVG
dW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24gPSBzdWJzdGl0dXRpb24gPT4gewotICAgICAg
ICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IHR5cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50
eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgc3Vic3RpdHV0ZSA9IHN1YnN0aXR1dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBl
IHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3Vic3RpdHV0ZTsKLSAgICAgICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3R5cGU6IG5ld1R5cGUsIGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0g
ICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVt
ZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9uRGF0YSwgdmlzaXRvcikgPT4gewogICAgICAg
ICAgICAgICAgICAgICAvLyBWaXNpdGluZyB0aGUgdHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhl
IHN0cnVjdCBsYXlvdXQgYnVpbGRlciBmaWd1cmVzIG91dCB0aGUgZmllbGQncwogICAgICAgICAg
ICAgICAgICAgICAvLyBvZmZzZXQuCkBAIC05NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIHN5bnRoZXNp
emVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlVHlwZVJlZigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSwgY3JlYXRlVHlwZUFyZ3VtZW50cygpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0eXBlKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbGV0IGlzQ2FzdCA9IGZhbHNlOwpAQCAt
MTAzLDkgKzgzLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFt
KQogICAgICAgICAgICAgbGV0IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0
ZXI6IG9wZXJhdG9yLmZpZWxkCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMo
Ci0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUs
IGNyZWF0ZUZpZWxkVHlwZSgpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAg
ICAgICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3Jl
YXRlVHlwZVJlZigpKV0sIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cElt
cGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUs
IGZpZWxkU2l6ZSkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihmaWVsZFNpemUpLCAwKTsKQEAgLTExNSw5ICs5NCw4IEBAIGZ1bmN0aW9uIHN5
bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRk
KG5hdGl2ZUZ1bmMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBv
cGVyYXRvci5maWVsZD0KLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBh
cmFtZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAg
ICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9
IiwgY3JlYXRlVHlwZVJlZigpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigp
LAogICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0
ZXIoZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAg
ICAgICBuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlw
ZSgpKQpAQCAtMTM0LDEwICsxMTIsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNz
b3JzKHByb2dyYW0pCiAgICAgICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAog
ICAgICAgICAgICAgZnVuY3Rpb24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVy
cygpOwogICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAg
ICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBu
ZXcgUHRyVHlwZShmaWVsZC5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkp
LAotICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAg
ICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2
ZDBiZGQ0NDFiYmMuLmViMjcyYzEzNzA1ZDM3ZjA2MjllNjAwMTVkMWY4ZDU2MDJkMGFkYmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAK
IDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNv
bW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0
IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNzMsNyArNzEsNiBAQAogPHNjcmlwdCBzcmM9Iklu
ZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0
ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICsx
MDAsNiBAQAogPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRo
VW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90
b2NvbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0x
MzEsMTAgKzEyNCw3IEBACiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBl
T3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJl
d3JpdGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5
cGVWYXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggMmIwNTY5MDJhNjZjYzMyZDA0YTFlYTcyMGQyNTFlM2Y3
MGNmOTY0OC4uNzZjY2E4NzlhYjJmYWZiMTA1NTlmZWNmOGU4NDMzMTU3NjFlMTc1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC0xODcsNyArMTg3LDcgQEAgdGVzdHMu
Y29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKICAgICAgICAgcnVucyBvdmVyIG11bHRpcGxl
IGxpbmVzICovCiAgICAgICAgIGJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGApOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgdHJ1ZSk7CiAKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCkBAIC0yMDAsOTIgKzIwMCw5MiBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9u
KCkgewogCiB0ZXN0cy5saXRlcmFsQm9vbCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKCJib29sIGZvbygpIHsgcmV0dXJuIHRydWU7IH0iKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRy
dWUpOwogfQogCiB0ZXN0cy5pZGVudGl0eUJvb2wgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiB4OyB9Iik7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
ICsgeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDEy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAtIHk7IH0iKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAtMik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIC0yKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQg
eSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCA1KV0pLCAzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTUp
XSksIC0zNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzNSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSldKSwgLTM1KTsKICAgICBwcm9ncmFt
ID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtMildKSwgLTMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAtMildKSwgLTMpOwogfQogCiB0ZXN0cy51aW50U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1
cm4geCArIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAxMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMik7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJu
IHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5
NDk2NzI5NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4
ICogeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDM1KTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAv
IHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAz
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMpOwogfQogCiB0
ZXN0cy51aW50OFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0g
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMTIpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4IC0geTsg
fSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDIp
OwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDI1NCk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDI1NCk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggKiB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMzUp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMzUpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4
IC8geTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDIp
XSksIDMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgMildKSwgMyk7
CiB9CiAKIHRlc3RzLmVxdWFsaXR5ID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoImJvb2wgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KCJib29sIGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoImJvb2wgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9v
KGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0s
IGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUp
OwogfQogCiB0ZXN0cy5sb2dpY2FsTmVnYXRpb24gPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCkgeyByZXR1cm4gIXg7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLm5vdEVxdWFsaXR5ID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVy
biB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4
ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUp
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyld
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgZmFsc2Up
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4g
eCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxz
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0gZnVu
Y3Rpb24oKQpAQCAtMjk4LDEzICsyOTgsMTMgQEAgdGVzdHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9
IGZ1bmN0aW9uKCkKIHRlc3RzLmdlbmVyYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgpIHsgcmV0dXJuICF4OyB9Iik7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUp
OwogfQogCiB0ZXN0cy5hZGQxID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoImludCBmb28oaW50IHgpIHsgcmV0dXJuIHggKyAxOyB9Iik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUdl
bmVyaWMgPSBmdW5jdGlvbigpIHsKQEAgLTMxMiw3ICszMTIsNyBAQCB0ZXN0cy5zaW1wbGVHZW5l
cmljID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIFQgaWQ8VD4oVCB4KSB7IHJldHVybiB4OyB9CiAg
ICAgICAgIGludCBmb28oaW50IHgpIHsgcmV0dXJuIGlkKHgpICsgMTsgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMpOwogfQogCiB0
ZXN0cy5uYW1lUmVzb2x1dGlvbkZhaWx1cmUgPSBmdW5jdGlvbigpCkBAIC0zMzEsNyArMzMxLDcg
QEAgdGVzdHMuc2ltcGxlVmFyaWFibGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBsZUFzc2lnbm1lbnQgPSBm
dW5jdGlvbigpCkBAIC0zNDQsNyArMzQ0LDcgQEAgdGVzdHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0K
IAogdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1bmN0aW9uKCkKQEAgLTM1Niw3ICszNTYsNyBAQCB0
ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwogfQogCiB0ZXN0cy5zaW1wbGVEZXJl
ZmVyZW5jZSA9IGZ1bmN0aW9uKCkKQEAgLTM2OSw3ICszNjksNyBAQCB0ZXN0cy5zaW1wbGVEZXJl
ZmVyZW5jZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZm
ZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVm
ZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0cy5kZXJlZmVyZW5jZVN0b3JlID0gZnVuY3Rpb24o
KQpAQCAtMzgyLDcgKzM4Miw3IEBAIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigp
CiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5z
ZXQoMCwgMTMpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CisgICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmln
aW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDUyKQogICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkV4cGVjdGVkIGJ1ZmZlciB0byBjb250YWluIDUyIGJ1dCBpdCBjb250YWluczogIiAr
IGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtMzk2LDcgKzM5Niw3IEBAIHRlc3RzLnNpbXBsZU1ha2VQ
dHIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gJng7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
OworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKTsKICAg
ICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVy
biB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1
bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAg
LTQxOCw3ICs0MTgsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWQgPSBmdW5jdGlvbigpCiAgICAg
YCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwg
ODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
VHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVy
LCAwKSwgMSkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJl
YWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1
ZmZlciwgMCksIDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQog
CkBAIC00MzIsNyArNDMyLDcgQEAgdGVzdHMudGhyZWFkQXJyYXlMb2FkSW50TGl0ZXJhbCA9IGZ1
bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAg
YnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3Jp
Z2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihu
ZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5h
bE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVz
dWx0LCA4OSk7CiB9CiAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB0ZXN0cy5kZXZpY2VBcnJheUxvYWQg
PSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwog
ICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5h
bE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0
ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFy
cmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0s
IHJlc3VsdCwgODkpOwogfQogCkBAIC00NjMsMTAgKzQ2MywxMCBAQCB0ZXN0cy50aHJlYWRBcnJh
eVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAog
ICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZm
ZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5
UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIu
Z2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQg
aW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAt
MTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtl
SW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBl
Y3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtNDg0LDEwICs0ODQsMTAgQEAg
dGVzdHMuZGV2aWNlQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYXJyYXlSZWYgPSBU
eXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAgIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKKyAgICBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsK
ICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIgKyBidWZmZXIuZ2V0
KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlmIChidWZmZXIuZ2V0
KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KQEAgLTUw
NSwzMiArNTA1LDE0IEBAIHRlc3RzLmRldmljZUFycmF5U3RvcmVJbnRMaXRlcmFsID0gZnVuY3Rp
b24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJy
YXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0g
ICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHBy
b2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVm
LCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQog
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4
cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0x
MTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiAr
IGJ1ZmZlci5nZXQoMCkpOwogfQogCi10ZXN0cy5zaW1wbGVQcm90b2NvbCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15QWRkYWJs
ZSB7Ci0gICAgICAgICAgICBNeUFkZGFibGUgb3BlcmF0b3IrKE15QWRkYWJsZSwgTXlBZGRhYmxl
KTsKLSAgICAgICAgfQotICAgICAgICBUIGFkZDxUOk15QWRkYWJsZT4oVCBhLCBUIGIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICsgYjsKLSAgICAgICAgfQotICAgICAgICBpbnQg
Zm9vKGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRkKHgsIDczKTsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ1KV0pLCA0NSArIDczKTsKLX0KLQog
dGVzdHMudHlwZU1pc21hdGNoUmV0dXJuID0gZnVuY3Rpb24oKQogewogICAgIGNoZWNrRmFpbCgK
QEAgLTY2Niw3ICs2NDgsNyBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAg
bGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDIpOwogICAgIGJ1ZmZlci5zZXQoMCwgNjIpOwogICAg
IGJ1ZmZlci5zZXQoMSwgMjQpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIoYnVmZmVy
LCAwKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKICAgICBp
ZiAoIXJlc3VsdC50eXBlLmVxdWFscyhzdHJ1Y3RUeXBlKSkKICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJXcm9uZyByZXN1bHQgdHlwZTogIiArIHJlc3VsdC50eXBlKTsKICAgICBsZXQgeCA9IHJl
c3VsdC5lUHRyLmdldCgwKTsKQEAgLTY3NywzNCArNjU5LDYgQEAgdGVzdHMuc2ltcGxlU3RydWN0
ID0gZnVuY3Rpb24oKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3Ig
eTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwogfQogCi10ZXN0cy5nZW5lcmljU3RydWN0
SW5zdGFuY2UgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICBzdHJ1Y3QgRm9vPFQ+IHsKLSAgICAgICAgICAgIFQgeDsKLSAgICAgICAgICAgIFQgeTsK
LSAgICAgICAgfQotICAgICAgICBGb288aW50PiBmb28oRm9vPGludD4gZm9vKQotICAgICAgICB7
Ci0gICAgICAgICAgICBGb288aW50PiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQueCA9IGZv
by55OwotICAgICAgICAgICAgcmVzdWx0LnkgPSBmb28ueDsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBsZXQgc3RydWN0VHlwZSA9IFR5cGVSZWYu
aW5zdGFudGlhdGUocHJvZ3JhbS50eXBlcy5nZXQoIkZvbyIpLCBbcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyXSk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDIpOwotICAgIGJ1ZmZlci5z
ZXQoMCwgNjIpOwotICAgIGJ1ZmZlci5zZXQoMSwgMjQpOwotICAgIGxldCByZXN1bHQgPSBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwg
bmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKLSAgICBsZXQgeCA9IHJlc3VsdC5lUHRyLmdldCgwKTsK
LSAgICBsZXQgeSA9IHJlc3VsdC5lUHRyLmdldCgxKTsKLSAgICBpZiAoeCAhPSAyNCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHg6ICIgKyB4ICsgIiAoeSA9ICIg
KyB5ICsgIikiKTsKLSAgICBpZiAoeSAhPSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJX
cm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIgKyB4ICsgIikiKTsKLX0KLQogdGVz
dHMuZG91YmxlR2VuZXJpY0NhbGxzRG91YmxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkKIHsKICAgICBk
b1ByZXAoYApAQCAtNzQ3LDcgKzcwMSw3IEBAIHRlc3RzLnJldHVybk51bGwgPSBmdW5jdGlvbigp
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICB0aHJlYWQgaW50KiBmb28oKSB7
IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0cikKICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVyOiAiICsgcmVzdWx0
LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMikpCkBAIC03NjYsNyArNzIwLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VE
ZWZhdWx0TnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAor
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNzgwLDcgKzczNCw3IEBA
IHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGwgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAg
ICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAK
QEAgLTc5Nyw3ICs3NTEsNyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWMgPSBmdW5j
dGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNl
b2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg1Nyw3ICs4MTEsNyBAQCB0ZXN0cy5yZXR1cm5OdWxs
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICB0aHJlYWQgaW50W10gZm9vKCkgeyByZXR1cm4gbnVsbDsgfQogICAgIGApOwotICAgIGxldCBy
ZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7CisgICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlmICghcmVzdWx0
LnR5cGUuaXNBcnJheVJlZikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBp
cyBub3QgYW4gYXJyYXkgcmVmZXJlbmNlOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVz
dWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBA
IC04NzYsNyArODMwLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VEZWZhdWx0TnVsbEFycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC04OTAsNyArODQ0LDcgQEAgdGVzdHMuZGVmYXVs
dEluaXRpYWxpemVkTnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7
CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05
MDQsNyArODU4LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbEFycmF5UmVmSW50TGl0
ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTIxLDcgKzg3NSw3IEBAIHRlc3Rz
LnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpY0FycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICB9
CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwog
fQogCkBAIC05NDQsMTMgKzg5OCwxMyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyUG9seW1vcnBoaWNB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKIHRlc3RzLnJldHVybkludExpdGVyYWxVaW50ID0gZnVuY3Rp
b24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbygpIHsgcmV0dXJuIDQy
OyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVzdHMucmV0dXJuSW50TGl0ZXJhbEZs
b2F0ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJmbG9hdCBmb28o
KSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrTnVtYmVyKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Mik7CiB9CiAKIHRlc3RzLmJhZElu
dExpdGVyYWxGb3JJbnQgPSBmdW5jdGlvbigpCkBAIC05ODgsNyArOTQyLDcgQEAgdGVzdHMucGFz
c051bGxBbmROb3ROdWxsID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1
bGxQb2x5ID0gZnVuY3Rpb24oKQpAQCAtMTAwNSw3ICs5NTksNyBAQCB0ZXN0cy5wYXNzTnVsbEFu
ZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0g
bmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5l
dyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxG
dWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigpCkBAIC0xMDIyLDY1ICs5NzYsNyBAQCB0ZXN0cy5w
YXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAg
ICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtU
eXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dy
YW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKLX0KLQot
dGVzdHMubnVsbFR5cGVWYXJpYWJsZVVuaWZ5ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBsZWZ0
ID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICBsZXQgcmlnaHQgPSBuZXcgVHlw
ZVZhcmlhYmxlKGV4dGVybmFsT3JpZ2luLCAiVCIsIG51bGwpOwotICAgIGlmIChsZWZ0LmVxdWFs
cyhyaWdodCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5vdCBiZSBlcXVhbCBi
dXQgYXJlOiAiICsgbGVmdCArICIgYW5kICIgKyByaWdodCk7Ci0gICAgaWYgKHJpZ2h0LmVxdWFs
cyhsZWZ0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1
dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICAKLSAgICBmdW5jdGlvbiBl
dmVyeU9yZGVyKGFycmF5LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIHJlY3Vy
c2UoYXJyYXksIGNhbGxiYWNrLCBvcmRlcikKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFh
cnJheS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmNhbGwobnVsbCwg
b3JkZXIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFy
cmF5Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbGV0IG5leHRBcnJheSA9IGFycmF5
LmNvbmNhdCgpOwotICAgICAgICAgICAgICAgIG5leHRBcnJheS5zcGxpY2UoaSwgMSk7Ci0gICAg
ICAgICAgICAgICAgcmVjdXJzZShuZXh0QXJyYXksIGNhbGxiYWNrLCBvcmRlci5jb25jYXQoW2Fy
cmF5W2ldXSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBy
ZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgW10pOwotICAgIH0KLSAgICAKLSAgICBmdW5jdGlvbiBl
dmVyeVBhaXIodGhpbmdzKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaW5ncy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
Zm9yIChsZXQgaiA9IDA7IGogPCB0aGluZ3MubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAg
ICBpZiAoaSAhPSBqKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChbdGhpbmdzW2ld
LCB0aGluZ3Nbal1dKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBldmVyeU9yZGVyKAotICAgICAgICBldmVyeVBhaXIo
WyJudWxsVHlwZSIsICJ2YXJpYWJsZVR5cGUiLCAicHRyVHlwZSJdKSwKLSAgICAgICAgb3JkZXIg
PT4gewotICAgICAgICAgICAgbGV0IHR5cGVzID0ge307Ci0gICAgICAgICAgICB0eXBlcy5udWxs
VHlwZSA9IG5ldyBOdWxsVHlwZShleHRlcm5hbE9yaWdpbik7Ci0gICAgICAgICAgICB0eXBlcy52
YXJpYWJsZVR5cGUgPSBuZXcgVHlwZVZhcmlhYmxlKGV4dGVybmFsT3JpZ2luLCAiVCIsIG51bGwp
OwotICAgICAgICAgICAgdHlwZXMucHRyVHlwZSA9IG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiY29uc3RhbnQiLCBuZXcgTmF0aXZlVHlwZShleHRlcm5hbE9yaWdpbiwgImZvb190IiwgW10p
KTsKLSAgICAgICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25D
b250ZXh0KFt0eXBlcy52YXJpYWJsZVR5cGVdKTsKLSAgICAgICAgICAgIGZvciAobGV0IFtsZWZ0
TmFtZSwgcmlnaHROYW1lXSBvZiBvcmRlcikgewotICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0g
dHlwZXNbbGVmdE5hbWVdOwotICAgICAgICAgICAgICAgIGxldCByaWdodCA9IHR5cGVzW3JpZ2h0
TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGxlZnQudW5pZnkodW5pZmljYXRp
b25Db250ZXh0LCByaWdodCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVyICsgIiBjYW5u
b3QgdW5pZnkgIiArIGxlZnQgKyAiIHdpdGggIiArIHJpZ2h0KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmICghdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpLnJlc3VsdCkKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluIG9yZGVyICIgKyBvcmRlci5tYXAodmFsdWUg
PT4gIigiICsgdmFsdWUgKyAiKSIpICsgIiBjYW5ub3QgdmVyaWZ5Iik7Ci0gICAgICAgIH0pOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0
cy5kb3VibGVOb3QgPSBmdW5jdGlvbigpCkBAIC0xMDkxLDggKzk4Nyw4IEBAIHRlc3RzLmRvdWJs
ZU5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAhIXg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLnNpbXBsZVJlY3Vyc2lvbiA9
IGZ1bmN0aW9uKCkKQEAgLTExMDcsMTE0ICsxMDAzLDYgQEAgdGVzdHMuc2ltcGxlUmVjdXJzaW9u
ID0gZnVuY3Rpb24oKQogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwog
fQogCi10ZXN0cy5wcm90b2NvbE1vbm9TaWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAg
ICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAg
ICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBm
aXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewot
ICAgICAgICAgICAgSW50QW5kPGludD4gaW50QW5kKEludEFuZGFibGUsIGludCk7Ci0gICAgICAg
IH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwg
c2Vjb25kKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25k
OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dy
YW0sIDEyKV0pLCA1NCArIDEyKTsKLX0KLQotdGVzdHMucHJvdG9jb2xQb2x5U2lnUG9seURlZiA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVj
dCBJbnRBbmQ8VD4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNv
bmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihpbnQgZmlyc3QsIFQg
c2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VD4gcmVzdWx0OwotICAgICAg
ICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0g
c2Vjb25kOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBw
cm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oSW50
QW5kYWJsZSwgVCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQg
Zmlyc3QsIGludCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IHJl
c3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQu
Zmlyc3QgKyByZXN1bHQuc2Vjb25kOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1NCArIDEyKTsKLX0KLQotdGVzdHMucHJv
dG9jb2xEb3VibGVQb2x5U2lnRG91YmxlUG9seURlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAg
ICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRo
aXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZp
cnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQs
IFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAg
ICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRo
aXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90
b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4o
SW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFi
bGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNlY29uZCwgdGhpcmQp
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQgKyByZXN1
bHQudGhpcmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJ
bnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5KV0pLCA1NCArIDEyICsgMzkpOwot
fQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3Qg
SW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vj
b25kOwotICAgICAgICAgICAgVSB0aGlyZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VCwg
VT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhpcmQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmly
c3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAg
ICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRB
bmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQsIFUpOwotICAgICAgICB9Ci0gICAg
ICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kLCBpbnQgdGhpcmQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVzdWx0ID0gaW50QW5k
PGludCwgaW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0KIHRlc3RzLnZhcmlhYmxlU2hhZG93
aW5nID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKQEAgLTEyMjks
NyArMTAxNyw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDgpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA4KTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbygpCiAgICAgICAgIHsKQEAgLTEyNDIsNyAr
MTAzMCw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsKIH0KIAogdGVzdHMu
aWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMjU3LDEzICsxMDQ1LDEzIEBAIHRlc3RzLmlm
U3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDkpXSksIDYpOwogfQogCiB0ZXN0cy5pZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigp
CkBAIC0xMjgwLDEzICsxMDY4LDEzIEBAIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKIH0K
IAogdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMzAzLDEzICsxMDkx
LDEzIEBAIHRlc3RzLmlmRWxzZUlmU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOwogfQogCiB0ZXN0cy5pZkVsc2VJ
ZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMzI4LDEzICsxMTE2LDEzIEBAIHRlc3Rz
LmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CiB9CiAKIHRlc3RzLnJldHVy
bklmID0gZnVuY3Rpb24oKQpAQCAtMTM4NywxMyArMTE3NSwxMyBAQCB0ZXN0cy5yZXR1cm5JZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgOSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
MTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCAxMCk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0MTksMTMgKzEyMDcsMTMgQEAgdGVzdHMucmV0dXJu
SWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDkpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
OSldKSwgOSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0NDksNyArMTIzNyw3IEBAIHRlc3RzLnJldHVybklm
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwogfQogCiB0
ZXN0cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKQEAgLTE0NjIsMzkgKzEyNTAsNyBAQCB0ZXN0
cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwotfQotCi10ZXN0cy5wcm90
b2NvbE1vbm9Qb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0ID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICAgICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAg
ICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICAgICAgICAgIFQgc2Vjb25kOwotICAg
ICAgICAgICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhp
cmQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8VCwgVT4g
cmVzdWx0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByb3RvY29sIEludEFuZGFi
bGUgewotICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8VCwgaW50PiBpbnRBbmQ8VD4oSW50QW5k
YWJsZSwgVCwgaW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaW50IGZv
bzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVzdWx0ID0g
aW50QW5kPGludD4oZmlyc3QsIHNlY29uZCwgdGhpcmQpOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBgKTsKLSAgICAgICAgICAgIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFt
LCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSk7Ci0gICAgICAgIH0sCi0gICAgICAgIChlKSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CiB9CiAK
IHRlc3RzLmFtYmlndW91c092ZXJsb2FkU2ltcGxlID0gZnVuY3Rpb24oKQpAQCAtMTUzNyw3ICsx
MjkzLDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uID0gZnVuY3Rpb24oKQogICAgICAg
ICBpbnQgZm9vKGZsb2F0KSB7IHJldHVybiAzOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVy
biBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludE92ZXJsb2Fk
UmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkKQEAgLTE1NDgsNyArMTMwNCw3IEBA
IHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgaW50IGZvbyhpbnQpIHsgcmV0dXJuIDE7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0
dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3Zlcmxv
YWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1NTgsNyArMTMxNCw3IEBAIHRl
c3RzLmludE92ZXJsb2FkUmVzb2x1dGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIGlu
dCBmb288VD4oVCkgeyByZXR1cm4gMjsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9v
KDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJp
YyA9IGZ1bmN0aW9uKCkKQEAgLTE1NjcsMTkgKzEzMjMsNyBAQCB0ZXN0cy5pbnRMaXRlcmFsR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0Nzg7
IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDM0
NzgpOwotfQotCi10ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1dpdGhQcm90b2NvbHMgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUNv
bnZlcnRpYmxlVG9JbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgaW50KE15Q29udmVydGlibGVU
b0ludCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOk15Q29udmVydGlibGVUb0ludD4o
VCB4KSB7IHJldHVybiBpbnQoeCk7IH0KLSAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0
Mik7IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMzQ3OCk7CiB9CiAKIHRlc3RzLnVpbnRMaXRlcmFsR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1ODgsMTkgKzEzMzIsNyBAQCB0ZXN0cy51aW50TGl0ZXJh
bEdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb288VD4oVCB4KSB7IHJldHVybiAz
NDc4OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDJ1KTsgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtd
KSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLnVpbnRMaXRlcmFsR2VuZXJpY1dpdGhQcm90b2NvbHMgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2Nv
bCBNeUNvbnZlcnRpYmxlVG9VaW50IHsKLSAgICAgICAgICAgIG9wZXJhdG9yIHVpbnQoTXlDb252
ZXJ0aWJsZVRvVWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBmb288VDpNeUNvbnZlcnRp
YmxlVG9VaW50PihUIHgpIHsgcmV0dXJuIHVpbnQoeCk7IH0KLSAgICAgICAgdWludCBiYXIoKSB7
IHJldHVybiBmb28oNDJ1KTsgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMzQ3OCk7CiB9CiAKIHRlc3Rz
LmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCkBAIC0xNjA5LDcgKzEzNDEs
NyBAQCB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1NwZWNpZmljID0gZnVuY3Rpb24oKQogICAgICAg
ICBUIGZvbzxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJu
IGZvbyhpbnQoNDIpKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBs
ZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE2MjQsNyArMTM1Niw3IEBAIHRlc3RzLnNpbXBs
ZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb288NDI+KGIpOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOwogfQogCiB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkK
QEAgLTE2NDAsOCArMTM3Miw4IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMjApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAxMCldKSwgMjApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBp
bnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNjU4LDggKzEzOTAsOCBAQCB0ZXN0cy5icmVh
ayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIAogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5KTsKICAgICBjaGVja0ZhaWwoCiAg
ICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTY5
NSw3ICsxNDI3LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHg7CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAg
ICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgICAgICB7CkBAIC0xNzA1LDcgKzE0MzcsNyBA
QCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICByZXR1cm4geDsKICAg
ICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZv
bygpCiAgICAgICAgICAgICB7CkBAIC0xNzE0LDcgKzE0NDYsNyBAQCB0ZXN0cy5icmVhayA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAg
ICAgaW50IGZvbyhpbnQgeCkKQEAgLTE3NDMsNyArMTQ3NSw3IEBAIHRlc3RzLmNvbnRpbnVlID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CiAgICAgY2hl
Y2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQg
eCkKQEAgLTE3NjksOCArMTUwMSw4IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
XSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNzgyLDcgKzE1MTQsNyBAQCB0ZXN0cy5k
b1doaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7
CkBAIC0xNzk4LDcgKzE1MzAsNyBAQCB0ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDE5KTsKIH0KIAogdGVzdHMuZm9yTG9vcCA9IGZ1
bmN0aW9uKCkKQEAgLTE4MTQsOSArMTU0Niw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAg
ICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTgyNyw5ICsxNTU5LDkgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODQx
LDkgKzE1NzMsOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgp
CiAgICAgICAgIHsKQEAgLTE4NTYsMTAgKzE1ODgsMTAgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCAxMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NzIsMTEgKzE2MDQsMTEgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
MTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4ODksMTEgKzE2MjEs
MTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE5
MDcsMTEgKzE2MzksMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAz
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAy
MSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAg
ICAgIHsKQEAgLTE5MjYsMTEgKzE2NTgsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCAyMSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAog
ICAgICAgICAgICAgdm9pZCBmb28oaW50IHgpCkBAIC0xOTUwLDExICsxNjgyLDExIEBAIHRlc3Rz
LmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE5NzMsMTEgKzE3MDUsMTEgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKIH0KIAogdGVzdHMuY2hhaW5Db25zdGV4cHIgPSBm
dW5jdGlvbigpCkBAIC0xOTk2LDcgKzE3MjgsNyBAQCB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXI8NDI+KGIpOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSks
IDU4ICsgNDIpOwogfQogCiB0ZXN0cy5jaGFpbkdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0yMDE1
LDcgKzE3NDcsNyBAQCB0ZXN0cy5jaGFpbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gYmFyKCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM3
KV0pLCAzNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXoiLCBbbWFrZUludChwcm9ncmFtLCAzNyldKSwgMzcpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVj
dCA9IGZ1bmN0aW9uKCkKQEAgLTIwMzgsNyArMTc3MCw3IEBAIHRlc3RzLmNoYWluU3RydWN0ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbygmeCk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA0NjU3KV0pLCA0NjU3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSks
IDQ2NTcpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdE5ld2x5VmFsaWQgPSBmdW5jdGlvbigpCkBA
IC0yMDYzLDcgKzE3OTUsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdE5ld2x5VmFsaWQgPSBmdW5jdGlv
bigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZl
ci5zZXQoMCwgNzg0NTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwg
MCkpXSksIDc4NDUzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRl
dmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSks
IDc4NDUzKTsKIH0KIAogdGVzdHMuY2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0y
MDg4LDcgKzE4MjAsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKICAg
ICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgw
LCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
NzkyMDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEp
OwogfQogCiB0ZXN0cy5wYXJhbUNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQpAQCAtMjEx
Myw4OSArMTg0NSw3IEBAIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigp
CiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5z
ZXQoMCwgNzkyMDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSksIDc5MjAxKTsKLX0KLQotdGVzdHMuc2ltcGxlUHJvdG9jb2xFeHRlbmRzID0gZnVuY3Rpb24o
KQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgIHZvaWQgZm9vKHRocmVhZCBGb28qKTsKLSAgICAgICAgfQotICAgICAgICBw
cm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhciopOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpC
YXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmdXp6KHApOwotICAgICAg
ICAgICAgYmFyKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZm9vKHRocmVhZCBpbnQqIHAp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3NDM7Ci0gICAgICAgIH0KLSAgICAg
ICAgdm9pZCBiYXIodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAq
cCArIDkxOwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGJ1enooJmEpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRo
aW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiArIDc0MyArIDkxKTsKLX0K
LQotdGVzdHMucHJvdG9jb2xFeHRlbmRzVHdvID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHZvaWQg
Zm9vKHRocmVhZCBGb28qKTsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXIgewotICAg
ICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhciopOwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEJheiA6IEZvbywgQmFyIHsKLSAgICAgICAgICAgIHZvaWQgYmF6KHRocmVhZCBCYXoqKTsK
LSAgICAgICAgfQotICAgICAgICB2b2lkIGZ1eno8VDpGb28+KHRocmVhZCBUKiBwKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBmb28ocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBidXp6PFQ6
QmFyPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgYmFyKHApOwotICAgICAg
ICB9Ci0gICAgICAgIHZvaWQgeHV6ejxUOkJhej4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBidXp6KHApOwotICAgICAgICAgICAgYmF6
KHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZm9vKHRocmVhZCBpbnQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3NDM7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBi
YXIodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDkxOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmF6KHRocmVhZCBpbnQqIHApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICpwID0gKnAgKyAzOTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGhpbmd5KGlu
dCBhKQotICAgICAgICB7Ci0gICAgICAgICAgICB4dXp6KCZhKTsKLSAgICAgICAgICAgIHJldHVy
biBhOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0aGluZ3kiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQyKV0pLCA2NDIg
KyA3NDMgKyA5MSArIDM5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSksIDc5MjAxKTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCkBAIC0y
MjA3LDcgKzE4NTcsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQp
XSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnByZWZpeFBsdXNQ
bHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjIxOCw3ICsxODY4LDcgQEAgdGVzdHMucHJlZml4
UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKyt4OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnBvc3RmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAg
LTIyMzAsNyArMTg4MCw3IEBAIHRlc3RzLnBvc3RmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnBvc3RmaXhQ
bHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIyNDEsNyArMTg5MSw3IEBAIHRlc3RzLnBv
c3RmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Kys7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9u
KCkKQEAgLTIyNTMsNyArMTkwMyw3IEBAIHRlc3RzLnByZWZpeE1pbnVzTWludXMgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5w
cmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI2NCw3ICsxOTE0LDcgQEAg
dGVzdHMucHJlZml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiAtLXg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWludXMg
PSBmdW5jdGlvbigpCkBAIC0yMjc2LDcgKzE5MjYsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9
CiAKIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI4Nyw3
ICsxOTM3LDcgQEAgdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4geC0tOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjQpXSksIDY0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CiB9CiAKIHRlc3RzLnBsdXNF
cXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMjk5LDcgKzE5NDksNyBAQCB0ZXN0cy5wbHVzRXF1YWxz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwg
Mzg1ICsgNDIpOwogfQogCiB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAt
MjMxMCw3ICsxOTYwLDcgQEAgdGVzdHMucGx1c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4ICs9IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsK
IH0KIAogdGVzdHMubWludXNFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzIyLDcgKzE5NzIsNyBA
QCB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Owog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAogdGVzdHMubWludXNFcXVhbHNSZXN1
bHQgPSBmdW5jdGlvbigpCkBAIC0yMzMzLDcgKzE5ODMsNyBAQCB0ZXN0cy5taW51c0VxdWFsc1Jl
c3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC09IDQyOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAogdGVzdHMudGltZXNFcXVhbHMgPSBmdW5jdGlvbigp
CkBAIC0yMzQ1LDcgKzE5OTUsNyBAQCB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
Mzg1KV0pLCAzODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKIH0KIAog
dGVzdHMudGltZXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzU2LDcgKzIwMDYsNyBA
QCB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biB4ICo9IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKIH0KIAogdGVzdHMuZGl2
aWRlRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM2OCw3ICsyMDE4LDcgQEAgdGVzdHMuZGl2aWRl
RXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOwogfQogCiB0ZXN0cy5kaXZpZGVFcXVhbHNSZXN1
bHQgPSBmdW5jdGlvbigpCkBAIC0yMzc5LDcgKzIwMjksNyBAQCB0ZXN0cy5kaXZpZGVFcXVhbHNS
ZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCAvPSA0MjsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLnR3b0ludExpdGVy
YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM5MCw3ICsyMDQwLDcgQEAgdGVzdHMudHdvSW50TGl0ZXJh
bHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gNDIgPT0gNDI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogfQogCiB0ZXN0cy51bmlmeURpZmZlcmVudExp
dGVyYWxzID0gZnVuY3Rpb24oKQpAQCAtMjQ3OSw3ICsyMTI5LDcgQEAgdGVzdHMuYnVpbGRBcnJh
eVRoZW5TdW1JdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0
MSAvIDIpOwogfQogCiB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0VXNpbmdBcnJheVJlZmVyZW5j
ZSA9IGZ1bmN0aW9uKCkKQEAgLTI1MDAsNyArMjE1MCw3IEBAIHRlc3RzLmJ1aWxkQXJyYXlUaGVu
U3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGJhcihAYXJyYXkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8g
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDQyICogNSArIDQyICogNDEgLyAyKTsKIH0KIAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRT
dHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC0yNTI2LDcgKzIxNzYsNyBAQCB0ZXN0cy5vdmVycmlkZVN1
YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb29bMF0gKyBm
b29bMV0gKiAzOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSAqIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OTggKyAx
OSAqIDMpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0g
ZnVuY3Rpb24oKQpAQCAtMjU1Miw3ICsyMjAyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRT
dHJ1Y3RBbmREb1N0b3JlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28ueCAr
IGZvby55OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5KTsKIH0K
IAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9u
KCkKQEAgLTI1ODIsNyArMjIzMiw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5k
VXNlUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKCZmb28pOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5KTsKIH0KIAogdGVzdHMu
b3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVyc0luY29ycmVjdGx5ID0gZnVuY3Rp
b24oKQpAQCAtMjYyOSw3ICsyMjc5LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbUxvY2FsID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcihAeCk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tUG9pbnRlciA9IGZ1
bmN0aW9uKCkKQEAgLTI2NDksNyArMjI5OSw3IEBAIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2lu
dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJheigmeCk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tQXJyYXlS
ZWYgPSBmdW5jdGlvbigpCkBAIC0yNjgyLDcgKzIzMzIsNyBAQCB0ZXN0cy5zaW1wbGVMZW5ndGgg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEBhcnJheSkubGVuZ3RoOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNzU0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc1NCk7CiB9CiAKIHRlc3RzLm5vbkFycmF5UmVmQXJy
YXlMZW5ndGhTdWNjZWVkID0gZnVuY3Rpb24oKQpAQCAtMjY5NCw3ICsyMzQ0LDcgQEAgdGVzdHMu
bm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYXJyYXkubGVuZ3RoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzU0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc1NCk7
CiB9CiAKIHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhGYWlsID0gZnVuY3Rpb24oKQpAQCAt
Mjc5Myw3ICsyNDQzLDcgQEAgdGVzdHMuc2ltcGxlR2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZvby55OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7
CiB9CiAKIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkKQEAgLTI4MTgsNyArMjQ2OCw3
IEBAIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBm
b28ueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzgwNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc4MDQpOwogfQogCiB0ZXN0cy5n
ZW5lcmljQWNjZXNzb3JzID0gZnVuY3Rpb24oKQpAQCAtMjkwMywzNTQgKzI1NTMsMTAzIEBAIHRl
c3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9v
LnN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFN1cGVyQmFzaWMiLCBbXSwgW10pLCAxICsgMiArIDMgKyA0KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVy
RGlkU2V0WSIsIFtdLCBbXSksIDkzMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdLCBbXSksIDUzICsgOTMyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaR2V0dGVyIiwgW10sIFtd
KSwgMSArIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKLX0KLQot
dGVzdHMuYml0U3Vic2NyaXB0QWNjZXNzb3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUJpdG1hc2thYmxlIDogRXF1YXRhYmxl
IHsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3ImKE15Qml0bWFza2FibGUsIE15
Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcnwoTXlCaXRt
YXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJh
dG9yfihNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3I8
PChNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0
b3I+PihNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAgICAgIG9wZXJhdG9yIE15Qml0bWFz
a2FibGUoaW50KTsKLSAgICAgICAgfQotICAgICAgICBUIG1hc2tGb3JCaXRJbmRleDxUOk15Qml0
bWFza2FibGU+KHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBUKDEp
IDw8IGluZGV4OwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgb3BlcmF0b3JbXTxUOk15Qml0bWFz
a2FibGU+KFQgdmFsdWUsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBib29sKHZhbHVlICYgbWFza0ZvckJpdEluZGV4PFQ+KGluZGV4KSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgVCBvcGVyYXRvcltdPTxUOk15Qml0bWFza2FibGU+KFQgdmFsdWUsIHVpbnQgaW5kZXgs
IGJvb2wgYml0KQotICAgICAgICB7Ci0gICAgICAgICAgICBUIG1hc2sgPSBtYXNrRm9yQml0SW5k
ZXg8VD4oaW5kZXgpOwotICAgICAgICAgICAgaWYgKGJpdCkKLSAgICAgICAgICAgICAgICB2YWx1
ZSB8PSBtYXNrOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZhbHVlICY9IH5t
YXNrOwotICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQg
b3BlcmF0b3IubGVuZ3RoKGludCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwot
ICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdEludFNl
dEJpdDMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgZm9v
WzNdID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAg
Ym9vbCB0ZXN0SW50U2V0R2V0Qml0NSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287
Ci0gICAgICAgICAgICBmb29bNV0gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvb1s1XTsK
LSAgICAgICAgfQotICAgICAgICBib29sIHRlc3RJbnRHZXRCaXQxKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIHJldHVybiBmb29bMV07Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHRlc3RVaW50U3VtQml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dCBmb28gPSA0MjsKLSAgICAgICAgICAgIGludCByZXN1bHQ7Ci0gICAgICAgICAgICBmb3IgKHVp
bnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoZm9v
W2ldKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQrKzsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RVaW50U3dh
cEJpdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vID0gNDI7Ci0gICAgICAgICAg
ICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoIC8gMjsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgYm9vbCB0bXAgPSBmb29baV07Ci0gICAgICAgICAgICAgICAgZm9vW2ldID0gZm9vW2Zv
by5sZW5ndGggLSBpIC0gMV07Ci0gICAgICAgICAgICAgICAgZm9vW2Zvby5sZW5ndGggLSBpIC0g
MV0gPSB0bXA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAg
ICB9Ci0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgdWludCBmOwotICAgICAgICAg
ICAgdWludCBnOwotICAgICAgICB9Ci0gICAgICAgIG9wZXJhdG9yIEZvbyh1aW50IGYsIHVpbnQg
ZykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3Vs
dC5mID0gZjsKLSAgICAgICAgICAgIHJlc3VsdC5nID0gZzsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yLmgoRm9vIGZvbykKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGludCgoZm9vLmYgJiAweGZmZmYpIHwgKChmb28uZyAm
IDB4ZmZmZikgPDwgMTYpKTsKLSAgICAgICAgfQotICAgICAgICBGb28gb3BlcmF0b3IuaD0oRm9v
IGZvbywgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28uZiAmPSB+MHhmZmZm
dTsKLSAgICAgICAgICAgIGZvby5mIHw9IHVpbnQodmFsdWUpICYgMHhmZmZmOwotICAgICAgICAg
ICAgZm9vLmcgJj0gfjB4ZmZmZnU7Ci0gICAgICAgICAgICBmb28uZyB8PSAodWludCh2YWx1ZSkg
Pj4gMTYpICYgMHhmZmZmOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgdGVzdExWYWx1ZUVtdWxhdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZv
byBmb287Ci0gICAgICAgICAgICBmb28uZiA9IDQyOwotICAgICAgICAgICAgZm9vLmcgPSAzNzsK
LSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5oLmxlbmd0aDsgKytpKQotICAg
ICAgICAgICAgICAgIGZvby5oW2ldIF49IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaW50KGZv
by5mICsgZm9vLmcpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAg
ICAgRm9vIGE7Ci0gICAgICAgICAgICBGb28gYjsKLSAgICAgICAgfQotICAgICAgICBGb28gb3Bl
cmF0b3IuYyhCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vKHVpbnQo
YmFyLmEuaCksIHVpbnQoYmFyLmIuaCkpOwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRv
ci5jPShCYXIgYmFyLCBGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIuYS5oID0g
aW50KGZvby5mKTsKLSAgICAgICAgICAgIGJhci5iLmggPSBpbnQoZm9vLmcpOwotICAgICAgICAg
ICAgcmV0dXJuIGJhcjsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdENyYXp5TFZhbHVlRW11
bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIGJhcjsKLSAgICAgICAgICAgIGJh
ci5hLmYgPSAxOwotICAgICAgICAgICAgYmFyLmEuZyA9IDI7Ci0gICAgICAgICAgICBiYXIuYi5m
ID0gMzsKLSAgICAgICAgICAgIGJhci5iLmcgPSA0OwotICAgICAgICAgICAgZm9yICh1aW50IGkg
PSAwOyBpIDwgYmFyLmMuaC5sZW5ndGg7IGkgKz0gMikKLSAgICAgICAgICAgICAgICBiYXIuYy5o
W2ldIF49IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaW50KGJhci5hLmYgKyBiYXIuYS5nICsg
YmFyLmIuZiArIGJhci5iLmcpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50U2V0Qml0MyIsIFtdLCBbXSksIDgp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRT
ZXRHZXRCaXQ1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEludEdldEJpdDEiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0VWludFN1bUJpdHMi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RVaW50U3dhcEJpdHMiLCBbXSwgW10pLCAxNDA5Mjg2MTQ0KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBb
XSwgW10pLCAxMzA5OTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdENyYXp5TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgNDM2OTYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFN1cGVyQmFzaWMiLCBb
XSksIDEgKyAyICsgMyArIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10pLCA5MzIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXIiLCBbXSksIDUzICsgOTMy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaR2V0
dGVyIiwgW10pLCAxICsgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10pLCAxICsgMiArIDMgKiA1ICsgNCk7CiB9
CiAKIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvblNpbXBsZSA9IGZ1bmN0aW9u
KCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHN0cnVjdCBGb28gewot
ICAgICAgICAgICAgaW50WzddIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIGludCBvcGVyYXRv
cltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBm
b28uYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28g
Zm9vLCB1aW50IGluZGV4LCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5h
cnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0K
LSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoRm9vIGZvbykKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGZvby5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1
bShGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAg
ICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gZm9vW2ldOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZvb1s2XSBhcnJheTsKLSAgICAgICAg
fQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChCYXIgYmFyKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYmFyLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBGb28g
b3BlcmF0b3JbXShCYXIgYmFyLCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYmFyLmFycmF5W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyIGJhciwgdWludCBpbmRleCwgRm9vIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBiYXIuYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAg
ICAgICB9Ci0gICAgICAgIGludCBzdW0oQmFyIGJhcikKLSAgICAgICAgewotICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhci5sZW5ndGg7IGkt
LTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXJbaV0pOwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmF6IHsKLSAgICAgICAg
ICAgIEJhcls1XSBhcnJheTsKLSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3JbXShCYXog
YmF6LCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmF6LmFycmF5
W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXogb3BlcmF0b3JbXT0oQmF6IGJheiwgdWlu
dCBpbmRleCwgQmFyIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXouYXJyYXlbaW5k
ZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gYmF6OwotICAgICAgICB9Ci0gICAgICAg
IHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiYXouYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oQmF6IGJh
eikKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBm
b3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9
IHN1bShiYXpbaV0pOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXopCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBm
b3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAg
ICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFs
dWVzQW5kU3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAg
IHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAg
fQotICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0g
ICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yICh1aW50IGsgPSBiYXpbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAg
ICAgICAgICAgICAgYmF6W2ldW2pdW2tdICo9IGludChrKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3VtKGJheik7Ci0gICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RT
ZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBb
XSwgW10pLCA1NTY1KTsKLX0KLQotdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9u
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVFs3XSBhcnJheTsKKyAgICAgICAgICAg
IGludFs3XSBhcnJheTsKICAgICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW108VD4oRm9vPFQ+
IGZvbywgdWludCBpbmRleCkKKyAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBp
bmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07CiAg
ICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW109PFQ+KEZvbzxUPiBmb28sIHVpbnQg
aW5kZXgsIFQgdmFsdWUpCisgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28gZm9vLCB1aW50IGlu
ZGV4LCBpbnQgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvby5hcnJheVtpbmRleF0g
PSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBmb287CiAgICAgICAgIH0KLSAgICAgICAgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oRm9vPFQ+IGZvbykKKyAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgoRm9vIGZvbykKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheS5s
ZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgTXlBZGRhYmxlIHsKLSAgICAgICAg
ICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBNeUFkZGFibGUpOwotICAgICAgICB9
Ci0gICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihGb288VD4gZm9vKQorICAgICAgICBpbnQgc3Vt
KEZvbyBmb28pCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGZvby5sZW5ndGg7IGkt
LTspCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvb1tpXTsKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhcjxUPiB7Ci0gICAgICAgICAg
ICBGb288VD5bNl0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBCYXIgeworICAgICAgICAgICAgRm9v
WzZdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEJh
cjxUPiBiYXIpCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAg
ICAgIEZvbzxUPiBvcGVyYXRvcltdPFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgpCisgICAgICAg
IEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEJhcjxUPiBv
cGVyYXRvcltdPTxUPihCYXI8VD4gYmFyLCB1aW50IGluZGV4LCBGb288VD4gdmFsdWUpCisgICAg
ICAgIEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAg
IHJldHVybiBiYXI7CiAgICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJhcjxU
PiBiYXIpCisgICAgICAgIGludCBzdW0oQmFyIGJhcikKICAgICAgICAgewotICAgICAgICAgICAg
VCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAo
dWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3Vt
KGJhcltpXSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAg
IHN0cnVjdCBCYXo8VD4gewotICAgICAgICAgICAgQmFyPFQ+WzVdIGFycmF5OworICAgICAgICBz
dHJ1Y3QgQmF6IHsKKyAgICAgICAgICAgIEJhcls1XSBhcnJheTsKICAgICAgICAgfQotICAgICAg
ICBCYXI8VD4gb3BlcmF0b3JbXTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4KQorICAgICAgICBC
YXIgb3BlcmF0b3JbXShCYXogYmF6LCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gYmF6LmFycmF5W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBCYXo8VD4gb3Bl
cmF0b3JbXT08VD4oQmF6PFQ+IGJheiwgdWludCBpbmRleCwgQmFyPFQ+IHZhbHVlKQorICAgICAg
ICBCYXogb3BlcmF0b3JbXT0oQmF6IGJheiwgdWludCBpbmRleCwgQmFyIHZhbHVlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBiYXouYXJyYXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICBy
ZXR1cm4gYmF6OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEJh
ejxUPiBiYXopCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAg
ICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihCYXo8VD4gYmF6KQorICAgICAgICBpbnQgc3VtKEJheiBi
YXopCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCiAg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXpbaV0pOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUNvbnZlcnRpYmxlRnJvbVVp
bnQgewotICAgICAgICAgICAgb3BlcmF0b3IgTXlDb252ZXJ0aWJsZUZyb21VaW50KHVpbnQpOwot
ICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIFNldFZhbHVhYmxlIDogTXlBZGRhYmxlLCBNeUNv
bnZlcnRpYmxlRnJvbVVpbnQgeyB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzPFQ6U2V0VmFsdWFi
bGU+KHRocmVhZCBCYXo8VD4qIGJheikKKyAgICAgICAgdm9pZCBzZXRWYWx1ZXModGhyZWFkIEJh
eiogYmF6KQogICAgICAgICB7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei0+bGVuZ3Ro
OyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSAoKmJheilbaV0ubGVuZ3Ro
OyBqLS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gKCpiYXopW2ldW2pd
Lmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtqXVtrXSA9
IFQoaSArIGogKyBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtqXVtrXSA9
IGludChpICsgaiArIGspOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAgICAgICBz
ZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICByZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0K
ICAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQogICAgICAgICB7
Ci0gICAgICAgICAgICBCYXo8aW50PiBiYXo7CisgICAgICAgICAgICBCYXogYmF6OwogICAgICAg
ICAgICAgc2V0VmFsdWVzKCZiYXopOwogICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXoubGVu
Z3RoOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSBiYXpbaV0ubGVuZ3Ro
OyBqLS07KSB7CkBAIC0zMjYxLDggKzI2NjAsOCBAQCB0ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFs
dWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bShi
YXopOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgMTU3NSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzTXV0
YXRlVmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgNTU2NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10pLCAxNTc1KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1
ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSksIDU1NjUpOwogfQogCiB0ZXN0cy5ib29sQml0QW5k
ID0gZnVuY3Rpb24oKQpAQCAtMzI3MywxMCArMjY3MiwxMCBAQCB0ZXN0cy5ib29sQml0QW5kID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dy
YW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIHRydWUpOwogfQogCiB0ZXN0cy5ib29sQml0T3IgPSBmdW5jdGlvbigp
CkBAIC0zMjg3LDEwICsyNjg2LDEwIEBAIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOwogfQogCiB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzMwMSwxMCArMjcw
MCwxMCBAQCB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzMTUsOCArMjcxNCw4IEBAIHRlc3RzLmJv
b2xCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludEJpdEFuZCA9IGZ1
bmN0aW9uKCkKQEAgLTMzMjcsMTAgKzI3MjYsMTAgQEAgdGVzdHMuaW50Qml0QW5kID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgMSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIp
XSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTcpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0
cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMzNDEsMTAgKzI3NDAsMTAgQEAgdGVzdHMuaW50
Qml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSB8IGI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC0xKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAtNyldKSwgLTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
ODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAt
MzM1NSwxMCArMjc1NCwxMCBAQCB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1h
a2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0
OTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3Rz
LmludEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzNjksMTAgKzI3NjgsMTAgQEAgdGVzdHMuaW50
Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgLTIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1
KV0pLCAtNjU1MzYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAwKV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSld
KSwgLTY1NTM2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIC0x
KTsKIH0KIAogdGVzdHMuaW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzM4MywxMCArMjc4Miwx
MCBAQCB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA8
PCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9n
cmFtLCAyKV0pLCAyNjIxNDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgLTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTMyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMuaW50UlNoaWZ0ID0gZnVu
Y3Rpb24oKQpAQCAtMzM5NywxMCArMjc5NiwxMCBAQCB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMTYzODMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMTYzODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAt
MSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRl
c3RzLnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zNDExLDEwICsyODEwLDEwIEBAIHRlc3Rz
LnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3
KV0pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIp
XSksIDQyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSks
IDQyOTQ5NjcyODkpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1
NzMyKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyODkpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0
ZXN0cy51aW50Qml0T3IgPSBmdW5jdGlvbigpCkBAIC0zNDI1LDEwICsyODI0LDEwIEBAIHRlc3Rz
LnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDcpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0Mild
KSwgNjU1MzUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyld
KSwgNDI5NDk2NzI5NSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
ODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2
NTUzNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5
NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1
NzMyKTsKIH0KIAogdGVzdHMudWludEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTM0MzksMTAgKzI4
MzgsMTAgQEAgdGVzdHMudWludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDcpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQy
KV0pLCA2NTQ5Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSks
IDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMy
KTsKIH0KIAogdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTM0NTMsMTAgKzI4NTIs
MTAgQEAgdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+
YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSldKSwgNDI5NDk2NzI5
NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5NDkwMTc2MCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKV0pLCA0Mjk0OTY3Mjk1KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMSldKSwgNDI5NDk2NzI5NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0p
LCA0Mjk0OTAxNzYwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAw
KV0pLCA0Mjk0OTY3Mjk1KTsKIH0KIAogdGVzdHMudWludExTaGlmdCA9IGZ1bmN0aW9uKCkKQEAg
LTM0NjcsMTAgKzI4NjYsMTAgQEAgdGVzdHMudWludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA0Mjk0OTY3MjY0KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCA0Mjk0OTY3MjY0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50UlNoaWZ0ID0gZnVuY3Rpb24oKQpA
QCAtMzQ4MSwxMCArMjg4MCwxMCBAQCB0ZXN0cy51aW50UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEzNDIxNzcyNyk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0
OTUsMTAgKzI4OTQsMTAgQEAgdGVzdHMudWludDhCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI0OSk7Ci0gICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1h
a2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMudWludDhCaXRPciA9IGZ1bmN0
aW9uKCkKQEAgLTM1MDksMTAgKzI5MDgsMTAgQEAgdGVzdHMudWludDhCaXRPciA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjU1KTsKLSAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI1NSk7Ci0gICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjU1KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKKyAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOwogfQogCiB0ZXN0cy51
aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTM1MjMsMTAgKzI5MjIsMTAgQEAgdGVzdHMudWlu
dDhCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3
KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwg
NDIpXSksIDIxMyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4
NTczMildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0p
LCAyMTMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCA2
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgp
OwogfQogCiB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTM1MzcsMTAgKzI5MzYs
MTAgQEAgdGVzdHMudWludDhCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
fmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSldKSwgMjU0KTsK
LSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpXSksIDApOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAt
MSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApXSksIDI1NSk7CisgICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3Jh
bSwgMSldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7CisgICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJv
Z3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApXSksIDI1NSk7CiB9CiAKIHRlc3Rz
LnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU1MSwxMCArMjk1MCwxMCBAQCB0ZXN0cy51
aW50OExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMildKSwgMjUyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAyMjQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEy
OCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMjI0KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3Rz
LnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU2NSwxMCArMjk2NCwxMCBAQCB0ZXN0cy51
aW50OFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMp
XSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1NSk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyNTUpOworICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMuZmxv
YXRNYXRoID0gZnVuY3Rpb24oKQpAQCAtMzYyNCwxNyArMzAyMywxNyBAQCB0ZXN0cy5mbG9hdE1h
dGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZmxvYXQoeCk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdLCBbXSksIDcuNSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW10s
IFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbXSwgW10pLCA3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSwgW10pLCA3LjUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbXSksIDcuNSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW10pLCA3
LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtdKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW10pLCA3LjUpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKICAgICAgICAgICAgIGludCBiYXIoaW50IHgpCkBAIC0zNzI5LDcgKzMxMjgsNyBAQCB0
ZXN0cy5nZW5lcmljQ2FzdEluZmVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgu
cmVhbCArIHguaW1hZzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOwogfQogCiB0ZXN0
cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKQEAgLTM3NjgsMTQgKzMxNjcsMTQgQEAgdGVzdHMu
Ym9vbGVhbk1hdGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2UgfHwgZmFs
c2U7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5ib29sZWFuU2hv
cnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQpAQCAtMzgxNiwxMCArMzIxNSwxMCBAQCB0ZXN0cy5i
b29sZWFuU2hvcnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZFRydWUiLCBb
XSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFuZEZhbHNlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJvclRydWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yRmFsc2UiLCBbXSwgW10pLCAyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZFRydWUiLCBbXSksIDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kRmFsc2UiLCBb
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JU
cnVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgIm9yRmFsc2UiLCBbXSksIDIpOwogfQogCiB0ZXN0cy50eXBlZGVmQXJyYXkgPSBmdW5jdGlv
bigpCkBAIC0zODMyLDcgKzMyMzEsNyBAQCB0ZXN0cy50eXBlZGVmQXJyYXkgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gYXJyYXlUeXBlZGVmWzBdOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNoYWRlclR5cGVzID0gZnVuY3Rpb24oKQpAQCAtNDA4
NCwyNCArMzQ4MywyNCBAQCB0ZXN0cy5idWlsdGluVmVjdG9ycyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBiID09IGM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDQp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UiLCBbXSwgW10pLCAzKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtd
LCBbXSksIDQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdTQiLCBbXSwgW10pLCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10sIFtdKSwgZmFs
c2UpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29m
IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb2YyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y0IiwgW10sIFtdKSwgNSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b29mNiIsIFtdLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFs
c2UpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3Ui
LCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UyIiwgW10pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb291MyIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vdTQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NiIsIFtdKSwgZmFsc2UpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mIiwgW10pLCAz
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjIi
LCBbXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb29mMyIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2Y0IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjYiLCBbXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTQxMjEsNyArMzUy
MCw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geC54Lng7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDMpOwog
fQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0V2l0aEludDIgPSBmdW5jdGlvbigp
CkBAIC00MTM4LDcgKzM1MzcsNyBAQCB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0V2l0
aEludDIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC54Lng7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDMpOwogfQogCiB0ZXN0cy5zaW1wbGVFbnVtID0gZnVuY3Rpb24o
KQpAQCAtNDI2MywzMiArMzY2MiwzMiBAQCB0ZXN0cy5zaW1wbGVFbnVtID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBb
XSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNp
bXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5v
dE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIs
IFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxl
bmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RF
cXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10pLCAxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVu
Y2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFs
dWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRl
cmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJk
cyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwog
fQogCiB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKQEAgLTQzMTcsMTAg
KzM3MTYsMTAgQEAgdGVzdHMuZW51bVdpdGhNYW51YWxWYWx1ZXMgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gRm9vLkRlYXRoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgNzIpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InBlc3RpbGVuY2UiLCBbXSwgW10pLCAyMyk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAtNDIpOworICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgNzIpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMCk7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIs
IFtdKSwgMjMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImRlYXRoIiwgW10pLCAtNDIpOwogfQogCiB0ZXN0cy5lbnVtV2l0aG91dFplcm8gPSBmdW5jdGlv
bigpCkBAIC00Mzc3LDEwICszNzc2LDEwIEBAIHRlc3RzLmVudW1XaXRoU29tZU1hbnVhbFZhbHVl
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3
YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgNzMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDEp
OworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtd
KSwgNzIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdKSwgNzMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0
ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKQEAgLTQzOTEsOCArMzc5MCw4IEBAIHRl
c3RzLmVudW1Db25zdGV4cHJHZW5lcmljRnVuY3Rpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIGlu
dCB0ZXN0WCgpIHsgcmV0dXJuIGZvbzxBeGlzLlg+KCk7IH0KICAgICAgICAgaW50IHRlc3RZKCkg
eyByZXR1cm4gZm9vPEF4aXMuWT4oKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10sIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIs
IFtdKSwgMSk7CiB9CiAKIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljU3RydWN0ID0gZnVuY3Rp
b24oKQpAQCAtNDQxMiw4ICszODExLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1
Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKGYpOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMudHJhcCA9
IGZ1bmN0aW9uKCkKQEAgLTQ0MzksMTQgKzM4MzgsMTQgQEAgdGVzdHMudHJhcCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1Ry
YXBFcnJvcik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDEpXSks
IDQpOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksCisgICAgICAgICgpID0+IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksCiAgICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwKKyAgICAgICAgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLAogICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNDQ3MCw5ICszODY5LDkgQEAgdGVzdHMuc3dp
enpsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBxdWl4Lno7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCA2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
NCk7CiB9CiAKIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAt
NDU5NywzMiArMzk5NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aEV4cGxpY2l0SW50QmFzZSA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28oaW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1
YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSwgW10pLCAx
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3Rp
bGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSwgW10p
LCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVW
YWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRl
cmFsIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFja3dhcmRzIiwgW10sIFtdKSwgMyk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10p
LCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1
YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90
aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10pLCAwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludERlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIs
IFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJk
ZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10pLCAwKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVC
YWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFja3dhcmRzIiwgW10p
LCAzKTsKIH0KIAogdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ3NDcs
MzIgKzQxNDYsMzIgQEAgdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBGb28odWludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
IiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxl
Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90
RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ1aW50V2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNl
IiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidWludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSks
IDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10p
LCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1
ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ1aW50V2FyQmFja3dhcmRzIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIs
IFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInVpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludERlYXRoQmFja3dhcmRzIiwgW10s
IFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RB
bm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtd
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBb
XSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVp
bnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1
ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDAp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVp
bnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInVpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlQmFja3dh
cmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtRmxvYXRC
YXNlID0gZnVuY3Rpb24oKQpAQCAtNDgxOCw3ICs0MjE3LDcgQEAgdGVzdHMuZW1wdHlTdHJ1Y3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gNDY7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDQ2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNDYpOwogfQogCiB0ZXN0cy5lbnVtU3RydWN0QmFzZSA9IGZ1bmN0aW9uKCkKQEAg
LTQ4NTcsOSArNDI1Niw5IEBAIHRlc3RzLnNpbXBsZVN3aXRjaCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuZXhoYXVzdGl2ZVVpbnQ4U3dpdGNo
ID0gZnVuY3Rpb24oKQpAQCAtNDg3MCw3ICs0MjY5LDcgQEAgdGVzdHMuZXhoYXVzdGl2ZVVpbnQ4
U3dpdGNoID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAg
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
aSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLm5vdFF1aXRlRXhoYXVzdGl2ZVVpbnQ4U3dpdGNo
ID0gZnVuY3Rpb24oKQpAQCAtNDg5MSw3ICs0MjkwLDcgQEAgdGVzdHMubm90UXVpdGVFeGhhdXN0
aXZlVWludDhTd2l0Y2hXaXRoRGVmYXVsdCA9IGZ1bmN0aW9uKCkKICAgICB0ZXh0ICs9ICJ9IH0i
OwogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQpOwogICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7Cisg
ICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOwogfQogCiB0ZXN0cy5zd2l0Y2hGYWxs
VGhyb3VnaCA9IGZ1bmN0aW9uKCkKQEAgLTQ5MTMsOSArNDMxMiw5IEBAIHRlc3RzLnN3aXRjaEZh
bGxUaHJvdWdoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcgKyA3NjI0ICsgNDkpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSks
IDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcgKyA3NjI0ICsgNDkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjkpXSksIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLnN3
aXRjaEJyZWFrID0gZnVuY3Rpb24oKQpAQCAtNDkzOCw5ICs0MzM3LDkgQEAgdGVzdHMuc3dpdGNo
QnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2
NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDkpOwogfQogCiB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpA
QCAtNDk2Niw5ICs0MzY1LDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrRXhoYXVzdGl2ZSA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAi
Rm9vIiwgIkIiKV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkIiKV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CiB9CiAKIHRl
c3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKQEAgLTUw
MjEsOSArNDQyMCw5IEBAIHRlc3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXhoYXVzdGl2ZVdp
dGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VF
bnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9v
IiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSks
IDQ5KTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaXZlU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAt
NTA3Miw3ICs0NDcxLDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRl
cnNCcm9rZW4gPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgLTUxMSksCisgICAgICAgICgpID0+IGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAtNTExKSwKICAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTUwOTgsNyArNDQ5Nyw3IEBAIHRlc3RzLm11
dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgLTUxMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksIC01MTEpOwogfQogCiB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQpA
QCAtNTExOSw3ICs0NTE4LDcgQEAgdGVzdHMubGlua2VkTGlzdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4Lm5leHQtPm5leHQtPnZhbHVlOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCkBAIC01
MTQyLDcgKzQ1NDEsNyBAQCB0ZXN0cy5wb2ludGVyVG9Qb2ludGVyID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzYgKyAzOSAr
IDgzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgNzYgKyAzOSArIDgzKTsKIH0KIAogdGVzdHMuYXJyYXlSZWZUb0FycmF5UmVmID0gZnVu
Y3Rpb24oKQpAQCAtNTE2NSw3ICs0NTY0LDcgQEAgdGVzdHMuYXJyYXlSZWZUb0FycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNzYgKyAzOSArIDgzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgNzYgKyAzOSArIDgzKTsKIH0KIAogdGVzdHMucG9pbnRlckdl
dHRlciA9IGZ1bmN0aW9uKCkKQEAgLTUyNDYsOTQgKzQ2NDUsNiBAQCB0ZXN0cy5zZXR0ZXJXaXRo
TWF0Y2hlZFR5cGUgPSBmdW5jdGlvbigpCiAgICAgYCk7CiB9CiAKLXRlc3RzLm9wZXJhdG9yV2l0
aFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEZvbyBvcGVyYXRv
cis8VD4oRm9vIGEsIEZvbyBiKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEZvbyBy
ZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnggPSBhLnggKyBiLng7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVyYXRvcldpdGhv
dXRVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludCB4Owot
ICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcisoRm9vIGEsIEZvbyBiKQotICAgICAgICB7
Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LnggPSBhLnggKyBi
Lng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIGEueCA9IDY0
NTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICAgICAgYi54ID0gLTM1OwotICAgICAgICAg
ICAgcmV0dXJuIChhICsgYikueDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNjQ1IC0gMzUpOwot
fQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVu
Y3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgb3BlcmF0b3I8VD4gRm9vKGludCB4KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnggPSB4Owot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGAp
LAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMub3Bl
cmF0b3JDYXN0V2l0aFR5cGVWYXJpYWJsZUluZmVycmVkRnJvbVJldHVyblR5cGUgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhcmFibGUg
ewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhcmFibGUqLCBpbnQpOwotICAgICAgICB9
Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBmbG9hdCogcmVzdWx0LCBpbnQgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICpyZXN1bHQgPSBmbG9hdCh2YWx1ZSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgb3BlcmF0b3I8VDpCYXJhYmxlPiBUKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIFQgcmVzdWx0OwotICAgICAgICAgICAgYmFyKCZyZXN1bHQsIGZvby54KTsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICBmb28ueCA9IDc1OwotICAgICAg
ICAgICAgZmxvYXQgeCA9IGZsb2F0KGZvbyk7Ci0gICAgICAgICAgICByZXR1cm4gaW50KHggKiAx
LjUpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMTIpOwotfQotCiB0ZXN0cy5pbmNXcm9uZ0Fy
Z3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQogewogICAgIGNoZWNrRmFpbCgKQEAgLTU4MjMsNyAr
NTEzNCw3IEBAIHRlc3RzLmFuZGVyV2l0aE5vdGhpbmdXcm9uZyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4LmZvbzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAxMyk7CiB9
CiAKIHRlc3RzLmFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHMgPSBmdW5jdGlvbigpCkBA
IC01ODk3LDcgKzUyMDgsNyBAQCB0ZXN0cy5hbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiAoQHgpLmZvbzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAxMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJJbmRleEdldHRlciA9IGZ1bmN0aW9uKCkKQEAgLTYw
ODMsNyArNTM5NCw3IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHhbNjY2XTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
MTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAxMyk7CiB9CiAKIHRlc3RzLmluZGV4QW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50
cyA9IGZ1bmN0aW9uKCkKQEAgLTYxNjgsNyArNTQ3OSw3IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRo
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEB4KVtmbG9hdCgtMSld
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuZGV2aWNlUHRy
UHRyID0gZnVuY3Rpb24oKQpAQCAtNjIwNywzMDYgKzU1MTgsNiBAQCB0ZXN0cy5jb25zdGFudFB0
clB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVyIHRvIG5vbi1wcmltaXRpdmUgdHlw
ZTogaW50MzIqIGNvbnN0YW50KiBjb25zdGFudCIpICE9IC0xKTsKIH0KIAotdGVzdHMucG9pbnRl
ckluZGV4R2V0dGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBmb3IgKGxldCBhZGRy
ZXNzU3BhY2Ugb2YgYWRkcmVzc1NwYWNlcykgewotICAgICAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKCR7YWRkcmVzc1NwYWNlfSBGb28qLCB1aW50
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAg
ICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0g
ICAgICAgICAgICBgKSwKLSAgICAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ig
JiYgZS5tZXNzYWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIGdldHRlciBmb3IgcG9pbnRlciB0eXBl
IikgIT0gLTEpOwotICAgIH0KLX0KLQotdGVzdHMubG9uZUluZGV4U2V0dGVySW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltd
PShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBC
YXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRXZlcnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1hdGNoaW5n
IGdldHRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMubm90TG9uZUluZGV4U2V0dGVySW5Qcm90b2Nv
bCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgIEZvbyBv
cGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJh
ciB7IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQot
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9
Ci0gICAgYCk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE1pc21hdGNoZWRUeXBlSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGZsb2F0IG9w
ZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9v
LCB1aW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0K
LSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAg
ICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIlNldHRlciBhbmQgZ2V0dGVyIG11c3QgYWdyZWUgb24gdmFsdWUg
dHlwZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5n
dGhJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
aW50IG9wZXJhdG9yW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRp
b25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXShGb28pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJh
ciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0x
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbywgaW50LCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVzdHMu
aW5kZXhPcGVyYXRvclNldHRlcldyb25nQXJndW1lbnRMZW5ndGhJblByb3RvY29sID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9w
ZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwK
LSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiUHJvdG9jb2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0
dXJlIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109
KEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KEZvbywgaW50KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0
b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJ
bmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQsIGludCwgaW50KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNv
cnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmxvbmVJbmRl
eFNldHRlclBvaW50ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3JbXT0odGhyZWFkIEZvbyogcHRyLCB1aW50
LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAg
ICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNz
YWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIHNldHRlciBmb3IgcG9pbnRlciB0eXBlIikgIT0gLTEp
OwotfQotCi10ZXN0cy5pbmRleFNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkSW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltd
KGludCwgRm9vKTsKLSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCBvcGVyYXRvcltdPSB3aXRoIGFy
Z3VtZW50cyBGb28sdWludDMyIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleFNldHRlcldpdGhO
b0dldHRlck92ZXJsb2FkRml4ZWRJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJl
cChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShG
b28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsK
LSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0b3Jb
XShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIs
IHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhB
bmRlcldpdGhOb3RoaW5nV3JvbmdJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCk7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IGJhcjxUOkZvbz4oVCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4geFs0Ml07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBiYXIoQmFyKCkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMjM0KTsKLX0KLQotdGVzdHMu
aW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRzSW5Qcm90b2NvbCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdz
IHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJv
dG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJl
YWQgRm9vKiBmb28pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0K
LSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAg
ICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigi
SW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciBvcGVyYXRvciZbXSIpICE9IC0xKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90
b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBGb28qIGZvbywgdWludCwgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJh
ciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEy
MzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltd
IikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyRG9lc250UmV0dXJuUG9pbnRlckluUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3Bl
cmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0
aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIlJldHVybiB0eXBlIG9mIGFuZGVyIGlzIG5vdCBhIHBvaW50ZXIi
KSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRUYWtlUmVmZXJlbmNlSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBp
bnQqIG9wZXJhdG9yJltdKEZvbyBmb28sIHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRo
cmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1
bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiUGFyYW1ldGVyIHRvIGFuZGVyIGlzIG5vdCBhIHJlZmVyZW5jZSIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJlZkluUHJvdG9jb2wgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2Nv
bCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvb1td
IGFycmF5LCBmbG9hdCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGJhcjxUOkZvbz4o
dGhyZWFkIFRbXSB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4geFsxLjVdOwotICAg
ICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCBCYXJbXSwgZmxvYXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBy
ZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEJhciB4OwotICAgICAgICAg
ICAgcmV0dXJuIGJhcihAeCk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwotfQotCiB0
ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKQEAgLTY1MjIsNyArNTUzMyw3IEBAIHRlc3RzLmFuZFJldHVybmVkQXJyYXlS
ZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKnB0cjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgMzU0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgMzU0KTsKIH0KIAogb2tUb1Rlc3QgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGUuanMKaW5kZXggN2MyODc5MTg5NTNhNWIxZDVlMzVlODUwZTMzMGYz
ODlkZjZlNzZlOC4uMjFhMzMxOTU4ZTEzNGJkOTk1ODAzYmRhODFmY2NjYzFlZmI0NGM2ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCkBAIC0yNSw3ICsyNSw2IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIFR5cGUgZXh0ZW5kcyBOb2RlIHsKLSAgICBnZXQgdHlwZVBhcmFt
ZXRlcnMoKSB7IHJldHVybiBbXTsgfQogICAgIGdldCBraW5kKCkgeyByZXR1cm4gVHlwZTsgfQog
ICAgIGdldCBpc1B0cigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzQXJyYXkoKSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzcsMTUgKzM2LDYgQEAgY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUg
ewogICAgIGdldCBpc0VudW0oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIGdldCBpc1ByaW1pdGl2
ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgaW5oZXJpdHMocHJvdG9jb2wpCi0gICAg
ewotICAgICAgICBpZiAoIXByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgICAgICByZXR1cm4gcHJvdG9jb2wuaGFzSGVpcih0aGlzKTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IGluc3RhbnRpYXRlZFR5cGUoKSB7IHJldHVybiB0aGlzLnZpc2l0KG5ldyBJbnN0
YW50aWF0ZUltbWVkaWF0ZXMoKSk7IH0KLSAgICAKICAgICAvLyBIYXZlIHRvIGNhbGwgdGhlc2Ug
b24gdGhlIHVuaWZ5Tm9kZS4KICAgICBhcmd1bWVudEZvckFuZE92ZXJsb2FkKG9yaWdpbiwgdmFs
dWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlw
ZURlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKaW5kZXgg
NmMwZjljMTc0ZjUzMjM1NjQxZjRjZDMwMmNhYjRjM2FhYjI3YzE0My4uZDdiMDBjZDJjNzNlYjNh
NWE4ODIzNGJmMjlkYzNhNmFjN2I3MWMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVHlwZURlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UeXBlRGVmLmpzCkBAIC0yNSwyMyArMjUsMjEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3Mg
VHlwZURlZiBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlw
ZVBhcmFtZXRlcnMsIHR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlKQog
ICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwog
ICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMg
PSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7CiAgICAgfQogICAg
IAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFt
ZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJl
dHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQogICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZTsgfQogICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAi
dHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+ID0g
IiArIHRoaXMudHlwZTsKKyAgICAgICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAi
ID0gIiArIHRoaXMudHlwZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcwppbmRleCBhODFlYWI0MmQ5NDhmY2EzZTkzMGM2
ODU3YTk2NGRkY2NmY2VlNTdmLi4wODJlNzJmOWY4NDIyMjQ2OTE3MDQ5ODZhMGFmMjlhNjgyY2Yx
MTFmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVz
b2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29s
dmVyLmpzCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGxldCBuZXdUeXBlID0g
bm9kZS50eXBlLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24obm9kZS50eXBlLnR5cGVQYXJh
bWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQpOwogICAgICAgICAgICAgICAgIG5ld1R5cGUudmlz
aXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbm9kZS5zZXRUeXBlQW5kQXJndW1lbnRzKG5ld1R5
cGUsIFtdKTsKKyAgICAgICAgICAgICAgICBub2RlLnNldFR5cGUobmV3VHlwZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAg
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4g
bmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50
eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZh
cmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQx
ZTU2ZDY5M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYw
OWIwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUs
NjkgKzI1LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBl
IHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29u
c3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAg
dGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAg
ICAgdGhpcy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVB
cmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAg
ICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykK
KyAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJu
IHR5cGU7CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUg
PSB0eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMg
aW5zdGFudGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUo
dHlwZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBU
eXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5
cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7
IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25h
bWU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVu
dHM7IH0KICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhp
cy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5p
ZnlOb2RlOwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51
bmlmeU5vZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwg
b2Zmc2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIs
IG9mZnNldCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZh
bHVlIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBn
ZXQgc2l6ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAg
IHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZl
KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAg
ICAgICAgIHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1p
dGl2ZTogIiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwog
ICAgIH0KICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMp
CisgICAgc2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAg
ICAgICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0
eXBlQXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250
ZXh0LCBvdGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBl
IHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5p
ZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlw
ZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRl
eHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDks
OSArOTIsNyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsK
LSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIHRoaXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlw
ZUFyZ3VtZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3
MmZhMGI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBl
IHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlz
Ll9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdl
dCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0
dXJuIHRoaXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1p
dGl2ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90
b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0
aGlzLnByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246
ICJUeXBlIHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsK
LSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0K
LSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQot
ICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFi
bGVVbmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAg
IHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0g
ICAgfQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAg
IHsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7
Ci0gICAgICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0
IGJlIGEgdHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAg
ICAvLyB0aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2Vv
ZiBUeXBlVmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFz
b246ICJUeXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2Vk
IHRvIG5vbi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAg
ICAgIAotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFs
VGhpcy5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90
IGJlIHBhc3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyBy
ZWFsVGhpcy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmlu
aGVyaXRzKHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQot
ICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsg
dGhpcy5wcm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMu
cHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxU
aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRl
eHQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1
cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29u
dGV4dC5maW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHMo
dGhpcy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRv
ZXMgbm90IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5
cGUgIiArIHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVh
c29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0
b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9j
b2wgPyAiOiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4
NTIzOTFmODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVU
cmFja2VyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAK
LSAgICBnZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVy
KHRoaW5nKQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAg
ICAgdGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihu
b2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0g
ICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAg
fQotICAgIAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X2NvbnNpZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYw
NTBkZWY1MzM2ZC4uZTg2NGY0M2U2NTBmMjA0ZTQ1MzNiYjU5YmU0MTAzYTk1YmU5YjhhOCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC00MCwxMSArNDAsNiBA
QCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAg
ICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAg
ICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFyYW1l
dGVyKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CkBAIC03OSwx
OCArNzQsNiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGV4cHJlc3Npb24udmlzaXQo
dGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBm
b3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwcm90b2NvbC52
aXNpdCh0aGlzKTsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJl
cykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCiAgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2Ygbm9kZS50eXBlQXJndW1lbnRzKQpAQCAtMTI1LDE2ICsxMDgsNiBAQCBjbGFzcyBWaXNpdG9y
IHsKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNp
dFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnByb3Rv
Y29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVy
KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKQEAgLTM0MCwxNCArMzEzLDYgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5v
ZGUuYXJndW1lbnRMaXN0KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7
Ci0gICAgICAgIGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9
PiB7Ci0gICAgICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAg
ICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAg
ICAgICAgICAgIGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
OwotICAgICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBl
QXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwg
dGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXR1cm5UeXBlLCB0aGlzKTsKICAgICAg
ICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvV1NMLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2I2NjU2NzgyNmE1
MWRkNmM3NTRkNGU5YjI0ZDc1Nzg5NzJiYjNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZAor
KysgL2Rldi9udWxsCkBAIC0xLDQ3OSArMCwwIEBACi0jIFdlYkdQVSBTaGFkaW5nIExhbmd1YWdl
Ci0KLVdlYkdQVSBTaGFkaW5nIExhbmd1YWdlLCBvciBXU0wgZm9yIHNob3J0LCBpcyBhIHR5cGUt
c2FmZSBsb3ctb3ZlcmhlYWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZm9yIEdQVXMgKGdyYXBoaWNz
IHByb2Nlc3NpbmcgdW5pdHMpLiBUaGlzIGRvY3VtZW50IGV4cGxhaW5zIGhvdyBXU0wgd29ya3Mu
Ci0KLSMgR29hbHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZyBn
b2FsczoKLQotLSBXU0wgc2hvdWxkIGZlZWwgKmZhbWlsaWFyKiB0byBDKysgcHJvZ3JhbW1lcnMu
Ci0tIFdTTCBzaG91bGQgYmUgaGF2ZSBhICpzb3VuZCogYW5kICpkZWNpZGFibGUqIHR5cGUgc3lz
dGVtLgotLSBXU0wgc2hvdWxkIG5vdCBwZXJtaXQgKm91dC1vZi1ib3VuZHMqIG1lbW9yeSBhY2Nl
c3Nlcy4KLS0gV1NMIHNob3VsZCBiZSBoYXZlICpsb3cgb3ZlcmhlYWQqLgotCi1UaGUgY29tYmlu
YXRpb24gb2YgYSBzb3VuZCB0eXBlIHN5c3RlbSBhbmQgYm91bmRzIGNoZWNraW5nIG1ha2VzIFdT
TCBhIHNlY3VyZSBzaGFkZXIgbGFuZ3VhZ2U6IHRoZSBsYW5ndWFnZSBpdHNlbGYgaXMgcmVzcG9u
c2libGUgZm9yIGlzb2xhdGluZyB0aGUgc2hhZGVyIGZyb20gdGhlIHJlc3Qgb2YgdGhlIEdQVS4K
LQotIyBGYW1pbGlhciBTeW50YXgKLQotV1NMIGlzIGJhc2VkIG9uIEMgc3ludGF4LCBidXQgZXhj
bHVkZXMgZmVhdHVyZXMgdGhhdCBhcmUgZWl0aGVyIHVubmVjZXNzYXJ5LCBpbnNlY3VyZSwgb3Ig
cmVwbGFjZWQgYnkgb3RoZXIgV1NMIGZlYXR1cmVzOgotCi0tIE5vIHN0cmluZ3MuCi0tIE5vIGBy
ZWdpc3RlcmAsIGB2b2xhdGlsZWAsIGBjb25zdGAsIGByZXN0cmljdGAsIG9yIGBleHRlcm5gIGtl
eXdvcmRzLgotLSBObyB1bmlvbnMuIGB1bmlvbmAgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gZ290
byBvciBsYWJlbHMuIGBnb3RvYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBgKmAgcG9pbnRlcnMu
Ci0tIEVmZmVjdGxlc3MgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdGF0ZW1lbnRzIChgYSArIGI7YCBp
cyBhIHBhcnNlIGVycm9yKS4KLS0gTm8gdW5kZWZpbmVkIHZhbHVlcyAoYGludCB4O2AgaW5pdGlh
bGl6ZXMgeCB0byAwKS4KLS0gTm8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbnMgKGBpbnQgeDsg
dWludCB5ID0geDtgIGlzIGEgdHlwZSBlcnJvcikuCi0tIE5vIHJlY3Vyc2lvbi4KLS0gTm8gZHlu
YW1pYyBtZW1vcnkgYWxsb2NhdGlvbi4KLS0gTm8gbW9kdWxhcml0eS4gVGhlIHdob2xlIHByb2dy
YW0gaXMgb25lIGZpbGUuCi0KLU9uIHRvcCBvZiB0aGlzIGJhcmUgQy1saWtlIGZvdW5kYXRpb24s
IFdTTCBhZGRzIHNlY3VyZSB2ZXJzaW9ucyBvZiBmYW1pbGlhciBDKysgZmVhdHVyZXM6Ci0KLS0g
VHlwZS1zYWZlIHBvaW50ZXJzIChgXmApIGFuZCBhcnJheSByZWZlcmVuY2VzIChgW11gKS4KLS0g
R2VuZXJpY3MgdG8gcmVwbGFjZSB0ZW1wbGF0ZXMuCi0tIE9wZXJhdG9yIG92ZXJsb2FkaW5nLiBC
dWlsdC1pbiBvcGVyYXRpb25zIGxpa2UgYGludCBvcGVyYXRvcisoaW50LCBpbnQpYCBhcmUganVz
dCBuYXRpdmUgZnVuY3Rpb25zLgotLSBDYXN0IG92ZXJsb2FkaW5nLiBCdWlsdC1pbiBjYXN0cyBs
aWtlIGBvcGVyYXRvciBpbnQoZG91YmxlKWAgYXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0g
R2V0dGVycyBhbmQgc2V0dGVycy4gUHJvcGVydHkgYWNjZXNzZXMgbGlrZSBgdmVjLnhgIHJlc29s
dmUgdG8gb3ZlcmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yLmZpZWxkKGZsb2F0NClgLgotLSBB
cnJheSBhY2Nlc3Mgb3ZlcmxvYWRpbmcuIEFycmF5IGFjY2Vzc2VzIGxpa2UgYHZlY1swXWAgcmVz
b2x2ZSB0byB2ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCwgdWludClgLgot
Ci1JbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCBXU0wgaXMgc2hvd24gYnkgZXhhbXBsZSBzdGFy
dGluZyB3aXRoIGl0cyBDLWxpa2UgZm91bmRhdGlvbiBhbmQgdGhlbiBidWlsZGluZyB1cCB0byBp
bmNsdWRlIG1vcmUgc29waGlzdGljYXRlZCBmZWF0dXJlcyBsaWtlIGdlbmVyaWNzLgotCi0jIyBD
b21tb24gc3Vic2V0IG9mIEMgYW5kIFdTTAotCi1UaGUgZm9sbG93aW5nIGlzIGEgdmFsaWQgV1NM
IGZ1bmN0aW9uIGRlZmluaXRpb246Ci0KLSAgICBpbnQgZm9vKGludCB4LCBpbnQgeSwgYm9vbCBw
KQotICAgIHsKLSAgICAgICAgaWYgKHApCi0gICAgICAgICAgICByZXR1cm4geCAtIHk7Ci0gICAg
ICAgIHJldHVybiB4ICsgeTsKLSAgICB9Ci0KLVdTTCBzb3VyY2UgZmlsZXMgYmVoYXZlIHNpbWls
YXJseSB0byBDIHNvdXJjZSBmaWxlczoKLQotLSBUb3AtbGV2ZWwgc3RhdGVtZW50cyBtdXN0IGJl
IHR5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCi0tIFdTTCB1c2VzIHN0cnVjdHVyZWQgQyBj
b250cm9sIGZsb3cgY29uc3RydWN0cywgbGlrZSBgaWZgLCBgd2hpbGVgLCBgZm9yYCwgYGRvYCwg
YGJyZWFrYCwgYW5kIGBjb250aW51ZWAuCi0tIFdTTCB1c2VzIEMtbGlrZSBgc3dpdGNoYCBzdGF0
ZW1lbnRzLCBidXQgZG9lcyBub3QgYWxsb3cgdGhlbSB0byBvdmVybGFwIG90aGVyIGNvbnRyb2wg
ZmxvdyAoaS5lLiBubyBbRHVmZidzIGRldmljZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvRHVmZiUyN3NfZGV2aWNlKSkuCi0tIFdTTCBhbGxvd3MgdmFyaWFibGUgZGVjbGFyYXRpb25z
IGFueXdoZXJlIEMrKyB3b3VsZC4KLQotV1NMIHR5cGVzIGRpZmZlciBmcm9tIEMgdHlwZXMuIEZv
ciBleGFtcGxlLCB0aGlzIGlzIGFuIGFycmF5IG9mIDQyIGludGVnZXJzIGluIFdTTDoKLQotICAg
IGludFs0Ml0gYXJyYXk7Ci0KLVRoZSB0eXBlIG5ldmVyIHN1cnJvdW5kcyB0aGUgdmFyaWFibGUs
IGxpa2UgaXQgd291bGQgaW4gQyAoYGludCBhcnJheVs0Ml1gKS4KLQotIyMgVHlwZS1zYWZlIHBv
aW50ZXJzCi0KLVdTTCBpbmNsdWRlcyBhIHNlY3VyZSBwb2ludGVyIHR5cGUuIFRvIGVtcGhhc2l6
ZSB0aGF0IGl0IGlzIG5vdCBsaWtlIHRoZSBDIHBvaW50ZXIsIFdTTCB1c2VzIGBeYCBmb3IgdGhl
IHBvaW50ZXIgdHlwZSBhbmQgZm9yIGRlcmVmZXJlbmNlLiBMaWtlIGluIEMsIGAmYCBpcyB1c2Vk
IHRvIHRha2UgdGhlIGFkZHJlc3Mgb2YgYSB2YWx1ZS4gIEJlY2F1c2UgR1BVcyBoYXZlIGRpZmZl
cmVudCBraW5kcyBvZiBtZW1vcmllcywgcG9pbnRlcnMgbXVzdCBiZSBhbm5vdGF0ZWQgd2l0aCBh
biBhZGRyZXNzIHNwYWNlIChvbmUgb2YgYHRocmVhZGAsIGB0aHJlYWRncm91cGAsIGBkZXZpY2Vg
LCBvciBgY29uc3RhbnRgKS4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGJhcih0aHJlYWQgaW50
XiBwKQotICAgIHsKLSAgICAgICAgXnAgKz0gNDI7Ci0gICAgfQotICAgIGludCBmb28oKQotICAg
IHsKLSAgICAgICAgaW50IHggPSAyNDsKLSAgICAgICAgYmFyKCZ4KTsKLSAgICAgICAgcmV0dXJu
IHg7IC8vIFJldHVybnMgNjYuCi0gICAgfQotCi1Qb2ludGVycyBjYW4gYmUgYG51bGxgLiBFYWNo
IHBvaW50ZXIgYWNjZXNzIGlzIG51bGwtY2hlY2tlZCwgdGhvdWdoIG1vc3QgcG9pbnRlciBhY2Nl
c3NlcyAobGlrZSB0aGlzIG9uZSkgd2lsbCBub3QgaGF2ZSBhIG51bGwgY2hlY2suIFdTTCBwbGFj
ZXMgZW5vdWdoIGNvbnN0cmFpbnRzIG9uIHRoZSBwcm9ncmFtbWVyIHRoYXQgcHJvZ3JhbXMgYXJl
IGVhc3kgZm9yIHRoZSBjb21waWxlciB0byBhbmFseXplLiBUaGUgY29tcGlsZXIgd2lsbCBhbHdh
eXMga25vdyB0aGF0IGBecCArPSA0MmAgYWRkcyBgNDJgIHRvIGB4YCBpbiB0aGlzIGNhc2UuCi0K
LVdTTCBwb2ludGVycyBkbyBub3Qgc3VwcG9ydCBjYXN0aW5nIG9yIHBvaW50ZXIgYXJpdGhtZXRp
Yy4gQWxsIG1lbW9yeSBhY2Nlc3NpYmxlIHRvIGEgc2hhZGVyIG91dGxpdmVzIHRoZSBzaGFkZXIu
IFRoaXMgaXMgZXZlbiB0cnVlIG9mIGxvY2FsIHZhcmlhYmxlcy4gVGhpcyBpcyBwb3NzaWJsZSBi
ZWNhdXNlIFdTTCBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2lvbi4gVGhlcmVmb3JlLCBsb2NhbCB2
YXJpYWJsZXMgc2ltcGx5IGdldCBnbG9iYWwgc3RvcmFnZS4gTG9jYWwgdmFyaWFibGVzIGFyZSBp
bml0aWFsaXplZCBhdCB0aGUgcG9pbnQgb2YgdGhlaXIgZGVjbGFyYXRpb24uIEhlbmNlLCB0aGUg
Zm9sbG93aW5nIGlzIGEgdmFsaWQgcHJvZ3JhbSwgd2hpY2ggd2lsbCBleGhpYml0IHRoZSBzYW1l
IGJlaGF2aW9yIG9uIGV2ZXJ5IFdTTCBpbXBsZW1lbnRhdGlvbjoKLQotICAgIHRocmVhZCBpbnRe
IGZvbygpCi0gICAgewotICAgICAgICBpbnQgeCA9IDQyOwotICAgICAgICByZXR1cm4gJng7Ci0g
ICAgfQotICAgIGludCBiYXIoKQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygp
OwotICAgICAgICB0aHJlYWQgaW50XiBxID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIHJldHVybiBecTsgLy8gUmV0dXJucyA1My4KLSAgICB9Ci0gICAgaW50IGJheigpCi0gICAg
ewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIGZvbygpOwotICAgICAgICByZXR1cm4gXnA7IC8vIFJldHVybnMgNDIuCi0gICAgfQotCi1J
dCdzIHBvc3NpYmxlIHRvIHBvaW50IHRvIGFueSBraW5kIG9mIGRhdGEgdHlwZS4gRm9yIGV4YW1w
bGUsIGB0aHJlYWQgZG91YmxlWzQyXV5gIGlzIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA0MiBk
b3VibGVzLgotCi0jIyBUeXBlLXNhZmUgYXJyYXkgcmVmZXJlbmNlcwotCi1XU0wgc3VwcG9ydHMg
YXJyYXkgcmVmZXJlbmNlcyB0aGF0IGNhcnJ5IGEgcG9pbnRlciB0byB0aGUgYmFzZSBvZiB0aGUg
YXJyYXkgYW5kIHRoZSBhcnJheSdzIGxlbmd0aC4gVGhpcyBhbGxvd3MgYWNjZXNzZXMgdG8gdGhl
IGFycmF5IHRvIGJlIGJvdW5kcy1jaGVja2VkLgotCi1BbiBhcnJheSByZWZlcmVuY2UgY2FuIGJl
IGNyZWF0ZWQgdXNpbmcgdGhlIGBAYCBvcGVyYXRvcjoKLQotICAgIGludFs0Ml0gYXJyYXk7Ci0g
ICAgdGhyZWFkIGludFtdIGFycmF5UmVmID0gQGFycmF5OwotCi1Cb3RoIGFycmF5cyBhbmQgYXJy
YXkgcmVmZXJlbmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gYW5kIHN0b3JlZCB0byB1c2luZyBgb3Bl
cmF0b3JbXWA6Ci0KLSAgICBpbnQgeCA9IGFycmF5W2ldOwotICAgIGludCB5ID0gYXJyYXlSZWZb
aV07Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2VzIGtub3cgdGhlaXIgbGVuZ3Ro
OgotCi0gICAgdWludCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKLSAgICB1aW50IGFycmF5
UmVmTGVuZ3RoID0gYXJyYXlSZWYubGVuZ3RoOwotCi1HaXZlbiBhbiBhcnJheSBvciBhcnJheSBy
ZWZlcmVuY2UsIGl0J3MgcG9zc2libGUgdG8gZ2V0IGEgcG9pbnRlciB0byBvbmUgb2YgaXRzIGVs
ZW1lbnRzOgotCi0gICAgdGhyZWFkIGludF4gcHRyMSA9ICZhcnJheVtpXTsKLSAgICB0aHJlYWQg
aW50XiBwdHIyID0gJmFycmF5UmVmW2ldOwotCi1BIHBvaW50ZXIgaXMgbGlrZSBhbiBhcnJheSBy
ZWZlcmVuY2Ugd2l0aCBvbmUgZWxlbWVudC4gSXQncyBwb3NzaWJsZSB0byBwZXJmb3JtIHRoaXMg
Y29udmVyc2lvbjoKLQotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAcHRyMTsKLSAgICByZWZbMF0g
Ly8gRXF1aXZhbGVudCB0byBecHRyMS4KLSAgICByZWYubGVuZ3RoIC8vIDAgaWYgcHRyMSB3YXMg
bnVsbCwgMSBpZiBwdHIxIHdhcyBub3QgbnVsbC4KLQotU2ltaWxhcmx5LCB1c2luZyBgQGAgb24g
YSBub24tcG9pbnRlciB2YWx1ZSByZXN1bHRzIGluIGEgcmVmZXJlbmNlIG9mIGxlbmd0aCAxOgot
Ci0gICAgaW50IHg7Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEB4OwotICAgIHJlZlswXSAvLyBB
bGlhc2VzIHguCi0gICAgcmVmLmxlbmd0aCAvLyBSZXR1cm5zIDEuCi0KLUl0J3Mgbm90IGxlZ2Fs
IHRvIHVzZSBgQGAgb24gYW4gYXJyYXkgcmVmZXJlbmNlOgotCi0gICAgdGhyZWFkIGludFtdIHJl
ZjsKLSAgICB0aHJlYWQgaW50W11bXSByZWZlcmVmID0gQHJlZjsgLy8gRXJyb3IhCi0KLSMjIEdl
bmVyaWNzCi0KLVdTTCBzdXBwb3J0cyBnZW5lcmljIHR5cGVzIHVzaW5nIGEgc2ltcGxlIHN5bnRh
eC4gV1NMJ3MgZ2VuZXJpYyBhcmUgZGVzaWduZWQgdG8gaW50ZWdyYXRlIGNsZWFubHkgaW50byB0
aGUgY29tcGlsZXIgcGlwZWxpbmU6Ci0KLS0gR2VuZXJpY3MgaGF2ZSB1bmFtYmlndW91cyBzeW50
YXguCi0tIEdlbmVyaWMgZnVuY3Rpb25zIGNhbiBiZSB0eXBlIGNoZWNrZWQgYmVmb3JlIHRoZXkg
YXJlIGluc3RhbnRpYXRlZC4KLQotU2VtYW50aWMgZXJyb3JzIGluc2lkZSBnZW5lcmljIGZ1bmN0
aW9ucyBzaG93IHVwIG9uY2UgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBn
ZW5lcmljIGZ1bmN0aW9uIGlzIGluc3RhbnRpYXRlZC4KLQotVGhpcyBpcyBhIHNpbXBsZSBnZW5l
cmljIGZ1bmN0aW9uOgotCi0gICAgVCBpZGVudGl0eTxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgVCB0bXAgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci0KLVdTTCBhbHNv
IHN1cHBvcnRzIHN0cnVjdHMsIHdoaWNoIGFyZSBhbHNvIGFsbG93ZWQgdG8gYmUgZ2VuZXJpYzoK
LQotICAgIC8vIE5vdCBnZW5lcmljLgotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgeDsK
LSAgICAgICAgZG91YmxlIHk7Ci0gICAgfQotICAgIC8vIEdlbmVyaWMuCi0gICAgc3RydWN0IEJh
cjxULCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLQotVHlwZSBwYXJh
bWV0ZXJzIGNhbiBhbHNvIGJlIGNvbnN0YW50IGV4cHJlc3Npb25zLiBGb3IgZXhhbXBsZToKLQot
ICAgIHZvaWQgaW5pdGlhbGl6ZUFycmF5PFQsIHVpbnQgbGVuZ3RoPih0aHJlYWQgVFtsZW5ndGhd
XiBhcnJheSwgVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGZvciAodWludCBpID0gbGVuZ3RoOyBp
LS07KQotICAgICAgICAgICAgKF5hcnJheSlbaV0gPSB2YWx1ZTsKLSAgICB9Ci0KLUNvbnN0YW50
IGV4cHJlc3Npb25zIHBhc3NlZCBhcyB0eXBlIGFyZ3VtZW50cyBtdXN0IG9iZXkgYSB2ZXJ5IG5h
cnJvdyBkZWZpbml0aW9uIG9mIGNvbnN0YW50bmVzcy4gT25seSBsaXRlcmFscyBhbmQgcmVmZXJl
bmNlcyB0byBvdGhlciBjb25zdGFudCBwYXJhbWV0ZXJzIHF1YWxpZnkuCi0KLVdTTCBpcyBndWFy
YW50ZWVkIHRvIGNvbXBpbGUgZ2VuZXJpY3MgYnkgaW5zdGFudGlhdGlvbi4gVGhpcyBpcyBvYnNl
cnZhYmxlLCBzaW5jZSBmdW5jdGlvbnMgY2FuIHJldHVybiBwb2ludGVycyB0byB0aGVpciBsb2Nh
bHMuIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHBoZW5vbWVub246Ci0KLSAgICB0aHJlYWQg
aW50XiBhbGxvY2F0ZTx1aW50PigpCi0gICAgewotICAgICAgICBpbnQgeDsKLSAgICAgICAgcmV0
dXJuICZ4OwotICAgIH0KLQotVGhlIGBhbGxvY2F0ZWAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBk
aWZmZXJlbnQgcG9pbnRlciBmb3IgZWFjaCB1bnNpZ25lZCBpbnRlZ2VyIGNvbnN0YW50IHBhc3Nl
ZCBhcyBhIHR5cGUgcGFyYW1ldGVyLiBUaGlzIGFsbG9jYXRpb24gaXMgY29tcGxldGVseSBzdGF0
aWMsIHNpbmNlIHRoZSBgdWludGAgcGFyYW1ldGVyIG11c3QgYmUgZ2l2ZW4gYSBjb21waWxlLXRp
bWUgY29uc3RhbnQuCi0KLVdTTCdzIGB0eXBlZGVmYCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50
IHN5bnRheCB0aGFuIEMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewot
ICAgICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgdHlwZWRlZiBGQ29t
cGxleCA9IENvbXBsZXg8ZmxvYXQ+OwotCi1gdHlwZWRlZmAgY2FuIGJlIHVzZWQgdG8gY3JlYXRl
IGdlbmVyaWMgdHlwZXM6Ci0KLSAgICBzdHJ1Y3QgRm9vPFQsIFU+IHsKLSAgICAgICAgVCB4Owot
ICAgICAgICBVIHk7Ci0gICAgfQotICAgIHR5cGVkZWYgQmFyPFQ+ID0gRm9vPFQsIFQ+OwotCi0j
IyBQcm90b2NvbHMKLQotUHJvdG9jb2xzIGVuYWJsZSBnZW5lcmljIGZ1bmN0aW9ucyB0byB3b3Jr
IHdpdGggZGF0YSBvZiBnZW5lcmljIHR5cGUuIEJlY2F1c2UgYSBmdW5jdGlvbiBtdXN0IGJlIHR5
cGUtY2hlY2thYmxlIGJlZm9yZSBpbnN0YW50aWF0aW9uLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5v
dCBiZSBsZWdhbDoKLQotICAgIGludCBiYXIoaW50KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihk
b3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBUIGZvbzxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGJhcih2YWx1ZSk7IC8vIEVycm9yIQotICAgIH0KLQotVGhlIGNhbGwgdG8gYGJh
cmAgZG9lc24ndCB0eXBlIGNoZWNrIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbm5vdCBrbm93IHRo
YXQgYGZvbzxUPmAgd2lsbCBiZSBpbnN0YW50aWF0ZWQgd2l0aCBgVCA9IGludGAgb3IgYFQgPSBk
b3VibGVgLiBQcm90b2NvbHMgZW5hYmxlIHRoZSBwcm9ncmFtbWVyIHRvIHRlbGwgdGhlIGNvbXBp
bGVyIHdoYXQgdG8gZXhwZWN0IG9mIGEgdHlwZSB2YXJpYWJsZToKLQotICAgIGludCBiYXIoaW50
KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihkb3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBwcm90
b2NvbCBTdXBwb3J0c0JhciB7Ci0gICAgICAgIFN1cHBvcnRzQmFyIGJhcihTdXBwb3J0c0Jhcik7
Ci0gICAgfQotICAgIAotICAgIFQgZm9vPFQ6U3VwcG9ydHNCYXI+KFQgdmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYmFyKHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgaW50IHggPSBmb28o
NDIpOwotICAgIGRvdWJsZSB5ID0gZm9vKDQuMik7Ci0KLVByb3RvY29scyBoYXZlIGF1dG9tYXRp
YyByZWxhdGlvbnNoaXBzIHRvIG9uZSBhbm90aGVyIGJhc2VkIG9uIHdoYXQgZnVuY3Rpb25zIHRo
ZXkgY29udGFpbjoKLQotICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7
Ci0gICAgfQotICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgIHZvaWQgZm9vKEJhcik7Ci0gICAg
ICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4u
LiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewotICAgICAgICBmdXp6KHgpOyAv
LyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIEZvby4gICAgCi0gICAgfQot
Ci1Qcm90b2NvbHMgY2FuIGFsc28gbWl4IG90aGVyIHByb3RvY29scyBpbiBleHBsaWNpdGx5LiBM
aWtlIGluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgZXhhbXBsZSBiZWxvdyByZWxpZXMgb24gdGhl
IGZhY3QgdGhhdCBgQmFyYCBpcyBhIG1vcmUgc3BlY2lmaWMgcHJvdG9jb2wgdGhhbiBgRm9vYC4g
SG93ZXZlciwgdGhpcyBleGFtcGxlIGRlY2xhcmVzIHRoaXMgZXhwbGljaXRseSAoYHByb3RvY29s
IEJhciA6IEZvb2ApIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgbGFuZ3VhZ2UgdG8gaW5mZXIg
aXQ6Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0K
LSAgICBwcm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0K
LSAgICB2b2lkIGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4o
VCB4KQotICAgIHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUg
c3BlY2lmaWMgdGhhbiBGb28uICAgIAotICAgIH0KLQotIyMgT3ZlcmxvYWRpbmcKLQotV1NMIHN1
cHBvcnRzIG92ZXJsb2FkaW5nIHZlcnkgc2ltaWxhcmx5IHRvIGhvdyBDKysgZG9lcyBpdC4gRm9y
IGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91
YmxlKTsgLy8gMgotICAgIAotICAgIGludCB4OwotICAgIGZvbyh4KTsgLy8gY2FsbHMgMQotICAg
IAotICAgIGRvdWJsZSB5OwotICAgIGZvbyh5KTsgLy8gY2FsbHMgMgotCi1XU0wgYXV0b21hdGlj
YWxseSBzZWxlY3RzIHRoZSBtb3N0IHNwZWNpZmljIG92ZXJsb2FkIGlmIGdpdmVuIG11bHRpcGxl
IGNob2ljZXMuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAg
IHZvaWQgZm9vKGRvdWJsZSk7IC8vIDIKLSAgICB2b2lkIGZvbzxUPihUKTsgICAvLyAzCi0KLSAg
ICBmb28oMSk7IC8vIGNhbGxzIDEKLSAgICBmb28oMS4pOyAvLyBjYWxscyAyCi0gICAgZm9vKDF1
KTsgLy8gY2FsbHMgMwotCi1HZW5lcmljIGZ1bmN0aW9ucyBsaWtlIGBmb288VD5gIGNhbiBiZSBj
YWxsZWQgd2l0aCBvciB3aXRob3V0IGFsbCBvZiB0aGVpciB0eXBlIGFyZ3VtZW50cyBzdXBwbGll
ZC4gSWYgdGhleSBhcmUgbm90IHN1cHBsaWVkLCB0aGUgZnVuY3Rpb24gcGFydGljaXBhdGVzIGlu
IG92ZXJsb2FkIHJlc29sdXRpb24gbGlrZSBhbnkgb3RoZXIgZnVuY3Rpb24gd291bGQuIEZ1bmN0
aW9ucyBhcmUgcmFua2VkIGJ5IGhvdyBzcGVjaWZpYyB0aGV5IGFyZTsgZnVuY3Rpb24gQSBpcyBt
b3JlIHNwZWNpZmljIHRoYW4gZnVuY3Rpb24gQiBpZiBBJ3MgcGFyYW1ldGVyIHR5cGVzIGNhbiBi
ZSB1c2VkIGFzIGFyZ3VtZW50IHR5cGVzIGZvciBhIGNhbGwgdG8gQiBidXQgbm90IHZpY2UtdmVy
c2EuIElmIG9uZSBmdW5jdGlvbnMgbW9yZSBzcGVjaWZpYyB0aGFuIGFsbCBvdGhlcnMgdGhlbiB0
aGlzIGZ1bmN0aW9uIGlzIHNlbGVjdGVkLCBvdGhlcndpc2UgYSB0eXBlIGVycm9yIGlzIGlzc3Vl
ZC4KLQotIyMgT3BlcmF0b3IgT3ZlcmxvYWRpbmcKLQotTWFueSBXU0wgb3BlcmF0aW9ucyBkZXN1
Z2FyIHRvIGNhbGxzIHRvIGZ1bmN0aW9ucy4gVGhvc2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgKm9w
ZXJhdG9yIG92ZXJsb2FkcyogYW5kIGFyZSBkZWNsYXJlZCB1c2luZyBzeW50YXggdGhhdCBpbnZv
bHZlcyB0aGUga2V5d29yZCBgb3BlcmF0b3JgLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgcmVz
dWx0IGluIGNhbGxzIHRvIG9wZXJhdG9yIG92ZXJsb2FkczoKLQotLSBOdW1lcmljYWwgb3BlcmF0
b3JzIChgK2AsIGAtYCwgYCpgLCBgL2AsIGV0Yy4pLgotLSBJbmNyZW1lbnQgYW5kIGRlY3JlbWVu
dCAoYCsrYCwgYC0tYCkuCi0tIENhc3RpbmcgKGB0eXBlKHZhbHVlKWApLgotLSBBY2Nlc3Npbmcg
dmFsdWVzIGluIGFycmF5cyAoYFtdYCwgYFtdPWAsIGAmW11gKS4KLS0gQWNjZXNzaW5nIGZpZWxk
cyAoYC5maWVsZGAsIGAuZmllbGQ9YCwgYCYuZmllbGRgKS4KLQotV1NMJ3Mgb3BlcmF0b3Igb3Zl
cmxvYWRpbmcgaXMgZGVzaWduZWQgdG8gc3ludGhlc2l6ZSBtYW55IG9wZXJhdG9ycyBmb3IgeW91
OgotCi0tIFJlYWQtbW9kaWZ5LXdyaXRlIG9wZXJhdG9ycyBsaWtlIGArPWAgYXJlIGRlc3VnYXJl
ZCB0byBhIGxvYWQgb2YgdGhlIGxvYWQgdmFsdWUsIHRoZSB1bmRlcmx5aW5nIG9wZXJhdG9yIChs
aWtlIGArYCksIGFuZCBhIHN0b3JlIG9mIHRoZSBuZXcgdmFsdWUuIEl0J3Mgbm90IHBvc3NpYmxl
IHRvIG92ZXJyaWRlIGArPWAsIGAtPWAsIGV0Yy4KLS0gYHgrK2AgYW5kIGArK3hgIGJvdGggY2Fs
bCB0aGUgc2FtZSBvcGVyYXRvciBvdmVybG9hZC4gYG9wZXJhdG9yKytgIHRha2VzIHRoZSBvbGQg
dmFsdWUgYW5kIHJldHVybnMgYSBuZXcgb25lOyBmb3IgZXhhbXBsZSB0aGUgYnVpbHQtaW4gYCsr
YCBmb3IgYGludGAgY291bGQgYmUgd3JpdHRlbiBhczogYGludCBvcGVyYXRvcisrKGludCB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9YC4KLS0gYG9wZXJhdG9yPT1gIGNhbiBiZSBvdmVybG9h
ZGVkLCBidXQgYCE9YCBpcyBhdXRvbWF0aWNhbGx5IHN5bnRoZXNpemVkIGFuZCBjYW5ub3QgYmUg
b3ZlcmxvYWRlZC4KLQotU29tZSBvcGVyYXRvcnMgYW5kIG92ZXJsb2FkcyBhcmUgcmVzdHJpY3Rl
ZDoKLQotLSBgIWAsIGAmJmAsIGFuZCBgfHxgIGFyZSBidWlsdC1pbiBvcGVyYXRpb25zIG9uIHRo
ZSBgYm9vbGAgdHlwZS4KLS0gU2VsZi1jYXN0cyAoYFQoVClgKSBhcmUgYWx3YXlzIHRoZSBpZGVu
dGl0eSBmdW5jdGlvbi4KLS0gQ2FzdHMgd2l0aCBubyBhcmd1bWVudHMgKGBUKClgKSBhbHdheXMg
cmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGF0IHR5cGUuIEV2ZXJ5IHR5cGUgaGFzIGEg
ZGVmYXVsdCB2YWx1ZSAoYDBgLCBgbnVsbGAsIG9yIHRoZSBlcXVpdmFsZW50IGZvciBlYWNoIGZp
ZWxkKS4KLQotQ2FzdCBvdmVybG9hZGluZyBhbGxvd3MgZm9yIHN1cHBvcnRpbmcgY29udmVyc2lv
bnMgYmV0d2VlbiB0eXBlcyBhbmQgZm9yIGNyZWF0aW5nIGNvbnN0cnVjdG9ycyBmb3IgY3VzdG9t
IHR5cGVzLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgY2FzdCBvdmVybG9hZGluZyBiZWluZyB1c2Vk
IHRvIGNyZWF0ZSBhIGNvbnN0cnVjdG9yOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewotICAg
ICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgb3BlcmF0b3I8VD4gQ29t
cGxleDxUPihUIHJlYWwsIFQgaW1hZykKLSAgICB7Ci0gICAgICAgIENvbXBsZXg8VD4gcmVzdWx0
OwotICAgICAgICByZXN1bHQucmVhbCA9IHJlYWw7Ci0gICAgICAgIHJlc3VsdC5pbWFnID0gaW1h
ZzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgQ29tcGxleDxmbG9h
dD4gaSA9IENvbXBsZXg8ZmxvYXQ+KDAsIDEpOwotCi1XU0wgc3VwcG9ydHMgYWNjZXNzb3Igb3Zl
cmxvYWRpbmcgYXMgcGFydCBvZiB0aGUgb3BlcmF0b3Igb3ZlcmxvYWRpbmcgc3ludGF4LiBUaGlz
IGdpdmVzIHRoZSBwcm9ncmFtbWVyIGJyb2FkIHBvd2Vycy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBz
dHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIGludCB5OwotICAgIH0KLSAgICBp
bnQgb3BlcmF0b3Iuc3VtKEZvbyBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gZm9vLnggKyBm
b28ueTsKLSAgICB9Ci0KLUl0J3MgcG9zc2libGUgdG8gc2F5IGBmb28uc3VtYCB0byBjYWxsIHRo
ZSBgb3BlcmF0b3Iuc3VtYCBmdW5jdGlvbi4gQm90aCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGNhbiBi
ZSBwcm92aWRlZDoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgdmFsdWU7Ci0gICAg
fQotICAgIGRvdWJsZSBvcGVyYXRvci5kb3VibGVWYWx1ZShGb28gdmFsdWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gZG91YmxlKHZhbHVlLnZhbHVlKTsKLSAgICB9Ci0gICAgRm9vIG9wZXJhdG9y
LmRvdWJsZVZhbHVlPShGb28gdmFsdWUsIGRvdWJsZSBkb3VibGVWYWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHZhbHVlLnZhbHVlID0gaW50KGRvdWJsZVZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHZhbHVl
OwotICAgIH0KLQotUHJvdmlkaW5nIGJvdGggZ2V0dGVyIGFuZCBzZXR0ZXIgb3ZlcmxvYWRzIG1h
a2VzIGBkb3VibGVWYWx1ZWAgYmVoYXZlIGFsbW9zdCBhcyBpZiBpdCB3YXMgYSBmaWVsZCBvZiBg
Rm9vYC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdG8gc2F5OgotCi0gICAgRm9vIGZvbzsK
LSAgICBmb28udmFsdWUgPSA0MjsKLSAgICBmb28uZG91YmxlVmFsdWUgKj0gMjsgLy8gTm93IGZv
by52YWx1ZSBpcyA4NAotCi1JdCdzIGFsc28gcG9zc2libGUgdG8gcHJvdmlkZSBhbiBhZGRyZXNz
LWdldHRpbmcgb3ZlcmxvYWQgY2FsbGVkIGFuICphbmRlcio6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAgICB0aHJlYWQgaW50XiBvcGVyYXRvciYudmFs
dWVBbGlhcyh0aHJlYWQgRm9vXiBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gJmZvby0+dmFs
dWU7Ci0gICAgfQotCi1Qcm92aWRpbmcganVzdCB0aGlzIG92ZXJsb2FkIGZvciBhIHBvaW50ZXIg
dHlwZSBpbiBldmVyeSBhZGRyZXNzIHNwYWNlIGdpdmVzIHRoZSBzYW1lIHBvd2VyIGFzIG92ZXJs
b2FkaW5nIGdldHRlcnMgYW5kIHNldHRlcnMuIEFkZGl0aW9uYWxseSwgaXQgbWFrZXMgaXQgcG9z
c2libGUgdG8gYCZmb28udmFsdWVBbGlhc2AuCi0KLVRoZSBzYW1lIG92ZXJsb2FkaW5nIHBvd2Vy
IGlzIHByb3ZpZGVkIGZvciBhcnJheSBhY2Nlc3Nlcy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1
Y3QgVmVjdG9yPFQ+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBUIHk7Ci0gICAgfQotICAgIHRo
cmVhZCBUXiBvcGVyYXRvciZbXSh0aHJlYWQgVF4gcHRyLCB1aW50IGluZGV4KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGluZGV4ID8gJnB0ci0+eSA6ICZwdHItPng7Ci0gICAgfQotCi1BbHRlcm5h
dGl2ZWx5LCBpdCdzIHBvc3NpYmxlIHRvIG92ZXJsb2FkIGdldHRlcnMgYW5kIHNldHRlcnMgKGBv
cGVyYXRvcltdYCBhbmQgYG9wZXJhdG9yW109YCkuCi0KLSMgTWFwcGluZyBvZiBBUEkgY29uY2Vw
dHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWZ1bCBhcyBib3RoIGEgZ3JhcGhpY3Mgc2hh
ZGluZyBsYW5ndWFnZSBhbmQgYXMgYSBjb21wdXRhdGlvbiBsYW5ndWFnZS4gSG93ZXZlciwgdGhl
c2UgdHdvIGVudmlyb25tZW50cyBoYXZlCi1zbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzLgot
Ci1XaGVuIHVzaW5nIFdTTCBhcyBhIGdyYXBoaWNzIHNoYWRpbmcgbGFuZ3VhZ2UsIHRoZXJlIGlz
IGEgZGlzdGluY3Rpb24gYmV0d2VlbiAqZW50cnktcG9pbnRzKiBhbmQgKm5vbi1lbnRyeS1wb2lu
dHMqLiBFbnRyeSBwb2ludHMgYXJlIHRvcC1sZXZlbCBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBlaXRo
ZXIgdGhlIGB2ZXJ0ZXhgIG9yIGBmcmFnbWVudGAga2V5d29yZCBpbiBmcm9udCBvZiB0aGVpciBk
ZWNsYXJhdGlvbi4gRW50cnkgcG9pbnRzIG1heSBub3QgYmUgZm9yd2FyZCBkZWNsYXJlZC4gQW4g
ZW50cnkgcG9pbnQgYW5ub3RhdGVkIHdpdGggdGhlIGB2ZXJ0ZXhgIGtleXdvcmQgbWF5IG5vdCBi
ZSB1c2VkIGFzIGEgZnJhZ21lbnQgc2hhZGVyLCBhbmQgYW4gZW50cnkgcG9pbnQgYW5ub3RhdGVk
IHdpdGggdGhlIGBmcmFnbWVudGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSB2ZXJ0ZXgg
c2hhZGVyLiBObyBhcmd1bWVudCBub3IgcmV0dXJuIHZhbHVlIG9mIGFuIGVudHJ5IHBvaW50IG1h
eSBiZSBhIHBvaW50ZXIuIEVudHJ5IHBvaW50cyBtdXN0IG5vdCBhY2NlcHQgdHlwZSBhcmd1bWVu
dHMgKGFsc28ga25vd24gYXMgImdlbmVyaWNzIikuCi0KLSMjIFZlcnRleCBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgV1NMIHZlcnRleCBzaGFkZXIgaW4gZm91
ciB3YXlzOgotCi0tIEF0dHJpYnV0ZXMKLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEK
LS0gU2FtcGxlcnMKLQotRWFjaCBvZiB0aGVzZSBBUEkgb2JqZWN0cyBpcyByZWZlcnJlZCB0byBi
eSBuYW1lIGZyb20gdGhlIEFQSS4gVmFyaWFibGVzIGluIFdTTCBhcmUgbm90IGFubm90YXRlZCB3
aXRoIGV4dHJhIEFQSS12aXNpYmxlIG5hbWVzIChsaWtlIHRoZXkgYXJlIGluIHNvbWUgb3RoZXIg
Z3JhcGhpY3MgQVBJcykuCi0KLVZhcmlhYmxlcyBhcmUgcGFzc2VkIHRvIHZlcnRleCBzaGFkZXJz
IGFzIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludC4gRWFjaCBidWZmZXIgaXMgcmVw
cmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAodXNp
bmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNlbnRl
ZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMsIHJl
c3BlY3RpdmVseS4gQWxsIG90aGVyIG5vbi1idWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBl
bnRyeSBwb2ludCBhcmUgaW1wbGllZCB0byBiZSBhdHRyaWJ1dGVzLgotCi1Tb21lIGFyZ3VtZW50
cyBhcmUgcmVjb2duaXplZCBieSB0aGUgY29tcGlsZXIgZnJvbSB0aGVpciBuYW1lIGFuZCB0eXBl
LiBUaGVzZSBhcmd1bWVudHMgcHJvdmlkZSBidWlsdC1pbiBmdW5jdGlvbmFsaXR5IGluaGVyZW50
IGluIHRoZSBncmFwaGljcyBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIGFuIGFyZ3VtZW50IG9mIHRo
ZSBmb3JtIGBpbnQgd3NsX3ZlcnRleElEYCByZWZlcnMgdG8gdGhlIElEIG9mIHRoZSBjdXJyZW50
IHZlcnRleCwgYW5kIGlzIG5vdCByZWNvZ25pemVkIGFzIGFuIGF0dHJpYnV0ZS4gQWxsIG5vbi1i
dWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludCBtdXN0IGJlIGFzc29jaWF0
ZWQgd2l0aCBhbiBBUEkgb2JqZWN0IHdoZW5ldmVyIGFueSBkcmF3IGNhbGwgdXNpbmcgdGhlIHZl
cnRleCBlbnRyeSBwb2ludCBpcyBpbnZva2VkLiBPdGhlcndpc2UsIHRoZSBkcmF3IGNhbGwgd2ls
bCBmYWlsLgotCi1UaGUgb25seSB3YXkgdG8gcGFzcyBkYXRhIGJldHdlZW4gc3VjY2Vzc2l2ZSBz
aGFkZXIgc3RhZ2VzIHdpdGhpbiBhIHNpbmdsZSBkcmF3IGNhbGwgaXMgYnkgcmV0dXJuIHZhbHVl
LiBBbiBlbnRyeSBwb2ludCBtdXN0IGluZGljYXRlIHRoYXQgaXQgcmV0dXJucyBhIGNvbGxlY3Rp
b24gb2YgdmFsdWVzIGNvbnRhaW5lZCB3aXRoaW4gYSBzdHJ1Y3R1cmUuIEV2ZXJ5IHZhcmlhYmxl
IGluc2lkZSB0aGlzIHN0cnVjdHVyZSwgcmVjdXJzaXZlbHksIGlzIHBhc3NlZCB0byB0aGUgbmV4
dCBzdGFnZSBpbiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIE1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3Qg
bWF5IGFsc28gYmUgb3V0cHV0IGJ1aWx0LWluIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIGEgdmVy
dGV4IGVudHJ5IHBvaW50IG1heSByZXR1cm4gYSBzdHJ1Y3Qgd2hpY2ggY29udGFpbnMgYSBtZW1i
ZXIgYGZsb2F0NCB3c2xfUG9zaXRpb25gLCBhbmQgdGhpcyB2YXJpYWJsZSB3aWxsIHJlcHJlc2Vu
dCB0aGUgcmFzdGVyaXplZCBwb3NpdGlvbiBvZiB0aGUgdmVydGV4LiBCdWZmZXJzIChhcyBkZXNj
cmliZWQgYnkgV1NMIGFycmF5IHJlZmVyZW5jZXMpLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIG11
c3Qgbm90IGJlIHByZXNlbnQgaW4gdGhpcyByZXR1cm5lZCBzdHJ1Y3QuIEJ1aWx0LWluIHZhcmlh
YmxlcyBtdXN0IG5ldmVyIGFwcGVhciB0d2ljZSBpbnNpZGUgdGhlIHJldHVybmVkIHN0cnVjdHVy
ZS4KLQotIyMgRnJhZ21lbnQgZW50cnkgcG9pbnRzCi0KLUZyYWdtZW50IGVudHJ5IHBvaW50cyBt
YXkgYWNjZXB0IG9uZSBhcmd1bWVudCB3aXRoIHRoZSB0eXBlIHRoYXQgdGhlIHByZXZpb3VzIHNo
YWRlciBzdGFnZSByZXR1cm5lZC4gVGhlIGFyZ3VtZW50IG5hbWUgZm9yIHRoaXMgYXJndW1lbnQg
bXVzdCBiZSBgc3RhZ2VJbmAuIEluIGFkZGl0aW9uIHRvIHRoaXMgYXJndW1lbnQsIGZyYWdtZW50
IGVudHJ5IHBvaW50cyBtYXkgYWNjZXB0IGJ1ZmZlcnMsIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMg
YXMgYXJndW1lbnRzIGluIHRoZSBzYW1lIHdheSB0aGF0IHZlcnRleCBlbnRyeSBwb2ludHMgYWNj
ZXB0IHRoZW0uIEZyYWdtZW50IGVudHJ5IHBvaW50cyBhbHNvIG11c3QgcmV0dXJuIGEgc3RydWN0
LCBhbmQgYWxsIG1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgbXVzdCBiZSBidWlsdC1pbiB2YXJpYWJs
ZXMuIFRoZSBzZXQgb2YgcmVjb2duaXplZCBidWlsdC1pbiB2YXJpYWJsZXMgd2hpY2ggbWF5IGJl
IGFjY2VwdGVkIG9yIHJldHVybmVkIGZyb20gYW4gZW50cnkgcG9pbnQgaXMgZGlmZmVyZW50IGJl
dHdlZW4gYWxsIHR5cGVzIG9mIGVudHJ5IHBvaW50cy4KLQotRm9yIGV4YW1wbGUsIHRoaXMgd291
bGQgYmUgYSB2YWxpZCBncmFwaGljcyBwcm9ncmFtOgotCi0gICAgc3RydWN0IFZlcnRleElucHV0
IHsKLSAgICAgICAgZmxvYXQyIHBvc2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAg
fQotICAgIAotICAgIHN0cnVjdCBWZXJ0ZXhPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX1Bv
c2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAgfQotICAgIAotICAgIHN0cnVjdCBG
cmFnbWVudE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfQ29sb3I7Ci0gICAgfQotICAgIAot
ICAgIHZlcnRleCBWZXJ0ZXhPdXRwdXQgdmVydGV4U2hhZGVyKFZlcnRleElucHV0IHZlcnRleElu
cHV0KSB7Ci0gICAgICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC53c2xf
UG9zaXRpb24gPSBmbG9hdDQodmVydGV4SW5wdXQucG9zaXRpb24sIDAuLCAxLik7Ci0gICAgICAg
IHJlc3VsdC5jb2xvciA9IHZlcnRleElucHV0LmNvbG9yOwotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLSAgICAKLSAgICBmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFnbWVudFNoYWRl
cihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgewotICAgICAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7
Ci0gICAgICAgIHJlc3VsdC53c2xfQ29sb3IgPSBmbG9hdDQoc3RhZ2VJbi5jb2xvciwgMS4pOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotIyMgQ29tcHV0ZSBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgY29tcHV0ZSBzaGFkZXIgaW4gdGhyZWUg
d2F5czoKLQotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwotCi1D
b21wdXRlIGVudHJ5IHBvaW50cyBzdGFydCB3aXRoIHRoZSBrZXl3b3JkIGBjb21wdXRlYC4gVGhl
IHJldHVybiB0eXBlIGZvciBhIGNvbXB1dGUgZW50cnkgcG9pbnQgbXVzdCBiZSBgdm9pZGAuIEVh
Y2ggYnVmZmVyIGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVm
ZXJlbmNlIHR5cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVy
cyBhcmUgcmVwcmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNh
bXBsZXJgIHR5cGVzLCByZXNwZWN0aXZlbHkuIENvbXB1dGUgZW50cnkgcG9pbnRzIG1heSBhbHNv
IGFjY2VwdCBidWlsdC1pbiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiBBcmd1bWVudHMgb2YgYW55
IG90aGVyIHR5cGUgYXJlIGRpc2FsbG93ZWQuIEFyZ3VtZW50cyBtYXkgbm90IHVzZSB0aGUgYHRo
cmVhZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLSMgRXJyb3IgaGFuZGxpbmcKLQotRXJyb3JzIG1h
eSBvY2N1ciBkdXJpbmcgc2hhZGVyIHByb2Nlc3NpbmcuIEZvciBleGFtcGxlLCB0aGUgc2hhZGVy
IG1heSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEgYG51bGxgIGFycmF5IHJlZmVyZW5jZS4gSWYg
dGhpcyBvY2N1cnMsIHRoZSBzaGFkZXIgc3RhZ2UgaW1tZWRpYXRlbHkgY29tcGxldGVzIHN1Y2Nl
c3NmdWxseS4gVGhlIGVudHJ5IHBvaW50IGltbWVkaWF0ZWx5IHJldHVybnMgYSBzdHJ1Y3Qgd2l0
aCBhbGwgZmllbGRzIHNldCB0byAwLiBBZnRlciB0aGlzIGV2ZW50LCBzdWJzZXF1ZW50IHNoYWRl
ciBzdGFnZXMgd2lsbCBwcm9jZWVkIGFzIGlmIHRoZXJlIHdhcyBubyBwcm9ibGVtLgotCi1CdWZm
ZXIgYW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBiZWZvcmUgdGhlIGVycm9yIGFsbCBjb21w
bGV0ZSwgYW5kIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIGlmIG5vIGVycm9yIGhhZCBvY2N1
cnJlZC4gQnVmZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYWZ0ZXIgdGhlIGVycm9y
IGRvIG5vdCBvY2N1ci4KLQotIyBTdW1tYXJ5Ci0KLVdTTCBpcyBhIHR5cGUtc2FmZSBsYW5ndWFn
ZSBiYXNlZCBvbiBDIHN5bnRheC4gSXQgZWxpbWluYXRlcyBzb21lIEMgZmVhdHVyZXMsIGxpa2Ug
dW5pb25zIGFuZCBwb2ludGVyIGNhc3RzLCBidXQgYWRkcyBvdGhlciBtb2Rlcm4gZmVhdHVyZXMg
aW4gdGhlaXIgcGxhY2UsIGxpa2UgZ2VuZXJpY3MgYW5kIG92ZXJsb2FkaW5nLgotCi0jIEFkZGl0
aW9uYWwgTGltaXRhdGlvbnMKLQotVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxpbWl0YXRpb25z
IG1heSBiZSBwbGFjZWQgb24gYSBXU0wgcHJvZ3JhbToKLQotLSBgZGV2aWNlYCwgYGNvbnN0YW50
YCwgYW5kIGB0aHJlYWRncm91cGAgcG9pbnRlcnMgY2Fubm90IHBvaW50IHRvIGRhdGEgdGhhdCBt
YXkgaGF2ZSBwb2ludGVycyBpbiBpdC4gVGhpcyBzYWZldHkgY2hlY2sgaXMgbm90IGRvbmUgYXMg
cGFydCBvZiB0aGUgbm9ybWFsIHR5cGUgc3lzdGVtIGNoZWNrcy4gSXQncyBwZXJmb3JtZWQgb25s
eSBhZnRlciBpbnN0YW50aWF0aW9uLgotLSBQb2ludGVycyBhbmQgYXJyYXkgcmVmZXJlbmNlcyAo
Y29sbGVjdGl2ZWx5LCAqcmVmZXJlbmNlcyopIG1heSBiZSByZXN0cmljdGVkIHRvIHN1cHBvcnQg
Y29tcGlsaW5nIHRvIFNQSVItViAqbG9naWNhbCBtb2RlKi4gSW4gdGhpcyBtb2RlLCBhcnJheXMg
bXVzdCBub3QgdHJhbnNpdGl2ZWx5IGhvbGQgcmVmZXJlbmNlcy4gUmVmZXJlbmNlcyBtdXN0IGJl
IGluaXRpYWxpemVkIHVwb24gZGVjbGFyYXRpb24gYW5kIG5ldmVyIHJlYXNzaWduZWQuIEZ1bmN0
aW9ucyB0aGF0IHJldHVybiByZWZlcmVuY2VzIG11c3QgaGF2ZSBvbmUgcmV0dXJuIHBvaW50LiBU
ZXJuYXJ5IGV4cHJlc3Npb25zIG1heSBub3QgcmV0dXJuIHJlZmVyZW5jZXMuCi0tIEdyYXBoaWNz
IGVudHJ5IHBvaW50cyBtdXN0IHRyYW5zaXRpdmVseSBuZXZlciByZWZlciB0byB0aGUgYHRocmVh
ZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9XcmFwQ2hlY2tlci5qcwppbmRleCA0Y2FkYzdkMGQ5ZTZhNmRmZGE1NTVkYWI4OWQwMjcxNzcw
ZGJkOWE3Li5jZjZlOWZiMTllZjc1ZTc4OTBjZDU1YTllOWFiZmZjMThiNWM3M2M4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcwpAQCAtNTIsMTEgKzUy
LDYgQEAgY2xhc3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJGb3VuZCB1bndyYXBwZWQgIiArIG5vZGUuY29uc3RydWN0b3IubmFtZSArICIg
YXQgIiArIG9yaWdpblN0cmluZyhub2RlKSArICI6ICIgKyBub2RlICsgIlxuV2hpbGUgdmlzaXRp
bmcgIiArIHRoaXMuX3N0YXJ0Tm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2lu
U3RyaW5nKHRoaXMuX3N0YXJ0Tm9kZS5vcmlnaW4pICsgIjogIiArIHRoaXMuX3N0YXJ0Tm9kZSk7
CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fZm91bmRVbndy
YXBwZWQobm9kZSk7CkBAIC03NywxMSArNzIsNiBAQCBjbGFzcyBXcmFwQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9CiAg
ICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Zv
dW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKICAgICAvLyBOT1RFOiBUaGlzIGRvZXMg
bm90IGtub3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBp
cyBuZXZlciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCiAgICAgLy8gY29kZS4gT25jZSBjb2RlIGlz
IGluc3RhbnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgogICAgIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggODA5NGIxOTM3ODFi
NGFhOWIwYzM5MDllOWE5MWQyODE1ZjJiMmFiYS4uNWFmMGY0ZmFkN2NhMTk0ZTNmZDcwMTE4ZGQ5
ZDZkZTUxZjZlYmJkYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
CkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3RleHBy
VHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNTUs
NyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21i
aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcxLDYg
QEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExp
dGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3Nj
cmlwdD4KQEAgLTEwMywxMCArMTAwLDYgQEAKIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3Rv
Y29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0
ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIu
anMiPjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjQsNyBAQAogPHNjcmlwdCBzcmM9IlR5cGVEZWYu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlw
ZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3Njcmlw
dD4KQEAgLTM0NCw3ICszMzQsNyBAQCBmdW5jdGlvbiBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZy
b21Db21waWxhdGlvbiA9IGZhbHNlKSB7CiAgICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWls
YWJsZVZlcnRleFNoYWRlcnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAg
IGN1cnJlbnRGcmFnbWVudFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVu
dFNoYWRlclNlbGVjdC5zZWxlY3RlZEluZGV4XTsKIAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIg
PSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIs
IFtdKTsKKyAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAg
ICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0
aW5nU2V0KGN1cnJlbnRWZXJ0ZXhTaGFkZXIpKTsKIAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBb
XTsKQEAgLTQyNiw3ICs0MTYsNyBAQCBmdW5jdGlvbiBydW5TaGFkZXJzKCkgewogICAgICAgICBm
dW5jLnBhcmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFy
Z3VtZW50RVB0cnNbaV0uc2l6ZSk7CiAgICAgbGV0IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJv
Z3JhbSkucnVuRnVuYyhmdW5jKTsKIAotICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dy
YW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoY3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7
CisgICAgaW5saW5lZEZyYWdtZW50U2hhZGVyID0gY3VycmVudEZyYWdtZW50U2hhZGVyOwogICAg
IF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNp
dGluZ1NldChjdXJyZW50RnJhZ21lbnRTaGFkZXIpKTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdt
ZW50U2hhZGVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346752</attachid>
            <date>2018-08-07 19:35:47 -0700</date>
            <delta_ts>2018-08-08 18:34:14 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180807193546.patch</filename>
            <type>text/plain</type>
            <size>290371</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDM1CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwu
anMKaW5kZXggMTVkZDdjY2FiOTQ2OTJhMzJhY2QyN2I5ZGFjOTZjOGE4ZjU1ZDY1OC4uYTA3ZWQ2
YzUxYTdhODUwZjY0NTEzMzRiOTdmYWE2YTI2OTAzM2VlOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0FsbC5qcwpAQCAtNTgsNyArNTgsNiBAQCBsb2FkKCJDaGVja2VyLmpzIik7CiBsb2Fk
KCJDbG9uZVByb2dyYW0uanMiKTsKIGxvYWQoIkNvbW1hRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
Q29uc3RleHByRm9sZGVyLmpzIik7Ci1sb2FkKCJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIik7
CiBsb2FkKCJDb250aW51ZS5qcyIpOwogbG9hZCgiQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNz
aW9uLmpzIik7CiBsb2FkKCJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMiKTsKQEAgLTc3LDcgKzc2
LDYgQEAgbG9hZCgiRXhwcmVzc2lvbkZpbmRlci5qcyIpOwogbG9hZCgiRXh0ZXJuYWxPcmlnaW4u
anMiKTsKIGxvYWQoIkZpZWxkLmpzIik7CiBsb2FkKCJGaW5kSGlnaFpvbWJpZXMuanMiKTsKLWxv
YWQoIkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiKTsKIGxvYWQoIkZsYXR0ZW5lZFN0cnVjdE9m
ZnNldEdhdGhlcmVyLmpzIik7CiBsb2FkKCJGbG9hdExpdGVyYWwuanMiKTsKIGxvYWQoIkZsb2F0
TGl0ZXJhbFR5cGUuanMiKTsKQEAgLTk1LDcgKzkzLDYgQEAgbG9hZCgiSW5kZXhFeHByZXNzaW9u
LmpzIik7CiBsb2FkKCJJbmZlclR5cGVzRm9yQ2FsbC5qcyIpOwogbG9hZCgiSW5saW5lLmpzIik7
CiBsb2FkKCJJbmxpbmVyLmpzIik7Ci1sb2FkKCJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiKTsK
IGxvYWQoIkludExpdGVyYWwuanMiKTsKIGxvYWQoIkludExpdGVyYWxUeXBlLmpzIik7CiBsb2Fk
KCJJbnRyaW5zaWNzLmpzIik7CkBAIC0xMjUsMTAgKzEyMiw2IEBAIGxvYWQoIlByZXBhcmUuanMi
KTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGlu
Z3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7Ci1sb2FkKCJQcm90
b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbEZ1bmNE
ZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRyVHlwZS5qcyIpOwog
bG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiUmVjdXJzaW9uQ2hl
Y2tlci5qcyIpOwpAQCAtMTUzLDEwICsxNDYsNyBAQCBsb2FkKCJUcmFwU3RhdGVtZW50LmpzIik7
CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIuanMiKTsKIGxvYWQo
IlR5cGVPclZhcmlhYmxlUmVmLmpzIik7Ci1sb2FkKCJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMi
KTsKIGxvYWQoIlR5cGVSZWYuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJsZS5qcyIpOwotbG9hZCgi
VHlwZVZhcmlhYmxlVHJhY2tlci5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5qcyIpOwogbG9hZCgi
VWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFsVHlwZS5qcyIpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwppbmRleCA4MGFlN2Q5MmE0ZmE2
MjY2NmRiMmEyZmY1MjIwZDE0OWE3ZjM4ZTljLi4yMTZhN2UyZTMzZGU5OTFiMDZhYjYzNmRiNWNm
Y2FiNDA1ZDhlZTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9B
dXRvV3JhcHBlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3Jh
cHBlci5qcwpAQCAtMzUsMTEgKzM1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdy
aXRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0
ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBWYXJpYWJsZVJl
Zi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBWYXJpYWJsZVJlZi53cmFwKG5vZGUpOwpAQCAtNjAsMTEg
KzU1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIHJl
dHVybiBUeXBlUmVmLndyYXAobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0VHlwZVZhcmlh
YmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFwKG5vZGUpOwotICAg
IH0KLSAgICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxF
eHByZXNzaW9uLmpzCmluZGV4IGI1YWUwZmU0OWZjZWRjOGZhNzZhNjY3OTNjZmUwY2IxZjA4YjQ1
NzEuLmMxZWIzZGE1YTJhYWVlZjE4YzM0ZGNjNTBhODA2NzhiOTkzODI3YzggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCkBAIC0yNSwxMSAr
MjUsMTAgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBF
eHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMs
IGFyZ3VtZW50TGlzdCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIGFyZ3VtZW50TGlz
dCkKICAgICB7CiAgICAgICAgIHN1cGVyKG9yaWdpbik7CiAgICAgICAgIHRoaXMuX25hbWUgPSBu
YW1lOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50czsKICAgICAg
ICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gYXJndW1lbnRMaXN0OwogICAgICAgICB0aGlzLmZ1bmMg
PSBudWxsOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBmYWxzZTsKQEAgLTM3LDcgKzM2LDYgQEAg
Y2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICB9CiAgICAgCiAg
ICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVu
dHMoKSB7IHJldHVybiB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGFyZ3VtZW50TGlz
dCgpIHsgcmV0dXJuIHRoaXMuX2FyZ3VtZW50TGlzdDsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJl
dHVybiB0aGlzLl9pc0Nhc3Q7IH0KICAgICBnZXQgcmV0dXJuVHlwZSgpIHsgcmV0dXJuIHRoaXMu
X3JldHVyblR5cGU7IH0KQEAgLTU3LDQ2ICs1NSwyMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBl
eHRlbmRzIEV4cHJlc3Npb24gewogICAgICAgICBpZiAoIXBvc3NpYmxlT3ZlcmxvYWRzKQogICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
RGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbnMgbmFtZWQgIiArIHRoaXMubmFtZSk7CiAgICAgICAg
IAotICAgICAgICBsZXQgb3ZlcmxvYWQgPSBudWxsOwogICAgICAgICBsZXQgZmFpbHVyZXMgPSBb
XTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiB0eXBlUGFyYW1ldGVyc0luU2Nv
cGUpIHsKLSAgICAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBUeXBlVmFy
aWFibGUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCF0eXBl
UGFyYW1ldGVyLnByb3RvY29sKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgbGV0IHNpZ25hdHVyZXMgPQotICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIucHJvdG9j
b2wucHJvdG9jb2xEZWNsLnNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKHRoaXMubmFt
ZSwgdHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICBpZiAoIXNpZ25hdHVyZXMpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9h
ZEltcGwoc2lnbmF0dXJlcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMs
IHRoaXMucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBpZiAob3ZlcmxvYWQuZnVuYykKLSAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2Fk
SW1wbCgKKyAgICAgICAgICAgIHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLmFyZ3VtZW50VHlwZXMs
IHRoaXMucmV0dXJuVHlwZSk7CisgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewogICAgICAg
ICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0gICAgICAgICAgICBv
dmVybG9hZCA9IG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFvdmVybG9hZCkgewotICAg
ICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAg
IHBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewot
ICAgICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAg
ICAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAi
ICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7Ci0gICAgICAgICAgICAgICAgaWYgKHRo
aXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0g
InR5cGUgYXJndW1lbnRzIDwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4gYW5kICI7Ci0gICAg
ICAgICAgICAgICAgbWVzc2FnZSArPSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFyZ3VtZW50
VHlwZXMgKyAiKSI7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkKLSAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVy
blR5cGU7Ci0gICAgICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZSArPSAiLCBidXQgY29uc2lkZXJlZDpcbiIgKyBmYWlsdXJlcy5qb2lu
KCJcbiIpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4u
b3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgIGxldCB0eXBlQXJndW1lbnRUeXBlID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAg
ICAgIGxldCB0eXBlUGFyYW1ldGVyID0gb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsK
LSAgICAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICgh
dHlwZVBhcmFtZXRlci50eXBlLmVxdWFsc1dpdGhDb21taXQodHlwZUFyZ3VtZW50VHlwZSkpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdCAiICsgdGhpcy5vcmlnaW4ub3JpZ2lu
U3RyaW5nICsgIiBjb25zdGV4cHIgdHlwZSBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVzIG5v
dCBlcXVhbDogYXJndW1lbnQgPSAiICsgdHlwZUFyZ3VtZW50VHlwZSArICIsIHBhcmFtZXRlciA9
ICIgKyB0eXBlUGFyYW1ldGVyLnR5cGUpOworICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlk
IG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGgg
IjsKKyAgICAgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gInR5cGUgYXJndW1lbnRzIDwiICsgdGhpcy50eXBlQXJndW1lbnRz
ICsgIj4gYW5kICI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiAr
IHRoaXMuYXJndW1lbnRUeXBlcyArICIpIjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5
cGUpCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlz
LnJldHVyblR5cGU7CisgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigi
XG4iKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHRoaXMuYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3Vt
ZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlc1tpXTsKQEAgLTExMiw4ICs4NCw2IEBAIGNsYXNz
IENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgcmVzb2x2ZVRvT3Zlcmxv
YWQob3ZlcmxvYWQpCiAgICAgewogICAgICAgICB0aGlzLmZ1bmMgPSBvdmVybG9hZC5mdW5jOwot
ICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBvdmVybG9hZC50eXBlQXJndW1lbnRz
Lm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGluc3RhbmNlb2YgVHlwZSA/IHR5cGVB
cmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0eXBlQXJndW1lbnQpOwotICAgICAg
ICB0aGlzLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMgPSB0aGlzLmFjdHVhbFR5cGVB
cmd1bWVudHM7CiAgICAgICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUu
c3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCiAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQ
YXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoIXJl
c3VsdCkKQEAgLTEyNSwxMSArOTUsMTAgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBF
eHByZXNzaW9uIHsKICAgICAKICAgICBiZWNvbWVDYXN0KHJldHVyblR5cGUpCiAgICAgewotICAg
ICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFt
ZSwgdGhpcy5fdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcg
VHlwZVJlZih0aGlzLm9yaWdpbiwgdGhpcy5uYW1lKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlw
ZS50eXBlID0gcmV0dXJuVHlwZTsKICAgICAgICAgdGhpcy5fbmFtZSA9ICJvcGVyYXRvciBjYXN0
IjsKICAgICAgICAgdGhpcy5faXNDYXN0ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3Vt
ZW50cyA9IFtdOwogICAgIH0KICAgICAKICAgICBzZXRDYXN0RGF0YShyZXR1cm5UeXBlKQpAQCAt
MTQxLDggKzExMCw2IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgdG9TdHJpbmcoKQogICAgIHsKICAgICAgICAgcmV0dXJuICh0aGlzLmlzQ2FzdCA/ICJv
cGVyYXRvciAiICsgdGhpcy5yZXR1cm5UeXBlIDogdGhpcy5uYW1lKSArCi0gICAgICAgICAgICAi
PCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiIgKwotICAgICAgICAgICAgKHRoaXMuYWN0dWFs
VHlwZUFyZ3VtZW50cyA/ICI8PCIgKyB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgKyAiPj4iIDog
IiIpICsKICAgICAgICAgICAgICIoIiArIHRoaXMuYXJndW1lbnRMaXN0ICsgIikiOwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlv
bi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwppbmRl
eCBmMGYwMzlmNTQ2MmQwNzgxZDgyYjM0NjRjODc0Nzg3MTRjMGExNzM3Li43NDk1NzYwZjJjNWQ4
MWQ4Mzk0NTZjZGU0YzQ1OTc3MGJjYzMzMGZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCkBAIC0yNSwxNyArMjUsMTcgQEAKICJ1c2Ugc3RyaWN0
IjsKIAogLy8gVGhpcyBhbGxvd3MgeW91IHRvIHBhc3Mgc3RydWN0cyBhbmQgYXJyYXlzIGluLXBs
YWNlLCBidXQgaXQncyBhIG1vcmUgYW5ub3lpbmcgQVBJLgotZnVuY3Rpb24gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCkKK2Z1bmN0aW9uIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVudExpc3QpCiB7CiAgICAgbGV0IGFyZ3Vt
ZW50VHlwZXMgPSBhcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnR5cGUpOwot
ICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwg
bmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgdHJ1ZSk7CisgICAgbGV0IGZ1bmNP
ckZhaWx1cmVzID0gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVu
dFR5cGVzLCB0cnVlKTsKICAgICBpZiAoIShmdW5jT3JGYWlsdXJlcyBpbnN0YW5jZW9mIEZ1bmMp
KSB7CiAgICAgICAgIGxldCBmYWlsdXJlcyA9IGZ1bmNPckZhaWx1cmVzOwotICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5jdGlvbj4iLCAiQ2Fubm90IHJlc29sdmUgZnVuY3Rp
b24gY2FsbCAiICsgbmFtZSArICI8IiArIHR5cGVBcmd1bWVudHMgKyAiPigiICsgYXJndW1lbnRM
aXN0ICsgIikiICsgKGZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1cmVzLmpv
aW4oIlxuIikgOiAiIikpOworICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5j
dGlvbj4iLCAiQ2Fubm90IHJlc29sdmUgZnVuY3Rpb24gY2FsbCAiICsgbmFtZSArICIoIiArIGFy
Z3VtZW50TGlzdCArICIpIiArIChmYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWls
dXJlcy5qb2luKCJcbiIpIDogIiIpKTsKICAgICB9CiAgICAgbGV0IGZ1bmMgPSBmdW5jT3JGYWls
dXJlczsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZ1bmMucGFyYW1ldGVycy5sZW5ndGg7ICsr
aSkgewotICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNbaV0uaW5zdGFudGlhdGVkVHlw
ZTsKKyAgICAgICAgbGV0IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldOwogICAgICAgICB0eXBlLnZp
c2l0KG5ldyBTdHJ1Y3RMYXlvdXRCdWlsZGVyKCkpOwogICAgICAgICBmdW5jLnBhcmFtZXRlcnNb
aV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudExpc3RbaV0uZVB0ciwgdHlwZS5zaXplKTsKICAgICB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcwppbmRleCA4ZDU1YzUwZDgz
NmMxNTQ4NmZkMjU4MGM1OGU5NjA2Y2FkNTk2ZWNiLi5iNzI0YzBhNjU3ZjEyZTgzY2ZjMDAyMTY5
ZTQyYTJlMDdlMjc0ODhmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DaGVja2VyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIu
anMKQEAgLTQzLDggKzQzLDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAg
ICAgICAKICAgICAgICAgZm9yIChsZXQgdHlwZSBvZiBub2RlLnR5cGVzLnZhbHVlcygpKQogICAg
ICAgICAgICAgZG9TdGF0ZW1lbnQodHlwZSk7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9m
IG5vZGUucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICAgICAgZG9TdGF0ZW1lbnQocHJvdG9j
b2wpOwogICAgICAgICBmb3IgKGxldCBmdW5jcyBvZiBub2RlLmZ1bmN0aW9ucy52YWx1ZXMoKSkg
ewogICAgICAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jcykgewogICAgICAgICAgICAgICAg
IHRoaXMudmlzaXRGdW5jKGZ1bmMpOwpAQCAtODQsMTUgKzgyLDYgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAoIWZ1bmMubmFtZS5zdGFydHNXaXRoKCJvcGVy
YXRvciIpKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3BlcmF0b3Igb3Zlcmxv
YWQgbmFtZTogIiArIGZ1bmMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgdHlwZVZhcmlh
YmxlVHJhY2tlciA9IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgIGZvciAobGV0
IHBhcmFtZXRlclR5cGUgb2YgZnVuYy5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgIHBhcmFt
ZXRlclR5cGUudmlzaXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIE5vZGUudmlzaXQo
ZnVuYy5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFja2Vy
KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJz
KSB7Ci0gICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFy
YW1ldGVyKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlUGFyYW1l
dGVyLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRl
ciArICIgdG8gb3BlcmF0b3IgIiArIGZ1bmMudG9EZWNsU3RyaW5nKCkgKyAiIGlzIG5vdCBpbmZl
cnJhYmxlIGZyb20gdmFsdWUgcGFyYW1ldGVycyIpOwotICAgICAgICB9Ci0gICAgICAgIAogICAg
ICAgICBsZXQgY2hlY2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAgICAgICAgICAgbGV0IG51bUV4
cGVjdGVkUGFyYW1ldGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIgOiAxOwogICAgICAgICAgICAg
aWYgKGZ1bmMucGFyYW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzKQpAQCAt
MTE1LDcgKzEwNCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIGlmICghZ2V0dGVyRnVuY3MpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXZlcnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1h
dGNoaW5nIGdldHRlciwgYnV0IGRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb24gbmFtZWQgIiArIGdl
dHRlck5hbWUgKyAiIHRvIG1hdGNoICIgKyBmdW5jLm5hbWUpOwogICAgICAgICAgICAgbGV0IGFy
Z3VtZW50VHlwZXMgPSBmdW5jLnBhcmFtZXRlclR5cGVzLnNsaWNlKDAsIG51bUV4cGVjdGVkUGFy
YW1ldGVycyAtIDEpOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2Fk
SW1wbChnZXR0ZXJGdW5jcywgW10sIGFyZ3VtZW50VHlwZXMsIG51bGwpOworICAgICAgICAgICAg
bGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChnZXR0ZXJGdW5jcywgYXJndW1lbnRU
eXBlcywgbnVsbCk7CiAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRGlk
IG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyBmdW5jLm5hbWUgKyAiIHdpdGggYXJndW1lbnRz
ICIgKyBhcmd1bWVudFR5cGVzICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVk
OlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwogICAgICAgICAgICAg
bGV0IHJlc3VsdFR5cGUgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5p
ZmljYXRpb24oCkBAIC0yMTEsMjMgKzIwMCw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKICAgICB7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKSB7Ci0g
ICAgICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9IG5ldyBUeXBlVmFyaWFibGVUcmFj
a2VyKCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXJUeXBlIG9mIHNpZ25hdHVyZS5w
YXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJUeXBlLnZpc2l0KHR5cGVW
YXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAgICAgTm9kZS52aXNpdChzaWduYXR1cmUucmV0dXJu
VHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbiwgdHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAg
ICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycykg
ewotICAgICAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQ
YXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBXVHlwZUVycm9yKHR5cGVQYXJh
bWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyIHRvIHByb3RvY29sIHNp
Z25hdHVyZSBub3QgaW5mZXJyYWJsZSBmcm9tIHZhbHVlIHBhcmFtZXRlcnMiKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKG5vZGUu
dHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihzaWdu
YXR1cmUub3JpZ2luLm9yaWdpblN0cmluZywgIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoIiAr
IG5vZGUubmFtZSArICIpIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlOiAiICsgc2lnbmF0dXJl
KTsKLSAgICAgICAgICAgIHRoaXMuX2NoZWNrT3BlcmF0b3JPdmVybG9hZChzaWduYXR1cmUsIG5h
bWUgPT4gbm9kZS5zaWduYXR1cmVzQnlOYW1lKG5hbWUpKTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICAKICAgICB2aXNpdEVudW1UeXBlKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLmJhc2VUeXBl
LnZpc2l0KHRoaXMpOwpAQCAtMjc4LDI5ICsyNTAsMTIgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiRW51bSBkb2VzIG5vdCBoYXZlIGEgbWVtYmVyIHdpdGggdGhlIHZhbHVl
IHplcm8iKTsKICAgICB9CiAgICAgCi0gICAgX2NoZWNrVHlwZUFyZ3VtZW50cyhvcmlnaW4sIHR5
cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB0eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IGFy
Z3VtZW50SXNUeXBlID0gdHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7Ci0gICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAg
ICAgIGlmIChhcmd1bWVudElzVHlwZSkgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0
eXBlQXJndW1lbnRzW2ldLmluaGVyaXRzKHR5cGVQYXJhbWV0ZXJzW2ldLnByb3RvY29sKTsKLSAg
ICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IGRv
ZXMgbm90IGluaGVyaXQgcHJvdG9jb2w6ICIgKyByZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzV2l0aENvbW1pdCh0
eXBlUGFyYW1ldGVyc1tpXS50eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIHR5cGUgZm9yIGNvbnN0ZXhwciIp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJl
Zihub2RlKQogICAgIHsKICAgICAgICAgaWYgKCFub2RlLnR5cGUpCiAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlR5cGUgcmVmZXJlbmNlIHdpdGhvdXQgYSB0eXBlIGluIGNoZWNrZXI6ICIg
KyBub2RlICsgIiBhdCAiICsgbm9kZS5vcmlnaW4pOwogICAgICAgICBpZiAoIShub2RlLnR5cGUg
aW5zdGFuY2VvZiBTdHJ1Y3RUeXBlKSkKICAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlz
KTsKLSAgICAgICAgdGhpcy5fY2hlY2tUeXBlQXJndW1lbnRzKG5vZGUub3JpZ2luLCBub2RlLnR5
cGUudHlwZVBhcmFtZXRlcnMsIG5vZGUudHlwZUFyZ3VtZW50cyk7CiAgICAgfQogICAgIAogICAg
IHZpc2l0QXJyYXlUeXBlKG5vZGUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZTNjMTgyNmVkNTVmM2ZlNTZmN2UwZWQyYTAzZGZkYTAyOGRhNWIzOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyIGV4dGVuZHMg
VmFsdWUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZSkKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhp
cy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgIH0KLSAgICAK
LSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUo
KSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90
eXBlOyB9Ci0gICAgZ2V0IGlzQ29uc3RleHByKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBp
c1VuaWZpYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgdmFySXNMVmFsdWUoKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29u
dGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFZhbHVl
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMudHlwZS51
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQotICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZVVuaWZ5
SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdW5pZnlJ
bXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy50eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzUGFy
YW1ldGVyKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0
OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMudHlwZSArICIgIiArIHRoaXMubmFtZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKaW5kZXggMTI5
MTRkYTMxMzdmZDZiOTBmZWRhNzI1ODYyN2VmZmZmYmQ0ZTU0MS4uZjM2YTVkNjMxODc5MjkzYjAz
ODIzYjcwMWNiZTgxYTVjNzczMjUyYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24g
Y3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICAgICAgc3VwZXIoKTsKICAgICAgICAg
ICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFs
dWU7Ci0gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4s
IGNvbmZpZy5wcmVmZXJyZWRUeXBlTmFtZSwgW10pOworICAgICAgICAgICAgdGhpcy5wcmVmZXJy
ZWRUeXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVkVHlwZU5hbWUpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5f
b3JpZ2luOyB9CkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNv
bmZpZykKICAgICAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAg
ICAgewogICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQo
dGhpcyk7Ci0gICAgICAgICAgICBpZiAocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUg
fHwgcmVhbFRoaXMuaXNMaXRlcmFsKSB7CisgICAgICAgICAgICBpZiAocmVhbFRoaXMuaXNMaXRl
cmFsKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHJlYWxUaGlzLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdGhpcy5wcmVmZXJyZWRU
eXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCmlu
ZGV4IDMwZTZiMDMxYTZkZDY2NTk3NDA3ZjNmNmI3ZmU3MTNlZDhmZGNjNGEuLmE0NWUzZTNjMTVi
MzdkOTc0YjA2MGJiYWIzZWJiY2UwNTE0MDRlZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwpAQCAtNDYsMTEgKzQ2LDYgQEAgY2xh
c3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aGlzLl9jYWxs
YmFjayhub2RlLnR5cGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJh
bWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0QXNzaWdubWVudChub2RlKQogICAgIHsKICAgICAgICAgdGhp
cy5fY2FsbGJhY2sobm9kZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzYxNzJkOThkMWUyYzAwOGVkYjVkODE4M2Y1ZWVmZDY3OGRjOGVlOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0p
Ci17Ci0gICAgbGV0IHZpc2l0aW5nID0gbmV3IFZpc2l0aW5nU2V0KCk7Ci0gICAgCi0gICAgZnVu
Y3Rpb24gZmxhdHRlbihwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wuZXh0
ZW5kcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgICAgICB2aXNp
dGluZy5kb1Zpc2l0KHByb3RvY29sLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJl
bnQgb2YgcHJvdG9jb2wuZXh0ZW5kcykgewotICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVu
dC5wcm90b2NvbERlY2w7Ci0gICAgICAgICAgICAgICAgZmxhdHRlbihwYXJlbnQpOwotICAgICAg
ICAgICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBwYXJlbnQuc2lnbmF0dXJlcykgewotICAg
ICAgICAgICAgICAgICAgICBsZXQgbmV3U2lnbmF0dXJlID0gc2lnbmF0dXJlLnZpc2l0KAotICAg
ICAgICAgICAgICAgICAgICAgICAgbmV3IFN1YnN0aXR1dGlvbihbcGFyZW50LnR5cGVWYXJpYWJs
ZV0sIFtwcm90b2NvbC50eXBlVmFyaWFibGVdKSk7Ci0gICAgICAgICAgICAgICAgICAgIHByb3Rv
Y29sLmFkZChuZXdTaWduYXR1cmUpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHByb3RvY29sLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgfSk7Ci0gICAgfQot
ICAgIAotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygp
KQotICAgICAgICBmbGF0dGVuKHByb3RvY29sKTsKLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmMuanMKaW5kZXggNmZhN2M5ZDFiNmY0Yjk1ODMzNTk4MWMyNzI4YmU4NjVhNTZlNzNh
ZS4uNmZjNzMzMjc2MWQ0NjNjMzVhOGM0MGMyYTc2ZjJmNGIzNmMyMzIyMyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5h
bWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRl
clR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewogICAgICAgICBpZiAoIShvcmlnaW4gaW5z
dGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG9y
aWdpbjogIiArIG9yaWdpbik7CkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBO
b2RlIHsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7Ci0gICAgICAg
IHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX3Bh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBpc0Nhc3Q7CiAg
ICAgICAgIHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwpAQCAtNDgsOCArNDcsNiBAQCBj
bGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMu
X29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdl
dCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAgIGdldCB0eXBl
UGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0gICAgZ2V0IHR5
cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKSB7IHJldHVybiB0aGlzLnR5cGVQYXJhbWV0
ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJzOyB9
CiAgICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLm1hcChw
YXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9CiAgICAgZ2V0IGlzQ2FzdCgpIHsgcmV0dXJu
IHRoaXMuX2lzQ2FzdDsgfQpAQCAtNjUsOSArNjIsOSBAQCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9k
ZSB7CiAgICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCiAgICAgICAgICAgICByZXN1bHQgKz0g
dGhpcy5zaGFkZXJUeXBlICsgIiAiOwogICAgICAgICBpZiAodGhpcy5pc0Nhc3QpCi0gICAgICAg
ICAgICByZXN1bHQgKz0gIm9wZXJhdG9yPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gIiAr
IHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3IgIiArIHRo
aXMucmV0dXJuVHlwZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMu
cmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMg
KyAiPiI7CisgICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsgIiAiICsgdGhp
cy5uYW1lOwogICAgICAgICByZXR1cm4gcmVzdWx0ICsgIigiICsgdGhpcy5wYXJhbWV0ZXJzICsg
IikiOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpz
CmluZGV4IDExZmEwOTJlM2IyMjc4ZTIxNWEwYTY3ZTk1MWUxN2RhYmExMzZhODMuLmNhMDU5N2Zj
ZDI5NGRmYWI2MDQ0MjE0ZTA3NTRmN2VmOTQ0Yjg3OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0RlZi5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJpY3QiOwogCiBj
bGFzcyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBz
aGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFy
YW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3VwZXIo
b3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXND
YXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLl9ib2R5ID0g
Ym9keTsKICAgICAgICAgdGhpcy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICB9CkBAIC0zNiw4
ICszNiw2IEBAIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKICAgICAKICAgICByZXdyaXRl
KHJld3JpdGVyKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxlbmd0
aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgYW4gdW5pbnN0
YW50aWF0ZWQgZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHRoaXMuX3Jl
dHVyblR5cGUudmlzaXQocmV3cml0ZXIpOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gdGhp
cy5fcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChyZXdyaXRlcikp
OwogICAgICAgICB0aGlzLl9ib2R5ID0gdGhpcy5ib2R5LnZpc2l0KHJld3JpdGVyKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTI4NjJhNmRkODU2NWVlMzdlNDIwNjMxZDdhZjcw
ZDUyMjdlNTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jSW5zdGFudGlhdG9yIHsK
LSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZ3JhbSA9
IHByb2dyYW07Ci0gICAgICAgIHRoaXMuX2luc3RhbmNlcyA9IG5ldyBNYXAoKTsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IGluc3RhbmNlcygpIHsgcmV0dXJuIHRoaXMuX2luc3RhbmNlczsgfQotICAg
IAotICAgIC8vIFJldHVybnMgYSBGdW5jIG9iamVjdCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMg
YSBwYXJ0aWN1bGFyIHN5c3RlbSBvZiB0eXBlIGFyZ3VtZW50cy4gWW91IG11c3QKLSAgICAvLyBp
bnRhbnRpYXRlIHRoaW5ncyB3aXRoIGNvbmNyZXRlIHR5cGVzLCBiZWNhdXNlIHRoaXMgY29kZSBj
YXN1YWxseSBhc3N1bWVzIHRoaXMuIE5vdGUgdGhhdCB0aGlzCi0gICAgLy8gd2lsbCByZXR1cm4g
YSBkaWZmZXJlbnQgZnVuYyBmcm9tIGBmdW5jYCBubyBtYXR0ZXIgd2hhdC4gVGhpcyBlbnN1cmVz
IHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAgICAvLyByZXR1cm5lZCBmdW5jIGZvciByZXdyaXRlcyB0
aGF0IGluc3RhbnRpYXRlIHR5cGVzIHdpdGhvdXQgZGVzdHJveWluZyBvdXIgYWJpbGl0eSB0byBk
byBvdmVybG9hZAotICAgIC8vIHJlc29sdXRpb25zIG9uIHRoZSBvcmlnaW5hbCBQcm9ncmFtLgot
ICAgIGdldFVuaXF1ZShmdW5jLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgY2xhc3Mg
RmluZFR5cGVWYXJpYWJsZSBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICAgICAgdmlzaXRUeXBl
UmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgdHlwZUFy
Z3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAg
ICAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgdmFyaWFibGU6ICIgKyBub2RlICsgIiB3aGVuIGluc3Rh
bnRpYXRpbmcgIiArIGZ1bmMgKyAiIHdpdGggYXJndW1lbnRzICIgKyB0eXBlQXJndW1lbnRzKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2YgdHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdChuZXcgRmlu
ZFR5cGVWYXJpYWJsZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW5jZXMgPSB0aGlz
Ll9pbnN0YW5jZXMuZ2V0KGZ1bmMpOwotICAgICAgICBpZiAoIWluc3RhbmNlcykKLSAgICAgICAg
ICAgIHRoaXMuX2luc3RhbmNlcy5zZXQoZnVuYywgaW5zdGFuY2VzID0gW10pOwotICAgICAgICAK
LSAgICAgICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7Ci0gICAgICAgICAgICBs
ZXQgb2sgPSB0cnVlOwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc3RhbmNlLnR5cGVBcmd1
bWVudHMubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS50eXBl
QXJndW1lbnRzW2ldLmVxdWFscyh0eXBlQXJndW1lbnRzW2ldKSkgewotICAgICAgICAgICAgICAg
ICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmZ1bmM7Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGxldCB0aGlzSW5zdGFudGlhdG9yID0gdGhpczsKLSAgICAg
ICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24gZXh0ZW5kcyBTdWJz
dGl0dXRpb24gewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdENhbGxFeHBy
ZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFdlIG1h
eSBoYXZlIHRvIHJlLXJlc29sdmUgdGhlIGZ1bmN0aW9uIGNhbGwsIGlmIGl0IHdhcyBhIGNhbGwg
dG8gYSBwcm90b2NvbAotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZS4KLSAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0LmZ1bmMgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwocmVzdWx0
LnBvc3NpYmxlT3ZlcmxvYWRzLCByZXN1bHQudHlwZUFyZ3VtZW50cywgcmVzdWx0LmFyZ3VtZW50
VHlwZXMsIHJlc3VsdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFvdmVy
bG9hZC5mdW5jKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3Vs
ZCBub3QgcmVzb2x2ZSBwcm90b2NvbCBzaWduYXR1cmUgZnVuY3Rpb24gY2FsbCBkdXJpbmcgaW5z
dGFudGlhdGlvbjogIiArIHJlc3VsdC5mdW5jICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/
ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAocmVz
dWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYXRpdmVGdW5j
SW5zdGFuY2UgPSB0aGlzSW5zdGFudGlhdG9yLmdldFVuaXF1ZShyZXN1bHQuZnVuYywgcmVzdWx0
LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbihmdW5j
LnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLQotICAgICAgICBjbGFzcyBJbnN0YW50
aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgSW5zdGFudGlhdGVJbW1lZGlhdGVz
IHsKLSAgICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGNlcnRhaW4gdGhpbmdzIHRo
YXQgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQsIGJ1dCB0aGF0IHdlIGNhbm5vdAotICAgICAgICAg
ICAgICAgIC8vIGluc3RhbnRpYXRlIHdpdGhvdXQgYnJlYWtpbmcgY2hhaW4taW5zdGFudGlhdGlv
bnMgKGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgZ2VuZXJpYwotICAgICAgICAgICAgICAgIC8vIGZ1
bmN0aW9uIHNvIHRoZXJlZm9yZSB0aGUgaW5zdGFudGlhdGVkIGdlbmVyaWMgZnVuY3Rpb24gbXVz
dCBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIC8vICh1bmluc3RhbnRp
YXRlZCkgdHlwZXMgdG8gaW5zdGFudGlhdGUgdGhlIGdlbmVyaWMgZnVuY3Rpb24gdGhhdCBpdCBj
YWxscykuCi0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbigK
LSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJn
dW1lbnRzLAotICAgICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJndW1l
bnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKLSAgICAgICAgICAgICAgICByZXN1
bHQgPSB0aGlzLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9IEFycmF5LmZy
b20obm9kZS5hcmd1bWVudFR5cGVzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0Nhc3Qp
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2RlLnJldHVyblR5cGUp
OwotICAgICAgICAgICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gQXJyYXkuZnJv
bShub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg
ICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRpb25JbnN0YW50aWF0
ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRlIHsKLSAg
ICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGxldCByZXR1cm5UeXBlID0gZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHJldHVyblR5cGUudmlzaXQoaW5zdGFudGlh
dGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IGZ1bmMucGFy
YW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pKTsK
LSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKTsKLSAgICAgICAgICAgICAg
ICBsZXQgYm9keSA9IGZ1bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAg
ICAgIGJvZHkgPSBib2R5LnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKAotICAgICAgICAgICAgICAgICAgICBmdW5jLm9yaWdp
biwgZnVuYy5uYW1lLCByZXR1cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nh
c3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhmdW5jKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuY0luc3RhbmNlKAot
ICAgICAgICAgICAgICAgICAgICBmdW5jLAotICAgICAgICAgICAgICAgICAgICBmdW5jLnJldHVy
blR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpLAot
ICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJh
bWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKSwK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1
bmMuc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uKHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChuZXcgSW5zdGFudGlhdGUoKSk7Ci0g
ICAgICAgIHJlc3VsdGluZ0Z1bmMudW5pbnN0YW50aWF0ZWRSZXR1cm5UeXBlID0gZnVuYy5yZXR1
cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgIGxldCBpbnN0YW5jZSA9IHtmdW5j
OiByZXN1bHRpbmdGdW5jLCB0eXBlQXJndW1lbnRzfTsKLSAgICAgICAgaW5zdGFuY2VzLnB1c2go
aW5zdGFuY2UpOwotICAgICAgICByZXR1cm4gcmVzdWx0aW5nRnVuYzsKLSAgICB9Ci19Ci0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxs
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMK
aW5kZXggNDQ2YjM1MWRhNTcxNWM2OGEzNWQ3Njk3OTY5ZDY5OGVjNzNlNzRmOC4uMDlhN2U4ZjY4
NzUwOTZkNTljNzhhYmYyMDRlYjI5NDM3ODFjM2RiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKQEAgLTI0LDE5ICsyNCwxMSBA
QAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMs
IHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCitmdW5jdGlvbiBpbmZl
clR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogewotICAgIGlm
ICh0eXBlQXJndW1lbnRzLmxlbmd0aCAmJiB0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBmdW5jLnR5
cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3Zlcmxv
YWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRz
IChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVuYy50
eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBpZiAoYXJndW1lbnRUeXBlcy5sZW5n
dGggIT0gZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBu
ZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIGFyZ3Vt
ZW50cyAocGFzc2VkICIgKyBhcmd1bWVudFR5cGVzLmxlbmd0aCArICIsIHJlcXVpcmUgIiArIGZ1
bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0
ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChmdW5jLnR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29s
dXRpb24pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsr
aSkgewotICAgICAgICBsZXQgYXJndW1lbnQgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAgICBs
ZXQgcGFyYW1ldGVyID0gZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAgaWYgKCFhcmd1
bWVudC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHBhcmFtZXRlcikpCi0gICAgICAgICAgICBy
ZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJUeXBl
IGFyZ3VtZW50ICMiICsgKGkgKyAxKSArICIgZm9yIHBhcmFtZXRlciAiICsgcGFyYW1ldGVyLm5h
bWUgKyAiIGRvZXMgbm90IG1hdGNoIChwYXNzZWQgIiArIGFyZ3VtZW50ICsgIiwgcmVxdWlyZSAi
ICsgcGFyYW1ldGVyICsgIikiKX07Ci0gICAgfQogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJn
dW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICBpZiAoIWFyZ3VtZW50VHlwZXNbaV0p
CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgYXJndW1lbnQgdHlwZSBhdCBpID0g
IiArIGkpOwpAQCAtNDgsMTYgKzQwLDYgQEAgZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVu
YywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICBsZXQgdmVy
aWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwogICAgIGlmICgh
dmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcg
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29u
KX07Ci0gICAgbGV0IHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cyA9ICF0eXBlQXJndW1lbnRzLmxl
bmd0aDsKLSAgICBpZiAoc2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzKQotICAgICAgICB0eXBlQXJn
dW1lbnRzID0gW107Ci0gICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJh
bWV0ZXJzKSB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnQgPSB1bmlmaWNhdGlvbkNvbnRleHQu
ZmluZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVudCA9PSB0eXBlUGFy
YW1ldGVyKQotICAgICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0
aW9uRmFpbHVyZShmdW5jLCAiVHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIGRp
ZCBub3QgZ2V0IGFzc2lnbmVkIGEgdHlwZSIpfTsKLSAgICAgICAgaWYgKHNob3VsZEJ1aWxkVHlw
ZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudHMucHVzaCh0eXBlQXJndW1lbnQp
OwotICAgIH0KLSAgICByZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dCwgdHlwZUFyZ3Vt
ZW50c307CisgICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHR9OwogfQogCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKaW5kZXggZjAyODczYmQyNzNkOTEwYjNk
ZjA0ZmQyYTUxYTNjN2MwYTQ2N2NlZi4uODQwNWUzY2FiYWRkNTNlNDBlNWU4YjU5ZmIwZWY1Mjcz
ODQ3YjZkMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwpAQCAtMjks
NyArMjksNiBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKICAgICBmb3IgKGxldCBmdW5jTGlz
dCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3IgKGxldCBmdW5j
IG9mIGZ1bmNMaXN0KSB7CiAgICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFtZXRlcnMubGVu
Z3RoKSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5n
ZXRVbmlxdWUoZnVuYywgW10pCiAgICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dy
YW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTU1LDE0ICs1NCwxNCBAQCBmdW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwg
ZnVuYywgdmlzaXRpbmcpCiAgICAgZnVuYy5pbmxpbmVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24g
cmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1
bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVJbmxp
bmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50
ID0gZmFsc2UpCiB7Ci0gICAgbGV0IG92ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4
dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMs
IHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBvaW50KTsKKyAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFt
Lmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBl
cywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIGlmICghb3ZlcmxvYWQuZnVuYykK
ICAgICAgICAgcmV0dXJuIG92ZXJsb2FkLmZhaWx1cmVzOwogICAgIGlmICghb3ZlcmxvYWQuZnVu
Yy50eXBlUGFyYW1ldGVycykKICAgICAgICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7Ci0gICAgbGV0
IGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKG92ZXJsb2FkLmZ1bmMs
IG92ZXJsb2FkLnR5cGVBcmd1bWVudHMpOworICAgIGxldCBmdW5jID0gb3ZlcmxvYWQuZnVuYzsK
ICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KG92ZXJs
b2FkLmZ1bmMpKTsKICAgICByZXR1cm4gZnVuYzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbmxpbmVyLmpzCmluZGV4IDQ5MWVmM2UyMjFmYzA2MzE4ZWUwMzY3YTM4MTY5OWU1NzIz
YmZlNWEuLmQ5MDZmNzZkZDUzM2U2ZGU2ZTM1Y2FkZjQwYjM0MWMwMTkzNWY4NjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwpAQCAtMzgsNyArMzgsNyBAQCBjbGFz
cyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICBpZiAocmVzdWx0Lm5hdGl2ZUZ1
bmNJbnN0YW5jZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIHJldHVybiB0
aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUuZnVuYywgKCkgPT4gewotICAgICAgICAgICAgbGV0
IGZ1bmMgPSB0aGlzLl9wcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5m
dW5jLCByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7CisgICAgICAgICAgICBsZXQgZnVuYyA9
IHJlc3VsdC5mdW5jOwogICAgICAgICAgICAgaWYgKGZ1bmMuaXNOYXRpdmUpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIG5hdGl2ZSBmdW5jOiAiICsgZnVuYyk7
CiAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24odGhpcy5fcHJvZ3JhbSwgZnVuYywgdGhpcy5f
dmlzaXRpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjM5
ZWQ2NjM4MTQxMzQ4YWJjMTI3Njk2YjZlZTMxZTBiMGM1OGI2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgUmV3cml0ZXIgewotICAg
IHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZSA9IHN1cGVyLnZpc2l0VHlw
ZVJlZihub2RlKTsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUuaW5zdGFudGlhdGUpIHsKLSAgICAg
ICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigidHlwZSBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbnRpYXRpb246ICIgKyB0
eXBlICsgIiAoIiArIHR5cGUuY29uc3RydWN0b3IubmFtZSArICIpIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS50eXBlLmluc3RhbnRp
YXRlKG5vZGUudHlwZUFyZ3VtZW50cykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwotICAgIH0K
LSAgICAKLSAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBub2RlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJp
bnNpY3MuanMKaW5kZXggOTMzZGZlMDExMzAyYjBmYmM4MzQ0OTk0YTFhNWMxZjc3YzA1MmE2Zi4u
MDkzMjgzY2NlMDMxZTFkNGUxZmY2YWE1NGJkOTA1ZWMyOTkzYzg5NyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC00OTksMzMgKzQ5OSw2IEBAIGNs
YXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRy
ZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkg
aW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5v
ZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihU
W10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChy
ZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQogCiAgICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dpenpsZU9wLmFsbFN3
aXp6bGVPcGVyYXRvcnMoKSkgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzd2l6emxlLnRv
U3RyaW5nKCksIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFt
ZUNvbnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5q
cwppbmRleCBjMzFiYzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNjZTcx
MjM0ZjVhYWNkZWYzZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xhc3Mg
TmFtZUNvbnRleHQgewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAgcmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1
cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJsb2Fk
KG5hbWUsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwog
ICAgICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtd
fTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9u
cywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBv
aW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1
bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAKICAg
ICBnZXQgY3VycmVudFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZUZpbmRlci5qcwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIxZWU5
YzdkLi40M2U0NzFhYWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2IEBA
IGNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29ya2xp
c3QucHVzaChuYW1lKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRQ
cm90b2NvbFJlZihub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAg
ICAgewogICAgICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4OTgx
MjUyMjMyNTAzYmNmYWJjMzAuLjQ0YWJmMDkwMGJlOWUzOTRjYzQyYjE5OGI1ODY1NzUxYWQzZjhi
MTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZl
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMK
QEAgLTExNSwzNCArMTE1LDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgICAgIG5vZGUuYm9keS52aXNpdChuZXdSZXNvbHZlcik7CiAgICAgfQogICAgIAotICAg
IHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwYXJlbnQg
b2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcGFyZW50LnZpc2l0KHRoaXMpOwotICAgICAg
ICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwot
ICAgICAgICBuYW1lQ29udGV4dC5hZGQobm9kZS50eXBlVmFyaWFibGUpOwotICAgICAgICBsZXQg
Y2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxl
dCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZp
c2l0KGNoZWNrZXIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0g
ICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFByb3RvY29s
LCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHBy
b3RvY29sIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnByb3RvY29sRGVjbCA9
IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbGV0IGZ1bmNzID0g
dGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghZnVu
Y3MpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJDYW5ub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyBub2RlLm5hbWUpOwot
ICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVuY3M7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0VHlwZURlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3
IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKQEAgLTE3Nyw3ICsxNDksNyBAQCBjbGFz
cyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgICAgICBpZiAodGhp
bmcgaW5zdGFuY2VvZiBWYWx1ZSkKICAgICAgICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50c1tp
XSA9IG5ldyBWYXJpYWJsZVJlZih0eXBlQXJndW1lbnQub3JpZ2luLCB0eXBlQXJndW1lbnQubmFt
ZSk7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpbmcgaW5zdGFuY2VvZiBUeXBlKQotICAg
ICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzW2ldID0gbmV3IFR5cGVSZWYodHlwZUFyZ3Vt
ZW50Lm9yaWdpbiwgdHlwZUFyZ3VtZW50Lm5hbWUsIFtdKTsKKyAgICAgICAgICAgICAgICAgICAg
dHlwZUFyZ3VtZW50c1tpXSA9IG5ldyBUeXBlUmVmKHR5cGVBcmd1bWVudC5vcmlnaW4sIHR5cGVB
cmd1bWVudC5uYW1lKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
VHlwZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9mIHRoaW5nOiAiICsgdGhpbmcu
a2luZCk7CiAgICAgICAgICAgICB9CkBAIC0yMDMsMTIgKzE3NSw5IEBAIGNsYXNzIE5hbWVSZXNv
bHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5s
ZW5ndGggIT0gbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCkKICAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0
eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwg
ZXhwZWN0ZWQgIiArIHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsKICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBsZXQgcGFyYW1ldGVySXNUeXBlID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBp
bnN0YW5jZW9mIFR5cGVWYXJpYWJsZTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9
IG5vZGUudHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7CiAgICAgICAgICAgICBub2Rl
LnR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVy
SXNUeXBlICYmICFhcmd1bWVudElzVHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290
IHZhbHVlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklz
VHlwZSAmJiBhcmd1bWVudElzVHlwZSkKKyAgICAgICAgICAgIGlmIChhcmd1bWVudElzVHlwZSkK
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBlIGF0IGFyZ3VtZW50ICMiICsgaSk7
CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYXRpdmVGdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZl
RnVuYy5qcwppbmRleCBhNTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1MTgyNDg3Li5k
YzBmZjc4MWI2OTJlMTg0NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwxMiBAQAogInVz
ZSBzdHJpY3QiOwogCiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3Ry
dWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVy
cywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0
dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAg
c3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVy
cywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1
cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLmlz
UmVzdHJpY3RlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVsbDsK
ICAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhpcy5p
bnN0YW50aWF0ZUltcGxlbWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307CiAgICAgICAg
IHRoaXMudmlzaXRJbXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNp
dG9yKSA9PiBudWxsOwogICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0
aW9uRGF0YSA9IGltcGxlbWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCmluZGV4IGI4YjFhNDczMzBiNWZkNTFm
ZjAyMWFmMDY1ODY4NDRjMmFjYmE4ZWEuLjIwZWI1OTBkMGMzMzcxOWI4MmYxNWI1ZGZkMTRkODMz
ZTRjZGYwZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2
ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5q
cwpAQCAtMjUsMTQgKzI1LDE0IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZVR5cGUg
ZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0
ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cykKICAgICB7
CiAgICAgICAgIGlmICghKHR5cGVQYXJhbWV0ZXJzIGluc3RhbmNlb2YgQXJyYXkpKQogICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBlIHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlw
ZVBhcmFtZXRlcnMpOwogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBv
cmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFy
YW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOworICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0g
dHlwZUFyZ3VtZW50czsKICAgICAgICAgdGhpcy5faXNOdW1iZXIgPSBmYWxzZTsKICAgICAgICAg
dGhpcy5faXNJbnQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faXNGbG9hdGluZyA9IGZhbHNlOwpA
QCAtNDEsNyArNDEsNyBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgCiAg
ICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkg
eyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJu
IHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CisgICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJldHVy
biB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIAogICAgIC8vIFdlIGxldCBJbnRyaW5zaWNzLmpzIHNldCB0aGVzZSBhcyBpdCBs
aWtlcy4KQEAgLTU0LDE1ICs1NCw2IEBAIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsK
ICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc1ByaW1pdGl2ZTsgfQogICAg
IHNldCBpc1ByaW1pdGl2ZSh2YWx1ZSkgeyB0aGlzLl9pc1ByaW1pdGl2ZSA9IHZhbHVlOyB9CiAg
ICAgCi0gICAgaW5zdGFudGlhdGUodHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGlmICh0
eXBlQXJndW1lbnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRv
IGluc3RhbnRpYXRpb24iKTsKLSAgICAgICAgaWYgKCF0eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAg
ICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJbnN0
YW5jZSh0aGlzLCB0eXBlQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCiAgICAgdG9TdHJpbmcoKQog
ICAgIHsKICAgICAgICAgcmV0dXJuICJuYXRpdmUgdHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIjwi
ICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UGFyc2UuanMKaW5kZXggNmQyYjQzMTYxNTYwMWFiOWRkM2QwOTM4ZmJmYjM4NWVlMmE0ZGFmMS4u
ZmJlZTFkNzFhOTRiN2ZlODM0ZjA2MTgwZTBiZDUxNzA3NjEzYTJiOCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKQEAgLTEyMSwxMiArMTIxLDYgQEAgZnVuY3Rpb24gcGFy
c2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVBy
b3RvY29sUmVmKCkKLSAgICB7Ci0gICAgICAgIGxldCBwcm90b2NvbFRva2VuID0gY29uc3VtZUtp
bmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2NvbFJlZihwcm90b2Nv
bFRva2VuLCBwcm90b2NvbFRva2VuLnRleHQpOwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBj
b25zdW1lRW5kT2ZUeXBlQXJncygpCiAgICAgewogICAgICAgICBsZXQgcmlnaHRTaGlmdCA9IHRy
eUNvbnN1bWUoIj4+Iik7CkBAIC0xMzYsMzQgKzEzMCw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dy
YW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAg
ICAgIGNvbnN1bWUoIj4iKTsKICAgICB9CiAgICAgCi0gICAgZnVuY3Rpb24gcGFyc2VUeXBlUGFy
YW1ldGVycygpCi0gICAgewotICAgICAgICBpZiAoIXRlc3QoIjwiKSkKLSAgICAgICAgICAgIHJl
dHVybiBbXTsKLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgY29u
c3VtZSgiPCIpOwotICAgICAgICB3aGlsZSAoIXRlc3QoIj4iKSkgewotICAgICAgICAgICAgbGV0
IGNvbnN0ZXhwciA9IGxleGVyLmJhY2t0cmFja2luZ1Njb3BlKCgpID0+IHsKLSAgICAgICAgICAg
ICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICAgICAgICAgIGxldCBuYW1lID0g
Y29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnROZXh0KCIs
IiwgIj4iLCAiPj4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5hbWUudGV4dCwgdHlwZSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIGlmIChjb25zdGV4cHIpCi0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2go
Y29uc3RleHByKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGxldCBuYW1l
ID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBsZXQgcHJvdG9j
b2wgPSB0cnlDb25zdW1lKCI6IikgPyBwYXJzZVByb3RvY29sUmVmKCkgOiBudWxsOwotICAgICAg
ICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBUeXBlVmFyaWFibGUobmFtZSwgbmFtZS50ZXh0LCBw
cm90b2NvbCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0cnlDb25zdW1lKCIs
IikpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZUVu
ZE9mVHlwZUFyZ3MoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAg
ZnVuY3Rpb24gcGFyc2VUZXJtKCkKICAgICB7CiAgICAgICAgIGxldCB0b2tlbjsKQEAgLTIyMiw3
ICsxODgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgdG9rZW47CiAgICAgICAg
IGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi0iKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2Fs
bEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlVGVy
bSgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3Bl
cmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlVGVybSgpXSk7CiAgICAgICAgIGxldCBsZWZ0ID0g
cGFyc2VUZXJtKCk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi4iKSkKICAgICAg
ICAgICAgIGxlZnQgPSBuZXcgRG90RXhwcmVzc2lvbih0b2tlbiwgbGVmdCwgY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKS50ZXh0KTsKQEAgLTI4Miw4ICsyNDgsNyBAQCBmdW5jdGlvbiBwYXJzZShw
cm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAg
ICAgICAgICBhZGRyZXNzU3BhY2UgPSB0b2tlbi50ZXh0OwogICAgICAgICAKICAgICAgICAgbGV0
IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3Vt
ZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwotICAgICAgICBsZXQgdHlwZSA9IG5ldyBUeXBl
UmVmKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCB0eXBlID0g
bmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0KTsKICAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9u
IGdldEFkZHJlc3NTcGFjZSgpCiAgICAgICAgIHsKQEAgLTMxOCwxMSArMjgzLDEwIEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJ0eXBlZGVmIik7CiAg
ICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAg
ICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGNv
bnN1bWUoIj0iKTsKICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgY29u
c3VtZSgiOyIpOwotICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycywgdHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5h
bWUsIHR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBnZW5lcmljUGFyc2VMZWZ0KHRl
eHRzLCBuZXh0UGFyc2VyLCBjb25zdHJ1Y3RvcikKQEAgLTMzOSwxMyArMzAzLDEyIEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICB0ZXh0
cywgbmV4dFBhcnNlciwKICAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+Ci0gICAg
ICAgICAgICAgICAgbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4u
dGV4dCwgW10sIFtsZWZ0LCByaWdodF0pKTsKKyAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJl
c3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbbGVmdCwgcmlnaHRdKSk7CiAg
ICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlQ2FsbEV4cHJlc3Npb24oKQogICAgIHsKICAg
ICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQg
dHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICBjb25zdW1lKCIo
Iik7CiAgICAgICAgIGxldCBhcmd1bWVudExpc3QgPSBbXTsKICAgICAgICAgd2hpbGUgKCF0ZXN0
KCIpIikpIHsKQEAgLTM1NSw3ICszMTgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY29uc3VtZSgiKSIpOwotICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRMaXN0KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihu
YW1lLCBuYW1lLnRleHQsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIApAQCAtMzYzLDcgKzMyNiw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9y
aWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAg
IHJldHVybiBsZXhlci50ZXN0U2NvcGUoKCkgPT4gewogICAgICAgICAgICAgY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAg
ICAgICAgY29uc3VtZSgiKCIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC0zODEsNyArMzQzLDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAobmFtZSA9PSAib3BlcmF0b3IiKQogICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1lKTsKICAgICAgICAgCi0g
ICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5hbWUsIFtdLCBhcmdzKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwgYXJncyk7CiAg
ICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGZpbmlzaFBhcnNpbmdQb3N0SW5jcmVtZW50KHRva2Vu
LCBsZWZ0KQpAQCAtNDU0LDcgKzQxNiw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKHRlc3Qo
IisrIiwgIi0tIikpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VQcmVJbmNyZW1lbnQoKTsKICAg
ICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKyIsICItIiwgIn4iKSkKLSAgICAgICAgICAg
IHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0
LCBbXSwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOworICAgICAgICAgICAgcmV0dXJuIG5ldyBD
YWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtwYXJzZVBvc3Np
YmxlUHJlZml4KCldKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKiIpKQogICAg
ICAgICAgICAgcmV0dXJuIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9z
c2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiYiKSkKQEAg
LTQ2Myw3ICs0MjUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IE1ha2VB
cnJheVJlZkV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAg
IGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiEiKSkgewogICAgICAgICAgICAgbGV0IHJlbWFpbmRl
ciA9IHBhcnNlUG9zc2libGVQcmVmaXgoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTG9naWNh
bE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29sIiwg
W10sIFtyZW1haW5kZXJdKSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IExvZ2ljYWxOb3QodG9r
ZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5kZXIub3JpZ2luLCAiYm9vbCIsIFtyZW1haW5k
ZXJdKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlUG9zc2libGVTdWZmaXgoKTsK
ICAgICB9CkBAIC00OTMsNyArNDU1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2Vu
ZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIFsiPT0iLCAiIT0iXSwgcGFyc2VQb3NzaWJsZVJl
bGF0aW9uYWxJbmVxdWFsaXR5LAogICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4g
ewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4s
ICJvcGVyYXRvcj09IiwgW10sIFtsZWZ0LCByaWdodF0pOworICAgICAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09IiwgW2xlZnQsIHJp
Z2h0XSk7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gIiE9IikKICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0ID0gbmV3IExvZ2ljYWxOb3QodG9rZW4sIHJlc3VsdCk7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUxOSw3ICs0ODEsNyBAQCBmdW5jdGlvbiBw
YXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQp
CiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRl
eHRzLCBuZXh0UGFyc2VyLAotICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gbmV3
IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Npb24o
bGVmdC5vcmlnaW4sICJib29sIiwgW10sIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdo
dC5vcmlnaW4sICJib29sIiwgW10sIFtyaWdodF0pKSk7CisgICAgICAgICAgICAodG9rZW4sIGxl
ZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5l
dyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbbGVmdF0pLCBuZXcgQ2FsbEV4
cHJlc3Npb24ocmlnaHQub3JpZ2luLCAiYm9vbCIsIFtyaWdodF0pKSk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVMb2dpY2FsQW5kKCkKQEAgLTY1Niw3ICs2MTgsNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBlbHNlQm9keTsKICAgICAgICAgaWYgKHRyeUNvbnN1
bWUoImVsc2UiKSkKICAgICAgICAgICAgIGVsc2VCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAg
ICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihj
b25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNl
Qm9keSk7CisgICAgICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4
cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pLCBib2R5
LCBlbHNlQm9keSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VXaGlsZSgpCkBAIC02NjYs
NyArNjI4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4
cHJlc3Npb24oKTsKICAgICAgICAgY29uc3VtZSgiKSIpOwogICAgICAgICBsZXQgYm9keSA9IHBh
cnNlU3RhdGVtZW50KCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3
IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlv
bmFsXSksIGJvZHkpOworICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9vcChvcmlnaW4sIG5ldyBD
YWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSks
IGJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlRm9yKCkKQEAgLTY4Nyw3ICs2NDks
NyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1i
ZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgY29uZGl0aW9uID0g
cGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAg
ICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wi
LCBbXSwgW2NvbmRpdGlvbl0pOworICAgICAgICAgICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHBy
ZXNzaW9uKGNvbmRpdGlvbi5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbl0pOwogICAgICAgICB9
CiAgICAgICAgIGxldCBpbmNyZW1lbnQ7CiAgICAgICAgIGlmICh0cnlDb25zdW1lKCIpIikpCkBA
IC03MDgsNyArNjcwLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBjb25zdW1lKCIoIik7CiAgICAg
ICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1l
KCIpIik7Ci0gICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcg
Q2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9u
YWxdKSk7CisgICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcg
Q2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0p
KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xzKCkKQEAgLTg1
OCwxMyArODIwLDExIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbjsKICAgICAgICAg
bGV0IHJldHVyblR5cGU7CiAgICAgICAgIGxldCBuYW1lOwotICAgICAgICBsZXQgdHlwZVBhcmFt
ZXRlcnM7CiAgICAgICAgIGxldCBpc0Nhc3Q7CiAgICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAg
ICAgICBsZXQgb3BlcmF0b3JUb2tlbiA9IHRyeUNvbnN1bWUoIm9wZXJhdG9yIik7CiAgICAgICAg
IGlmIChvcGVyYXRvclRva2VuKSB7CiAgICAgICAgICAgICBvcmlnaW4gPSBvcGVyYXRvclRva2Vu
OwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAg
ICAgICAgICAgICByZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgICAgICBuYW1lID0g
Im9wZXJhdG9yIGNhc3QiOwogICAgICAgICAgICAgaXNDYXN0ID0gdHJ1ZTsKQEAgLTg3Nyw0NCAr
ODM3LDE3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAg
IG9yaWdpbiA9IHJldHVyblR5cGUub3JpZ2luOwogICAgICAgICAgICAgbmFtZSA9IHBhcnNlRnVu
Y05hbWUoKTsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVy
cygpOwogICAgICAgICAgICAgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbGV0
IHBhcmFtZXRlcnMgPSBwYXJzZVBhcmFtZXRlcnMoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5j
KG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlz
Q2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUs
IHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gcGFyc2VQcm90b2NvbEZ1bmNEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBm
dW5jID0gcGFyc2VGdW5jRGVjbCgpOwotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sRnVuY0Rl
Y2woZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJh
bWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwot
ICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZ1bmNEZWYoKQogICAgIHsKICAgICAgICAg
bGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VCbG9j
aygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwg
ZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGJv
ZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAKLSAgICBmdW5j
dGlvbiBwYXJzZVByb3RvY29sRGVjbCgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29u
c3VtZSgicHJvdG9jb2wiKTsKLSAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRp
ZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG9yaWdp
biwgbmFtZSk7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsKLSAgICAgICAgICAgIHdo
aWxlICghdGVzdCgieyIpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFkZEV4dGVuZHMocGFy
c2VQcm90b2NvbFJlZigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgY29uc3VtZSgieyIpOwotICAgICAgICB3aGlsZSAoIXRyeUNvbnN1bWUoIn0iKSkgewot
ICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZVByb3RvY29sRnVuY0RlY2woKSk7Ci0gICAgICAg
ICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0
dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJU
eXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGaWVsZCgpCkBAIC05MjksOCAr
ODYyLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5l
TnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUo
InN0cnVjdCIpOwogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIiku
dGV4dDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygp
OwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycyk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4s
IG5hbWUpOwogICAgICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAgIHdoaWxlICghdHJ5Q29uc3Vt
ZSgifSIpKQogICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZUZpZWxkKCkpOwpAQCAtOTQxLDcg
Kzg3Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5j
RGVjbCgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZl
RnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBh
cmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7
CisgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBm
dW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVy
VHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlTmF0aXZlKCkKQEAgLTk0OSw5
ICs4ODEsOSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJuYXRp
dmUiKTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoInR5cGVkZWYiKSkgewogICAgICAgICAgICAg
bGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgbGV0IHBh
cmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICBsZXQgYXJndW1l
bnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0g
ICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcmFt
ZXRlcnMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZS50
ZXh0LCBhcmd1bWVudHMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZU5hdGl2ZUZ1
bmMoKTsKICAgICB9CkBAIC05ODUsNyArOTE3LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAo
dHJ5Q29uc3VtZSgiOiIpKQogICAgICAgICAgICAgYmFzZVR5cGUgPSBwYXJzZVR5cGUoKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50
IiwgW10pOworICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50Iik7
CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFbnVtVHlw
ZShuYW1lLCBuYW1lLnRleHQsIGJhc2VUeXBlKTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ9Iikp
IHsKQEAgLTEwMTMsOCArOTQ1LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBv
cmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgcHJvZ3JhbS5h
ZGQocGFyc2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJl
bnVtIikKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRW51bVR5cGUoKSk7Ci0gICAgICAg
IGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInByb3RvY29sIikKLSAgICAgICAgICAgIHByb2dyYW0u
YWRkKHBhcnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwcm9n
cmFtLmFkZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1ByZXBhcmUuanMKaW5kZXggYTIwNDhhOWFkM2U4M2JkMThiNzY0NDRjYTU1NDZlNDhmZTAx
MTlhMC4uZTdjM2YyMzY2MDRmOGJhMDg3YWMxZTY2ZjU4ZDY3ODYwMWM1NzZjNiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00MiwxNiArNDIsMTMgQEAgbGV0
IHByZXBhcmUgPSAoKCkgPT4gewogICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFtKTsKICAg
ICAgICAgbGV0IG5hbWVSZXNvbHZlciA9IGNyZWF0ZU5hbWVSZXNvbHZlcihwcm9ncmFtKTsKICAg
ICAgICAgcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwotICAgICAg
ICByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwogICAgICAg
ICByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pOwotICAgICAgICByZXNvbHZlVHlwZURl
ZnNJblByb3RvY29scyhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tSZWN1cnNpdmVUeXBlcyhwcm9n
cmFtKTsKICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKTsKICAgICAg
ICAgc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVOYW1l
c0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBl
RGVmc0luRnVuY3Rpb25zKHByb2dyYW0pOwotICAgICAgICAKLSAgICAgICAgZmxhdHRlblByb3Rv
Y29sRXh0ZW5kcyhwcm9ncmFtKTsKKwogICAgICAgICBjaGVjayhwcm9ncmFtKTsKICAgICAgICAg
Y2hlY2tMaXRlcmFsVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVQcm9wZXJ0aWVzKHBy
b2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3Jh
bS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKaW5kZXggYmJj
NGIyNGE2MjI3YjFjZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZjNmY3OTNlZTZlNzNlZWNh
NWE2YWE3NGE0NDBhNjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm9ncmFtLmpzCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsK
ICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAgICAgICAgIHRoaXMuX2Z1
bmN0aW9ucyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMgPSBuZXcgTWFwKCk7Ci0g
ICAgICAgIHRoaXMuX3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fZnVuY0lu
c3RhbnRpYXRvciA9IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwogICAgICAgICB0aGlzLl9n
bG9iYWxOYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAgICAgICB0aGlzLl9nbG9i
YWxOYW1lQ29udGV4dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNv
bnRleHQucmVjb2duaXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAsNiBAQCBjbGFzcyBQcm9n
cmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVtZW50cygpIHsgcmV0dXJu
IHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5jdGlvbnMoKSB7IHJldHVy
biB0aGlzLl9mdW5jdGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJldHVybiB0aGlzLl90eXBl
czsgfQotICAgIGdldCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9wcm90b2NvbHM7IH0KLSAg
ICBnZXQgZnVuY0luc3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1bmNJbnN0YW50aWF0b3I7
IH0KICAgICBnZXQgZ2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0aGlzLl9nbG9iYWxOYW1l
Q29udGV4dDsgfQogICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01Niw4ICs1Miw2IEBAIGNs
YXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFycmF5LnB1c2goc3RhdGVt
ZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBUeXBlKQogICAg
ICAgICAgICAgdGhpcy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQpOwotICAg
ICAgICBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2NvbCkKLSAgICAgICAgICAg
IHRoaXMuX3Byb3RvY29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7CiAgICAgICAg
IGVsc2UKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVtZW50IGlzIG5vdCBhIGZ1
bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0aGlzLl90b3BMZXZlbFN0
YXRlbWVudHMucHVzaChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUHJvdG9jb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm90b2NvbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmODQ1NjQ3N2VjYTJl
OGRjZjY2Y2Y0NWMyZDQ3M2NhMDg1N2Q4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5q
cworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2wgZXh0
ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAg
ICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhp
cy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAg
Z2V0IGtpbmQoKSB7IHJldHVybiBQcm90b2NvbDsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNTBiY2ZjZjMzYmE3Mzk1YzU2ZDk1MmE1NzlkMDk5MjdiMGJlNzY3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0
cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sRGVjbCBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUp
OwotICAgICAgICB0aGlzLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9
IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRo
aXMuX3R5cGVWYXJpYWJsZSA9IG5ldyBUeXBlVmFyaWFibGUob3JpZ2luLCBuYW1lLCBudWxsKTsK
LSAgICB9Ci0gICAgCi0gICAgYWRkRXh0ZW5kcyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuZXh0ZW5kcy5wdXNoKHByb3RvY29sKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKHNpZ25hdHVy
ZSkKLSAgICB7Ci0gICAgICAgIGlmICghKHNpZ25hdHVyZSBpbnN0YW5jZW9mIFByb3RvY29sRnVu
Y0RlY2wpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaWduYXR1cmUgaXNuJ3QgYSBQ
cm90b2NvbEZ1bmNEZWNsIGJ1dCBhICIgKyBzaWduYXR1cmUuY29uc3RydWN0b3IubmFtZSk7Ci0g
ICAgICAgIAotICAgICAgICBzaWduYXR1cmUucHJvdG9jb2xEZWNsID0gdGhpczsKLSAgICAgICAg
dGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgICAgIGxldCBvdmVybG9hZHMg
PSB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KHNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgaWYgKCFv
dmVybG9hZHMpCi0gICAgICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAuc2V0KHNpZ25hdHVyZS5u
YW1lLCBvdmVybG9hZHMgPSBbXSk7Ci0gICAgICAgIG92ZXJsb2Fkcy5wdXNoKHNpZ25hdHVyZSk7
Ci0gICAgfQotICAgIAotICAgIGdldCBzaWduYXR1cmVzKCkgeyByZXR1cm4gdGhpcy5fc2lnbmF0
dXJlczsgfQotICAgIHNpZ25hdHVyZXNCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fc2lnbmF0
dXJlTWFwLmdldChuYW1lKTsgfQotICAgIGdldCB0eXBlVmFyaWFibGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlVmFyaWFibGU7IH0KLSAgICAKLSAgICBzaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJp
YWJsZShuYW1lLCB0eXBlVmFyaWFibGUpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9u
ID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy50eXBlVmFyaWFibGVdLCBbdHlwZVZhcmlhYmxlXSk7
Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUobmFtZSk7Ci0gICAg
ICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIHJldHVy
biByZXN1bHQubWFwKHNpZ25hdHVyZSA9PiBzaWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKSk7
Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVyUHJvdG9jb2wpCi0gICAgewotICAgICAg
ICBpZiAoIW90aGVyUHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgICAgIAotICAgICAgICBpZiAob3RoZXJQcm90b2NvbCBpbnN0YW5jZW9mIFByb3RvY29s
UmVmKQotICAgICAgICAgICAgb3RoZXJQcm90b2NvbCA9IG90aGVyUHJvdG9jb2wucHJvdG9jb2xE
ZWNsOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgb3RoZXJTaWduYXR1cmUgb2Ygb3RoZXJQ
cm90b2NvbC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlcyA9IHRoaXMu
c2lnbmF0dXJlc0J5TmFtZShvdGhlclNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgICAgIGlmICgh
c2lnbmF0dXJlcykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNv
bjogIlByb3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIGRvZXMgbm90IGhhdmUgYSBmdW5jdGlvbiBu
YW1lZCAiICsgb3RoZXJTaWduYXR1cmUubmFtZSArICIgKGxvb2tpbmcgYXQgc2lnbmF0dXJlICIg
KyBvdGhlclNpZ25hdHVyZSArICIpIn07Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNv
bHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAgIHNpZ25hdHVyZXMsIFtdLAotICAgICAg
ICAgICAgICAgIG90aGVyU2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLAotICAgICAgICAgICAgICAg
IG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwotICAgICAg
ICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0
OiBmYWxzZSwgcmVhc29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBmb3IgIiAr
IG90aGVyU2lnbmF0dXJlICsgIiBpbiAiICsgdGhpcy5uYW1lICsgKG92ZXJsb2FkLmZhaWx1cmVz
Lmxlbmd0aCA/ICIgKHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIp
IiA6ICIiKX07Ci0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlID0KLSAgICAg
ICAgICAgICAgICBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRp
b24oCi0gICAgICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92
ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVk
UmV0dXJuVHlwZS5lcXVhbHMob3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZSkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJSZXR1cm4gdHlwZSBtaXNtYXRj
aCBiZXR3ZWVuICIgKyBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0
aXR1dGVkUmV0dXJuVHlwZX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgIH0KLSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAgewotICAgICAgICBsZXQg
c3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy5fdHlwZVZhcmlhYmxlXSwgW3R5
cGVdKTsKLSAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXM7Ci0gICAgICAg
IGZvciAobGV0IG9yaWdpbmFsU2lnbmF0dXJlIG9mIHNpZ25hdHVyZXMpIHsKLSAgICAgICAgICAg
IGxldCBzaWduYXR1cmUgPSBvcmlnaW5hbFNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pOwot
ICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChzaWduYXR1cmUu
cG9zc2libGVPdmVybG9hZHMsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycywgc2lnbmF0dXJlLnBh
cmFtZXRlclR5cGVzLCBzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7
Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0Y2hpbmcgc2lnbmF0dXJl
IGZvciAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3JpZ2luYWxTaWduYXR1cmUu
b3JpZ2luLm9yaWdpblN0cmluZyArICIpIHdpdGggdHlwZSAiICsgdHlwZSArIChvdmVybG9hZC5m
YWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsg
IikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0
ZWRSZXR1cm5UeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZp
Y2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92
ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVk
UmV0dXJuVHlwZS5lcXVhbHMoc2lnbmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiQXQgc2lnbmF0dXJlICIgKyBvcmlnaW5h
bFNpZ25hdHVyZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nICsgIik6IHJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIHNpZ25hdHVyZS5yZXR1
cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZSArICIgaW4gZm91bmQgZnVu
Y3Rpb24gIiArIG92ZXJsb2FkLmZ1bmMudG9EZWNsU3RyaW5nKCl9OwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuICJwcm90b2NvbCAiICsgdGhpcy5uYW1lICsgIiB7ICIgKyB0
aGlzLnNpZ25hdHVyZXMuam9pbigiOyAiKSArICI7IH0iOwotICAgIH0KLX0KLQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODliNWM5YjhlNzE2MTg2OGExY2U0NWQ1ODg2NjM5MmMw
MjIyNDRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQot
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbEZ1bmNEZWNsIGV4dGVu
ZHMgRnVuYyB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnMuY29uY2F0KHRoaXMucHJvdG9j
b2xEZWNsLnR5cGVWYXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
M2MwZWEzMGQ3NDhkOGI5ZTE2MTA3YTlmODA4YzIzYjMyODY1ZTY0Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Byb3RvY29sUmVmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1j
bGFzcyBQcm90b2NvbFJlZiBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUpOwotICAgICAgICB0
aGlzLnByb3RvY29sRGVjbCA9IG51bGw7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVy
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmluaGVyaXRzKG90aGVy
KTsKLSAgICB9Ci0gICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMucHJvdG9jb2xEZWNsLmhhc0hlaXIodHlwZSk7Ci0gICAgfQotICAgIAotICAgIGdldCBp
c1ByaW1pdGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaXNQ
cmltaXRpdmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmVzb2x2ZU5hbWVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVz
b2x2ZU5hbWVzLmpzCmluZGV4IDE5MjJlOGVjMjdmYzM5ZDk1YjRhYThiZmE5YTU2YzkxMGY2ZTY4
YjIuLjQ5ZGM4NjM3ZDRlMTQzYTliMDdkNTljZjNmYjk3NWNmODRhNjVlMTYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKQEAgLTM1LDEyICszNSw2
IEBAIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQog
ICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQodHlwZSk7CiB9CiAKLWZ1bmN0aW9uIHJl
c29sdmVOYW1lc0luUHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKLXsKLSAgICBmb3Ig
KGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgbmFt
ZVJlc29sdmVyLmRvU3RhdGVtZW50KHByb3RvY29sKTsKLX0KLQogZnVuY3Rpb24gcmVzb2x2ZU5h
bWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogewogICAgIGZvciAobGV0IGZ1
bmNzIG9mIHByb2dyYW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcwppbmRleCA3ZTIyMTU2
ZGUxYWM1ZTJhNmM3MjRhZDM0NjlkYzkxZTc0NmYyNTY2Li5kNTRiOTRkMzZjZGIwYjA2ODI5OTYy
NmFmMDU2NWE4MmJhNzc3NWM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogInVz
ZSBzdHJpY3QiOwogCi1mdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0g
ZmFsc2UpCitmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJndW1lbnRU
eXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7CiAgICAgaWYgKCFm
dW5jdGlvbnMpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBmdW5jdGlvbnM7IHRoYXQg
c2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgYnkgdGhlIGNhbGxlci4iKTsKQEAgLTM2LDcgKzM2LDcg
QEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMs
IGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gobmV3
IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIkZ1bmN0aW9uIGlzIGEgIiArIGZ1bmMu
c2hhZGVyVHlwZSArICIgc2hhZGVyLCBzbyBpdCBjYW5ub3QgYmUgY2FsbGVkIGZyb20gd2l0aGlu
IGFuIGV4aXN0aW5nIHNoYWRlci4iKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
Ci0gICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOworICAgICAgICBsZXQgb3ZlcmxvYWQg
PSBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKTsKICAg
ICAgICAgaWYgKG92ZXJsb2FkLmZhaWx1cmUpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG92
ZXJsb2FkLmZhaWx1cmUpOwogICAgICAgICBlbHNlCkBAIC03NCw3ICs3NCw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlCiAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyRnVuYyA9IHN1Y2Nlc3Nl
c1tqXS5mdW5jOwogICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwo
CiAgICAgICAgICAgICAgICAgcGFyYW1ldGVyRnVuYywKLSAgICAgICAgICAgICAgICB0eXBlQXJn
dW1lbnRzLmxlbmd0aCA/IGFyZ3VtZW50RnVuYy50eXBlUGFyYW1ldGVycyA6IFtdLAogICAgICAg
ICAgICAgICAgIGFyZ3VtZW50RnVuYy5wYXJhbWV0ZXJUeXBlcywKICAgICAgICAgICAgICAgICBh
cmd1bWVudEZ1bmMucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7CiAgICAgICAgICAg
ICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Jlc29sdmVUeXBlRGVmcy5qcwppbmRleCAzYmQyYTRkNjVmNTY0ZjcwOGIwZWY0NzU5ZTQz
YjJjODhkNDhjMjM0Li5lODdiZGMzYzM0ODMxOTk1MmZmOWQ4ZjAzOTlmMzQ4ZWE5NTBkNjBlIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpz
CkBAIC0zMSwxMyArMzEsNiBAQCBmdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dy
YW0pCiAgICAgICAgIHR5cGUudmlzaXQocmVzb2x2ZXIpOwogfQogCi1mdW5jdGlvbiByZXNvbHZl
VHlwZURlZnNJblByb3RvY29scyhwcm9ncmFtKQotewotICAgIGxldCByZXNvbHZlciA9IG5ldyBU
eXBlRGVmUmVzb2x2ZXIoKTsKLSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3Rv
Y29scy52YWx1ZXMoKSkKLSAgICAgICAgcHJvdG9jb2wudmlzaXQocmVzb2x2ZXIpOwotfQotCiBm
dW5jdGlvbiByZXNvbHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKQogewogICAgIGxldCBy
ZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmV3cml0ZXIuanMKaW5kZXggZjQwZDZiODhiMjZlZWRjYmY4MjlmMWJhYmIxMGEyMDQ1
YjdhOGU4My4uNzlmYmM3OTk3YjNjYTRmYmQ4NWJiYzZkZGQ2ZThkZDVkNGE5YzVhZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTU3LDMwICs1Nyw4IEBA
IGNsYXNzIFJld3JpdGVyIHsKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkgeyByZXR1cm4gbm9k
ZTsgfQogICAgIHZpc2l0VHlwZURlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRT
dHJ1Y3RUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5v
ZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdEVudW1UeXBlKG5vZGUpIHsgcmV0dXJuIG5v
ZGU7IH0KIAotICAgIC8vIFRoaXMgaXMgYWxtb3N0IHdyb25nLiBXZSBpbnN0YW50aWF0ZSBGdW5j
IGluIFN1YnN0aXR1dGlvbiBpbiBQcm90b2NvbERlY2wuIFRoZW4sIHdlIGVuZCB1cAotICAgIC8v
IG5vdCByZXdyaXRpbmcgdHlwZSB2YXJpYWJsZXMuIEkgdGhpbmsgdGhhdCBqdXN0IHdvcmtzIGJl
Y2F1c2Ugbm90IHJld3JpdGluZyB0aGVtIHRoZXJlIGlzIE9LLgotICAgIC8vIEV2ZXJ5d2hlcmUg
ZWxzZSwgaXQncyBtYW5kYXRvcnkgdGhhdCB3ZSBkb24ndCByZXdyaXRlIHRoZXNlIGJlY2F1c2Ug
d2UgYWx3YXlzIGFzc3VtZSB0aGF0Ci0gICAgLy8gdHlwZSB2YXJpYWJsZXMgYXJlIG91dHNpZGUg
dGhlIHNjb3BlIG9mIHJld3JpdGluZy4KLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7IHJl
dHVybiBub2RlOyB9Ci0KLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICB7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xGdW5jRGVjbCgKLSAgICAgICAgICAgIG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQo
dGhpcyksCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4g
cGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKLSAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAo
cGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLmlz
Q2FzdCwKLSAgICAgICAgICAgIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAgICAgIHJlc3VsdC5wcm90
b2NvbERlY2wgPSBub2RlLnByb3RvY29sRGVjbDsKLSAgICAgICAgcmVzdWx0LnBvc3NpYmxlT3Zl
cmxvYWRzID0gbm9kZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0gICAgCiAgICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKApAQCAtMTI1LDE0ICsxMDMsOSBA
QCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0pKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQ
cm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAo
dHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFtZSk7CiAgICAgICAgIHJl
c3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjkwLDYgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAg
ICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpCiAgICAgewotICAgICAgICBs
ZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewotICAgICAg
ICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGFj
dHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1bWVudCA9PiBhY3R1YWxUeXBlQXJn
dW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJl
dHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRz
ID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAg
ICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1
bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgbGV0
IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50VHlwZXM7CiAgICAgICAgIGlmIChhcmd1bWVu
dFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVudFR5cGVz
Lm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRUeXBlLnZpc2l0KHRoaXMpKTsKQEAgLTM0Miw3
ICszMDcsNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwK
LSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVB
cmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAo
YXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKICAgICAgICAgcmV0dXJu
IHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDkzZjZiOWI5MzJkMjcyZDc3
YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLmI2MzZlOTJjY2YwMTAxYTQ4OTkwZGNkMGE5ZjBiZWU5
ZjI2ZTIwODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAt
NDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJU
b0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRvV2hp
bGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcgKzYwLDYgQEAgdGQgewogICAgIDxzY3JpcHQg
c3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZpZWxk
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC03OSw3ICs3
Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJ
bW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMDksMTAgKzEw
Niw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
UHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5j
RGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTE0MSwxMCArMTM0LDcg
QEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
VHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlUGFy
YW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4K
LSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJV
aW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TUElSVkNvZGVnZW4uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNv
ZGVnZW4uanMKaW5kZXggYjRmNTA4NTlhODdhZmI2MGU1NGIzNjBjNjA1OWM0YWFjOGMyM2JjYS4u
YTlmZGVlY2U0NzU4NjY4NjYzZWQxMDMyZjcyYjIwM2U4MjA1MmFhMSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcwpAQCAtNTMsNyArNTMsNyBAQCBm
dW5jdGlvbiBnZW5lcmF0ZVNQSVJWKHNwaXJ2LCBwcm9ncmFtKQogICAgIHR5cGVNYXAuc2V0KHBy
b2dyYW0uaW50cmluc2ljcy51aW50MzIsIGN1cnJlbnRJZCsrKTsKIAogICAgIGZvciAobGV0IGVu
dHJ5UG9pbnQgb2YgZmluZEVudHJ5UG9pbnRzKCkpIHsKLSAgICAgICAgbGV0IGlubGluZWRTaGFk
ZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGVudHJ5UG9pbnQsIFtdKTsK
KyAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBvaW50OwogICAgICAgICBfaW5saW5l
RnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGVudHJ5UG9p
bnQpKTsKIAogICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0gbmV3IFNQSVJWVHlwZUFuYWx5emVy
KHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggMTk4ODcyM2MzNTQ4MDgxYzY2N2Zh
Yzc4NjJmNDAyNjdmOWY4Yjg1Ny4uZGU2YzRhMTYzNjhmNzZhZWEwMjE3Y2E3MjE3ZDUxYjYxMDAw
NzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRM
aWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGli
cmFyeS5qcwpAQCAtMTQ1LDE0ICsxNDUsNiBAQCBib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQog
ICAgIHJldHVybiAhdmFsdWU7CiB9CiAKLXByb3RvY29sIEFkZGFibGUgewotICAgIEFkZGFibGUg
b3BlcmF0b3IrKEFkZGFibGUsIEFkZGFibGUpOwotfQotCi1wcm90b2NvbCBFcXVhdGFibGUgewot
ICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7Ci19Ci0KIHJlc3RyaWN0
ZWQgb3BlcmF0b3I8VD4gVCgpCiB7CiAgICAgVCBkZWZhdWx0VmFsdWU7CkBAIC0xNjQsMTEgKzE1
Niw2IEBAIHJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChUIHgpCiAgICAgcmV0dXJuIHg7CiB9CiAK
LW9wZXJhdG9yPFQ6RXF1YXRhYmxlPiBib29sKFQgeCkKLXsKLSAgICByZXR1cm4geCAhPSBUKCk7
Ci19Ci0KIHN0cnVjdCB2ZWMyPFQ+IHsKICAgICBUIHg7CiAgICAgVCB5OwpAQCAtMTg2LDExICsx
NzMsNiBAQCBvcGVyYXRvcjxUPiB2ZWMyPFQ+KFQgeCwgVCB5KQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMjxUPiBhLCB2ZWMyPFQ+IGIp
Ci17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKLX0KLQogdGhyZWFkIFQq
IG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMyPFQ+KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAg
aWYgKGluZGV4ID09IDApCkBAIC0yMzcsMTEgKzIxOSw2IEBAIG9wZXJhdG9yPFQ+IHZlYzM8VD4o
VCB4LCB2ZWMyPFQ+IHYyKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgb3BlcmF0b3I9
PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwotfQotCiB0aHJlYWQgVCogb3BlcmF0
b3ImW108VD4odGhyZWFkIHZlYzM8VD4qIGZvbywgdWludCBpbmRleCkKIHsKICAgICBpZiAoaW5k
ZXggPT0gMCkKQEAgLTMzNCwxMSArMzExLDYgQEAgb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIHZl
YzM8VD4gdjMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBvcGVyYXRvcj09PFQ6RXF1
YXRhYmxlPih2ZWM0PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKLX0KLQogdGhyZWFkIFQq
IG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWM0PFQ+KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAg
aWYgKGluZGV4ID09IDApCkBAIC0zODYsNCArMzU4LDQgQEAgZnVuY3Rpb24gaW50VG9TdHJpbmco
eCkKIAogLy8gVGhlcmUgYXJlIDQ4MSBzd2l6emxlIG9wZXJhdG9ycywgc28gd2UgY29tcGlsZSB0
aGVtIGFzIG5hdGl2ZSBmdW5jdGlvbnMKIHN0YW5kYXJkTGlicmFyeSArPSBTd2l6emxlT3AuYWxs
U3dpenpsZU9wZXJhdG9ycygpLmpvaW4oIjtcbiIpICsgIjsiOwotY29uc29sZS5sb2coc3RhbmRh
cmRMaWJyYXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjb25zb2xlLmxvZyhzdGFu
ZGFyZExpYnJhcnkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVt
ZW50Q2xvbmVyLmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3ZjdmYzFhNjNiYzcxY2Yz
MTYuLjY0YTJmMGI3NDhmMzY4MGJiYmE2MTQ3Nzg0MmM5ZDdmMmE5MzQ2ZDEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKQEAgLTI3LDEx
ICsyNyw5IEBACiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAg
dmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBu
b2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlz
aXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNEZWYoCiAgICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZp
c2l0KHRoaXMpLAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICBub2Rl
LnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAg
ICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3Qs
IG5vZGUuc2hhZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNzIFN0YXRlbWVudENsb25l
ciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOYXRpdmVGdW5j
KAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUu
cmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMu
bWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAg
ICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhp
cykpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CiAgICAgICAg
IHJlc3VsdC5pc1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKQEAgLTc1LDMxICs3Miw2
IEBAIGNsYXNzIFN0YXRlbWVudENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVy
KG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIo
bm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgICAgICBm
b3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICByZXN1bHQuYWRk
RXh0ZW5kcyhwcm90b2NvbC52aXNpdCh0aGlzKSk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVy
ZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICByZXN1bHQuYWRkKHNpZ25hdHVyZS52
aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRU
eXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZVZhcmlhYmxl
KG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwgdGhpcykp
OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gbmV3IFByb3RvY29sUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgIH0K
LSAgICAKICAgICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4g
bmV3IEJvb2xMaXRlcmFsKG5vZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCmluZGV4IDRm
OThjNTczYTFhMzgyMzdlMTY0NTBhZTEwYjg2Y2IyZTYxZDEyMzAuLmEwZjUyMTliNGUzNDg5NDJi
ZTJkOTY5ODA0NmUxMWFjNTU3NTYzNDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwpAQCAtNzYsMTMgKzc2LDYgQEAgY2xh
c3MgU3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAg
Zm9yIChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2Rl
LnZpc2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMg
PSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJn
dW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlw
ZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9k
ZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChu
b2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5y
ZXN1bHRUeXBlLCB0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RydWN0VHlwZS5qcwppbmRleCBmOWQ4YzdkYTQ4NTgzMjE2MWU1NWQyMmE0Mzg3NjI5OTMzN2Ni
OTM2Li4zOTQ3ZmRiYWMwNzAwMGRlODBmZmY2NWZkNjZjNmUwMDU4YTI3ZWMxIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKQEAgLTI1LDEyICsyNSwxMSBA
QAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7Ci0gICAg
Y29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9v
cmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlz
Ll90eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9maWVsZHMg
PSBuZXcgTWFwKCk7CiAgICAgfQogICAgIApAQCAtNDQsNyArNDMsNiBAQCBjbGFzcyBTdHJ1Y3RU
eXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9u
YW1lOyB9CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdl
dCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAg
CiAgICAgZ2V0IGZpZWxkTmFtZXMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMua2V5cygpOyB9CiAg
ICAgZmllbGRCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmdldChuYW1lKTsgfQpA
QCAtNTgsMzIgKzU2LDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1l
bnRzID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsOwotICAg
ICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLnR5cGVQYXJhbWV0ZXJzOwotICAgICAgICAK
LSAgICAgICAgaWYgKHR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1l
bnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBu
dW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICAgICAg
Ci0gICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHRoaXMudHlwZVBh
cmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBb
XTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRl
cyA9IG5ldyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBTdHJ1Y3RUeXBlKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKLSAg
ICAgICAgZm9yIChsZXQgZmllbGQgb2YgdGhpcy5maWVsZHMpIHsKLSAgICAgICAgICAgIGxldCBu
ZXdGaWVsZCA9IGZpZWxkOwotICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbikKLSAgICAgICAg
ICAgICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAg
ICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0g
ICAgICAgICAgICByZXN1bHQuYWRkKG5ld0ZpZWxkKTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwp
CkBAIC05NCw2ICs2Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAK
ICAgICB0b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5u
YW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IHsgIiArIEFycmF5LmZyb20odGhp
cy5maWVsZHMpLmpvaW4oIjsgIikgKyAiOyB9IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QgIiAr
IHRoaXMubmFtZSArICIgeyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSAr
ICI7IH0iOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhj
MjlmMWVhMDUxMGNlMjllMjgwYTU2Zi4uMTdiNjE4NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0
MDAxNzliMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhl
c2l6ZUVudW1GdW5jdGlvbnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKQEAgLTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBz
eW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFtKQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsK
ICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAg
ICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAi
Ym9vbCIsIFtdKSwgW10sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBu
ZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgImJvb2wiKSwKICAgICAgICAgICAgIFsKLSAgICAgICAg
ICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYo
dHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKSwKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUu
bmFtZSwgW10pKQorICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2lu
LCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSksCisgICAgICAgICAg
ICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5
cGUub3JpZ2luLCB0eXBlLm5hbWUpKQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIGlzQ2Fz
dCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4gRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFs
dWUoKSk7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAg
ICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4s
ICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBb
XSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBl
Lm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0
ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGws
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nh
c3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAg
ICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5
cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3Jp
dGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwg
bnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAg
ICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5l
dyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdp
biwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAg
ICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMp
OwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAg
ICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSwgW10pLCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0
b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpLAogICAgICAgICAg
ICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZp
c2l0KG5ldyBSZXdyaXRlcigpKSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
ICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1
Y3RBY2Nlc3NvcnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzLmpzCmluZGV4IGY3ODE2ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1
ZTRiZmUzYTkuLmE3OTg3ODg1NTIyYTc5ZTgyYTIwNzM0MTY0ZjE1MmIxODM4YzQyMmYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0
cnVjdEFjY2Vzc29ycy5qcwpAQCAtMzEsMjggKzMxLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0
cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAog
ICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiB0eXBlLmZpZWxkcykgewotICAgICAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiB0eXBlLnR5cGVQYXJhbWV0ZXJzLm1hcCgKLSAgICAgICAgICAgICAgICAgICAg
dHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3
cml0ZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBmdW5j
dGlvbiBjcmVhdGVUeXBlQXJndW1lbnRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gdHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRl
ci52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
CiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5j
LCBpbXBsZW1lbnRhdGlvbikKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYXRpdmVG
dW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24gPSBzdWJzdGl0dXRpb24gPT4gewotICAgICAg
ICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IHR5cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50
eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgc3Vic3RpdHV0ZSA9IHN1YnN0aXR1dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBl
IHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gc3Vic3RpdHV0ZTsKLSAgICAgICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4ge3R5cGU6IG5ld1R5cGUsIGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0g
ICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVt
ZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9uRGF0YSwgdmlzaXRvcikgPT4gewogICAgICAg
ICAgICAgICAgICAgICAvLyBWaXNpdGluZyB0aGUgdHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhl
IHN0cnVjdCBsYXlvdXQgYnVpbGRlciBmaWd1cmVzIG91dCB0aGUgZmllbGQncwogICAgICAgICAg
ICAgICAgICAgICAvLyBvZmZzZXQuCkBAIC05NCw3ICs3NCw3IEBAIGZ1bmN0aW9uIHN5bnRoZXNp
emVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVu
Y3Rpb24gY3JlYXRlVHlwZVJlZigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSwgY3JlYXRlVHlwZUFyZ3VtZW50cygpKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0eXBlKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbGV0IGlzQ2FzdCA9IGZhbHNlOwpAQCAt
MTAzLDkgKzgzLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFt
KQogICAgICAgICAgICAgbGV0IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0
ZXI6IG9wZXJhdG9yLmZpZWxkCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMo
Ci0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUs
IGNyZWF0ZUZpZWxkVHlwZSgpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAg
ICAgICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3Jl
YXRlVHlwZVJlZigpKV0sIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cElt
cGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUs
IGZpZWxkU2l6ZSkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihu
ZXcgRUJ1ZmZlcihmaWVsZFNpemUpLCAwKTsKQEAgLTExNSw5ICs5NCw4IEBAIGZ1bmN0aW9uIHN5
bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRk
KG5hdGl2ZUZ1bmMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBv
cGVyYXRvci5maWVsZD0KLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBh
cmFtZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAg
ICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9
IiwgY3JlYXRlVHlwZVJlZigpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigp
LAogICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0
ZXIoZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAg
ICAgICBuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlw
ZSgpKQpAQCAtMTM0LDEwICsxMTIsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNz
b3JzKHByb2dyYW0pCiAgICAgICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAog
ICAgICAgICAgICAgZnVuY3Rpb24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVy
cygpOwogICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAg
ICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBu
ZXcgUHRyVHlwZShmaWVsZC5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkp
LAotICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAg
ICAgWwogICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2
ZDBiZGQ0NDFiYmMuLmViMjcyYzEzNzA1ZDM3ZjA2MjllNjAwMTVkMWY4ZDU2MDJkMGFkYmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAK
IDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNv
bW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVy
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0
IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNzMsNyArNzEsNiBAQAogPHNjcmlwdCBzcmM9Iklu
ZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0
ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICsx
MDAsNiBAQAogPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRo
VW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90
b2NvbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0x
MzEsMTAgKzEyNCw3IEBACiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBl
T3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJl
d3JpdGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5
cGVWYXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggMmIwNTY5MDJhNjZjYzMyZDA0YTFlYTcyMGQyNTFlM2Y3
MGNmOTY0OC4uNzZjY2E4NzlhYjJmYWZiMTA1NTlmZWNmOGU4NDMzMTU3NjFlMTc1OSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC0xODcsNyArMTg3LDcgQEAgdGVzdHMu
Y29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKICAgICAgICAgcnVucyBvdmVyIG11bHRpcGxl
IGxpbmVzICovCiAgICAgICAgIGJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGApOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgdHJ1ZSk7CiAKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCkBAIC0yMDAsOTIgKzIwMCw5MiBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9u
KCkgewogCiB0ZXN0cy5saXRlcmFsQm9vbCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKCJib29sIGZvbygpIHsgcmV0dXJuIHRydWU7IH0iKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRy
dWUpOwogfQogCiB0ZXN0cy5pZGVudGl0eUJvb2wgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiB4OyB9Iik7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
ICsgeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDEy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAtIHk7IH0iKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAtMik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwg
bWFrZUludChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIC0yKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQg
eSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCA1KV0pLCAzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTUp
XSksIC0zNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzNSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSldKSwgLTM1KTsKICAgICBwcm9ncmFt
ID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtMildKSwgLTMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCAtMildKSwgLTMpOwogfQogCiB0ZXN0cy51aW50U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1
cm4geCArIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAxMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMik7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJu
IHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5
NDk2NzI5NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4
ICogeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDM1KTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAv
IHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAz
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMpOwogfQogCiB0
ZXN0cy51aW50OFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0g
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMTIpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4IC0geTsg
fSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDIp
OwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDI1NCk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDI1NCk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggKiB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMzUp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMzUpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4
IC8geTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDIp
XSksIDMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgMildKSwgMyk7
CiB9CiAKIHRlc3RzLmVxdWFsaXR5ID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoImJvb2wgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KCJib29sIGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoImJvb2wgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9v
KGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0s
IGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUp
OwogfQogCiB0ZXN0cy5sb2dpY2FsTmVnYXRpb24gPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCkgeyByZXR1cm4gIXg7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLm5vdEVxdWFsaXR5ID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVy
biB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4
ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUp
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyld
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgZmFsc2Up
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4g
eCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxz
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0gZnVu
Y3Rpb24oKQpAQCAtMjk4LDEzICsyOTgsMTMgQEAgdGVzdHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9
IGZ1bmN0aW9uKCkKIHRlc3RzLmdlbmVyYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgpIHsgcmV0dXJuICF4OyB9Iik7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUp
OwogfQogCiB0ZXN0cy5hZGQxID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoImludCBmb28oaW50IHgpIHsgcmV0dXJuIHggKyAxOyB9Iik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUdl
bmVyaWMgPSBmdW5jdGlvbigpIHsKQEAgLTMxMiw3ICszMTIsNyBAQCB0ZXN0cy5zaW1wbGVHZW5l
cmljID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIFQgaWQ8VD4oVCB4KSB7IHJldHVybiB4OyB9CiAg
ICAgICAgIGludCBmb28oaW50IHgpIHsgcmV0dXJuIGlkKHgpICsgMTsgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMpOwogfQogCiB0
ZXN0cy5uYW1lUmVzb2x1dGlvbkZhaWx1cmUgPSBmdW5jdGlvbigpCkBAIC0zMzEsNyArMzMxLDcg
QEAgdGVzdHMuc2ltcGxlVmFyaWFibGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBsZUFzc2lnbm1lbnQgPSBm
dW5jdGlvbigpCkBAIC0zNDQsNyArMzQ0LDcgQEAgdGVzdHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0K
IAogdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1bmN0aW9uKCkKQEAgLTM1Niw3ICszNTYsNyBAQCB0
ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwogfQogCiB0ZXN0cy5zaW1wbGVEZXJl
ZmVyZW5jZSA9IGZ1bmN0aW9uKCkKQEAgLTM2OSw3ICszNjksNyBAQCB0ZXN0cy5zaW1wbGVEZXJl
ZmVyZW5jZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZm
ZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVm
ZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0cy5kZXJlZmVyZW5jZVN0b3JlID0gZnVuY3Rpb24o
KQpAQCAtMzgyLDcgKzM4Miw3IEBAIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigp
CiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5z
ZXQoMCwgMTMpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CisgICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmln
aW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDUyKQogICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkV4cGVjdGVkIGJ1ZmZlciB0byBjb250YWluIDUyIGJ1dCBpdCBjb250YWluczogIiAr
IGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtMzk2LDcgKzM5Niw3IEBAIHRlc3RzLnNpbXBsZU1ha2VQ
dHIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gJng7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
OworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKTsKICAg
ICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVy
biB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1
bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAg
LTQxOCw3ICs0MTgsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWQgPSBmdW5jdGlvbigpCiAgICAg
YCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwg
ODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
VHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVy
LCAwKSwgMSkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJl
YWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1
ZmZlciwgMCksIDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQog
CkBAIC00MzIsNyArNDMyLDcgQEAgdGVzdHMudGhyZWFkQXJyYXlMb2FkSW50TGl0ZXJhbCA9IGZ1
bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAg
YnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3Jp
Z2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihu
ZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5h
bE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVz
dWx0LCA4OSk7CiB9CiAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB0ZXN0cy5kZXZpY2VBcnJheUxvYWQg
PSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwog
ICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5h
bE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0
ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFy
cmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0s
IHJlc3VsdCwgODkpOwogfQogCkBAIC00NjMsMTAgKzQ2MywxMCBAQCB0ZXN0cy50aHJlYWRBcnJh
eVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAog
ICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZm
ZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5
UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIu
Z2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQg
aW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAt
MTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtl
SW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBl
Y3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtNDg0LDEwICs0ODQsMTAgQEAg
dGVzdHMuZGV2aWNlQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYXJyYXlSZWYgPSBU
eXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAgIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKKyAgICBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsK
ICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIgKyBidWZmZXIuZ2V0
KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlmIChidWZmZXIuZ2V0
KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KQEAgLTUw
NSwzMiArNTA1LDE0IEBAIHRlc3RzLmRldmljZUFycmF5U3RvcmVJbnRMaXRlcmFsID0gZnVuY3Rp
b24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJy
YXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0g
ICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHBy
b2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVm
LCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQog
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4
cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0x
MTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiAr
IGJ1ZmZlci5nZXQoMCkpOwogfQogCi10ZXN0cy5zaW1wbGVQcm90b2NvbCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15QWRkYWJs
ZSB7Ci0gICAgICAgICAgICBNeUFkZGFibGUgb3BlcmF0b3IrKE15QWRkYWJsZSwgTXlBZGRhYmxl
KTsKLSAgICAgICAgfQotICAgICAgICBUIGFkZDxUOk15QWRkYWJsZT4oVCBhLCBUIGIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICsgYjsKLSAgICAgICAgfQotICAgICAgICBpbnQg
Zm9vKGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRkKHgsIDczKTsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ1KV0pLCA0NSArIDczKTsKLX0KLQog
dGVzdHMudHlwZU1pc21hdGNoUmV0dXJuID0gZnVuY3Rpb24oKQogewogICAgIGNoZWNrRmFpbCgK
QEAgLTY2Niw3ICs2NDgsNyBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAg
bGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDIpOwogICAgIGJ1ZmZlci5zZXQoMCwgNjIpOwogICAg
IGJ1ZmZlci5zZXQoMSwgMjQpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIoYnVmZmVy
LCAwKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKICAgICBp
ZiAoIXJlc3VsdC50eXBlLmVxdWFscyhzdHJ1Y3RUeXBlKSkKICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJXcm9uZyByZXN1bHQgdHlwZTogIiArIHJlc3VsdC50eXBlKTsKICAgICBsZXQgeCA9IHJl
c3VsdC5lUHRyLmdldCgwKTsKQEAgLTY3NywzNCArNjU5LDYgQEAgdGVzdHMuc2ltcGxlU3RydWN0
ID0gZnVuY3Rpb24oKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3Ig
eTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwogfQogCi10ZXN0cy5nZW5lcmljU3RydWN0
SW5zdGFuY2UgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICBzdHJ1Y3QgRm9vPFQ+IHsKLSAgICAgICAgICAgIFQgeDsKLSAgICAgICAgICAgIFQgeTsK
LSAgICAgICAgfQotICAgICAgICBGb288aW50PiBmb28oRm9vPGludD4gZm9vKQotICAgICAgICB7
Ci0gICAgICAgICAgICBGb288aW50PiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQueCA9IGZv
by55OwotICAgICAgICAgICAgcmVzdWx0LnkgPSBmb28ueDsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBsZXQgc3RydWN0VHlwZSA9IFR5cGVSZWYu
aW5zdGFudGlhdGUocHJvZ3JhbS50eXBlcy5nZXQoIkZvbyIpLCBbcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyXSk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDIpOwotICAgIGJ1ZmZlci5z
ZXQoMCwgNjIpOwotICAgIGJ1ZmZlci5zZXQoMSwgMjQpOwotICAgIGxldCByZXN1bHQgPSBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwg
bmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKLSAgICBsZXQgeCA9IHJlc3VsdC5lUHRyLmdldCgwKTsK
LSAgICBsZXQgeSA9IHJlc3VsdC5lUHRyLmdldCgxKTsKLSAgICBpZiAoeCAhPSAyNCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHg6ICIgKyB4ICsgIiAoeSA9ICIg
KyB5ICsgIikiKTsKLSAgICBpZiAoeSAhPSA2MikKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJX
cm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIgKyB4ICsgIikiKTsKLX0KLQogdGVz
dHMuZG91YmxlR2VuZXJpY0NhbGxzRG91YmxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkKIHsKICAgICBk
b1ByZXAoYApAQCAtNzQ3LDcgKzcwMSw3IEBAIHRlc3RzLnJldHVybk51bGwgPSBmdW5jdGlvbigp
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICB0aHJlYWQgaW50KiBmb28oKSB7
IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0cikKICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVyOiAiICsgcmVzdWx0
LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMikpCkBAIC03NjYsNyArNzIwLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VE
ZWZhdWx0TnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAor
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNzgwLDcgKzczNCw3IEBA
IHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGwgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAg
ICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAK
QEAgLTc5Nyw3ICs3NTEsNyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWMgPSBmdW5j
dGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNl
b2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg1Nyw3ICs4MTEsNyBAQCB0ZXN0cy5yZXR1cm5OdWxs
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICB0aHJlYWQgaW50W10gZm9vKCkgeyByZXR1cm4gbnVsbDsgfQogICAgIGApOwotICAgIGxldCBy
ZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7CisgICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlmICghcmVzdWx0
LnR5cGUuaXNBcnJheVJlZikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBp
cyBub3QgYW4gYXJyYXkgcmVmZXJlbmNlOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVz
dWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBA
IC04NzYsNyArODMwLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VEZWZhdWx0TnVsbEFycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC04OTAsNyArODQ0LDcgQEAgdGVzdHMuZGVmYXVs
dEluaXRpYWxpemVkTnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7
CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05
MDQsNyArODU4LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbEFycmF5UmVmSW50TGl0
ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTIxLDcgKzg3NSw3IEBAIHRlc3Rz
LnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpY0FycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICB9
CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwog
fQogCkBAIC05NDQsMTMgKzg5OCwxMyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyUG9seW1vcnBoaWNB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKIHRlc3RzLnJldHVybkludExpdGVyYWxVaW50ID0gZnVuY3Rp
b24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbygpIHsgcmV0dXJuIDQy
OyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVzdHMucmV0dXJuSW50TGl0ZXJhbEZs
b2F0ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJmbG9hdCBmb28o
KSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrTnVtYmVyKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Mik7CiB9CiAKIHRlc3RzLmJhZElu
dExpdGVyYWxGb3JJbnQgPSBmdW5jdGlvbigpCkBAIC05ODgsNyArOTQyLDcgQEAgdGVzdHMucGFz
c051bGxBbmROb3ROdWxsID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1
bGxQb2x5ID0gZnVuY3Rpb24oKQpAQCAtMTAwNSw3ICs5NTksNyBAQCB0ZXN0cy5wYXNzTnVsbEFu
ZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0g
bmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5l
dyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxG
dWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigpCkBAIC0xMDIyLDY1ICs5NzYsNyBAQCB0ZXN0cy5w
YXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAg
ICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtU
eXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dy
YW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKLX0KLQot
dGVzdHMubnVsbFR5cGVWYXJpYWJsZVVuaWZ5ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBsZWZ0
ID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICBsZXQgcmlnaHQgPSBuZXcgVHlw
ZVZhcmlhYmxlKGV4dGVybmFsT3JpZ2luLCAiVCIsIG51bGwpOwotICAgIGlmIChsZWZ0LmVxdWFs
cyhyaWdodCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiU2hvdWxkIG5vdCBiZSBlcXVhbCBi
dXQgYXJlOiAiICsgbGVmdCArICIgYW5kICIgKyByaWdodCk7Ci0gICAgaWYgKHJpZ2h0LmVxdWFs
cyhsZWZ0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1
dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICAKLSAgICBmdW5jdGlvbiBl
dmVyeU9yZGVyKGFycmF5LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIHJlY3Vy
c2UoYXJyYXksIGNhbGxiYWNrLCBvcmRlcikKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCFh
cnJheS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrLmNhbGwobnVsbCwg
b3JkZXIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFy
cmF5Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgbGV0IG5leHRBcnJheSA9IGFycmF5
LmNvbmNhdCgpOwotICAgICAgICAgICAgICAgIG5leHRBcnJheS5zcGxpY2UoaSwgMSk7Ci0gICAg
ICAgICAgICAgICAgcmVjdXJzZShuZXh0QXJyYXksIGNhbGxiYWNrLCBvcmRlci5jb25jYXQoW2Fy
cmF5W2ldXSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBy
ZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgW10pOwotICAgIH0KLSAgICAKLSAgICBmdW5jdGlvbiBl
dmVyeVBhaXIodGhpbmdzKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaW5ncy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
Zm9yIChsZXQgaiA9IDA7IGogPCB0aGluZ3MubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAg
ICBpZiAoaSAhPSBqKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQucHVzaChbdGhpbmdzW2ld
LCB0aGluZ3Nbal1dKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBldmVyeU9yZGVyKAotICAgICAgICBldmVyeVBhaXIo
WyJudWxsVHlwZSIsICJ2YXJpYWJsZVR5cGUiLCAicHRyVHlwZSJdKSwKLSAgICAgICAgb3JkZXIg
PT4gewotICAgICAgICAgICAgbGV0IHR5cGVzID0ge307Ci0gICAgICAgICAgICB0eXBlcy5udWxs
VHlwZSA9IG5ldyBOdWxsVHlwZShleHRlcm5hbE9yaWdpbik7Ci0gICAgICAgICAgICB0eXBlcy52
YXJpYWJsZVR5cGUgPSBuZXcgVHlwZVZhcmlhYmxlKGV4dGVybmFsT3JpZ2luLCAiVCIsIG51bGwp
OwotICAgICAgICAgICAgdHlwZXMucHRyVHlwZSA9IG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiY29uc3RhbnQiLCBuZXcgTmF0aXZlVHlwZShleHRlcm5hbE9yaWdpbiwgImZvb190IiwgW10p
KTsKLSAgICAgICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25D
b250ZXh0KFt0eXBlcy52YXJpYWJsZVR5cGVdKTsKLSAgICAgICAgICAgIGZvciAobGV0IFtsZWZ0
TmFtZSwgcmlnaHROYW1lXSBvZiBvcmRlcikgewotICAgICAgICAgICAgICAgIGxldCBsZWZ0ID0g
dHlwZXNbbGVmdE5hbWVdOwotICAgICAgICAgICAgICAgIGxldCByaWdodCA9IHR5cGVzW3JpZ2h0
TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGxlZnQudW5pZnkodW5pZmljYXRp
b25Db250ZXh0LCByaWdodCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVyICsgIiBjYW5u
b3QgdW5pZnkgIiArIGxlZnQgKyAiIHdpdGggIiArIHJpZ2h0KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmICghdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpLnJlc3VsdCkKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluIG9yZGVyICIgKyBvcmRlci5tYXAodmFsdWUg
PT4gIigiICsgdmFsdWUgKyAiKSIpICsgIiBjYW5ub3QgdmVyaWZ5Iik7Ci0gICAgICAgIH0pOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0
cy5kb3VibGVOb3QgPSBmdW5jdGlvbigpCkBAIC0xMDkxLDggKzk4Nyw4IEBAIHRlc3RzLmRvdWJs
ZU5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAhIXg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLnNpbXBsZVJlY3Vyc2lvbiA9
IGZ1bmN0aW9uKCkKQEAgLTExMDcsMTE0ICsxMDAzLDYgQEAgdGVzdHMuc2ltcGxlUmVjdXJzaW9u
ID0gZnVuY3Rpb24oKQogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwog
fQogCi10ZXN0cy5wcm90b2NvbE1vbm9TaWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAg
ICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAg
ICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBm
aXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewot
ICAgICAgICAgICAgSW50QW5kPGludD4gaW50QW5kKEludEFuZGFibGUsIGludCk7Ci0gICAgICAg
IH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwg
c2Vjb25kKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25k
OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dy
YW0sIDEyKV0pLCA1NCArIDEyKTsKLX0KLQotdGVzdHMucHJvdG9jb2xQb2x5U2lnUG9seURlZiA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVj
dCBJbnRBbmQ8VD4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNv
bmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihpbnQgZmlyc3QsIFQg
c2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VD4gcmVzdWx0OwotICAgICAg
ICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0g
c2Vjb25kOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBw
cm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oSW50
QW5kYWJsZSwgVCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQg
Zmlyc3QsIGludCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IHJl
c3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQu
Zmlyc3QgKyByZXN1bHQuc2Vjb25kOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1NCArIDEyKTsKLX0KLQotdGVzdHMucHJv
dG9jb2xEb3VibGVQb2x5U2lnRG91YmxlUG9seURlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAg
ICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRo
aXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZp
cnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQs
IFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAg
ICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRo
aXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90
b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4o
SW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFi
bGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNlY29uZCwgdGhpcmQp
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQgKyByZXN1
bHQudGhpcmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJ
bnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5KV0pLCA1NCArIDEyICsgMzkpOwot
fQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3Qg
SW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vj
b25kOwotICAgICAgICAgICAgVSB0aGlyZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VCwg
VT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhpcmQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmly
c3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAg
ICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRB
bmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQsIFUpOwotICAgICAgICB9Ci0gICAg
ICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kLCBpbnQgdGhpcmQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVzdWx0ID0gaW50QW5k
PGludCwgaW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0KIHRlc3RzLnZhcmlhYmxlU2hhZG93
aW5nID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKQEAgLTEyMjks
NyArMTAxNyw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDgpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA4KTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbygpCiAgICAgICAgIHsKQEAgLTEyNDIsNyAr
MTAzMCw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsKIH0KIAogdGVzdHMu
aWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMjU3LDEzICsxMDQ1LDEzIEBAIHRlc3RzLmlm
U3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDkpXSksIDYpOwogfQogCiB0ZXN0cy5pZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigp
CkBAIC0xMjgwLDEzICsxMDY4LDEzIEBAIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKIH0K
IAogdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMzAzLDEzICsxMDkx
LDEzIEBAIHRlc3RzLmlmRWxzZUlmU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOwogfQogCiB0ZXN0cy5pZkVsc2VJ
ZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMzI4LDEzICsxMTE2LDEzIEBAIHRlc3Rz
LmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CiB9CiAKIHRlc3RzLnJldHVy
bklmID0gZnVuY3Rpb24oKQpAQCAtMTM4NywxMyArMTE3NSwxMyBAQCB0ZXN0cy5yZXR1cm5JZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgOSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
MTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCAxMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCAxMCk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0MTksMTMgKzEyMDcsMTMgQEAgdGVzdHMucmV0dXJu
SWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDkpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
OSldKSwgOSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0NDksNyArMTIzNyw3IEBAIHRlc3RzLnJldHVybklm
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwogfQogCiB0
ZXN0cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKQEAgLTE0NjIsMzkgKzEyNTAsNyBAQCB0ZXN0
cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwotfQotCi10ZXN0cy5wcm90
b2NvbE1vbm9Qb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0ID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gewotICAgICAgICAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICAgICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAg
ICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICAgICAgICAgIFQgc2Vjb25kOwotICAg
ICAgICAgICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhp
cmQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8VCwgVT4g
cmVzdWx0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByb3RvY29sIEludEFuZGFi
bGUgewotICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8VCwgaW50PiBpbnRBbmQ8VD4oSW50QW5k
YWJsZSwgVCwgaW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaW50IGZv
bzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVzdWx0ID0g
aW50QW5kPGludD4oZmlyc3QsIHNlY29uZCwgdGhpcmQpOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBgKTsKLSAgICAgICAgICAgIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFt
LCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSk7Ci0gICAgICAgIH0sCi0gICAgICAgIChlKSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7CiB9CiAK
IHRlc3RzLmFtYmlndW91c092ZXJsb2FkU2ltcGxlID0gZnVuY3Rpb24oKQpAQCAtMTUzNyw3ICsx
MjkzLDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uID0gZnVuY3Rpb24oKQogICAgICAg
ICBpbnQgZm9vKGZsb2F0KSB7IHJldHVybiAzOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVy
biBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludE92ZXJsb2Fk
UmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkKQEAgLTE1NDgsNyArMTMwNCw3IEBA
IHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgaW50IGZvbyhpbnQpIHsgcmV0dXJuIDE7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0
dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3Zlcmxv
YWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1NTgsNyArMTMxNCw3IEBAIHRl
c3RzLmludE92ZXJsb2FkUmVzb2x1dGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIGlu
dCBmb288VD4oVCkgeyByZXR1cm4gMjsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9v
KDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJp
YyA9IGZ1bmN0aW9uKCkKQEAgLTE1NjcsMTkgKzEzMjMsNyBAQCB0ZXN0cy5pbnRMaXRlcmFsR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0Nzg7
IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDM0
NzgpOwotfQotCi10ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1dpdGhQcm90b2NvbHMgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUNv
bnZlcnRpYmxlVG9JbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgaW50KE15Q29udmVydGlibGVU
b0ludCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOk15Q29udmVydGlibGVUb0ludD4o
VCB4KSB7IHJldHVybiBpbnQoeCk7IH0KLSAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0
Mik7IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMzQ3OCk7CiB9CiAKIHRlc3RzLnVpbnRMaXRlcmFsR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1ODgsMTkgKzEzMzIsNyBAQCB0ZXN0cy51aW50TGl0ZXJh
bEdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb288VD4oVCB4KSB7IHJldHVybiAz
NDc4OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDJ1KTsgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtd
KSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLnVpbnRMaXRlcmFsR2VuZXJpY1dpdGhQcm90b2NvbHMgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2Nv
bCBNeUNvbnZlcnRpYmxlVG9VaW50IHsKLSAgICAgICAgICAgIG9wZXJhdG9yIHVpbnQoTXlDb252
ZXJ0aWJsZVRvVWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBmb288VDpNeUNvbnZlcnRp
YmxlVG9VaW50PihUIHgpIHsgcmV0dXJuIHVpbnQoeCk7IH0KLSAgICAgICAgdWludCBiYXIoKSB7
IHJldHVybiBmb28oNDJ1KTsgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMzQ3OCk7CiB9CiAKIHRlc3Rz
LmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCkBAIC0xNjA5LDcgKzEzNDEs
NyBAQCB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1NwZWNpZmljID0gZnVuY3Rpb24oKQogICAgICAg
ICBUIGZvbzxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJu
IGZvbyhpbnQoNDIpKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBs
ZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE2MjQsNyArMTM1Niw3IEBAIHRlc3RzLnNpbXBs
ZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb288NDI+KGIpOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOwogfQogCiB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkK
QEAgLTE2NDAsOCArMTM3Miw4IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMjApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAxMCldKSwgMjApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBp
bnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNjU4LDggKzEzOTAsOCBAQCB0ZXN0cy5icmVh
ayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIAogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5KTsKICAgICBjaGVja0ZhaWwoCiAg
ICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTY5
NSw3ICsxNDI3LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHg7CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAg
ICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgICAgICB7CkBAIC0xNzA1LDcgKzE0MzcsNyBA
QCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICByZXR1cm4geDsKICAg
ICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZv
bygpCiAgICAgICAgICAgICB7CkBAIC0xNzE0LDcgKzE0NDYsNyBAQCB0ZXN0cy5icmVhayA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAg
ICAgaW50IGZvbyhpbnQgeCkKQEAgLTE3NDMsNyArMTQ3NSw3IEBAIHRlc3RzLmNvbnRpbnVlID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CiAgICAgY2hl
Y2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQg
eCkKQEAgLTE3NjksOCArMTUwMSw4IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
XSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNzgyLDcgKzE1MTQsNyBAQCB0ZXN0cy5k
b1doaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7
CkBAIC0xNzk4LDcgKzE1MzAsNyBAQCB0ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDE5KTsKIH0KIAogdGVzdHMuZm9yTG9vcCA9IGZ1
bmN0aW9uKCkKQEAgLTE4MTQsOSArMTU0Niw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAg
ICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTgyNyw5ICsxNTU5LDkgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODQx
LDkgKzE1NzMsOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgp
CiAgICAgICAgIHsKQEAgLTE4NTYsMTAgKzE1ODgsMTAgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCAxMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NzIsMTEgKzE2MDQsMTEgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
MTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4ODksMTEgKzE2MjEs
MTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE5
MDcsMTEgKzE2MzksMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAz
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAy
MSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAg
ICAgIHsKQEAgLTE5MjYsMTEgKzE2NTgsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCAyMSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAog
ICAgICAgICAgICAgdm9pZCBmb28oaW50IHgpCkBAIC0xOTUwLDExICsxNjgyLDExIEBAIHRlc3Rz
LmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE5NzMsMTEgKzE3MDUsMTEgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKIH0KIAogdGVzdHMuY2hhaW5Db25zdGV4cHIgPSBm
dW5jdGlvbigpCkBAIC0xOTk2LDcgKzE3MjgsNyBAQCB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXI8NDI+KGIpOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSks
IDU4ICsgNDIpOwogfQogCiB0ZXN0cy5jaGFpbkdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0yMDE1
LDcgKzE3NDcsNyBAQCB0ZXN0cy5jaGFpbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gYmFyKCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM3
KV0pLCAzNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXoiLCBbbWFrZUludChwcm9ncmFtLCAzNyldKSwgMzcpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVj
dCA9IGZ1bmN0aW9uKCkKQEAgLTIwMzgsNyArMTc3MCw3IEBAIHRlc3RzLmNoYWluU3RydWN0ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbygmeCk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA0NjU3KV0pLCA0NjU3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSks
IDQ2NTcpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdE5ld2x5VmFsaWQgPSBmdW5jdGlvbigpCkBA
IC0yMDYzLDcgKzE3OTUsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdE5ld2x5VmFsaWQgPSBmdW5jdGlv
bigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZl
ci5zZXQoMCwgNzg0NTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwg
MCkpXSksIDc4NDUzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRl
dmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSks
IDc4NDUzKTsKIH0KIAogdGVzdHMuY2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0y
MDg4LDcgKzE4MjAsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKICAg
ICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgw
LCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
NzkyMDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEp
OwogfQogCiB0ZXN0cy5wYXJhbUNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQpAQCAtMjEx
Myw4OSArMTg0NSw3IEBAIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigp
CiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5z
ZXQoMCwgNzkyMDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSksIDc5MjAxKTsKLX0KLQotdGVzdHMuc2ltcGxlUHJvdG9jb2xFeHRlbmRzID0gZnVuY3Rpb24o
KQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgIHZvaWQgZm9vKHRocmVhZCBGb28qKTsKLSAgICAgICAgfQotICAgICAgICBw
cm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhciopOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpC
YXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmdXp6KHApOwotICAgICAg
ICAgICAgYmFyKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZm9vKHRocmVhZCBpbnQqIHAp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3NDM7Ci0gICAgICAgIH0KLSAgICAg
ICAgdm9pZCBiYXIodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAq
cCArIDkxOwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGJ1enooJmEpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRo
aW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiArIDc0MyArIDkxKTsKLX0K
LQotdGVzdHMucHJvdG9jb2xFeHRlbmRzVHdvID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHZvaWQg
Zm9vKHRocmVhZCBGb28qKTsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXIgewotICAg
ICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhciopOwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEJheiA6IEZvbywgQmFyIHsKLSAgICAgICAgICAgIHZvaWQgYmF6KHRocmVhZCBCYXoqKTsK
LSAgICAgICAgfQotICAgICAgICB2b2lkIGZ1eno8VDpGb28+KHRocmVhZCBUKiBwKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBmb28ocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBidXp6PFQ6
QmFyPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgYmFyKHApOwotICAgICAg
ICB9Ci0gICAgICAgIHZvaWQgeHV6ejxUOkJhej4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBidXp6KHApOwotICAgICAgICAgICAgYmF6
KHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZm9vKHRocmVhZCBpbnQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3NDM7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBi
YXIodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDkxOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmF6KHRocmVhZCBpbnQqIHApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICpwID0gKnAgKyAzOTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGhpbmd5KGlu
dCBhKQotICAgICAgICB7Ci0gICAgICAgICAgICB4dXp6KCZhKTsKLSAgICAgICAgICAgIHJldHVy
biBhOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0aGluZ3kiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQyKV0pLCA2NDIg
KyA3NDMgKyA5MSArIDM5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSksIDc5MjAxKTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCkBAIC0y
MjA3LDcgKzE4NTcsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQp
XSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnByZWZpeFBsdXNQ
bHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjIxOCw3ICsxODY4LDcgQEAgdGVzdHMucHJlZml4
UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKyt4OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnBvc3RmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAg
LTIyMzAsNyArMTg4MCw3IEBAIHRlc3RzLnBvc3RmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnBvc3RmaXhQ
bHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIyNDEsNyArMTg5MSw3IEBAIHRlc3RzLnBv
c3RmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Kys7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9u
KCkKQEAgLTIyNTMsNyArMTkwMyw3IEBAIHRlc3RzLnByZWZpeE1pbnVzTWludXMgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5w
cmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI2NCw3ICsxOTE0LDcgQEAg
dGVzdHMucHJlZml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiAtLXg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWludXMg
PSBmdW5jdGlvbigpCkBAIC0yMjc2LDcgKzE5MjYsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9
CiAKIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI4Nyw3
ICsxOTM3LDcgQEAgdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4geC0tOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjQpXSksIDY0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CiB9CiAKIHRlc3RzLnBsdXNF
cXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMjk5LDcgKzE5NDksNyBAQCB0ZXN0cy5wbHVzRXF1YWxz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwg
Mzg1ICsgNDIpOwogfQogCiB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAt
MjMxMCw3ICsxOTYwLDcgQEAgdGVzdHMucGx1c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4ICs9IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsK
IH0KIAogdGVzdHMubWludXNFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzIyLDcgKzE5NzIsNyBA
QCB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Owog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAogdGVzdHMubWludXNFcXVhbHNSZXN1
bHQgPSBmdW5jdGlvbigpCkBAIC0yMzMzLDcgKzE5ODMsNyBAQCB0ZXN0cy5taW51c0VxdWFsc1Jl
c3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC09IDQyOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAogdGVzdHMudGltZXNFcXVhbHMgPSBmdW5jdGlvbigp
CkBAIC0yMzQ1LDcgKzE5OTUsNyBAQCB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
Mzg1KV0pLCAzODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKIH0KIAog
dGVzdHMudGltZXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzU2LDcgKzIwMDYsNyBA
QCB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biB4ICo9IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKIH0KIAogdGVzdHMuZGl2
aWRlRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM2OCw3ICsyMDE4LDcgQEAgdGVzdHMuZGl2aWRl
RXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOwogfQogCiB0ZXN0cy5kaXZpZGVFcXVhbHNSZXN1
bHQgPSBmdW5jdGlvbigpCkBAIC0yMzc5LDcgKzIwMjksNyBAQCB0ZXN0cy5kaXZpZGVFcXVhbHNS
ZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCAvPSA0MjsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLnR3b0ludExpdGVy
YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM5MCw3ICsyMDQwLDcgQEAgdGVzdHMudHdvSW50TGl0ZXJh
bHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gNDIgPT0gNDI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogfQogCiB0ZXN0cy51bmlmeURpZmZlcmVudExp
dGVyYWxzID0gZnVuY3Rpb24oKQpAQCAtMjQ3OSw3ICsyMTI5LDcgQEAgdGVzdHMuYnVpbGRBcnJh
eVRoZW5TdW1JdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0
MSAvIDIpOwogfQogCiB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0VXNpbmdBcnJheVJlZmVyZW5j
ZSA9IGZ1bmN0aW9uKCkKQEAgLTI1MDAsNyArMjE1MCw3IEBAIHRlc3RzLmJ1aWxkQXJyYXlUaGVu
U3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGJhcihAYXJyYXkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8g
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDQyICogNSArIDQyICogNDEgLyAyKTsKIH0KIAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRT
dHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC0yNTI2LDcgKzIxNzYsNyBAQCB0ZXN0cy5vdmVycmlkZVN1
YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb29bMF0gKyBm
b29bMV0gKiAzOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSAqIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OTggKyAx
OSAqIDMpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0g
ZnVuY3Rpb24oKQpAQCAtMjU1Miw3ICsyMjAyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRT
dHJ1Y3RBbmREb1N0b3JlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28ueCAr
IGZvby55OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5KTsKIH0K
IAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9u
KCkKQEAgLTI1ODIsNyArMjIzMiw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5k
VXNlUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKCZmb28pOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5KTsKIH0KIAogdGVzdHMu
b3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVyc0luY29ycmVjdGx5ID0gZnVuY3Rp
b24oKQpAQCAtMjYyOSw3ICsyMjc5LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbUxvY2FsID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcihAeCk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tUG9pbnRlciA9IGZ1
bmN0aW9uKCkKQEAgLTI2NDksNyArMjI5OSw3IEBAIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2lu
dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJheigmeCk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tQXJyYXlS
ZWYgPSBmdW5jdGlvbigpCkBAIC0yNjgyLDcgKzIzMzIsNyBAQCB0ZXN0cy5zaW1wbGVMZW5ndGgg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEBhcnJheSkubGVuZ3RoOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNzU0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc1NCk7CiB9CiAKIHRlc3RzLm5vbkFycmF5UmVmQXJy
YXlMZW5ndGhTdWNjZWVkID0gZnVuY3Rpb24oKQpAQCAtMjY5NCw3ICsyMzQ0LDcgQEAgdGVzdHMu
bm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYXJyYXkubGVuZ3RoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzU0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc1NCk7
CiB9CiAKIHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhGYWlsID0gZnVuY3Rpb24oKQpAQCAt
Mjc5Myw3ICsyNDQzLDcgQEAgdGVzdHMuc2ltcGxlR2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZvby55OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7
CiB9CiAKIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkKQEAgLTI4MTgsNyArMjQ2OCw3
IEBAIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBm
b28ueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzgwNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc4MDQpOwogfQogCiB0ZXN0cy5n
ZW5lcmljQWNjZXNzb3JzID0gZnVuY3Rpb24oKQpAQCAtMjkwMywzNTQgKzI1NTMsMTAzIEBAIHRl
c3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9v
LnN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFN1cGVyQmFzaWMiLCBbXSwgW10pLCAxICsgMiArIDMgKyA0KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVy
RGlkU2V0WSIsIFtdLCBbXSksIDkzMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdLCBbXSksIDUzICsgOTMyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaR2V0dGVyIiwgW10sIFtd
KSwgMSArIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKLX0KLQot
dGVzdHMuYml0U3Vic2NyaXB0QWNjZXNzb3IgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUJpdG1hc2thYmxlIDogRXF1YXRhYmxl
IHsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3ImKE15Qml0bWFza2FibGUsIE15
Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcnwoTXlCaXRt
YXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJh
dG9yfihNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3I8
PChNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0
b3I+PihNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAgICAgIG9wZXJhdG9yIE15Qml0bWFz
a2FibGUoaW50KTsKLSAgICAgICAgfQotICAgICAgICBUIG1hc2tGb3JCaXRJbmRleDxUOk15Qml0
bWFza2FibGU+KHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBUKDEp
IDw8IGluZGV4OwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgb3BlcmF0b3JbXTxUOk15Qml0bWFz
a2FibGU+KFQgdmFsdWUsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBib29sKHZhbHVlICYgbWFza0ZvckJpdEluZGV4PFQ+KGluZGV4KSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgVCBvcGVyYXRvcltdPTxUOk15Qml0bWFza2FibGU+KFQgdmFsdWUsIHVpbnQgaW5kZXgs
IGJvb2wgYml0KQotICAgICAgICB7Ci0gICAgICAgICAgICBUIG1hc2sgPSBtYXNrRm9yQml0SW5k
ZXg8VD4oaW5kZXgpOwotICAgICAgICAgICAgaWYgKGJpdCkKLSAgICAgICAgICAgICAgICB2YWx1
ZSB8PSBtYXNrOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHZhbHVlICY9IH5t
YXNrOwotICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQg
b3BlcmF0b3IubGVuZ3RoKGludCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwot
ICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdEludFNl
dEJpdDMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgZm9v
WzNdID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAg
Ym9vbCB0ZXN0SW50U2V0R2V0Qml0NSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287
Ci0gICAgICAgICAgICBmb29bNV0gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvb1s1XTsK
LSAgICAgICAgfQotICAgICAgICBib29sIHRlc3RJbnRHZXRCaXQxKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIHJldHVybiBmb29bMV07Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHRlc3RVaW50U3VtQml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dCBmb28gPSA0MjsKLSAgICAgICAgICAgIGludCByZXN1bHQ7Ci0gICAgICAgICAgICBmb3IgKHVp
bnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoZm9v
W2ldKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQrKzsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RVaW50U3dh
cEJpdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vID0gNDI7Ci0gICAgICAgICAg
ICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoIC8gMjsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgYm9vbCB0bXAgPSBmb29baV07Ci0gICAgICAgICAgICAgICAgZm9vW2ldID0gZm9vW2Zv
by5sZW5ndGggLSBpIC0gMV07Ci0gICAgICAgICAgICAgICAgZm9vW2Zvby5sZW5ndGggLSBpIC0g
MV0gPSB0bXA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAg
ICB9Ci0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgdWludCBmOwotICAgICAgICAg
ICAgdWludCBnOwotICAgICAgICB9Ci0gICAgICAgIG9wZXJhdG9yIEZvbyh1aW50IGYsIHVpbnQg
ZykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3Vs
dC5mID0gZjsKLSAgICAgICAgICAgIHJlc3VsdC5nID0gZzsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yLmgoRm9vIGZvbykKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGludCgoZm9vLmYgJiAweGZmZmYpIHwgKChmb28uZyAm
IDB4ZmZmZikgPDwgMTYpKTsKLSAgICAgICAgfQotICAgICAgICBGb28gb3BlcmF0b3IuaD0oRm9v
IGZvbywgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28uZiAmPSB+MHhmZmZm
dTsKLSAgICAgICAgICAgIGZvby5mIHw9IHVpbnQodmFsdWUpICYgMHhmZmZmOwotICAgICAgICAg
ICAgZm9vLmcgJj0gfjB4ZmZmZnU7Ci0gICAgICAgICAgICBmb28uZyB8PSAodWludCh2YWx1ZSkg
Pj4gMTYpICYgMHhmZmZmOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgdGVzdExWYWx1ZUVtdWxhdGlvbigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZv
byBmb287Ci0gICAgICAgICAgICBmb28uZiA9IDQyOwotICAgICAgICAgICAgZm9vLmcgPSAzNzsK
LSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5oLmxlbmd0aDsgKytpKQotICAg
ICAgICAgICAgICAgIGZvby5oW2ldIF49IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaW50KGZv
by5mICsgZm9vLmcpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAg
ICAgRm9vIGE7Ci0gICAgICAgICAgICBGb28gYjsKLSAgICAgICAgfQotICAgICAgICBGb28gb3Bl
cmF0b3IuYyhCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gRm9vKHVpbnQo
YmFyLmEuaCksIHVpbnQoYmFyLmIuaCkpOwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRv
ci5jPShCYXIgYmFyLCBGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIuYS5oID0g
aW50KGZvby5mKTsKLSAgICAgICAgICAgIGJhci5iLmggPSBpbnQoZm9vLmcpOwotICAgICAgICAg
ICAgcmV0dXJuIGJhcjsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdENyYXp5TFZhbHVlRW11
bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIGJhcjsKLSAgICAgICAgICAgIGJh
ci5hLmYgPSAxOwotICAgICAgICAgICAgYmFyLmEuZyA9IDI7Ci0gICAgICAgICAgICBiYXIuYi5m
ID0gMzsKLSAgICAgICAgICAgIGJhci5iLmcgPSA0OwotICAgICAgICAgICAgZm9yICh1aW50IGkg
PSAwOyBpIDwgYmFyLmMuaC5sZW5ndGg7IGkgKz0gMikKLSAgICAgICAgICAgICAgICBiYXIuYy5o
W2ldIF49IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaW50KGJhci5hLmYgKyBiYXIuYS5nICsg
YmFyLmIuZiArIGJhci5iLmcpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50U2V0Qml0MyIsIFtdLCBbXSksIDgp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRT
ZXRHZXRCaXQ1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEludEdldEJpdDEiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0VWludFN1bUJpdHMi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RVaW50U3dhcEJpdHMiLCBbXSwgW10pLCAxNDA5Mjg2MTQ0KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBb
XSwgW10pLCAxMzA5OTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdENyYXp5TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgNDM2OTYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFN1cGVyQmFzaWMiLCBb
XSksIDEgKyAyICsgMyArIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10pLCA5MzIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXIiLCBbXSksIDUzICsgOTMy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaR2V0
dGVyIiwgW10pLCAxICsgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10pLCAxICsgMiArIDMgKiA1ICsgNCk7CiB9
CiAKIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvblNpbXBsZSA9IGZ1bmN0aW9u
KCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHN0cnVjdCBGb28gewot
ICAgICAgICAgICAgaW50WzddIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIGludCBvcGVyYXRv
cltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBm
b28uYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28g
Zm9vLCB1aW50IGluZGV4LCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5h
cnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0K
LSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoRm9vIGZvbykKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGZvby5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1
bShGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAg
ICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgKz0gZm9vW2ldOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZvb1s2XSBhcnJheTsKLSAgICAgICAg
fQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChCYXIgYmFyKQotICAgICAgICB7Ci0gICAg
ICAgICAgICByZXR1cm4gYmFyLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBGb28g
b3BlcmF0b3JbXShCYXIgYmFyLCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYmFyLmFycmF5W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyIGJhciwgdWludCBpbmRleCwgRm9vIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBiYXIuYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAg
ICAgICB9Ci0gICAgICAgIGludCBzdW0oQmFyIGJhcikKLSAgICAgICAgewotICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhci5sZW5ndGg7IGkt
LTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXJbaV0pOwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmF6IHsKLSAgICAgICAg
ICAgIEJhcls1XSBhcnJheTsKLSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3JbXShCYXog
YmF6LCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmF6LmFycmF5
W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXogb3BlcmF0b3JbXT0oQmF6IGJheiwgdWlu
dCBpbmRleCwgQmFyIHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXouYXJyYXlbaW5k
ZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gYmF6OwotICAgICAgICB9Ci0gICAgICAg
IHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiYXouYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oQmF6IGJh
eikKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBm
b3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9
IHN1bShiYXpbaV0pOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXopCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBm
b3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAg
ICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFs
dWVzQW5kU3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAg
IHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAg
fQotICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0g
ICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGotLTspIHsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yICh1aW50IGsgPSBiYXpbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAg
ICAgICAgICAgICAgYmF6W2ldW2pdW2tdICo9IGludChrKTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3VtKGJheik7Ci0gICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RT
ZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBb
XSwgW10pLCA1NTY1KTsKLX0KLQotdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9u
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVFs3XSBhcnJheTsKKyAgICAgICAgICAg
IGludFs3XSBhcnJheTsKICAgICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW108VD4oRm9vPFQ+
IGZvbywgdWludCBpbmRleCkKKyAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBp
bmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07CiAg
ICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW109PFQ+KEZvbzxUPiBmb28sIHVpbnQg
aW5kZXgsIFQgdmFsdWUpCisgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28gZm9vLCB1aW50IGlu
ZGV4LCBpbnQgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvby5hcnJheVtpbmRleF0g
PSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBmb287CiAgICAgICAgIH0KLSAgICAgICAgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oRm9vPFQ+IGZvbykKKyAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgoRm9vIGZvbykKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheS5s
ZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgTXlBZGRhYmxlIHsKLSAgICAgICAg
ICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBNeUFkZGFibGUpOwotICAgICAgICB9
Ci0gICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihGb288VD4gZm9vKQorICAgICAgICBpbnQgc3Vt
KEZvbyBmb28pCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGZvby5sZW5ndGg7IGkt
LTspCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvb1tpXTsKICAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhcjxUPiB7Ci0gICAgICAgICAg
ICBGb288VD5bNl0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBCYXIgeworICAgICAgICAgICAgRm9v
WzZdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEJh
cjxUPiBiYXIpCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAg
ICAgIEZvbzxUPiBvcGVyYXRvcltdPFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgpCisgICAgICAg
IEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEJhcjxUPiBv
cGVyYXRvcltdPTxUPihCYXI8VD4gYmFyLCB1aW50IGluZGV4LCBGb288VD4gdmFsdWUpCisgICAg
ICAgIEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAg
IHJldHVybiBiYXI7CiAgICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJhcjxU
PiBiYXIpCisgICAgICAgIGludCBzdW0oQmFyIGJhcikKICAgICAgICAgewotICAgICAgICAgICAg
VCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAo
dWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3Vt
KGJhcltpXSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAg
IHN0cnVjdCBCYXo8VD4gewotICAgICAgICAgICAgQmFyPFQ+WzVdIGFycmF5OworICAgICAgICBz
dHJ1Y3QgQmF6IHsKKyAgICAgICAgICAgIEJhcls1XSBhcnJheTsKICAgICAgICAgfQotICAgICAg
ICBCYXI8VD4gb3BlcmF0b3JbXTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4KQorICAgICAgICBC
YXIgb3BlcmF0b3JbXShCYXogYmF6LCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAg
ICByZXR1cm4gYmF6LmFycmF5W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBCYXo8VD4gb3Bl
cmF0b3JbXT08VD4oQmF6PFQ+IGJheiwgdWludCBpbmRleCwgQmFyPFQ+IHZhbHVlKQorICAgICAg
ICBCYXogb3BlcmF0b3JbXT0oQmF6IGJheiwgdWludCBpbmRleCwgQmFyIHZhbHVlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBiYXouYXJyYXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICBy
ZXR1cm4gYmF6OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEJh
ejxUPiBiYXopCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAg
ICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihCYXo8VD4gYmF6KQorICAgICAgICBpbnQgc3VtKEJheiBi
YXopCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCiAg
ICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXpbaV0pOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUNvbnZlcnRpYmxlRnJvbVVp
bnQgewotICAgICAgICAgICAgb3BlcmF0b3IgTXlDb252ZXJ0aWJsZUZyb21VaW50KHVpbnQpOwot
ICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIFNldFZhbHVhYmxlIDogTXlBZGRhYmxlLCBNeUNv
bnZlcnRpYmxlRnJvbVVpbnQgeyB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzPFQ6U2V0VmFsdWFi
bGU+KHRocmVhZCBCYXo8VD4qIGJheikKKyAgICAgICAgdm9pZCBzZXRWYWx1ZXModGhyZWFkIEJh
eiogYmF6KQogICAgICAgICB7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei0+bGVuZ3Ro
OyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSAoKmJheilbaV0ubGVuZ3Ro
OyBqLS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gKCpiYXopW2ldW2pd
Lmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtqXVtrXSA9
IFQoaSArIGogKyBrKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtqXVtrXSA9
IGludChpICsgaiArIGspOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAgICAgICBz
ZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICByZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0K
ICAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQogICAgICAgICB7
Ci0gICAgICAgICAgICBCYXo8aW50PiBiYXo7CisgICAgICAgICAgICBCYXogYmF6OwogICAgICAg
ICAgICAgc2V0VmFsdWVzKCZiYXopOwogICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXoubGVu
Z3RoOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSBiYXpbaV0ubGVuZ3Ro
OyBqLS07KSB7CkBAIC0zMjYxLDggKzI2NjAsOCBAQCB0ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFs
dWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bShi
YXopOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgMTU3NSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzTXV0
YXRlVmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgNTU2NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10pLCAxNTc1KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1
ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSksIDU1NjUpOwogfQogCiB0ZXN0cy5ib29sQml0QW5k
ID0gZnVuY3Rpb24oKQpAQCAtMzI3MywxMCArMjY3MiwxMCBAQCB0ZXN0cy5ib29sQml0QW5kID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dy
YW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIHRydWUpOwogfQogCiB0ZXN0cy5ib29sQml0T3IgPSBmdW5jdGlvbigp
CkBAIC0zMjg3LDEwICsyNjg2LDEwIEBAIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOwogfQogCiB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzMwMSwxMCArMjcw
MCwxMCBAQCB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzMTUsOCArMjcxNCw4IEBAIHRlc3RzLmJv
b2xCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludEJpdEFuZCA9IGZ1
bmN0aW9uKCkKQEAgLTMzMjcsMTAgKzI3MjYsMTAgQEAgdGVzdHMuaW50Qml0QW5kID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgMSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJv
Z3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIp
XSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTcpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0
cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMzNDEsMTAgKzI3NDAsMTAgQEAgdGVzdHMuaW50
Qml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSB8IGI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC0xKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAtNyldKSwgLTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwg
ODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAt
MzM1NSwxMCArMjc1NCwxMCBAQCB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1h
a2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJ
bnQocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dy
YW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0
OTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3Rz
LmludEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzNjksMTAgKzI3NjgsMTAgQEAgdGVzdHMuaW50
Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgLTIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1
KV0pLCAtNjU1MzYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAwKV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSld
KSwgLTY1NTM2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIC0x
KTsKIH0KIAogdGVzdHMuaW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzM4MywxMCArMjc4Miwx
MCBAQCB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA8
PCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9n
cmFtLCAyKV0pLCAyNjIxNDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgLTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTMyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMuaW50UlNoaWZ0ID0gZnVu
Y3Rpb24oKQpAQCAtMzM5NywxMCArMjc5NiwxMCBAQCB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMTYzODMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMTYzODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAt
MSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRl
c3RzLnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zNDExLDEwICsyODEwLDEwIEBAIHRlc3Rz
LnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3
KV0pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIp
XSksIDQyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSks
IDQyOTQ5NjcyODkpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1
NzMyKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyODkpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0
ZXN0cy51aW50Qml0T3IgPSBmdW5jdGlvbigpCkBAIC0zNDI1LDEwICsyODI0LDEwIEBAIHRlc3Rz
LnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDcpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0Mild
KSwgNjU1MzUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyld
KSwgNDI5NDk2NzI5NSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
ODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2
NTUzNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5
NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1
NzMyKTsKIH0KIAogdGVzdHMudWludEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTM0MzksMTAgKzI4
MzgsMTAgQEAgdGVzdHMudWludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDcpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQy
KV0pLCA2NTQ5Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSks
IDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMy
KTsKIH0KIAogdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTM0NTMsMTAgKzI4NTIs
MTAgQEAgdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+
YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSldKSwgNDI5NDk2NzI5
NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5NDkwMTc2MCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKV0pLCA0Mjk0OTY3Mjk1KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMSldKSwgNDI5NDk2NzI5NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0p
LCA0Mjk0OTAxNzYwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAw
KV0pLCA0Mjk0OTY3Mjk1KTsKIH0KIAogdGVzdHMudWludExTaGlmdCA9IGZ1bmN0aW9uKCkKQEAg
LTM0NjcsMTAgKzI4NjYsMTAgQEAgdGVzdHMudWludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA0Mjk0OTY3MjY0KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCA0Mjk0OTY3MjY0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50UlNoaWZ0ID0gZnVuY3Rpb24oKQpA
QCAtMzQ4MSwxMCArMjg4MCwxMCBAQCB0ZXN0cy51aW50UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEzNDIxNzcyNyk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0
OTUsMTAgKzI4OTQsMTAgQEAgdGVzdHMudWludDhCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI0OSk7Ci0gICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1h
a2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMudWludDhCaXRPciA9IGZ1bmN0
aW9uKCkKQEAgLTM1MDksMTAgKzI5MDgsMTAgQEAgdGVzdHMudWludDhCaXRPciA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjU1KTsKLSAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI1NSk7Ci0gICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjU1KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKKyAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOwogfQogCiB0ZXN0cy51
aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTM1MjMsMTAgKzI5MjIsMTAgQEAgdGVzdHMudWlu
dDhCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3
KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwg
NDIpXSksIDIxMyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4
NTczMildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0p
LCAyMTMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCA2
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgp
OwogfQogCiB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTM1MzcsMTAgKzI5MzYs
MTAgQEAgdGVzdHMudWludDhCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
fmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSldKSwgMjU0KTsK
LSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpXSksIDApOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAt
MSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApXSksIDI1NSk7CisgICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3Jh
bSwgMSldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7CisgICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJv
Z3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApXSksIDI1NSk7CiB9CiAKIHRlc3Rz
LnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU1MSwxMCArMjk1MCwxMCBAQCB0ZXN0cy51
aW50OExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMildKSwgMjUyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAyMjQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEy
OCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMjI0KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3Rz
LnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU2NSwxMCArMjk2NCwxMCBAQCB0ZXN0cy51
aW50OFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMp
XSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1NSk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyNTUpOworICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMuZmxv
YXRNYXRoID0gZnVuY3Rpb24oKQpAQCAtMzYyNCwxNyArMzAyMywxNyBAQCB0ZXN0cy5mbG9hdE1h
dGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZmxvYXQoeCk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdLCBbXSksIDcuNSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW10s
IFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTIiLCBbXSwgW10pLCA3KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSwgW10pLCA3LjUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbXSksIDcuNSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW10pLCA3
LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtdKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW10pLCA3LjUpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKICAgICAgICAgICAgIGludCBiYXIoaW50IHgpCkBAIC0zNzI5LDcgKzMxMjgsNyBAQCB0
ZXN0cy5nZW5lcmljQ2FzdEluZmVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgu
cmVhbCArIHguaW1hZzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOwogfQogCiB0ZXN0
cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKQEAgLTM3NjgsMTQgKzMxNjcsMTQgQEAgdGVzdHMu
Ym9vbGVhbk1hdGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2UgfHwgZmFs
c2U7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284Iiwg
W10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5ib29sZWFuU2hv
cnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQpAQCAtMzgxNiwxMCArMzIxNSwxMCBAQCB0ZXN0cy5i
b29sZWFuU2hvcnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZFRydWUiLCBb
XSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFuZEZhbHNlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJvclRydWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yRmFsc2UiLCBbXSwgW10pLCAyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZFRydWUiLCBbXSksIDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kRmFsc2UiLCBb
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JU
cnVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgIm9yRmFsc2UiLCBbXSksIDIpOwogfQogCiB0ZXN0cy50eXBlZGVmQXJyYXkgPSBmdW5jdGlv
bigpCkBAIC0zODMyLDcgKzMyMzEsNyBAQCB0ZXN0cy50eXBlZGVmQXJyYXkgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gYXJyYXlUeXBlZGVmWzBdOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNoYWRlclR5cGVzID0gZnVuY3Rpb24oKQpAQCAtNDA4
NCwyNCArMzQ4MywyNCBAQCB0ZXN0cy5idWlsdGluVmVjdG9ycyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBiID09IGM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDQp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UiLCBbXSwgW10pLCAzKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtd
LCBbXSksIDQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdTQiLCBbXSwgW10pLCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10sIFtdKSwgZmFs
c2UpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29m
IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb2YyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y0IiwgW10sIFtdKSwgNSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b29mNiIsIFtdLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFs
c2UpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3Ui
LCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UyIiwgW10pLCA0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb291MyIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vdTQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NiIsIFtdKSwgZmFsc2UpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mIiwgW10pLCAz
KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjIi
LCBbXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb29mMyIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2Y0IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjYiLCBbXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTQxMjEsNyArMzUy
MCw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geC54Lng7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDMpOwog
fQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0V2l0aEludDIgPSBmdW5jdGlvbigp
CkBAIC00MTM4LDcgKzM1MzcsNyBAQCB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0V2l0
aEludDIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC54Lng7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDMpOwogfQogCiB0ZXN0cy5zaW1wbGVFbnVtID0gZnVuY3Rpb24o
KQpAQCAtNDI2MywzMiArMzY2MiwzMiBAQCB0ZXN0cy5zaW1wbGVFbnVtID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBb
XSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNp
bXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5v
dE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIs
IFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxl
bmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RF
cXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10pLCAxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVu
Y2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFs
dWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRl
cmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJk
cyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwog
fQogCiB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKQEAgLTQzMTcsMTAg
KzM3MTYsMTAgQEAgdGVzdHMuZW51bVdpdGhNYW51YWxWYWx1ZXMgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gRm9vLkRlYXRoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgNzIpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InBlc3RpbGVuY2UiLCBbXSwgW10pLCAyMyk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAtNDIpOworICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgNzIpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMCk7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIs
IFtdKSwgMjMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImRlYXRoIiwgW10pLCAtNDIpOwogfQogCiB0ZXN0cy5lbnVtV2l0aG91dFplcm8gPSBmdW5jdGlv
bigpCkBAIC00Mzc3LDEwICszNzc2LDEwIEBAIHRlc3RzLmVudW1XaXRoU29tZU1hbnVhbFZhbHVl
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3
YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgNzMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDEp
OworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtd
KSwgNzIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdKSwgNzMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0
ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKQEAgLTQzOTEsOCArMzc5MCw4IEBAIHRl
c3RzLmVudW1Db25zdGV4cHJHZW5lcmljRnVuY3Rpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIGlu
dCB0ZXN0WCgpIHsgcmV0dXJuIGZvbzxBeGlzLlg+KCk7IH0KICAgICAgICAgaW50IHRlc3RZKCkg
eyByZXR1cm4gZm9vPEF4aXMuWT4oKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10sIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIs
IFtdKSwgMSk7CiB9CiAKIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljU3RydWN0ID0gZnVuY3Rp
b24oKQpAQCAtNDQxMiw4ICszODExLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1
Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKGYpOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMudHJhcCA9
IGZ1bmN0aW9uKCkKQEAgLTQ0MzksMTQgKzM4MzgsMTQgQEAgdGVzdHMudHJhcCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1Ry
YXBFcnJvcik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDEpXSks
IDQpOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksCisgICAgICAgICgpID0+IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksCiAgICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwKKyAgICAgICAgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLAogICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNDQ3MCw5ICszODY5LDkgQEAgdGVzdHMuc3dp
enpsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBxdWl4Lno7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCA2KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIDQpOworICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA2KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
NCk7CiB9CiAKIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAt
NDU5NywzMiArMzk5NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aEV4cGxpY2l0SW50QmFzZSA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28oaW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1
YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSwgW10pLCAx
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3Rp
bGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSwgW10p
LCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVW
YWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRl
cmFsIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFja3dhcmRzIiwgW10sIFtdKSwgMyk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10p
LCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1
YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90
aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10pLCAwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludERlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIs
IFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJk
ZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10pLCAwKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVC
YWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFja3dhcmRzIiwgW10p
LCAzKTsKIH0KIAogdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ3NDcs
MzIgKzQxNDYsMzIgQEAgdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBGb28odWludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
IiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxl
Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90
RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ1aW50V2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNl
IiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidWludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSks
IDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10p
LCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1
ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ1aW50V2FyQmFja3dhcmRzIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIs
IFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInVpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludERlYXRoQmFja3dhcmRzIiwgW10s
IFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RB
bm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtd
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBb
XSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVp
bnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAwKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1
ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDAp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVp
bnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInVpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlQmFja3dh
cmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtRmxvYXRC
YXNlID0gZnVuY3Rpb24oKQpAQCAtNDgxOCw3ICs0MjE3LDcgQEAgdGVzdHMuZW1wdHlTdHJ1Y3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gNDY7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDQ2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNDYpOwogfQogCiB0ZXN0cy5lbnVtU3RydWN0QmFzZSA9IGZ1bmN0aW9uKCkKQEAg
LTQ4NTcsOSArNDI1Niw5IEBAIHRlc3RzLnNpbXBsZVN3aXRjaCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuZXhoYXVzdGl2ZVVpbnQ4U3dpdGNo
ID0gZnVuY3Rpb24oKQpAQCAtNDg3MCw3ICs0MjY5LDcgQEAgdGVzdHMuZXhoYXVzdGl2ZVVpbnQ4
U3dpdGNoID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAg
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
aSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLm5vdFF1aXRlRXhoYXVzdGl2ZVVpbnQ4U3dpdGNo
ID0gZnVuY3Rpb24oKQpAQCAtNDg5MSw3ICs0MjkwLDcgQEAgdGVzdHMubm90UXVpdGVFeGhhdXN0
aXZlVWludDhTd2l0Y2hXaXRoRGVmYXVsdCA9IGZ1bmN0aW9uKCkKICAgICB0ZXh0ICs9ICJ9IH0i
OwogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQpOwogICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7Cisg
ICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOwogfQogCiB0ZXN0cy5zd2l0Y2hGYWxs
VGhyb3VnaCA9IGZ1bmN0aW9uKCkKQEAgLTQ5MTMsOSArNDMxMiw5IEBAIHRlc3RzLnN3aXRjaEZh
bGxUaHJvdWdoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcgKyA3NjI0ICsgNDkpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSks
IDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcgKyA3NjI0ICsgNDkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjkpXSksIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLnN3
aXRjaEJyZWFrID0gZnVuY3Rpb24oKQpAQCAtNDkzOCw5ICs0MzM3LDkgQEAgdGVzdHMuc3dpdGNo
QnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2
NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDkpOwogfQogCiB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpA
QCAtNDk2Niw5ICs0MzY1LDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrRXhoYXVzdGl2ZSA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAi
Rm9vIiwgIkIiKV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkIiKV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CiB9CiAKIHRl
c3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKQEAgLTUw
MjEsOSArNDQyMCw5IEBAIHRlc3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXhoYXVzdGl2ZVdp
dGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VF
bnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9v
IiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSks
IDQ5KTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaXZlU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAt
NTA3Miw3ICs0NDcxLDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRl
cnNCcm9rZW4gPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgLTUxMSksCisgICAgICAgICgpID0+IGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAtNTExKSwKICAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTUwOTgsNyArNDQ5Nyw3IEBAIHRlc3RzLm11
dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgLTUxMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksIC01MTEpOwogfQogCiB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQpA
QCAtNTExOSw3ICs0NTE4LDcgQEAgdGVzdHMubGlua2VkTGlzdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4Lm5leHQtPm5leHQtPnZhbHVlOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCkBAIC01
MTQyLDcgKzQ1NDEsNyBAQCB0ZXN0cy5wb2ludGVyVG9Qb2ludGVyID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzYgKyAzOSAr
IDgzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgNzYgKyAzOSArIDgzKTsKIH0KIAogdGVzdHMuYXJyYXlSZWZUb0FycmF5UmVmID0gZnVu
Y3Rpb24oKQpAQCAtNTE2NSw3ICs0NTY0LDcgQEAgdGVzdHMuYXJyYXlSZWZUb0FycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNzYgKyAzOSArIDgzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgNzYgKyAzOSArIDgzKTsKIH0KIAogdGVzdHMucG9pbnRlckdl
dHRlciA9IGZ1bmN0aW9uKCkKQEAgLTUyNDYsOTQgKzQ2NDUsNiBAQCB0ZXN0cy5zZXR0ZXJXaXRo
TWF0Y2hlZFR5cGUgPSBmdW5jdGlvbigpCiAgICAgYCk7CiB9CiAKLXRlc3RzLm9wZXJhdG9yV2l0
aFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEZvbyBvcGVyYXRv
cis8VD4oRm9vIGEsIEZvbyBiKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEZvbyBy
ZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnggPSBhLnggKyBiLng7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVyYXRvcldpdGhv
dXRVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludCB4Owot
ICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcisoRm9vIGEsIEZvbyBiKQotICAgICAgICB7
Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LnggPSBhLnggKyBi
Lng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIGEueCA9IDY0
NTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICAgICAgYi54ID0gLTM1OwotICAgICAgICAg
ICAgcmV0dXJuIChhICsgYikueDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNjQ1IC0gMzUpOwot
fQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVu
Y3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgb3BlcmF0b3I8VD4gRm9vKGludCB4KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnggPSB4Owot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGAp
LAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKLX0KLQotdGVzdHMub3Bl
cmF0b3JDYXN0V2l0aFR5cGVWYXJpYWJsZUluZmVycmVkRnJvbVJldHVyblR5cGUgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhcmFibGUg
ewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhcmFibGUqLCBpbnQpOwotICAgICAgICB9
Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBmbG9hdCogcmVzdWx0LCBpbnQgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICpyZXN1bHQgPSBmbG9hdCh2YWx1ZSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgb3BlcmF0b3I8VDpCYXJhYmxlPiBUKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIFQgcmVzdWx0OwotICAgICAgICAgICAgYmFyKCZyZXN1bHQsIGZvby54KTsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICBmb28ueCA9IDc1OwotICAgICAg
ICAgICAgZmxvYXQgeCA9IGZsb2F0KGZvbyk7Ci0gICAgICAgICAgICByZXR1cm4gaW50KHggKiAx
LjUpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMTIpOwotfQotCiB0ZXN0cy5pbmNXcm9uZ0Fy
Z3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQogewogICAgIGNoZWNrRmFpbCgKQEAgLTU4MjMsNyAr
NTEzNCw3IEBAIHRlc3RzLmFuZGVyV2l0aE5vdGhpbmdXcm9uZyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4LmZvbzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAxMyk7CiB9
CiAKIHRlc3RzLmFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHMgPSBmdW5jdGlvbigpCkBA
IC01ODk3LDcgKzUyMDgsNyBAQCB0ZXN0cy5hbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiAoQHgpLmZvbzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAxMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJJbmRleEdldHRlciA9IGZ1bmN0aW9uKCkKQEAgLTYw
ODMsNyArNTM5NCw3IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHhbNjY2XTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
MTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAxMyk7CiB9CiAKIHRlc3RzLmluZGV4QW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50
cyA9IGZ1bmN0aW9uKCkKQEAgLTYxNjgsNyArNTQ3OSw3IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRo
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEB4KVtmbG9hdCgtMSld
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuZGV2aWNlUHRy
UHRyID0gZnVuY3Rpb24oKQpAQCAtNjIwNywzMDYgKzU1MTgsNiBAQCB0ZXN0cy5jb25zdGFudFB0
clB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVyIHRvIG5vbi1wcmltaXRpdmUgdHlw
ZTogaW50MzIqIGNvbnN0YW50KiBjb25zdGFudCIpICE9IC0xKTsKIH0KIAotdGVzdHMucG9pbnRl
ckluZGV4R2V0dGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBmb3IgKGxldCBhZGRy
ZXNzU3BhY2Ugb2YgYWRkcmVzc1NwYWNlcykgewotICAgICAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKCR7YWRkcmVzc1NwYWNlfSBGb28qLCB1aW50
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAg
ICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0g
ICAgICAgICAgICBgKSwKLSAgICAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ig
JiYgZS5tZXNzYWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIGdldHRlciBmb3IgcG9pbnRlciB0eXBl
IikgIT0gLTEpOwotICAgIH0KLX0KLQotdGVzdHMubG9uZUluZGV4U2V0dGVySW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltd
PShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBC
YXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRXZlcnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1hdGNoaW5n
IGdldHRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMubm90TG9uZUluZGV4U2V0dGVySW5Qcm90b2Nv
bCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgIEZvbyBv
cGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJh
ciB7IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQot
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9
Ci0gICAgYCk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE1pc21hdGNoZWRUeXBlSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGZsb2F0IG9w
ZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9v
LCB1aW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0K
LSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAg
ICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIlNldHRlciBhbmQgZ2V0dGVyIG11c3QgYWdyZWUgb24gdmFsdWUg
dHlwZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5n
dGhJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
aW50IG9wZXJhdG9yW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRp
b25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXShGb28pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJh
ciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0x
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbywgaW50LCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVzdHMu
aW5kZXhPcGVyYXRvclNldHRlcldyb25nQXJndW1lbnRMZW5ndGhJblByb3RvY29sID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9w
ZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwK
LSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiUHJvdG9jb2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0
dXJlIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109
KEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KEZvbywgaW50KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0
b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJ
bmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQsIGludCwgaW50KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNv
cnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmxvbmVJbmRl
eFNldHRlclBvaW50ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3JbXT0odGhyZWFkIEZvbyogcHRyLCB1aW50
LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAg
ICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNz
YWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIHNldHRlciBmb3IgcG9pbnRlciB0eXBlIikgIT0gLTEp
OwotfQotCi10ZXN0cy5pbmRleFNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkSW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltd
KGludCwgRm9vKTsKLSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCBvcGVyYXRvcltdPSB3aXRoIGFy
Z3VtZW50cyBGb28sdWludDMyIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleFNldHRlcldpdGhO
b0dldHRlck92ZXJsb2FkRml4ZWRJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJl
cChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShG
b28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsK
LSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0b3Jb
XShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIs
IHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhB
bmRlcldpdGhOb3RoaW5nV3JvbmdJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCk7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IGJhcjxUOkZvbz4oVCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4geFs0Ml07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBiYXIoQmFyKCkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMjM0KTsKLX0KLQotdGVzdHMu
aW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRzSW5Qcm90b2NvbCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAg
cmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdz
IHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJv
dG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJl
YWQgRm9vKiBmb28pOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0K
LSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAg
ICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAg
ICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigi
SW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciBvcGVyYXRvciZbXSIpICE9IC0xKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90
b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBGb28qIGZvbywgdWludCwgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJh
ciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEy
MzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltd
IikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyRG9lc250UmV0dXJuUG9pbnRlckluUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3Bl
cmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0
aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIlJldHVybiB0eXBlIG9mIGFuZGVyIGlzIG5vdCBhIHBvaW50ZXIi
KSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRUYWtlUmVmZXJlbmNlSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBp
bnQqIG9wZXJhdG9yJltdKEZvbyBmb28sIHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRo
cmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1
bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiUGFyYW1ldGVyIHRvIGFuZGVyIGlzIG5vdCBhIHJlZmVyZW5jZSIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJlZkluUHJvdG9jb2wgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2Nv
bCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvb1td
IGFycmF5LCBmbG9hdCBpbmRleCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGJhcjxUOkZvbz4o
dGhyZWFkIFRbXSB4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4geFsxLjVdOwotICAg
ICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCBCYXJbXSwgZmxvYXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBy
ZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEJhciB4OwotICAgICAgICAg
ICAgcmV0dXJuIGJhcihAeCk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwotfQotCiB0
ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKQEAgLTY1MjIsNyArNTUzMyw3IEBAIHRlc3RzLmFuZFJldHVybmVkQXJyYXlS
ZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKnB0cjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgMzU0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgMzU0KTsKIH0KIAogb2tUb1Rlc3QgPSB0cnVlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGUuanMKaW5kZXggN2MyODc5MTg5NTNhNWIxZDVlMzVlODUwZTMzMGYz
ODlkZjZlNzZlOC4uMjFhMzMxOTU4ZTEzNGJkOTk1ODAzYmRhODFmY2NjYzFlZmI0NGM2ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCkBAIC0yNSw3ICsyNSw2IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIFR5cGUgZXh0ZW5kcyBOb2RlIHsKLSAgICBnZXQgdHlwZVBhcmFt
ZXRlcnMoKSB7IHJldHVybiBbXTsgfQogICAgIGdldCBraW5kKCkgeyByZXR1cm4gVHlwZTsgfQog
ICAgIGdldCBpc1B0cigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzQXJyYXkoKSB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMzcsMTUgKzM2LDYgQEAgY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUg
ewogICAgIGdldCBpc0VudW0oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIGdldCBpc1ByaW1pdGl2
ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgaW5oZXJpdHMocHJvdG9jb2wpCi0gICAg
ewotICAgICAgICBpZiAoIXByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgICAgICByZXR1cm4gcHJvdG9jb2wuaGFzSGVpcih0aGlzKTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IGluc3RhbnRpYXRlZFR5cGUoKSB7IHJldHVybiB0aGlzLnZpc2l0KG5ldyBJbnN0
YW50aWF0ZUltbWVkaWF0ZXMoKSk7IH0KLSAgICAKICAgICAvLyBIYXZlIHRvIGNhbGwgdGhlc2Ug
b24gdGhlIHVuaWZ5Tm9kZS4KICAgICBhcmd1bWVudEZvckFuZE92ZXJsb2FkKG9yaWdpbiwgdmFs
dWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlw
ZURlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKaW5kZXgg
NmMwZjljMTc0ZjUzMjM1NjQxZjRjZDMwMmNhYjRjM2FhYjI3YzE0My4uZDdiMDBjZDJjNzNlYjNh
NWE4ODIzNGJmMjlkYzNhNmFjN2I3MWMzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVHlwZURlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UeXBlRGVmLmpzCkBAIC0yNSwyMyArMjUsMjEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3Mg
VHlwZURlZiBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlw
ZVBhcmFtZXRlcnMsIHR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlKQog
ICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwog
ICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMg
PSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7CiAgICAgfQogICAg
IAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFt
ZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJl
dHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQogICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZTsgfQogICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAi
dHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+ID0g
IiArIHRoaXMudHlwZTsKKyAgICAgICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAi
ID0gIiArIHRoaXMudHlwZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcwppbmRleCBhODFlYWI0MmQ5NDhmY2EzZTkzMGM2
ODU3YTk2NGRkY2NmY2VlNTdmLi4wODJlNzJmOWY4NDIyMjQ2OTE3MDQ5ODZhMGFmMjlhNjgyY2Yx
MTFmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVz
b2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29s
dmVyLmpzCkBAIC00OCw3ICs0OCw3IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGxldCBuZXdUeXBlID0g
bm9kZS50eXBlLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24obm9kZS50eXBlLnR5cGVQYXJh
bWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQpOwogICAgICAgICAgICAgICAgIG5ld1R5cGUudmlz
aXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbm9kZS5zZXRUeXBlQW5kQXJndW1lbnRzKG5ld1R5
cGUsIFtdKTsKKyAgICAgICAgICAgICAgICBub2RlLnNldFR5cGUobmV3VHlwZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgot
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAot
ICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAg
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4g
bmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50
eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZh
cmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQx
ZTU2ZDY5M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYw
OWIwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUs
NjkgKzI1LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBl
IHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29u
c3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAg
dGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAg
ICAgdGhpcy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVB
cmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAg
ICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykK
KyAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJu
IHR5cGU7CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUg
PSB0eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMg
aW5zdGFudGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUo
dHlwZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBU
eXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5
cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7
IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25h
bWU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVu
dHM7IH0KICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhp
cy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5p
ZnlOb2RlOwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51
bmlmeU5vZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwg
b2Zmc2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIs
IG9mZnNldCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZh
bHVlIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBn
ZXQgc2l6ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAg
IHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZl
KCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAg
ICAgICAgIHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBF
cnJvcigiQ2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1p
dGl2ZTogIiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwog
ICAgIH0KICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMp
CisgICAgc2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAg
ICAgICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0
eXBlQXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250
ZXh0LCBvdGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBl
IHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5p
ZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlw
ZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRl
eHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDks
OSArOTIsNyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsK
LSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIHRoaXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlw
ZUFyZ3VtZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3
MmZhMGI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBl
IHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlz
Ll9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdl
dCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0
dXJuIHRoaXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1p
dGl2ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90
b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0
aGlzLnByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246
ICJUeXBlIHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsK
LSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0K
LSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQot
ICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFi
bGVVbmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAg
IHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0g
ICAgfQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAg
IHsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7
Ci0gICAgICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0
IGJlIGEgdHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAg
ICAvLyB0aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2Vv
ZiBUeXBlVmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFz
b246ICJUeXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2Vk
IHRvIG5vbi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAg
ICAgIAotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFs
VGhpcy5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90
IGJlIHBhc3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyBy
ZWFsVGhpcy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmlu
aGVyaXRzKHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQot
ICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsg
dGhpcy5wcm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMu
cHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxU
aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRl
eHQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1
cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29u
dGV4dC5maW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHMo
dGhpcy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRv
ZXMgbm90IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5
cGUgIiArIHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVh
c29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0
b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9j
b2wgPyAiOiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4
NTIzOTFmODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVU
cmFja2VyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAK
LSAgICBnZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVy
KHRoaW5nKQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAg
ICAgdGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihu
b2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0g
ICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAg
fQotICAgIAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
X2NvbnNpZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYw
NTBkZWY1MzM2ZC4uZTg2NGY0M2U2NTBmMjA0ZTQ1MzNiYjU5YmU0MTAzYTk1YmU5YjhhOCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC00MCwxMSArNDAsNiBA
QCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAg
ICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAg
ICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFyYW1l
dGVyKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CkBAIC03OSwx
OCArNzQsNiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGV4cHJlc3Npb24udmlzaXQo
dGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7Ci0g
ICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBm
b3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwcm90b2NvbC52
aXNpdCh0aGlzKTsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJl
cykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCiAgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2Ygbm9kZS50eXBlQXJndW1lbnRzKQpAQCAtMTI1LDE2ICsxMDgsNiBAQCBjbGFzcyBWaXNpdG9y
IHsKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNp
dFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnByb3Rv
Y29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVy
KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKQEAgLTM0MCwxNCArMzEzLDYgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5v
ZGUuYXJndW1lbnRMaXN0KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7
Ci0gICAgICAgIGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9
PiB7Ci0gICAgICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAg
ICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAg
ICAgICAgICAgIGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
OwotICAgICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBl
QXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwg
dGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXR1cm5UeXBlLCB0aGlzKTsKICAgICAg
ICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvV1NMLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2I2NjU2NzgyNmE1
MWRkNmM3NTRkNGU5YjI0ZDc1Nzg5NzJiYjNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZAor
KysgL2Rldi9udWxsCkBAIC0xLDQ3OSArMCwwIEBACi0jIFdlYkdQVSBTaGFkaW5nIExhbmd1YWdl
Ci0KLVdlYkdQVSBTaGFkaW5nIExhbmd1YWdlLCBvciBXU0wgZm9yIHNob3J0LCBpcyBhIHR5cGUt
c2FmZSBsb3ctb3ZlcmhlYWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZm9yIEdQVXMgKGdyYXBoaWNz
IHByb2Nlc3NpbmcgdW5pdHMpLiBUaGlzIGRvY3VtZW50IGV4cGxhaW5zIGhvdyBXU0wgd29ya3Mu
Ci0KLSMgR29hbHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZyBn
b2FsczoKLQotLSBXU0wgc2hvdWxkIGZlZWwgKmZhbWlsaWFyKiB0byBDKysgcHJvZ3JhbW1lcnMu
Ci0tIFdTTCBzaG91bGQgYmUgaGF2ZSBhICpzb3VuZCogYW5kICpkZWNpZGFibGUqIHR5cGUgc3lz
dGVtLgotLSBXU0wgc2hvdWxkIG5vdCBwZXJtaXQgKm91dC1vZi1ib3VuZHMqIG1lbW9yeSBhY2Nl
c3Nlcy4KLS0gV1NMIHNob3VsZCBiZSBoYXZlICpsb3cgb3ZlcmhlYWQqLgotCi1UaGUgY29tYmlu
YXRpb24gb2YgYSBzb3VuZCB0eXBlIHN5c3RlbSBhbmQgYm91bmRzIGNoZWNraW5nIG1ha2VzIFdT
TCBhIHNlY3VyZSBzaGFkZXIgbGFuZ3VhZ2U6IHRoZSBsYW5ndWFnZSBpdHNlbGYgaXMgcmVzcG9u
c2libGUgZm9yIGlzb2xhdGluZyB0aGUgc2hhZGVyIGZyb20gdGhlIHJlc3Qgb2YgdGhlIEdQVS4K
LQotIyBGYW1pbGlhciBTeW50YXgKLQotV1NMIGlzIGJhc2VkIG9uIEMgc3ludGF4LCBidXQgZXhj
bHVkZXMgZmVhdHVyZXMgdGhhdCBhcmUgZWl0aGVyIHVubmVjZXNzYXJ5LCBpbnNlY3VyZSwgb3Ig
cmVwbGFjZWQgYnkgb3RoZXIgV1NMIGZlYXR1cmVzOgotCi0tIE5vIHN0cmluZ3MuCi0tIE5vIGBy
ZWdpc3RlcmAsIGB2b2xhdGlsZWAsIGBjb25zdGAsIGByZXN0cmljdGAsIG9yIGBleHRlcm5gIGtl
eXdvcmRzLgotLSBObyB1bmlvbnMuIGB1bmlvbmAgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gZ290
byBvciBsYWJlbHMuIGBnb3RvYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBgKmAgcG9pbnRlcnMu
Ci0tIEVmZmVjdGxlc3MgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdGF0ZW1lbnRzIChgYSArIGI7YCBp
cyBhIHBhcnNlIGVycm9yKS4KLS0gTm8gdW5kZWZpbmVkIHZhbHVlcyAoYGludCB4O2AgaW5pdGlh
bGl6ZXMgeCB0byAwKS4KLS0gTm8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbnMgKGBpbnQgeDsg
dWludCB5ID0geDtgIGlzIGEgdHlwZSBlcnJvcikuCi0tIE5vIHJlY3Vyc2lvbi4KLS0gTm8gZHlu
YW1pYyBtZW1vcnkgYWxsb2NhdGlvbi4KLS0gTm8gbW9kdWxhcml0eS4gVGhlIHdob2xlIHByb2dy
YW0gaXMgb25lIGZpbGUuCi0KLU9uIHRvcCBvZiB0aGlzIGJhcmUgQy1saWtlIGZvdW5kYXRpb24s
IFdTTCBhZGRzIHNlY3VyZSB2ZXJzaW9ucyBvZiBmYW1pbGlhciBDKysgZmVhdHVyZXM6Ci0KLS0g
VHlwZS1zYWZlIHBvaW50ZXJzIChgXmApIGFuZCBhcnJheSByZWZlcmVuY2VzIChgW11gKS4KLS0g
R2VuZXJpY3MgdG8gcmVwbGFjZSB0ZW1wbGF0ZXMuCi0tIE9wZXJhdG9yIG92ZXJsb2FkaW5nLiBC
dWlsdC1pbiBvcGVyYXRpb25zIGxpa2UgYGludCBvcGVyYXRvcisoaW50LCBpbnQpYCBhcmUganVz
dCBuYXRpdmUgZnVuY3Rpb25zLgotLSBDYXN0IG92ZXJsb2FkaW5nLiBCdWlsdC1pbiBjYXN0cyBs
aWtlIGBvcGVyYXRvciBpbnQoZG91YmxlKWAgYXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0g
R2V0dGVycyBhbmQgc2V0dGVycy4gUHJvcGVydHkgYWNjZXNzZXMgbGlrZSBgdmVjLnhgIHJlc29s
dmUgdG8gb3ZlcmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yLmZpZWxkKGZsb2F0NClgLgotLSBB
cnJheSBhY2Nlc3Mgb3ZlcmxvYWRpbmcuIEFycmF5IGFjY2Vzc2VzIGxpa2UgYHZlY1swXWAgcmVz
b2x2ZSB0byB2ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCwgdWludClgLgot
Ci1JbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCBXU0wgaXMgc2hvd24gYnkgZXhhbXBsZSBzdGFy
dGluZyB3aXRoIGl0cyBDLWxpa2UgZm91bmRhdGlvbiBhbmQgdGhlbiBidWlsZGluZyB1cCB0byBp
bmNsdWRlIG1vcmUgc29waGlzdGljYXRlZCBmZWF0dXJlcyBsaWtlIGdlbmVyaWNzLgotCi0jIyBD
b21tb24gc3Vic2V0IG9mIEMgYW5kIFdTTAotCi1UaGUgZm9sbG93aW5nIGlzIGEgdmFsaWQgV1NM
IGZ1bmN0aW9uIGRlZmluaXRpb246Ci0KLSAgICBpbnQgZm9vKGludCB4LCBpbnQgeSwgYm9vbCBw
KQotICAgIHsKLSAgICAgICAgaWYgKHApCi0gICAgICAgICAgICByZXR1cm4geCAtIHk7Ci0gICAg
ICAgIHJldHVybiB4ICsgeTsKLSAgICB9Ci0KLVdTTCBzb3VyY2UgZmlsZXMgYmVoYXZlIHNpbWls
YXJseSB0byBDIHNvdXJjZSBmaWxlczoKLQotLSBUb3AtbGV2ZWwgc3RhdGVtZW50cyBtdXN0IGJl
IHR5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCi0tIFdTTCB1c2VzIHN0cnVjdHVyZWQgQyBj
b250cm9sIGZsb3cgY29uc3RydWN0cywgbGlrZSBgaWZgLCBgd2hpbGVgLCBgZm9yYCwgYGRvYCwg
YGJyZWFrYCwgYW5kIGBjb250aW51ZWAuCi0tIFdTTCB1c2VzIEMtbGlrZSBgc3dpdGNoYCBzdGF0
ZW1lbnRzLCBidXQgZG9lcyBub3QgYWxsb3cgdGhlbSB0byBvdmVybGFwIG90aGVyIGNvbnRyb2wg
ZmxvdyAoaS5lLiBubyBbRHVmZidzIGRldmljZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvRHVmZiUyN3NfZGV2aWNlKSkuCi0tIFdTTCBhbGxvd3MgdmFyaWFibGUgZGVjbGFyYXRpb25z
IGFueXdoZXJlIEMrKyB3b3VsZC4KLQotV1NMIHR5cGVzIGRpZmZlciBmcm9tIEMgdHlwZXMuIEZv
ciBleGFtcGxlLCB0aGlzIGlzIGFuIGFycmF5IG9mIDQyIGludGVnZXJzIGluIFdTTDoKLQotICAg
IGludFs0Ml0gYXJyYXk7Ci0KLVRoZSB0eXBlIG5ldmVyIHN1cnJvdW5kcyB0aGUgdmFyaWFibGUs
IGxpa2UgaXQgd291bGQgaW4gQyAoYGludCBhcnJheVs0Ml1gKS4KLQotIyMgVHlwZS1zYWZlIHBv
aW50ZXJzCi0KLVdTTCBpbmNsdWRlcyBhIHNlY3VyZSBwb2ludGVyIHR5cGUuIFRvIGVtcGhhc2l6
ZSB0aGF0IGl0IGlzIG5vdCBsaWtlIHRoZSBDIHBvaW50ZXIsIFdTTCB1c2VzIGBeYCBmb3IgdGhl
IHBvaW50ZXIgdHlwZSBhbmQgZm9yIGRlcmVmZXJlbmNlLiBMaWtlIGluIEMsIGAmYCBpcyB1c2Vk
IHRvIHRha2UgdGhlIGFkZHJlc3Mgb2YgYSB2YWx1ZS4gIEJlY2F1c2UgR1BVcyBoYXZlIGRpZmZl
cmVudCBraW5kcyBvZiBtZW1vcmllcywgcG9pbnRlcnMgbXVzdCBiZSBhbm5vdGF0ZWQgd2l0aCBh
biBhZGRyZXNzIHNwYWNlIChvbmUgb2YgYHRocmVhZGAsIGB0aHJlYWRncm91cGAsIGBkZXZpY2Vg
LCBvciBgY29uc3RhbnRgKS4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGJhcih0aHJlYWQgaW50
XiBwKQotICAgIHsKLSAgICAgICAgXnAgKz0gNDI7Ci0gICAgfQotICAgIGludCBmb28oKQotICAg
IHsKLSAgICAgICAgaW50IHggPSAyNDsKLSAgICAgICAgYmFyKCZ4KTsKLSAgICAgICAgcmV0dXJu
IHg7IC8vIFJldHVybnMgNjYuCi0gICAgfQotCi1Qb2ludGVycyBjYW4gYmUgYG51bGxgLiBFYWNo
IHBvaW50ZXIgYWNjZXNzIGlzIG51bGwtY2hlY2tlZCwgdGhvdWdoIG1vc3QgcG9pbnRlciBhY2Nl
c3NlcyAobGlrZSB0aGlzIG9uZSkgd2lsbCBub3QgaGF2ZSBhIG51bGwgY2hlY2suIFdTTCBwbGFj
ZXMgZW5vdWdoIGNvbnN0cmFpbnRzIG9uIHRoZSBwcm9ncmFtbWVyIHRoYXQgcHJvZ3JhbXMgYXJl
IGVhc3kgZm9yIHRoZSBjb21waWxlciB0byBhbmFseXplLiBUaGUgY29tcGlsZXIgd2lsbCBhbHdh
eXMga25vdyB0aGF0IGBecCArPSA0MmAgYWRkcyBgNDJgIHRvIGB4YCBpbiB0aGlzIGNhc2UuCi0K
LVdTTCBwb2ludGVycyBkbyBub3Qgc3VwcG9ydCBjYXN0aW5nIG9yIHBvaW50ZXIgYXJpdGhtZXRp
Yy4gQWxsIG1lbW9yeSBhY2Nlc3NpYmxlIHRvIGEgc2hhZGVyIG91dGxpdmVzIHRoZSBzaGFkZXIu
IFRoaXMgaXMgZXZlbiB0cnVlIG9mIGxvY2FsIHZhcmlhYmxlcy4gVGhpcyBpcyBwb3NzaWJsZSBi
ZWNhdXNlIFdTTCBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2lvbi4gVGhlcmVmb3JlLCBsb2NhbCB2
YXJpYWJsZXMgc2ltcGx5IGdldCBnbG9iYWwgc3RvcmFnZS4gTG9jYWwgdmFyaWFibGVzIGFyZSBp
bml0aWFsaXplZCBhdCB0aGUgcG9pbnQgb2YgdGhlaXIgZGVjbGFyYXRpb24uIEhlbmNlLCB0aGUg
Zm9sbG93aW5nIGlzIGEgdmFsaWQgcHJvZ3JhbSwgd2hpY2ggd2lsbCBleGhpYml0IHRoZSBzYW1l
IGJlaGF2aW9yIG9uIGV2ZXJ5IFdTTCBpbXBsZW1lbnRhdGlvbjoKLQotICAgIHRocmVhZCBpbnRe
IGZvbygpCi0gICAgewotICAgICAgICBpbnQgeCA9IDQyOwotICAgICAgICByZXR1cm4gJng7Ci0g
ICAgfQotICAgIGludCBiYXIoKQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygp
OwotICAgICAgICB0aHJlYWQgaW50XiBxID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIHJldHVybiBecTsgLy8gUmV0dXJucyA1My4KLSAgICB9Ci0gICAgaW50IGJheigpCi0gICAg
ewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIGZvbygpOwotICAgICAgICByZXR1cm4gXnA7IC8vIFJldHVybnMgNDIuCi0gICAgfQotCi1J
dCdzIHBvc3NpYmxlIHRvIHBvaW50IHRvIGFueSBraW5kIG9mIGRhdGEgdHlwZS4gRm9yIGV4YW1w
bGUsIGB0aHJlYWQgZG91YmxlWzQyXV5gIGlzIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA0MiBk
b3VibGVzLgotCi0jIyBUeXBlLXNhZmUgYXJyYXkgcmVmZXJlbmNlcwotCi1XU0wgc3VwcG9ydHMg
YXJyYXkgcmVmZXJlbmNlcyB0aGF0IGNhcnJ5IGEgcG9pbnRlciB0byB0aGUgYmFzZSBvZiB0aGUg
YXJyYXkgYW5kIHRoZSBhcnJheSdzIGxlbmd0aC4gVGhpcyBhbGxvd3MgYWNjZXNzZXMgdG8gdGhl
IGFycmF5IHRvIGJlIGJvdW5kcy1jaGVja2VkLgotCi1BbiBhcnJheSByZWZlcmVuY2UgY2FuIGJl
IGNyZWF0ZWQgdXNpbmcgdGhlIGBAYCBvcGVyYXRvcjoKLQotICAgIGludFs0Ml0gYXJyYXk7Ci0g
ICAgdGhyZWFkIGludFtdIGFycmF5UmVmID0gQGFycmF5OwotCi1Cb3RoIGFycmF5cyBhbmQgYXJy
YXkgcmVmZXJlbmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gYW5kIHN0b3JlZCB0byB1c2luZyBgb3Bl
cmF0b3JbXWA6Ci0KLSAgICBpbnQgeCA9IGFycmF5W2ldOwotICAgIGludCB5ID0gYXJyYXlSZWZb
aV07Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2VzIGtub3cgdGhlaXIgbGVuZ3Ro
OgotCi0gICAgdWludCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKLSAgICB1aW50IGFycmF5
UmVmTGVuZ3RoID0gYXJyYXlSZWYubGVuZ3RoOwotCi1HaXZlbiBhbiBhcnJheSBvciBhcnJheSBy
ZWZlcmVuY2UsIGl0J3MgcG9zc2libGUgdG8gZ2V0IGEgcG9pbnRlciB0byBvbmUgb2YgaXRzIGVs
ZW1lbnRzOgotCi0gICAgdGhyZWFkIGludF4gcHRyMSA9ICZhcnJheVtpXTsKLSAgICB0aHJlYWQg
aW50XiBwdHIyID0gJmFycmF5UmVmW2ldOwotCi1BIHBvaW50ZXIgaXMgbGlrZSBhbiBhcnJheSBy
ZWZlcmVuY2Ugd2l0aCBvbmUgZWxlbWVudC4gSXQncyBwb3NzaWJsZSB0byBwZXJmb3JtIHRoaXMg
Y29udmVyc2lvbjoKLQotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAcHRyMTsKLSAgICByZWZbMF0g
Ly8gRXF1aXZhbGVudCB0byBecHRyMS4KLSAgICByZWYubGVuZ3RoIC8vIDAgaWYgcHRyMSB3YXMg
bnVsbCwgMSBpZiBwdHIxIHdhcyBub3QgbnVsbC4KLQotU2ltaWxhcmx5LCB1c2luZyBgQGAgb24g
YSBub24tcG9pbnRlciB2YWx1ZSByZXN1bHRzIGluIGEgcmVmZXJlbmNlIG9mIGxlbmd0aCAxOgot
Ci0gICAgaW50IHg7Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEB4OwotICAgIHJlZlswXSAvLyBB
bGlhc2VzIHguCi0gICAgcmVmLmxlbmd0aCAvLyBSZXR1cm5zIDEuCi0KLUl0J3Mgbm90IGxlZ2Fs
IHRvIHVzZSBgQGAgb24gYW4gYXJyYXkgcmVmZXJlbmNlOgotCi0gICAgdGhyZWFkIGludFtdIHJl
ZjsKLSAgICB0aHJlYWQgaW50W11bXSByZWZlcmVmID0gQHJlZjsgLy8gRXJyb3IhCi0KLSMjIEdl
bmVyaWNzCi0KLVdTTCBzdXBwb3J0cyBnZW5lcmljIHR5cGVzIHVzaW5nIGEgc2ltcGxlIHN5bnRh
eC4gV1NMJ3MgZ2VuZXJpYyBhcmUgZGVzaWduZWQgdG8gaW50ZWdyYXRlIGNsZWFubHkgaW50byB0
aGUgY29tcGlsZXIgcGlwZWxpbmU6Ci0KLS0gR2VuZXJpY3MgaGF2ZSB1bmFtYmlndW91cyBzeW50
YXguCi0tIEdlbmVyaWMgZnVuY3Rpb25zIGNhbiBiZSB0eXBlIGNoZWNrZWQgYmVmb3JlIHRoZXkg
YXJlIGluc3RhbnRpYXRlZC4KLQotU2VtYW50aWMgZXJyb3JzIGluc2lkZSBnZW5lcmljIGZ1bmN0
aW9ucyBzaG93IHVwIG9uY2UgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBn
ZW5lcmljIGZ1bmN0aW9uIGlzIGluc3RhbnRpYXRlZC4KLQotVGhpcyBpcyBhIHNpbXBsZSBnZW5l
cmljIGZ1bmN0aW9uOgotCi0gICAgVCBpZGVudGl0eTxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgVCB0bXAgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci0KLVdTTCBhbHNv
IHN1cHBvcnRzIHN0cnVjdHMsIHdoaWNoIGFyZSBhbHNvIGFsbG93ZWQgdG8gYmUgZ2VuZXJpYzoK
LQotICAgIC8vIE5vdCBnZW5lcmljLgotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgeDsK
LSAgICAgICAgZG91YmxlIHk7Ci0gICAgfQotICAgIC8vIEdlbmVyaWMuCi0gICAgc3RydWN0IEJh
cjxULCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLQotVHlwZSBwYXJh
bWV0ZXJzIGNhbiBhbHNvIGJlIGNvbnN0YW50IGV4cHJlc3Npb25zLiBGb3IgZXhhbXBsZToKLQot
ICAgIHZvaWQgaW5pdGlhbGl6ZUFycmF5PFQsIHVpbnQgbGVuZ3RoPih0aHJlYWQgVFtsZW5ndGhd
XiBhcnJheSwgVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGZvciAodWludCBpID0gbGVuZ3RoOyBp
LS07KQotICAgICAgICAgICAgKF5hcnJheSlbaV0gPSB2YWx1ZTsKLSAgICB9Ci0KLUNvbnN0YW50
IGV4cHJlc3Npb25zIHBhc3NlZCBhcyB0eXBlIGFyZ3VtZW50cyBtdXN0IG9iZXkgYSB2ZXJ5IG5h
cnJvdyBkZWZpbml0aW9uIG9mIGNvbnN0YW50bmVzcy4gT25seSBsaXRlcmFscyBhbmQgcmVmZXJl
bmNlcyB0byBvdGhlciBjb25zdGFudCBwYXJhbWV0ZXJzIHF1YWxpZnkuCi0KLVdTTCBpcyBndWFy
YW50ZWVkIHRvIGNvbXBpbGUgZ2VuZXJpY3MgYnkgaW5zdGFudGlhdGlvbi4gVGhpcyBpcyBvYnNl
cnZhYmxlLCBzaW5jZSBmdW5jdGlvbnMgY2FuIHJldHVybiBwb2ludGVycyB0byB0aGVpciBsb2Nh
bHMuIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHBoZW5vbWVub246Ci0KLSAgICB0aHJlYWQg
aW50XiBhbGxvY2F0ZTx1aW50PigpCi0gICAgewotICAgICAgICBpbnQgeDsKLSAgICAgICAgcmV0
dXJuICZ4OwotICAgIH0KLQotVGhlIGBhbGxvY2F0ZWAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBk
aWZmZXJlbnQgcG9pbnRlciBmb3IgZWFjaCB1bnNpZ25lZCBpbnRlZ2VyIGNvbnN0YW50IHBhc3Nl
ZCBhcyBhIHR5cGUgcGFyYW1ldGVyLiBUaGlzIGFsbG9jYXRpb24gaXMgY29tcGxldGVseSBzdGF0
aWMsIHNpbmNlIHRoZSBgdWludGAgcGFyYW1ldGVyIG11c3QgYmUgZ2l2ZW4gYSBjb21waWxlLXRp
bWUgY29uc3RhbnQuCi0KLVdTTCdzIGB0eXBlZGVmYCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50
IHN5bnRheCB0aGFuIEMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewot
ICAgICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgdHlwZWRlZiBGQ29t
cGxleCA9IENvbXBsZXg8ZmxvYXQ+OwotCi1gdHlwZWRlZmAgY2FuIGJlIHVzZWQgdG8gY3JlYXRl
IGdlbmVyaWMgdHlwZXM6Ci0KLSAgICBzdHJ1Y3QgRm9vPFQsIFU+IHsKLSAgICAgICAgVCB4Owot
ICAgICAgICBVIHk7Ci0gICAgfQotICAgIHR5cGVkZWYgQmFyPFQ+ID0gRm9vPFQsIFQ+OwotCi0j
IyBQcm90b2NvbHMKLQotUHJvdG9jb2xzIGVuYWJsZSBnZW5lcmljIGZ1bmN0aW9ucyB0byB3b3Jr
IHdpdGggZGF0YSBvZiBnZW5lcmljIHR5cGUuIEJlY2F1c2UgYSBmdW5jdGlvbiBtdXN0IGJlIHR5
cGUtY2hlY2thYmxlIGJlZm9yZSBpbnN0YW50aWF0aW9uLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5v
dCBiZSBsZWdhbDoKLQotICAgIGludCBiYXIoaW50KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihk
b3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBUIGZvbzxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGJhcih2YWx1ZSk7IC8vIEVycm9yIQotICAgIH0KLQotVGhlIGNhbGwgdG8gYGJh
cmAgZG9lc24ndCB0eXBlIGNoZWNrIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbm5vdCBrbm93IHRo
YXQgYGZvbzxUPmAgd2lsbCBiZSBpbnN0YW50aWF0ZWQgd2l0aCBgVCA9IGludGAgb3IgYFQgPSBk
b3VibGVgLiBQcm90b2NvbHMgZW5hYmxlIHRoZSBwcm9ncmFtbWVyIHRvIHRlbGwgdGhlIGNvbXBp
bGVyIHdoYXQgdG8gZXhwZWN0IG9mIGEgdHlwZSB2YXJpYWJsZToKLQotICAgIGludCBiYXIoaW50
KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihkb3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBwcm90
b2NvbCBTdXBwb3J0c0JhciB7Ci0gICAgICAgIFN1cHBvcnRzQmFyIGJhcihTdXBwb3J0c0Jhcik7
Ci0gICAgfQotICAgIAotICAgIFQgZm9vPFQ6U3VwcG9ydHNCYXI+KFQgdmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYmFyKHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgaW50IHggPSBmb28o
NDIpOwotICAgIGRvdWJsZSB5ID0gZm9vKDQuMik7Ci0KLVByb3RvY29scyBoYXZlIGF1dG9tYXRp
YyByZWxhdGlvbnNoaXBzIHRvIG9uZSBhbm90aGVyIGJhc2VkIG9uIHdoYXQgZnVuY3Rpb25zIHRo
ZXkgY29udGFpbjoKLQotICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7
Ci0gICAgfQotICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgIHZvaWQgZm9vKEJhcik7Ci0gICAg
ICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4u
LiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewotICAgICAgICBmdXp6KHgpOyAv
LyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIEZvby4gICAgCi0gICAgfQot
Ci1Qcm90b2NvbHMgY2FuIGFsc28gbWl4IG90aGVyIHByb3RvY29scyBpbiBleHBsaWNpdGx5LiBM
aWtlIGluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgZXhhbXBsZSBiZWxvdyByZWxpZXMgb24gdGhl
IGZhY3QgdGhhdCBgQmFyYCBpcyBhIG1vcmUgc3BlY2lmaWMgcHJvdG9jb2wgdGhhbiBgRm9vYC4g
SG93ZXZlciwgdGhpcyBleGFtcGxlIGRlY2xhcmVzIHRoaXMgZXhwbGljaXRseSAoYHByb3RvY29s
IEJhciA6IEZvb2ApIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgbGFuZ3VhZ2UgdG8gaW5mZXIg
aXQ6Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0K
LSAgICBwcm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0K
LSAgICB2b2lkIGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4o
VCB4KQotICAgIHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUg
c3BlY2lmaWMgdGhhbiBGb28uICAgIAotICAgIH0KLQotIyMgT3ZlcmxvYWRpbmcKLQotV1NMIHN1
cHBvcnRzIG92ZXJsb2FkaW5nIHZlcnkgc2ltaWxhcmx5IHRvIGhvdyBDKysgZG9lcyBpdC4gRm9y
IGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91
YmxlKTsgLy8gMgotICAgIAotICAgIGludCB4OwotICAgIGZvbyh4KTsgLy8gY2FsbHMgMQotICAg
IAotICAgIGRvdWJsZSB5OwotICAgIGZvbyh5KTsgLy8gY2FsbHMgMgotCi1XU0wgYXV0b21hdGlj
YWxseSBzZWxlY3RzIHRoZSBtb3N0IHNwZWNpZmljIG92ZXJsb2FkIGlmIGdpdmVuIG11bHRpcGxl
IGNob2ljZXMuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAg
IHZvaWQgZm9vKGRvdWJsZSk7IC8vIDIKLSAgICB2b2lkIGZvbzxUPihUKTsgICAvLyAzCi0KLSAg
ICBmb28oMSk7IC8vIGNhbGxzIDEKLSAgICBmb28oMS4pOyAvLyBjYWxscyAyCi0gICAgZm9vKDF1
KTsgLy8gY2FsbHMgMwotCi1HZW5lcmljIGZ1bmN0aW9ucyBsaWtlIGBmb288VD5gIGNhbiBiZSBj
YWxsZWQgd2l0aCBvciB3aXRob3V0IGFsbCBvZiB0aGVpciB0eXBlIGFyZ3VtZW50cyBzdXBwbGll
ZC4gSWYgdGhleSBhcmUgbm90IHN1cHBsaWVkLCB0aGUgZnVuY3Rpb24gcGFydGljaXBhdGVzIGlu
IG92ZXJsb2FkIHJlc29sdXRpb24gbGlrZSBhbnkgb3RoZXIgZnVuY3Rpb24gd291bGQuIEZ1bmN0
aW9ucyBhcmUgcmFua2VkIGJ5IGhvdyBzcGVjaWZpYyB0aGV5IGFyZTsgZnVuY3Rpb24gQSBpcyBt
b3JlIHNwZWNpZmljIHRoYW4gZnVuY3Rpb24gQiBpZiBBJ3MgcGFyYW1ldGVyIHR5cGVzIGNhbiBi
ZSB1c2VkIGFzIGFyZ3VtZW50IHR5cGVzIGZvciBhIGNhbGwgdG8gQiBidXQgbm90IHZpY2UtdmVy
c2EuIElmIG9uZSBmdW5jdGlvbnMgbW9yZSBzcGVjaWZpYyB0aGFuIGFsbCBvdGhlcnMgdGhlbiB0
aGlzIGZ1bmN0aW9uIGlzIHNlbGVjdGVkLCBvdGhlcndpc2UgYSB0eXBlIGVycm9yIGlzIGlzc3Vl
ZC4KLQotIyMgT3BlcmF0b3IgT3ZlcmxvYWRpbmcKLQotTWFueSBXU0wgb3BlcmF0aW9ucyBkZXN1
Z2FyIHRvIGNhbGxzIHRvIGZ1bmN0aW9ucy4gVGhvc2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgKm9w
ZXJhdG9yIG92ZXJsb2FkcyogYW5kIGFyZSBkZWNsYXJlZCB1c2luZyBzeW50YXggdGhhdCBpbnZv
bHZlcyB0aGUga2V5d29yZCBgb3BlcmF0b3JgLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgcmVz
dWx0IGluIGNhbGxzIHRvIG9wZXJhdG9yIG92ZXJsb2FkczoKLQotLSBOdW1lcmljYWwgb3BlcmF0
b3JzIChgK2AsIGAtYCwgYCpgLCBgL2AsIGV0Yy4pLgotLSBJbmNyZW1lbnQgYW5kIGRlY3JlbWVu
dCAoYCsrYCwgYC0tYCkuCi0tIENhc3RpbmcgKGB0eXBlKHZhbHVlKWApLgotLSBBY2Nlc3Npbmcg
dmFsdWVzIGluIGFycmF5cyAoYFtdYCwgYFtdPWAsIGAmW11gKS4KLS0gQWNjZXNzaW5nIGZpZWxk
cyAoYC5maWVsZGAsIGAuZmllbGQ9YCwgYCYuZmllbGRgKS4KLQotV1NMJ3Mgb3BlcmF0b3Igb3Zl
cmxvYWRpbmcgaXMgZGVzaWduZWQgdG8gc3ludGhlc2l6ZSBtYW55IG9wZXJhdG9ycyBmb3IgeW91
OgotCi0tIFJlYWQtbW9kaWZ5LXdyaXRlIG9wZXJhdG9ycyBsaWtlIGArPWAgYXJlIGRlc3VnYXJl
ZCB0byBhIGxvYWQgb2YgdGhlIGxvYWQgdmFsdWUsIHRoZSB1bmRlcmx5aW5nIG9wZXJhdG9yIChs
aWtlIGArYCksIGFuZCBhIHN0b3JlIG9mIHRoZSBuZXcgdmFsdWUuIEl0J3Mgbm90IHBvc3NpYmxl
IHRvIG92ZXJyaWRlIGArPWAsIGAtPWAsIGV0Yy4KLS0gYHgrK2AgYW5kIGArK3hgIGJvdGggY2Fs
bCB0aGUgc2FtZSBvcGVyYXRvciBvdmVybG9hZC4gYG9wZXJhdG9yKytgIHRha2VzIHRoZSBvbGQg
dmFsdWUgYW5kIHJldHVybnMgYSBuZXcgb25lOyBmb3IgZXhhbXBsZSB0aGUgYnVpbHQtaW4gYCsr
YCBmb3IgYGludGAgY291bGQgYmUgd3JpdHRlbiBhczogYGludCBvcGVyYXRvcisrKGludCB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9YC4KLS0gYG9wZXJhdG9yPT1gIGNhbiBiZSBvdmVybG9h
ZGVkLCBidXQgYCE9YCBpcyBhdXRvbWF0aWNhbGx5IHN5bnRoZXNpemVkIGFuZCBjYW5ub3QgYmUg
b3ZlcmxvYWRlZC4KLQotU29tZSBvcGVyYXRvcnMgYW5kIG92ZXJsb2FkcyBhcmUgcmVzdHJpY3Rl
ZDoKLQotLSBgIWAsIGAmJmAsIGFuZCBgfHxgIGFyZSBidWlsdC1pbiBvcGVyYXRpb25zIG9uIHRo
ZSBgYm9vbGAgdHlwZS4KLS0gU2VsZi1jYXN0cyAoYFQoVClgKSBhcmUgYWx3YXlzIHRoZSBpZGVu
dGl0eSBmdW5jdGlvbi4KLS0gQ2FzdHMgd2l0aCBubyBhcmd1bWVudHMgKGBUKClgKSBhbHdheXMg
cmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGF0IHR5cGUuIEV2ZXJ5IHR5cGUgaGFzIGEg
ZGVmYXVsdCB2YWx1ZSAoYDBgLCBgbnVsbGAsIG9yIHRoZSBlcXVpdmFsZW50IGZvciBlYWNoIGZp
ZWxkKS4KLQotQ2FzdCBvdmVybG9hZGluZyBhbGxvd3MgZm9yIHN1cHBvcnRpbmcgY29udmVyc2lv
bnMgYmV0d2VlbiB0eXBlcyBhbmQgZm9yIGNyZWF0aW5nIGNvbnN0cnVjdG9ycyBmb3IgY3VzdG9t
IHR5cGVzLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgY2FzdCBvdmVybG9hZGluZyBiZWluZyB1c2Vk
IHRvIGNyZWF0ZSBhIGNvbnN0cnVjdG9yOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewotICAg
ICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgb3BlcmF0b3I8VD4gQ29t
cGxleDxUPihUIHJlYWwsIFQgaW1hZykKLSAgICB7Ci0gICAgICAgIENvbXBsZXg8VD4gcmVzdWx0
OwotICAgICAgICByZXN1bHQucmVhbCA9IHJlYWw7Ci0gICAgICAgIHJlc3VsdC5pbWFnID0gaW1h
ZzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgQ29tcGxleDxmbG9h
dD4gaSA9IENvbXBsZXg8ZmxvYXQ+KDAsIDEpOwotCi1XU0wgc3VwcG9ydHMgYWNjZXNzb3Igb3Zl
cmxvYWRpbmcgYXMgcGFydCBvZiB0aGUgb3BlcmF0b3Igb3ZlcmxvYWRpbmcgc3ludGF4LiBUaGlz
IGdpdmVzIHRoZSBwcm9ncmFtbWVyIGJyb2FkIHBvd2Vycy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBz
dHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIGludCB5OwotICAgIH0KLSAgICBp
bnQgb3BlcmF0b3Iuc3VtKEZvbyBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gZm9vLnggKyBm
b28ueTsKLSAgICB9Ci0KLUl0J3MgcG9zc2libGUgdG8gc2F5IGBmb28uc3VtYCB0byBjYWxsIHRo
ZSBgb3BlcmF0b3Iuc3VtYCBmdW5jdGlvbi4gQm90aCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGNhbiBi
ZSBwcm92aWRlZDoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgdmFsdWU7Ci0gICAg
fQotICAgIGRvdWJsZSBvcGVyYXRvci5kb3VibGVWYWx1ZShGb28gdmFsdWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gZG91YmxlKHZhbHVlLnZhbHVlKTsKLSAgICB9Ci0gICAgRm9vIG9wZXJhdG9y
LmRvdWJsZVZhbHVlPShGb28gdmFsdWUsIGRvdWJsZSBkb3VibGVWYWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHZhbHVlLnZhbHVlID0gaW50KGRvdWJsZVZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHZhbHVl
OwotICAgIH0KLQotUHJvdmlkaW5nIGJvdGggZ2V0dGVyIGFuZCBzZXR0ZXIgb3ZlcmxvYWRzIG1h
a2VzIGBkb3VibGVWYWx1ZWAgYmVoYXZlIGFsbW9zdCBhcyBpZiBpdCB3YXMgYSBmaWVsZCBvZiBg
Rm9vYC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdG8gc2F5OgotCi0gICAgRm9vIGZvbzsK
LSAgICBmb28udmFsdWUgPSA0MjsKLSAgICBmb28uZG91YmxlVmFsdWUgKj0gMjsgLy8gTm93IGZv
by52YWx1ZSBpcyA4NAotCi1JdCdzIGFsc28gcG9zc2libGUgdG8gcHJvdmlkZSBhbiBhZGRyZXNz
LWdldHRpbmcgb3ZlcmxvYWQgY2FsbGVkIGFuICphbmRlcio6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAgICB0aHJlYWQgaW50XiBvcGVyYXRvciYudmFs
dWVBbGlhcyh0aHJlYWQgRm9vXiBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gJmZvby0+dmFs
dWU7Ci0gICAgfQotCi1Qcm92aWRpbmcganVzdCB0aGlzIG92ZXJsb2FkIGZvciBhIHBvaW50ZXIg
dHlwZSBpbiBldmVyeSBhZGRyZXNzIHNwYWNlIGdpdmVzIHRoZSBzYW1lIHBvd2VyIGFzIG92ZXJs
b2FkaW5nIGdldHRlcnMgYW5kIHNldHRlcnMuIEFkZGl0aW9uYWxseSwgaXQgbWFrZXMgaXQgcG9z
c2libGUgdG8gYCZmb28udmFsdWVBbGlhc2AuCi0KLVRoZSBzYW1lIG92ZXJsb2FkaW5nIHBvd2Vy
IGlzIHByb3ZpZGVkIGZvciBhcnJheSBhY2Nlc3Nlcy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1
Y3QgVmVjdG9yPFQ+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBUIHk7Ci0gICAgfQotICAgIHRo
cmVhZCBUXiBvcGVyYXRvciZbXSh0aHJlYWQgVF4gcHRyLCB1aW50IGluZGV4KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGluZGV4ID8gJnB0ci0+eSA6ICZwdHItPng7Ci0gICAgfQotCi1BbHRlcm5h
dGl2ZWx5LCBpdCdzIHBvc3NpYmxlIHRvIG92ZXJsb2FkIGdldHRlcnMgYW5kIHNldHRlcnMgKGBv
cGVyYXRvcltdYCBhbmQgYG9wZXJhdG9yW109YCkuCi0KLSMgTWFwcGluZyBvZiBBUEkgY29uY2Vw
dHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWZ1bCBhcyBib3RoIGEgZ3JhcGhpY3Mgc2hh
ZGluZyBsYW5ndWFnZSBhbmQgYXMgYSBjb21wdXRhdGlvbiBsYW5ndWFnZS4gSG93ZXZlciwgdGhl
c2UgdHdvIGVudmlyb25tZW50cyBoYXZlCi1zbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzLgot
Ci1XaGVuIHVzaW5nIFdTTCBhcyBhIGdyYXBoaWNzIHNoYWRpbmcgbGFuZ3VhZ2UsIHRoZXJlIGlz
IGEgZGlzdGluY3Rpb24gYmV0d2VlbiAqZW50cnktcG9pbnRzKiBhbmQgKm5vbi1lbnRyeS1wb2lu
dHMqLiBFbnRyeSBwb2ludHMgYXJlIHRvcC1sZXZlbCBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBlaXRo
ZXIgdGhlIGB2ZXJ0ZXhgIG9yIGBmcmFnbWVudGAga2V5d29yZCBpbiBmcm9udCBvZiB0aGVpciBk
ZWNsYXJhdGlvbi4gRW50cnkgcG9pbnRzIG1heSBub3QgYmUgZm9yd2FyZCBkZWNsYXJlZC4gQW4g
ZW50cnkgcG9pbnQgYW5ub3RhdGVkIHdpdGggdGhlIGB2ZXJ0ZXhgIGtleXdvcmQgbWF5IG5vdCBi
ZSB1c2VkIGFzIGEgZnJhZ21lbnQgc2hhZGVyLCBhbmQgYW4gZW50cnkgcG9pbnQgYW5ub3RhdGVk
IHdpdGggdGhlIGBmcmFnbWVudGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSB2ZXJ0ZXgg
c2hhZGVyLiBObyBhcmd1bWVudCBub3IgcmV0dXJuIHZhbHVlIG9mIGFuIGVudHJ5IHBvaW50IG1h
eSBiZSBhIHBvaW50ZXIuIEVudHJ5IHBvaW50cyBtdXN0IG5vdCBhY2NlcHQgdHlwZSBhcmd1bWVu
dHMgKGFsc28ga25vd24gYXMgImdlbmVyaWNzIikuCi0KLSMjIFZlcnRleCBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgV1NMIHZlcnRleCBzaGFkZXIgaW4gZm91
ciB3YXlzOgotCi0tIEF0dHJpYnV0ZXMKLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEK
LS0gU2FtcGxlcnMKLQotRWFjaCBvZiB0aGVzZSBBUEkgb2JqZWN0cyBpcyByZWZlcnJlZCB0byBi
eSBuYW1lIGZyb20gdGhlIEFQSS4gVmFyaWFibGVzIGluIFdTTCBhcmUgbm90IGFubm90YXRlZCB3
aXRoIGV4dHJhIEFQSS12aXNpYmxlIG5hbWVzIChsaWtlIHRoZXkgYXJlIGluIHNvbWUgb3RoZXIg
Z3JhcGhpY3MgQVBJcykuCi0KLVZhcmlhYmxlcyBhcmUgcGFzc2VkIHRvIHZlcnRleCBzaGFkZXJz
IGFzIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludC4gRWFjaCBidWZmZXIgaXMgcmVw
cmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAodXNp
bmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNlbnRl
ZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMsIHJl
c3BlY3RpdmVseS4gQWxsIG90aGVyIG5vbi1idWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBl
bnRyeSBwb2ludCBhcmUgaW1wbGllZCB0byBiZSBhdHRyaWJ1dGVzLgotCi1Tb21lIGFyZ3VtZW50
cyBhcmUgcmVjb2duaXplZCBieSB0aGUgY29tcGlsZXIgZnJvbSB0aGVpciBuYW1lIGFuZCB0eXBl
LiBUaGVzZSBhcmd1bWVudHMgcHJvdmlkZSBidWlsdC1pbiBmdW5jdGlvbmFsaXR5IGluaGVyZW50
IGluIHRoZSBncmFwaGljcyBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIGFuIGFyZ3VtZW50IG9mIHRo
ZSBmb3JtIGBpbnQgd3NsX3ZlcnRleElEYCByZWZlcnMgdG8gdGhlIElEIG9mIHRoZSBjdXJyZW50
IHZlcnRleCwgYW5kIGlzIG5vdCByZWNvZ25pemVkIGFzIGFuIGF0dHJpYnV0ZS4gQWxsIG5vbi1i
dWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludCBtdXN0IGJlIGFzc29jaWF0
ZWQgd2l0aCBhbiBBUEkgb2JqZWN0IHdoZW5ldmVyIGFueSBkcmF3IGNhbGwgdXNpbmcgdGhlIHZl
cnRleCBlbnRyeSBwb2ludCBpcyBpbnZva2VkLiBPdGhlcndpc2UsIHRoZSBkcmF3IGNhbGwgd2ls
bCBmYWlsLgotCi1UaGUgb25seSB3YXkgdG8gcGFzcyBkYXRhIGJldHdlZW4gc3VjY2Vzc2l2ZSBz
aGFkZXIgc3RhZ2VzIHdpdGhpbiBhIHNpbmdsZSBkcmF3IGNhbGwgaXMgYnkgcmV0dXJuIHZhbHVl
LiBBbiBlbnRyeSBwb2ludCBtdXN0IGluZGljYXRlIHRoYXQgaXQgcmV0dXJucyBhIGNvbGxlY3Rp
b24gb2YgdmFsdWVzIGNvbnRhaW5lZCB3aXRoaW4gYSBzdHJ1Y3R1cmUuIEV2ZXJ5IHZhcmlhYmxl
IGluc2lkZSB0aGlzIHN0cnVjdHVyZSwgcmVjdXJzaXZlbHksIGlzIHBhc3NlZCB0byB0aGUgbmV4
dCBzdGFnZSBpbiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIE1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3Qg
bWF5IGFsc28gYmUgb3V0cHV0IGJ1aWx0LWluIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIGEgdmVy
dGV4IGVudHJ5IHBvaW50IG1heSByZXR1cm4gYSBzdHJ1Y3Qgd2hpY2ggY29udGFpbnMgYSBtZW1i
ZXIgYGZsb2F0NCB3c2xfUG9zaXRpb25gLCBhbmQgdGhpcyB2YXJpYWJsZSB3aWxsIHJlcHJlc2Vu
dCB0aGUgcmFzdGVyaXplZCBwb3NpdGlvbiBvZiB0aGUgdmVydGV4LiBCdWZmZXJzIChhcyBkZXNj
cmliZWQgYnkgV1NMIGFycmF5IHJlZmVyZW5jZXMpLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIG11
c3Qgbm90IGJlIHByZXNlbnQgaW4gdGhpcyByZXR1cm5lZCBzdHJ1Y3QuIEJ1aWx0LWluIHZhcmlh
YmxlcyBtdXN0IG5ldmVyIGFwcGVhciB0d2ljZSBpbnNpZGUgdGhlIHJldHVybmVkIHN0cnVjdHVy
ZS4KLQotIyMgRnJhZ21lbnQgZW50cnkgcG9pbnRzCi0KLUZyYWdtZW50IGVudHJ5IHBvaW50cyBt
YXkgYWNjZXB0IG9uZSBhcmd1bWVudCB3aXRoIHRoZSB0eXBlIHRoYXQgdGhlIHByZXZpb3VzIHNo
YWRlciBzdGFnZSByZXR1cm5lZC4gVGhlIGFyZ3VtZW50IG5hbWUgZm9yIHRoaXMgYXJndW1lbnQg
bXVzdCBiZSBgc3RhZ2VJbmAuIEluIGFkZGl0aW9uIHRvIHRoaXMgYXJndW1lbnQsIGZyYWdtZW50
IGVudHJ5IHBvaW50cyBtYXkgYWNjZXB0IGJ1ZmZlcnMsIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMg
YXMgYXJndW1lbnRzIGluIHRoZSBzYW1lIHdheSB0aGF0IHZlcnRleCBlbnRyeSBwb2ludHMgYWNj
ZXB0IHRoZW0uIEZyYWdtZW50IGVudHJ5IHBvaW50cyBhbHNvIG11c3QgcmV0dXJuIGEgc3RydWN0
LCBhbmQgYWxsIG1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgbXVzdCBiZSBidWlsdC1pbiB2YXJpYWJs
ZXMuIFRoZSBzZXQgb2YgcmVjb2duaXplZCBidWlsdC1pbiB2YXJpYWJsZXMgd2hpY2ggbWF5IGJl
IGFjY2VwdGVkIG9yIHJldHVybmVkIGZyb20gYW4gZW50cnkgcG9pbnQgaXMgZGlmZmVyZW50IGJl
dHdlZW4gYWxsIHR5cGVzIG9mIGVudHJ5IHBvaW50cy4KLQotRm9yIGV4YW1wbGUsIHRoaXMgd291
bGQgYmUgYSB2YWxpZCBncmFwaGljcyBwcm9ncmFtOgotCi0gICAgc3RydWN0IFZlcnRleElucHV0
IHsKLSAgICAgICAgZmxvYXQyIHBvc2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAg
fQotICAgIAotICAgIHN0cnVjdCBWZXJ0ZXhPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX1Bv
c2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAgfQotICAgIAotICAgIHN0cnVjdCBG
cmFnbWVudE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfQ29sb3I7Ci0gICAgfQotICAgIAot
ICAgIHZlcnRleCBWZXJ0ZXhPdXRwdXQgdmVydGV4U2hhZGVyKFZlcnRleElucHV0IHZlcnRleElu
cHV0KSB7Ci0gICAgICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC53c2xf
UG9zaXRpb24gPSBmbG9hdDQodmVydGV4SW5wdXQucG9zaXRpb24sIDAuLCAxLik7Ci0gICAgICAg
IHJlc3VsdC5jb2xvciA9IHZlcnRleElucHV0LmNvbG9yOwotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLSAgICAKLSAgICBmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFnbWVudFNoYWRl
cihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgewotICAgICAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7
Ci0gICAgICAgIHJlc3VsdC53c2xfQ29sb3IgPSBmbG9hdDQoc3RhZ2VJbi5jb2xvciwgMS4pOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotIyMgQ29tcHV0ZSBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgY29tcHV0ZSBzaGFkZXIgaW4gdGhyZWUg
d2F5czoKLQotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwotCi1D
b21wdXRlIGVudHJ5IHBvaW50cyBzdGFydCB3aXRoIHRoZSBrZXl3b3JkIGBjb21wdXRlYC4gVGhl
IHJldHVybiB0eXBlIGZvciBhIGNvbXB1dGUgZW50cnkgcG9pbnQgbXVzdCBiZSBgdm9pZGAuIEVh
Y2ggYnVmZmVyIGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVm
ZXJlbmNlIHR5cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVy
cyBhcmUgcmVwcmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNh
bXBsZXJgIHR5cGVzLCByZXNwZWN0aXZlbHkuIENvbXB1dGUgZW50cnkgcG9pbnRzIG1heSBhbHNv
IGFjY2VwdCBidWlsdC1pbiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiBBcmd1bWVudHMgb2YgYW55
IG90aGVyIHR5cGUgYXJlIGRpc2FsbG93ZWQuIEFyZ3VtZW50cyBtYXkgbm90IHVzZSB0aGUgYHRo
cmVhZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLSMgRXJyb3IgaGFuZGxpbmcKLQotRXJyb3JzIG1h
eSBvY2N1ciBkdXJpbmcgc2hhZGVyIHByb2Nlc3NpbmcuIEZvciBleGFtcGxlLCB0aGUgc2hhZGVy
IG1heSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEgYG51bGxgIGFycmF5IHJlZmVyZW5jZS4gSWYg
dGhpcyBvY2N1cnMsIHRoZSBzaGFkZXIgc3RhZ2UgaW1tZWRpYXRlbHkgY29tcGxldGVzIHN1Y2Nl
c3NmdWxseS4gVGhlIGVudHJ5IHBvaW50IGltbWVkaWF0ZWx5IHJldHVybnMgYSBzdHJ1Y3Qgd2l0
aCBhbGwgZmllbGRzIHNldCB0byAwLiBBZnRlciB0aGlzIGV2ZW50LCBzdWJzZXF1ZW50IHNoYWRl
ciBzdGFnZXMgd2lsbCBwcm9jZWVkIGFzIGlmIHRoZXJlIHdhcyBubyBwcm9ibGVtLgotCi1CdWZm
ZXIgYW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBiZWZvcmUgdGhlIGVycm9yIGFsbCBjb21w
bGV0ZSwgYW5kIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIGlmIG5vIGVycm9yIGhhZCBvY2N1
cnJlZC4gQnVmZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYWZ0ZXIgdGhlIGVycm9y
IGRvIG5vdCBvY2N1ci4KLQotIyBTdW1tYXJ5Ci0KLVdTTCBpcyBhIHR5cGUtc2FmZSBsYW5ndWFn
ZSBiYXNlZCBvbiBDIHN5bnRheC4gSXQgZWxpbWluYXRlcyBzb21lIEMgZmVhdHVyZXMsIGxpa2Ug
dW5pb25zIGFuZCBwb2ludGVyIGNhc3RzLCBidXQgYWRkcyBvdGhlciBtb2Rlcm4gZmVhdHVyZXMg
aW4gdGhlaXIgcGxhY2UsIGxpa2UgZ2VuZXJpY3MgYW5kIG92ZXJsb2FkaW5nLgotCi0jIEFkZGl0
aW9uYWwgTGltaXRhdGlvbnMKLQotVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxpbWl0YXRpb25z
IG1heSBiZSBwbGFjZWQgb24gYSBXU0wgcHJvZ3JhbToKLQotLSBgZGV2aWNlYCwgYGNvbnN0YW50
YCwgYW5kIGB0aHJlYWRncm91cGAgcG9pbnRlcnMgY2Fubm90IHBvaW50IHRvIGRhdGEgdGhhdCBt
YXkgaGF2ZSBwb2ludGVycyBpbiBpdC4gVGhpcyBzYWZldHkgY2hlY2sgaXMgbm90IGRvbmUgYXMg
cGFydCBvZiB0aGUgbm9ybWFsIHR5cGUgc3lzdGVtIGNoZWNrcy4gSXQncyBwZXJmb3JtZWQgb25s
eSBhZnRlciBpbnN0YW50aWF0aW9uLgotLSBQb2ludGVycyBhbmQgYXJyYXkgcmVmZXJlbmNlcyAo
Y29sbGVjdGl2ZWx5LCAqcmVmZXJlbmNlcyopIG1heSBiZSByZXN0cmljdGVkIHRvIHN1cHBvcnQg
Y29tcGlsaW5nIHRvIFNQSVItViAqbG9naWNhbCBtb2RlKi4gSW4gdGhpcyBtb2RlLCBhcnJheXMg
bXVzdCBub3QgdHJhbnNpdGl2ZWx5IGhvbGQgcmVmZXJlbmNlcy4gUmVmZXJlbmNlcyBtdXN0IGJl
IGluaXRpYWxpemVkIHVwb24gZGVjbGFyYXRpb24gYW5kIG5ldmVyIHJlYXNzaWduZWQuIEZ1bmN0
aW9ucyB0aGF0IHJldHVybiByZWZlcmVuY2VzIG11c3QgaGF2ZSBvbmUgcmV0dXJuIHBvaW50LiBU
ZXJuYXJ5IGV4cHJlc3Npb25zIG1heSBub3QgcmV0dXJuIHJlZmVyZW5jZXMuCi0tIEdyYXBoaWNz
IGVudHJ5IHBvaW50cyBtdXN0IHRyYW5zaXRpdmVseSBuZXZlciByZWZlciB0byB0aGUgYHRocmVh
ZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9XcmFwQ2hlY2tlci5qcwppbmRleCA0Y2FkYzdkMGQ5ZTZhNmRmZGE1NTVkYWI4OWQwMjcxNzcw
ZGJkOWE3Li5jZjZlOWZiMTllZjc1ZTc4OTBjZDU1YTllOWFiZmZjMThiNWM3M2M4IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcwpAQCAtNTIsMTEgKzUy
LDYgQEAgY2xhc3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJGb3VuZCB1bndyYXBwZWQgIiArIG5vZGUuY29uc3RydWN0b3IubmFtZSArICIg
YXQgIiArIG9yaWdpblN0cmluZyhub2RlKSArICI6ICIgKyBub2RlICsgIlxuV2hpbGUgdmlzaXRp
bmcgIiArIHRoaXMuX3N0YXJ0Tm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2lu
U3RyaW5nKHRoaXMuX3N0YXJ0Tm9kZS5vcmlnaW4pICsgIjogIiArIHRoaXMuX3N0YXJ0Tm9kZSk7
CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fZm91bmRVbndy
YXBwZWQobm9kZSk7CkBAIC03NywxMSArNzIsNiBAQCBjbGFzcyBXcmFwQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9CiAg
ICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Zv
dW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKICAgICAvLyBOT1RFOiBUaGlzIGRvZXMg
bm90IGtub3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBp
cyBuZXZlciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCiAgICAgLy8gY29kZS4gT25jZSBjb2RlIGlz
IGluc3RhbnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgogICAgIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggODA5NGIxOTM3ODFi
NGFhOWIwYzM5MDllOWE5MWQyODE1ZjJiMmFiYS4uNWFmMGY0ZmFkN2NhMTk0ZTNmZDcwMTE4ZGQ5
ZDZkZTUxZjZlYmJkYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
CkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3RleHBy
VHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNTUs
NyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21i
aWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcxLDYg
QEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExp
dGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3Nj
cmlwdD4KQEAgLTEwMywxMCArMTAwLDYgQEAKIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3Rv
Y29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0
ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIu
anMiPjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjQsNyBAQAogPHNjcmlwdCBzcmM9IlR5cGVEZWYu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlw
ZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3Njcmlw
dD4KQEAgLTM0NCw3ICszMzQsNyBAQCBmdW5jdGlvbiBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZy
b21Db21waWxhdGlvbiA9IGZhbHNlKSB7CiAgICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWls
YWJsZVZlcnRleFNoYWRlcnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAg
IGN1cnJlbnRGcmFnbWVudFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVu
dFNoYWRlclNlbGVjdC5zZWxlY3RlZEluZGV4XTsKIAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIg
PSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIs
IFtdKTsKKyAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAg
ICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0
aW5nU2V0KGN1cnJlbnRWZXJ0ZXhTaGFkZXIpKTsKIAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBb
XTsKQEAgLTQyNiw3ICs0MTYsNyBAQCBmdW5jdGlvbiBydW5TaGFkZXJzKCkgewogICAgICAgICBm
dW5jLnBhcmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFy
Z3VtZW50RVB0cnNbaV0uc2l6ZSk7CiAgICAgbGV0IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJv
Z3JhbSkucnVuRnVuYyhmdW5jKTsKIAotICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dy
YW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoY3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7
CisgICAgaW5saW5lZEZyYWdtZW50U2hhZGVyID0gY3VycmVudEZyYWdtZW50U2hhZGVyOwogICAg
IF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNp
dGluZ1NldChjdXJyZW50RnJhZ21lbnRTaGFkZXIpKTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdt
ZW50U2hhZGVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346808</attachid>
            <date>2018-08-08 18:34:16 -0700</date>
            <delta_ts>2018-08-08 23:37:28 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180808183415.patch</filename>
            <type>text/plain</type>
            <size>321485</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NDM1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzE0ZTU0ZDZiN2Q4YzkxNzZlY2IxYTI4YTMwODNjYzZj
Y2Q4M2ZmYi4uMTYyMmI0ZmY3ZjhiNWY1ZDIwNDY2MWEyODVkMzk1NGZhNmQwZDFiNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
Ny0zMSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAg
ICBzZXJ2ZXJfcHJvY2Vzcy5weSBzaG91bGQgcHJpbnQgcmV0dXJuY29kZSBpbiBkZWJ1ZyBsb2cg
aWYgdGhlIHByb2Nlc3MgY3Jhc2hlZApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmlu
ZGV4IDE1ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2NTguLmEwN2VkNmM1MWE3
YTg1MGY2NDUxMzM0Yjk3ZmFhNmEyNjkwMzNlZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9BbGwuanMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5qcyIpOwogbG9hZCgiQ2xv
bmVQcm9ncmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNvbnN0
ZXhwckZvbGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyIpOwogbG9h
ZCgiQ29udGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5q
cyIpOwogbG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBAIC03Nyw3ICs3Niw2IEBA
IGxvYWQoIkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVybmFsT3JpZ2luLmpzIik7
CiBsb2FkKCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVzLmpzIik7Ci1sb2FkKCJG
bGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRH
YXRoZXJlci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBsb2FkKCJGbG9hdExpdGVy
YWxUeXBlLmpzIik7CkBAIC05NSw3ICs5Myw2IEBAIGxvYWQoIkluZGV4RXhwcmVzc2lvbi5qcyIp
OwogbG9hZCgiSW5mZXJUeXBlc0ZvckNhbGwuanMiKTsKIGxvYWQoIklubGluZS5qcyIpOwogbG9h
ZCgiSW5saW5lci5qcyIpOwotbG9hZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIik7CiBsb2Fk
KCJJbnRMaXRlcmFsLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiSW50
cmluc2ljcy5qcyIpOwpAQCAtMTI1LDEwICsxMjIsNiBAQCBsb2FkKCJQcmVwYXJlLmpzIik7CiBs
b2FkKCJQcm9ncmFtLmpzIik7CiBsb2FkKCJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVt
b3ZlZC5qcyIpOwogbG9hZCgiUHJvcGVydHlSZXNvbHZlci5qcyIpOwotbG9hZCgiUHJvdG9jb2wu
anMiKTsKLWxvYWQoIlByb3RvY29sRGVjbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xGdW5jRGVjbC5q
cyIpOwotbG9hZCgiUHJvdG9jb2xSZWYuanMiKTsKIGxvYWQoIlB0clR5cGUuanMiKTsKIGxvYWQo
IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIlJlY3Vyc2lvbkNoZWNrZXIu
anMiKTsKQEAgLTE1MywxMCArMTQ2LDcgQEAgbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9h
ZCgiVHlwZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CiBsb2FkKCJUeXBl
T3JWYXJpYWJsZVJlZi5qcyIpOwotbG9hZCgiVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIik7CiBs
b2FkKCJUeXBlUmVmLmpzIik7Ci1sb2FkKCJUeXBlVmFyaWFibGUuanMiKTsKLWxvYWQoIlR5cGVW
YXJpYWJsZVRyYWNrZXIuanMiKTsKIGxvYWQoIlR5cGVkVmFsdWUuanMiKTsKIGxvYWQoIlVpbnRM
aXRlcmFsLmpzIik7CiBsb2FkKCJVaW50TGl0ZXJhbFR5cGUuanMiKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMKaW5kZXggODBhZTdkOTJhNGZhNjI2NjZk
YjJhMmZmNTIyMGQxNDlhN2YzOGU5Yy4uMjE2YTdlMmUzM2RlOTkxYjA2YWI2MzZkYjVjZmNhYjQw
NWQ4ZWUyOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dy
YXBwZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIu
anMKQEAgLTM1LDExICszNSw2IEBAIGNsYXNzIEF1dG9XcmFwcGVyIGV4dGVuZHMgUmV3cml0ZXIg
ewogICAgICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJU
eXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVmFyaWFibGVSZWYud3Jh
cChub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAg
ewogICAgICAgICByZXR1cm4gVmFyaWFibGVSZWYud3JhcChub2RlKTsKQEAgLTYwLDExICs1NSw2
IEBAIGNsYXNzIEF1dG9XcmFwcGVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICByZXR1cm4g
VHlwZVJlZi53cmFwKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFR5cGVWYXJpYWJsZShu
b2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChub2RlKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBub2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2Fs
bEV4cHJlc3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVz
c2lvbi5qcwppbmRleCBiNWFlMGZlNDlmY2VkYzhmYTc2YTY2NzkzY2ZlMGNiMWYwOGI0NTcxLi5m
ODNlMWViZDA1MWQ3MzEzNjJmZGRmODk1ZjlmN2JhYWNjZDkyYTY0IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwpAQCAtMjUsMTEgKzI1LDEw
IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVz
c2lvbiB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1
bWVudExpc3QpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCBhcmd1bWVudExpc3QpCiAg
ICAgewogICAgICAgICBzdXBlcihvcmlnaW4pOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
LSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRo
aXMuX2FyZ3VtZW50TGlzdCA9IGFyZ3VtZW50TGlzdDsKICAgICAgICAgdGhpcy5mdW5jID0gbnVs
bDsKICAgICAgICAgdGhpcy5faXNDYXN0ID0gZmFsc2U7CkBAIC0zNyw3ICszNiw2IEBAIGNsYXNz
IENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgfQogICAgIAogICAgIGdl
dCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkg
eyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBhcmd1bWVudExpc3QoKSB7
IHJldHVybiB0aGlzLl9hcmd1bWVudExpc3Q7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4g
dGhpcy5faXNDYXN0OyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1
cm5UeXBlOyB9CkBAIC01Nyw1MSArNTUsMjIgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5k
cyBFeHByZXNzaW9uIHsKICAgICAgICAgaWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBu
b3QgZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyB0aGlzLm5hbWUpOwogICAgICAgICAKLSAg
ICAgICAgbGV0IG92ZXJsb2FkID0gbnVsbDsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0g
ICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJblNjb3BlKSB7
Ci0gICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxl
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFt
ZXRlci5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxl
dCBzaWduYXR1cmVzID0KLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnByb3RvY29sLnBy
b3RvY29sRGVjbC5zaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlzLm5hbWUsIHR5
cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBs
KHNpZ25hdHVyZXMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlz
LnJldHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwo
CisgICAgICAgICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlz
LnJldHVyblR5cGUpOworICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAgICAgICAgICAg
IGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgb3Zlcmxv
YWQgPSBudWxsOwotICAgICAgICB9Ci0gICAgICAgIGlmICghb3ZlcmxvYWQpIHsKLSAgICAgICAg
ICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBwb3Nz
aWJsZU92ZXJsb2FkcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRo
aXMucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKLSAgICAg
ICAgICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAg
ICAgICAgICBsZXQgbWVzc2FnZSA9ICJEaWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRo
aXMubmFtZSArICIgZm9yIGNhbGwgd2l0aCAiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5
cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJ0eXBl
IGFyZ3VtZW50cyA8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IGFuZCAiOwotICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVz
ICsgIikiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCi0gICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5UeXBl
OwotICAgICAgICAgICAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4i
KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdp
blN0cmluZywgbWVzc2FnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICBsZXQgdHlwZUFyZ3VtZW50VHlwZSA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAgICBs
ZXQgdHlwZVBhcmFtZXRlciA9IG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAg
ICAgICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgQ29uc3RleHByVHlwZVBhcmFt
ZXRlcikpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5cGVQ
YXJhbWV0ZXIudHlwZS5lcXVhbHNXaXRoQ29tbWl0KHR5cGVBcmd1bWVudFR5cGUpKQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmlu
ZyArICIgY29uc3RleHByIHR5cGUgYXJndW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1
YWw6IGFyZ3VtZW50ID0gIiArIHR5cGVBcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsg
dHlwZVBhcmFtZXRlci50eXBlKTsKKyAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3Qg
ZmluZCBmdW5jdGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7Cisg
ICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRU
eXBlcyArICIpIjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCisgICAgICAgICAg
ICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7Cisg
ICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
Kz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQorICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdl
KTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJndW1lbnRU
eXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZSA9IHRoaXMu
YXJndW1lbnRUeXBlc1tpXTsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3Zlcmxv
YWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAg
ICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmlj
YXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQu
ZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGU7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXJndW1l
bnRUeXBlLmVxdWFsc1dpdGhDb21taXQocGFyYW1ldGVyVHlwZSk7CiAgICAgICAgICAgICBpZiAo
IXJlc3VsdCkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9y
aWdpbi5vcmlnaW5TdHJpbmcgKyAiIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMgbm90IGVx
dWFsIGFmdGVyIHR5cGUgYXJndW1lbnQgc3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9ICIgKyBhcmd1
bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgcGFyYW1ldGVyVHlwZSk7CkBAIC0xMTIsMTAg
KzgxLDcgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICBy
ZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9IG92
ZXJsb2FkLmZ1bmM7Ci0gICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2Fk
LnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2Vv
ZiBUeXBlID8gdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1
bWVudCk7Ci0gICAgICAgIHRoaXMuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IHRo
aXMuYWN0dWFsVHlwZUFyZ3VtZW50czsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG92ZXJsb2FkLmZ1
bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgIG92ZXJs
b2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Cisg
ICAgICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgIGlm
ICghcmVzdWx0KQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJldHVybiB0eXBl
Iik7CiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CkBA
IC0xMjUsMTEgKzkxLDEwIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lv
biB7CiAgICAgCiAgICAgYmVjb21lQ2FzdChyZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgdGhp
cy5fcmV0dXJuVHlwZSA9IG5ldyBUeXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHRoaXMu
X3R5cGVBcmd1bWVudHMpOworICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYo
dGhpcy5vcmlnaW4sIHRoaXMubmFtZSk7CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUudHlwZSA9
IHJldHVyblR5cGU7CiAgICAgICAgIHRoaXMuX25hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAg
ICAgIHRoaXMuX2lzQ2FzdCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBb
XTsKICAgICB9CiAgICAgCiAgICAgc2V0Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAgLTE0MSw4ICsx
MDYsNiBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHRv
U3RyaW5nKCkKICAgICB7CiAgICAgICAgIHJldHVybiAodGhpcy5pc0Nhc3QgPyAib3BlcmF0b3Ig
IiArIHRoaXMucmV0dXJuVHlwZSA6IHRoaXMubmFtZSkgKwotICAgICAgICAgICAgIjwiICsgdGhp
cy50eXBlQXJndW1lbnRzICsgIj4iICsKLSAgICAgICAgICAgICh0aGlzLmFjdHVhbFR5cGVBcmd1
bWVudHMgPyAiPDwiICsgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6ICIiKSArCiAg
ICAgICAgICAgICAiKCIgKyB0aGlzLmFyZ3VtZW50TGlzdCArICIpIjsKICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKaW5kZXggZjBmMDM5
ZjU0NjJkMDc4MWQ4MmIzNDY0Yzg3NDc4NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVkODFkODM5NDU2
Y2RlNGM0NTk3NzBiY2MzMzBmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qcwpAQCAtMjUsMTcgKzI1LDE3IEBACiAidXNlIHN0cmljdCI7CiAKIC8v
IFRoaXMgYWxsb3dzIHlvdSB0byBwYXNzIHN0cnVjdHMgYW5kIGFycmF5cyBpbi1wbGFjZSwgYnV0
IGl0J3MgYSBtb3JlIGFubm95aW5nIEFQSS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpCitmdW5jdGlvbiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRMaXN0KQogewogICAgIGxldCBhcmd1bWVudFR5cGVz
ID0gYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC50eXBlKTsKLSAgICBsZXQg
ZnVuY09yRmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHRydWUpOworICAgIGxldCBmdW5jT3JGYWlsdXJl
cyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywg
dHJ1ZSk7CiAgICAgaWYgKCEoZnVuY09yRmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5jKSkgewogICAg
ICAgICBsZXQgZmFpbHVyZXMgPSBmdW5jT3JGYWlsdXJlczsKLSAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwg
IiArIG5hbWUgKyAiPCIgKyB0eXBlQXJndW1lbnRzICsgIj4oIiArIGFyZ3VtZW50TGlzdCArICIp
IiArIChmYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIp
IDogIiIpKTsKKyAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+Iiwg
IkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiKCIgKyBhcmd1bWVudExp
c3QgKyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9p
bigiXG4iKSA6ICIiKSk7CiAgICAgfQogICAgIGxldCBmdW5jID0gZnVuY09yRmFpbHVyZXM7CiAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgbGV0IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5cGU7CisgICAg
ICAgIGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXTsKICAgICAgICAgdHlwZS52aXNpdChuZXcg
U3RydWN0TGF5b3V0QnVpbGRlcigpKTsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIu
Y29weUZyb20oYXJndW1lbnRMaXN0W2ldLmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4MzZjMTU0ODZm
ZDI1ODBjNThlOTYwNmNhZDU5NmVjYi4uMTNkOTgzNGQwN2Y3ZWFiYTllMzU5MDlmYTY2MTZlNTA4
ZmZjN2IyMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tl
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC00
Myw4ICs0Myw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAg
ICAgICAgIGZvciAobGV0IHR5cGUgb2Ygbm9kZS50eXBlcy52YWx1ZXMoKSkKICAgICAgICAgICAg
IGRvU3RhdGVtZW50KHR5cGUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLnBy
b3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGRvU3RhdGVtZW50KHByb3RvY29sKTsKICAg
ICAgICAgZm9yIChsZXQgZnVuY3Mgb2Ygbm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAg
ICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAgICB0aGlzLnZp
c2l0RnVuYyhmdW5jKTsKQEAgLTg0LDE1ICs4Miw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgaWYgKCFmdW5jLm5hbWUuc3RhcnRzV2l0aCgib3BlcmF0b3IiKSkK
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIG9wZXJhdG9yIG92ZXJsb2FkIG5hbWU6
ICIgKyBmdW5jLm5hbWUpOwogICAgICAgICAKLSAgICAgICAgbGV0IHR5cGVWYXJpYWJsZVRyYWNr
ZXIgPSBuZXcgVHlwZVZhcmlhYmxlVHJhY2tlcigpOwotICAgICAgICBmb3IgKGxldCBwYXJhbWV0
ZXJUeXBlIG9mIGZ1bmMucGFyYW1ldGVyVHlwZXMpCi0gICAgICAgICAgICBwYXJhbWV0ZXJUeXBl
LnZpc2l0KHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICBOb2RlLnZpc2l0KGZ1bmMucmV0
dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbiwgdHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAg
ICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBlUGFyYW1ldGVycykgewotICAg
ICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2VyLnNldC5oYXModHlwZVBhcmFtZXRlcikp
Ci0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZVBhcmFtZXRlci5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIHRv
IG9wZXJhdG9yICIgKyBmdW5jLnRvRGVjbFN0cmluZygpICsgIiBpcyBub3QgaW5mZXJyYWJsZSBm
cm9tIHZhbHVlIHBhcmFtZXRlcnMiKTsKLSAgICAgICAgfQotICAgICAgICAKICAgICAgICAgbGV0
IGNoZWNrR2V0dGVyID0gKGtpbmQpID0+IHsKICAgICAgICAgICAgIGxldCBudW1FeHBlY3RlZFBh
cmFtZXRlcnMgPSBraW5kID09ICJpbmRleCIgPyAyIDogMTsKICAgICAgICAgICAgIGlmIChmdW5j
LnBhcmFtZXRlcnMubGVuZ3RoICE9IG51bUV4cGVjdGVkUGFyYW1ldGVycykKQEAgLTExNSwxMSAr
MTA0LDEwIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGlm
ICghZ2V0dGVyRnVuY3MpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVu
Yy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXZlcnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1hdGNoaW5n
IGdldHRlciwgYnV0IGRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb24gbmFtZWQgIiArIGdldHRlck5h
bWUgKyAiIHRvIG1hdGNoICIgKyBmdW5jLm5hbWUpOwogICAgICAgICAgICAgbGV0IGFyZ3VtZW50
VHlwZXMgPSBmdW5jLnBhcmFtZXRlclR5cGVzLnNsaWNlKDAsIG51bUV4cGVjdGVkUGFyYW1ldGVy
cyAtIDEpOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChn
ZXR0ZXJGdW5jcywgW10sIGFyZ3VtZW50VHlwZXMsIG51bGwpOworICAgICAgICAgICAgbGV0IG92
ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChnZXR0ZXJGdW5jcywgYXJndW1lbnRUeXBlcywg
bnVsbCk7CiAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCiAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRGlkIG5vdCBm
aW5kIGZ1bmN0aW9uIG5hbWVkICIgKyBmdW5jLm5hbWUgKyAiIHdpdGggYXJndW1lbnRzICIgKyBh
cmd1bWVudFR5cGVzICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiAr
IG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwotICAgICAgICAgICAgbGV0IHJl
c3VsdFR5cGUgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRp
b24oCi0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3Zlcmxv
YWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3Zl
cmxvYWQuZnVuYy5yZXR1cm5UeXBlOwogICAgICAgICAgICAgaWYgKCFyZXN1bHRUeXBlLmVxdWFs
cyh2YWx1ZVR5cGUpKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMu
b3JpZ2luLm9yaWdpblN0cmluZywgIlNldHRlciBhbmQgZ2V0dGVyIG11c3QgYWdyZWUgb24gdmFs
dWUgdHlwZSAoZ2V0dGVyIGF0ICIgKyBvdmVybG9hZC5mdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcg
KyAiIHNheXMgIiArIHJlc3VsdFR5cGUgKyAiIHdoaWxlIHRoaXMgc2V0dGVyIHNheXMgIiArIHZh
bHVlVHlwZSArICIpIik7CiAgICAgICAgIH07CkBAIC0yMTEsMjMgKzE5OSw2IEBAIGNsYXNzIENo
ZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJv
dG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9k
ZS5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9IG5l
dyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXJU
eXBlIG9mIHNpZ25hdHVyZS5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgICAgICBwYXJhbWV0
ZXJUeXBlLnZpc2l0KHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAgICAgTm9kZS52aXNp
dChzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbiwgdHlwZVZhcmlhYmxl
VHJhY2tlcik7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHNpZ25hdHVy
ZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJh
Y2tlci5zZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBX
VHlwZUVycm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1l
dGVyIHRvIHByb3RvY29sIHNpZ25hdHVyZSBub3QgaW5mZXJyYWJsZSBmcm9tIHZhbHVlIHBhcmFt
ZXRlcnMiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJh
Y2tlci5zZXQuaGFzKG5vZGUudHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihzaWduYXR1cmUub3JpZ2luLm9yaWdpblN0cmluZywgIlByb3RvY29sJ3Mg
dHlwZSB2YXJpYWJsZSAoIiArIG5vZGUubmFtZSArICIpIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0
dXJlOiAiICsgc2lnbmF0dXJlKTsKLSAgICAgICAgICAgIHRoaXMuX2NoZWNrT3BlcmF0b3JPdmVy
bG9hZChzaWduYXR1cmUsIG5hbWUgPT4gbm9kZS5zaWduYXR1cmVzQnlOYW1lKG5hbWUpKTsKLSAg
ICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdEVudW1UeXBlKG5vZGUpCiAgICAgewogICAg
ICAgICBub2RlLmJhc2VUeXBlLnZpc2l0KHRoaXMpOwpAQCAtMjc4LDI5ICsyNDksMTIgQEAgY2xh
c3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRW51bSBkb2VzIG5vdCBoYXZlIGEgbWVt
YmVyIHdpdGggdGhlIHZhbHVlIHplcm8iKTsKICAgICB9CiAgICAgCi0gICAgX2NoZWNrVHlwZUFy
Z3VtZW50cyhvcmlnaW4sIHR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgbGV0IGFyZ3VtZW50SXNUeXBlID0gdHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5j
ZW9mIFR5cGU7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS52aXNp
dCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChhcmd1bWVudElzVHlwZSkgewotICAgICAgICAgICAg
ICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnRzW2ldLmluaGVyaXRzKHR5cGVQYXJhbWV0ZXJz
W2ldLnByb3RvY29sKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAg
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJUeXBlIGFyZ3VtZW50IGRvZXMgbm90IGluaGVyaXQgcHJvdG9jb2w6ICIgKyByZXN1bHQucmVh
c29uKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQu
ZXF1YWxzV2l0aENvbW1pdCh0eXBlUGFyYW1ldGVyc1tpXS50eXBlKSkKLSAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIHR5
cGUgZm9yIGNvbnN0ZXhwciIpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAg
IAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgaWYgKCFub2RlLnR5cGUp
CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlR5cGUgcmVmZXJlbmNlIHdpdGhvdXQgYSB0
eXBlIGluIGNoZWNrZXI6ICIgKyBub2RlICsgIiBhdCAiICsgbm9kZS5vcmlnaW4pOwogICAgICAg
ICBpZiAoIShub2RlLnR5cGUgaW5zdGFuY2VvZiBTdHJ1Y3RUeXBlKSkKICAgICAgICAgICAgIG5v
ZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgdGhpcy5fY2hlY2tUeXBlQXJndW1lbnRzKG5v
ZGUub3JpZ2luLCBub2RlLnR5cGUudHlwZVBhcmFtZXRlcnMsIG5vZGUudHlwZUFyZ3VtZW50cyk7
CiAgICAgfQogICAgIAogICAgIHZpc2l0QXJyYXlUeXBlKG5vZGUpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNjMTgyNmVkNTVmM2ZlNTZmN2UwZWQyYTAzZGZk
YTAyOGRhNWIzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBDb25zdGV4cHJUeXBl
UGFyYW1ldGVyIGV4dGVuZHMgVmFsdWUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwg
dHlwZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9y
aWdpbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0
eXBlOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2lu
OyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGUo
KSB7IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IGlzQ29uc3RleHByKCkgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIGdldCBpc1VuaWZpYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQg
dmFySXNMVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVu
aWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhl
ciBpbnN0YW5jZW9mIFZhbHVlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAg
ICBpZiAoIXRoaXMudHlwZS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRoaXMu
X3R5cGVWYXJpYWJsZVVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9
Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy50eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQs
IG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNv
bnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAg
IAotICAgIHZlcmlmeUFzUGFyYW1ldGVyKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICIgIiArIHRoaXMubmFtZTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxp
dGVyYWxUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJh
bFR5cGUuanMKaW5kZXggMTI5MTRkYTMxMzdmZDZiOTBmZWRhNzI1ODYyN2VmZmZmYmQ0ZTU0MS4u
ZjM2YTVkNjMxODc5MjkzYjAzODIzYjcwMWNiZTgxYTVjNzczMjUyYyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKQEAgLTMyLDcg
KzMyLDcgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICAgICAg
c3VwZXIoKTsKICAgICAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgICAg
IHRoaXMuX3ZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFR5cGUgPSBu
ZXcgVHlwZVJlZihvcmlnaW4sIGNvbmZpZy5wcmVmZXJyZWRUeXBlTmFtZSwgW10pOworICAgICAg
ICAgICAgdGhpcy5wcmVmZXJyZWRUeXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJl
ZmVycmVkVHlwZU5hbWUpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBnZXQgb3JpZ2lu
KCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9CkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIGNy
ZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0
aW9uQ29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmlj
YXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgICAgICBpZiAocmVhbFRoaXMgaW5zdGFu
Y2VvZiBUeXBlVmFyaWFibGUgfHwgcmVhbFRoaXMuaXNMaXRlcmFsKSB7CisgICAgICAgICAgICBp
ZiAocmVhbFRoaXMuaXNMaXRlcmFsKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlYWxUaGlzLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4
dCwgdGhpcy5wcmVmZXJyZWRUeXBlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7
cmVzdWx0OiB0cnVlfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0V4cHJlc3Npb25GaW5kZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHBy
ZXNzaW9uRmluZGVyLmpzCmluZGV4IDMwZTZiMDMxYTZkZDY2NTk3NDA3ZjNmNmI3ZmU3MTNlZDhm
ZGNjNGEuLjAyOTQ3ODJjMGU3OTNhYTM3OTU3M2Y1Mjg4YzZlZTllOGY5MDA2OWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwpAQCAt
MzUsOCArMzUsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnJl
dHVyblR5cGUpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBh
cmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAg
ICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQogICAgICAgICAgICAgcGFy
YW1ldGVyLnZpc2l0KHRoaXMpOwogICAgIH0KQEAgLTQ2LDExICs0NCw2IEBAIGNsYXNzIEV4cHJl
c3Npb25GaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9k
ZS50eXBlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5v
ZGUpCi0gICAgewotICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUpOwotICAgIH0KLSAg
ICAKICAgICB2aXNpdEFzc2lnbm1lbnQobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2NhbGxi
YWNrKG5vZGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxh
dHRlblByb3RvY29sRXh0ZW5kcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zs
YXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc2
MTcyZDk4ZDFlMmMwMDhlZGI1ZDgxODNmNWVlZmQ2NzhkYzhlZTkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3Ry
aWN0IjsKLQotZnVuY3Rpb24gZmxhdHRlblByb3RvY29sRXh0ZW5kcyhwcm9ncmFtKQotewotICAg
IGxldCB2aXNpdGluZyA9IG5ldyBWaXNpdGluZ1NldCgpOwotICAgIAotICAgIGZ1bmN0aW9uIGZs
YXR0ZW4ocHJvdG9jb2wpCi0gICAgewotICAgICAgICBpZiAoIXByb3RvY29sLmV4dGVuZHMubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAgICAgdmlzaXRpbmcuZG9W
aXNpdChwcm90b2NvbCwgKCkgPT4gewotICAgICAgICAgICAgZm9yIChsZXQgcGFyZW50IG9mIHBy
b3RvY29sLmV4dGVuZHMpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnQgPSBwYXJlbnQucHJvdG9j
b2xEZWNsOwotICAgICAgICAgICAgICAgIGZsYXR0ZW4ocGFyZW50KTsKLSAgICAgICAgICAgICAg
ICBmb3IgKGxldCBzaWduYXR1cmUgb2YgcGFyZW50LnNpZ25hdHVyZXMpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbGV0IG5ld1NpZ25hdHVyZSA9IHNpZ25hdHVyZS52aXNpdCgKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG5ldyBTdWJzdGl0dXRpb24oW3BhcmVudC50eXBlVmFyaWFibGVdLCBbcHJv
dG9jb2wudHlwZVZhcmlhYmxlXSkpOwotICAgICAgICAgICAgICAgICAgICBwcm90b2NvbC5hZGQo
bmV3U2lnbmF0dXJlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBwcm90b2NvbC5leHRlbmRzID0gW107Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICAKLSAg
ICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAg
ICAgZmxhdHRlbihwcm90b2NvbCk7Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Zsb2F0TGl0ZXJhbC5qcwppbmRleCBlNmM1NzM3ZGUxNmE0YTY0OGQ4NWFkY2ExNjkzNDU0
YjYxNDA3MjdlLi5kNWQxYjE1MjMwZjA5YzEwYTBiYzEyNWYwM2NmNWFkNGNlM2RkMmY3IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCkBAIC0zMCw3
ICszMCw3IEBAIGxldCBGbG9hdExpdGVyYWwgPSBjcmVhdGVMaXRlcmFsKHsKICAgICAKICAgICBu
ZWdDb25zdGV4cHIob3JpZ2luKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBJbnRMaXRlcmFs
KG9yaWdpbiwgLXRoaXMudmFsdWUpOworICAgICAgICByZXR1cm4gbmV3IEZsb2F0TGl0ZXJhbChv
cmlnaW4sIC10aGlzLnZhbHVlKTsKICAgICB9LAogICAgIAogICAgIGNyZWF0ZVR5cGUob3JpZ2lu
LCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCmluZGV4IDZmYTdjOWQx
YjZmNGI5NTgzMzU5ODFjMjcyOGJlODY1YTU2ZTczYWUuLjZmYzczMzI3NjFkNDYzYzM1YThjNDBj
MmE3NmYyZjRiMzZjMjMyMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0Z1bmMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcwpA
QCAtMjUsNyArMjUsNyBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBGdW5jIGV4dGVuZHMgTm9k
ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1l
dGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9y
aWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQog
ICAgIHsKICAgICAgICAgaWYgKCEob3JpZ2luIGluc3RhbmNlb2YgTGV4ZXJUb2tlbikpCiAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvcmlnaW46ICIgKyBvcmlnaW4pOwpAQCAtMzks
NyArMzksNiBAQCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgICAgIHRoaXMuX29yaWdp
biA9IG9yaWdpbjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAgICAgIHRoaXMuX3Jl
dHVyblR5cGUgPSByZXR1cm5UeXBlOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IHR5
cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKICAg
ICAgICAgdGhpcy5faXNDYXN0ID0gaXNDYXN0OwogICAgICAgICB0aGlzLl9zaGFkZXJUeXBlID0g
c2hhZGVyVHlwZTsKQEAgLTQ4LDggKzQ3LDYgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewog
ICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgp
IHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KICAgICBnZXQgcmV0dXJuVHlwZSgpIHsgcmV0dXJuIHRo
aXMuX3JldHVyblR5cGU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlz
Ll90eXBlUGFyYW1ldGVyczsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVyc0ZvckNhbGxSZXNvbHV0
aW9uKCkgeyByZXR1cm4gdGhpcy50eXBlUGFyYW1ldGVyczsgfQogICAgIGdldCBwYXJhbWV0ZXJz
KCkgeyByZXR1cm4gdGhpcy5fcGFyYW1ldGVyczsgfQogICAgIGdldCBwYXJhbWV0ZXJUeXBlcygp
IHsgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci50eXBl
KTsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJldHVybiB0aGlzLl9pc0Nhc3Q7IH0KQEAgLTY1LDkg
KzYyLDkgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewogICAgICAgICBpZiAodGhpcy5zaGFk
ZXJUeXBlKQogICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuc2hhZGVyVHlwZSArICIgIjsKICAg
ICAgICAgaWYgKHRoaXMuaXNDYXN0KQotICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvcjwi
ICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+ICIgKyB0aGlzLnJldHVyblR5cGU7CisgICAgICAg
ICAgICByZXN1bHQgKz0gIm9wZXJhdG9yICIgKyB0aGlzLnJldHVyblR5cGU7CiAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIgKyB0aGlzLm5h
bWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4iOworICAgICAgICAgICAgcmVzdWx0
ICs9IHRoaXMucmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZTsKICAgICAgICAgcmV0dXJuIHJl
c3VsdCArICIoIiArIHRoaXMucGFyYW1ldGVycyArICIpIjsKICAgICB9CiAgICAgCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcwppbmRleCAxMWZhMDkyZTNiMjI3OGUyMTVh
MGE2N2U5NTFlMTdkYWJhMTM2YTgzLi5jYTA1OTdmY2QyOTRkZmFiNjA0NDIxNGUwNzU0ZjdlZjk0
NGI4NzhlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVm
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKQEAgLTI1
LDkgKzI1LDkgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMg
ewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRl
cnMsIHBhcmFtZXRlcnMsIGJvZHksIGlzQ2FzdCwgc2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGJvZHksIGlzQ2FzdCwgc2hh
ZGVyVHlwZSkKICAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwg
dHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAg
IHN1cGVyKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKTsKICAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7CiAgICAgICAgIHRoaXMuaXNSZXN0
cmljdGVkID0gZmFsc2U7CiAgICAgfQpAQCAtMzYsOCArMzYsNiBAQCBjbGFzcyBGdW5jRGVmIGV4
dGVuZHMgRnVuYyB7CiAgICAgCiAgICAgcmV3cml0ZShyZXdyaXRlcikKICAgICB7Ci0gICAgICAg
IGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkNhbm5vdCByZXdyaXRlIGFuIHVuaW5zdGFudGlhdGVkIGZ1bmN0aW9uIik7CiAgICAg
ICAgIHRoaXMuX3JldHVyblR5cGUgPSB0aGlzLl9yZXR1cm5UeXBlLnZpc2l0KHJld3JpdGVyKTsK
ICAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHRoaXMuX3BhcmFtZXRlcnMubWFwKHBhcmFtZXRl
ciA9PiBwYXJhbWV0ZXIudmlzaXQocmV3cml0ZXIpKTsKICAgICAgICAgdGhpcy5fYm9keSA9IHRo
aXMuYm9keS52aXNpdChyZXdyaXRlcik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODkyODYyYTZkZDg1NjVlZTM3ZTQyMDYzMWQ3YWY3MGQ1MjI3ZTU4Ni4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgRnVuY0luc3RhbnRpYXRvciB7Ci0gICAgY29uc3RydWN0b3IocHJvZ3JhbSkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2dyYW0gPSBwcm9ncmFtOwotICAgICAgICB0aGlzLl9p
bnN0YW5jZXMgPSBuZXcgTWFwKCk7Ci0gICAgfQotICAgIAotICAgIGdldCBpbnN0YW5jZXMoKSB7
IHJldHVybiB0aGlzLl9pbnN0YW5jZXM7IH0KLSAgICAKLSAgICAvLyBSZXR1cm5zIGEgRnVuYyBv
YmplY3QgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgcGFydGljdWxhciBzeXN0ZW0gb2YgdHlw
ZSBhcmd1bWVudHMuIFlvdSBtdXN0Ci0gICAgLy8gaW50YW50aWF0ZSB0aGluZ3Mgd2l0aCBjb25j
cmV0ZSB0eXBlcywgYmVjYXVzZSB0aGlzIGNvZGUgY2FzdWFsbHkgYXNzdW1lcyB0aGlzLiBOb3Rl
IHRoYXQgdGhpcwotICAgIC8vIHdpbGwgcmV0dXJuIGEgZGlmZmVyZW50IGZ1bmMgZnJvbSBgZnVu
Y2Agbm8gbWF0dGVyIHdoYXQuIFRoaXMgZW5zdXJlcyB0aGF0IHdlIGNhbiB1c2UgdGhlCi0gICAg
Ly8gcmV0dXJuZWQgZnVuYyBmb3IgcmV3cml0ZXMgdGhhdCBpbnN0YW50aWF0ZSB0eXBlcyB3aXRo
b3V0IGRlc3Ryb3lpbmcgb3VyIGFiaWxpdHkgdG8gZG8gb3ZlcmxvYWQKLSAgICAvLyByZXNvbHV0
aW9ucyBvbiB0aGUgb3JpZ2luYWwgUHJvZ3JhbS4KLSAgICBnZXRVbmlxdWUoZnVuYywgdHlwZUFy
Z3VtZW50cykKLSAgICB7Ci0gICAgICAgIGNsYXNzIEZpbmRUeXBlVmFyaWFibGUgZXh0ZW5kcyBW
aXNpdG9yIHsKLSAgICAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXRUeXBlVmFyaWFibGUobm9k
ZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIHZh
cmlhYmxlOiAiICsgbm9kZSArICIgd2hlbiBpbnN0YW50aWF0aW5nICIgKyBmdW5jICsgIiB3aXRo
IGFyZ3VtZW50cyAiICsgdHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHR5cGVBcmd1bWVudHMpCi0gICAgICAg
ICAgICB0eXBlQXJndW1lbnQudmlzaXQobmV3IEZpbmRUeXBlVmFyaWFibGUoKSk7Ci0gICAgICAg
IAotICAgICAgICBsZXQgaW5zdGFuY2VzID0gdGhpcy5faW5zdGFuY2VzLmdldChmdW5jKTsKLSAg
ICAgICAgaWYgKCFpbnN0YW5jZXMpCi0gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZXMuc2V0KGZ1
bmMsIGluc3RhbmNlcyA9IFtdKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAobGV0IGluc3RhbmNl
IG9mIGluc3RhbmNlcykgewotICAgICAgICAgICAgbGV0IG9rID0gdHJ1ZTsKLSAgICAgICAgICAg
IGZvciAobGV0IGkgPSBpbnN0YW5jZS50eXBlQXJndW1lbnRzLmxlbmd0aDsgaS0tOykgewotICAg
ICAgICAgICAgICAgIGlmICghaW5zdGFuY2UudHlwZUFyZ3VtZW50c1tpXS5lcXVhbHModHlwZUFy
Z3VtZW50c1tpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IHJldHVybiBpbnN0YW5jZS5mdW5jOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBsZXQg
dGhpc0luc3RhbnRpYXRvciA9IHRoaXM7Ci0gICAgICAgIAotICAgICAgICBjbGFzcyBJbnN0YW50
aWF0aW9uU3Vic3RpdHV0aW9uIGV4dGVuZHMgU3Vic3RpdHV0aW9uIHsKLSAgICAgICAgICAgIHZp
c2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBs
ZXQgcmVzdWx0ID0gc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSB0byByZS1yZXNvbHZlIHRoZSBm
dW5jdGlvbiBjYWxsLCBpZiBpdCB3YXMgYSBjYWxsIHRvIGEgcHJvdG9jb2wKLSAgICAgICAgICAg
ICAgICAvLyBzaWduYXR1cmUuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5mdW5jIGluc3Rh
bmNlb2YgUHJvdG9jb2xGdW5jRGVjbCkgewotICAgICAgICAgICAgICAgICAgICBsZXQgb3Zlcmxv
YWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHJlc3VsdC5wb3NzaWJsZU92ZXJsb2FkcywgcmVzdWx0
LnR5cGVBcmd1bWVudHMsIHJlc3VsdC5hcmd1bWVudFR5cGVzLCByZXN1bHQucmV0dXJuVHlwZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IHJlc29sdmUgcHJvdG9jb2wgc2ln
bmF0dXJlIGZ1bmN0aW9uIGNhbGwgZHVyaW5nIGluc3RhbnRpYXRpb246ICIgKyByZXN1bHQuZnVu
YyArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBvdmVybG9hZC5m
YWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnJl
c29sdmVUb092ZXJsb2FkKG92ZXJsb2FkKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5mdW5jLmlzTmF0aXZlKQotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQubmF0aXZlRnVuY0luc3RhbmNlID0gdGhpc0luc3RhbnRpYXRv
ci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBsZXQgc3Vic3RpdHV0aW9uID0gbmV3
IEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24oZnVuYy50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3Vt
ZW50cyk7Ci0KLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGlvbkluc3RhbnRpYXRlSW1tZWRpYXRl
cyBleHRlbmRzIEluc3RhbnRpYXRlSW1tZWRpYXRlcyB7Ci0gICAgICAgICAgICB2aXNpdENhbGxF
eHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgLy8gV2UgbmVl
ZCB0byBwcmVzZXJ2ZSBjZXJ0YWluIHRoaW5ncyB0aGF0IHdvdWxkIGhhdmUgaW5zdGFudGlhdGVk
LCBidXQgdGhhdCB3ZSBjYW5ub3QKLSAgICAgICAgICAgICAgICAvLyBpbnN0YW50aWF0ZSB3aXRo
b3V0IGJyZWFraW5nIGNoYWluLWluc3RhbnRpYXRpb25zIChnZW5lcmljIGZ1bmN0aW9uIGNhbGxz
IGdlbmVyaWMKLSAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBzbyB0aGVyZWZvcmUgdGhlIGlu
c3RhbnRpYXRlZCBnZW5lcmljIGZ1bmN0aW9uIG11c3Qgc3RpbGwgaGF2ZSB0aGUgb3JpZ2luYWwK
LSAgICAgICAgICAgICAgICAvLyAodW5pbnN0YW50aWF0ZWQpIHR5cGVzIHRvIGluc3RhbnRpYXRl
IHRoZSBnZW5lcmljIGZ1bmN0aW9uIHRoYXQgaXQgY2FsbHMpLgotICAgICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24oCi0gICAgICAgICAgICAgICAgICAgIG5vZGUu
b3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cywKLSAgICAgICAgICAgICAgICAg
ICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5vZGUudmlzaXQoYXJndW1lbnQs
IHRoaXMpKSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5wcm9jZXNzRGVyaXZlZENh
bGxEYXRhKG5vZGUsIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBBcnJheS5mcm9tKG5vZGUuYXJndW1lbnRUeXBlcyk7Ci0g
ICAgICAgICAgICAgICAgaWYgKG5vZGUuaXNDYXN0KQotICAgICAgICAgICAgICAgICAgICByZXN1
bHQuc2V0Q2FzdERhdGEobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICByZXN1bHQu
YWN0dWFsVHlwZUFyZ3VtZW50cyA9IEFycmF5LmZyb20obm9kZS5hY3R1YWxUeXBlQXJndW1lbnRz
KTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRl
cyA9IG5ldyBJbnN0YW50aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7Ci0gICAgICAgIAot
ICAgICAgICBjbGFzcyBJbnN0YW50aWF0ZSB7Ci0gICAgICAgICAgICB2aXNpdEZ1bmNEZWYoZnVu
YykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsZXQgcmV0dXJuVHlwZSA9IGZ1bmMu
cmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAgICAgIHJldHVyblR5
cGUgPSByZXR1cm5UeXBlLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAgICAg
ICAgICAgbGV0IHBhcmFtZXRlcnMgPSBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBw
YXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICAgICAgcGFyYW1ldGVy
cyA9IHBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQoaW5zdGFudGlh
dGVJbW1lZGlhdGVzKSk7Ci0gICAgICAgICAgICAgICAgbGV0IGJvZHkgPSBmdW5jLmJvZHkudmlz
aXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgICAgICBib2R5ID0gYm9keS52aXNpdChpbnN0
YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRnVuY0RlZigK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwg
W10sIHBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LAotICAgICAgICAgICAgICAgICAgICBm
dW5jLnNoYWRlclR5cGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAg
ICB2aXNpdE5hdGl2ZUZ1bmMoZnVuYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IE5hdGl2ZUZ1bmNJbnN0YW5jZSgKLSAgICAgICAgICAgICAgICAgICAgZnVuYywK
LSAgICAgICAgICAgICAgICAgICAgZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbiku
dmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5w
YXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlvbiku
dmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKSksCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
aXNDYXN0LAotICAgICAgICAgICAgICAgICAgICBmdW5jLnNoYWRlclR5cGUsCi0gICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihzdWJzdGl0dXRpb24pKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBsZXQgcmVzdWx0aW5nRnVuYyA9IGZ1
bmMudmlzaXQobmV3IEluc3RhbnRpYXRlKCkpOwotICAgICAgICByZXN1bHRpbmdGdW5jLnVuaW5z
dGFudGlhdGVkUmV0dXJuVHlwZSA9IGZ1bmMucmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24p
OwotICAgICAgICBsZXQgaW5zdGFuY2UgPSB7ZnVuYzogcmVzdWx0aW5nRnVuYywgdHlwZUFyZ3Vt
ZW50c307Ci0gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdGluZ0Z1bmM7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzCmluZGV4IDQ0NmIzNTFkYTU3MTVjNjhhMzVk
NzY5Nzk2OWQ2OThlYzczZTc0ZjguLjYwNDkxNTM2MjUxZDA5YmNlMDNhMTRlZDY3NzUyMmEwMmQx
M2E2NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlw
ZXNGb3JDYWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlw
ZXNGb3JDYWxsLmpzCkBAIC0yNCwxOSArMjQsMTEgQEAKICAqLwogInVzZSBzdHJpY3QiOwogCi1m
dW5jdGlvbiBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlKQorZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgYXJndW1l
bnRUeXBlcywgcmV0dXJuVHlwZSkKIHsKLSAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggJiYg
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gZnVuYy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAg
ICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywg
Ildyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyB0eXBlQXJndW1lbnRz
Lmxlbmd0aCArICIsIHJlcXVpcmUgIiArIGZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoICsgIiki
KX07CiAgICAgaWYgKGFyZ3VtZW50VHlwZXMubGVuZ3RoICE9IGZ1bmMucGFyYW1ldGVycy5sZW5n
dGgpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1
cmUoZnVuYywgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgKHBhc3NlZCAiICsgYXJndW1lbnRU
eXBlcy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICsgIiki
KX07Ci0gICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQo
ZnVuYy50eXBlUGFyYW1ldGVyc0ZvckNhbGxSZXNvbHV0aW9uKTsKLSAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgbGV0IGFyZ3VtZW50
ID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAgbGV0IHBhcmFtZXRlciA9IGZ1bmMudHlwZVBh
cmFtZXRlcnNbaV07Ci0gICAgICAgIGlmICghYXJndW1lbnQudW5pZnkodW5pZmljYXRpb25Db250
ZXh0LCBwYXJhbWV0ZXIpKQotICAgICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3Zlcmxv
YWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiVHlwZSBhcmd1bWVudCAjIiArIChpICsgMSkgKyAi
IGZvciBwYXJhbWV0ZXIgIiArIHBhcmFtZXRlci5uYW1lICsgIiBkb2VzIG5vdCBtYXRjaCAocGFz
c2VkICIgKyBhcmd1bWVudCArICIsIHJlcXVpcmUgIiArIHBhcmFtZXRlciArICIpIil9OwotICAg
IH0KKyAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dCgp
OwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewog
ICAgICAgICBpZiAoIWFyZ3VtZW50VHlwZXNbaV0pCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIk51bGwgYXJndW1lbnQgdHlwZSBhdCBpID0gIiArIGkpOwpAQCAtNDgsMTYgKzQwLDYgQEAg
ZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRU
eXBlcywgcmV0dXJuVHlwZSkKICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRp
b25Db250ZXh0LnZlcmlmeSgpOwogICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkK
ICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShm
dW5jLCB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKX07Ci0gICAgbGV0IHNob3VsZEJ1aWxkVHlw
ZUFyZ3VtZW50cyA9ICF0eXBlQXJndW1lbnRzLmxlbmd0aDsKLSAgICBpZiAoc2hvdWxkQnVpbGRU
eXBlQXJndW1lbnRzKQotICAgICAgICB0eXBlQXJndW1lbnRzID0gW107Ci0gICAgZm9yIChsZXQg
dHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgIGxldCB0eXBl
QXJndW1lbnQgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAg
ICAgaWYgKHR5cGVBcmd1bWVudCA9PSB0eXBlUGFyYW1ldGVyKQotICAgICAgICAgICAgcmV0dXJu
IHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiVHlwZSBwYXJh
bWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIGRpZCBub3QgZ2V0IGFzc2lnbmVkIGEgdHlwZSIp
fTsKLSAgICAgICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5
cGVBcmd1bWVudHMucHVzaCh0eXBlQXJndW1lbnQpOwotICAgIH0KLSAgICByZXR1cm4ge2Z1bmMs
IHVuaWZpY2F0aW9uQ29udGV4dCwgdHlwZUFyZ3VtZW50c307CisgICAgcmV0dXJuIHtmdW5jLCB1
bmlmaWNhdGlvbkNvbnRleHR9OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbmxpbmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmUuanMKaW5kZXggZjAyODczYmQyNzNkOTEwYjNkZjA0ZmQyYTUxYTNjN2MwYTQ2N2NlZi4uMDkw
NzQ2OTkyNmY4YzA3ZDUzMzRiYjAzMDdkZDM1MTg1YjhlNTIzYyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0lubGluZS5qcwpAQCAtMjgsMTggKzI4LDEzIEBAIGZ1bmN0aW9uIGlubGlu
ZShwcm9ncmFtKQogewogICAgIGZvciAobGV0IGZ1bmNMaXN0IG9mIHByb2dyYW0uZnVuY3Rpb25z
LnZhbHVlcygpKSB7CiAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY0xpc3QpIHsKLSAgICAg
ICAgICAgIGlmICghZnVuYy50eXBlUGFyYW1ldGVycy5sZW5ndGgpIHsKLSAgICAgICAgICAgICAg
ICBmdW5jID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShmdW5jLCBbXSkKLSAg
ICAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5n
U2V0KGZ1bmMpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9pbmxpbmVGdW5jdGlvbihw
cm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQoZnVuYykpOwogICAgICAgICB9CiAgICAgfQog
fQogCiBmdW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgdmlzaXRpbmcpCiB7
Ci0gICAgaWYgKGZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkNhbm5vdCBpbmxpbmUgZnVuY3Rpb24gdGhhdCBoYXMgdHlwZSBwYXJhbWV0ZXJzIik7
CiAgICAgaWYgKGZ1bmMuaW5saW5lZCB8fCBmdW5jLmlzTmF0aXZlKQogICAgICAgICByZXR1cm47
CiAgICAgCkBAIC01NSwxNCArNTAsMTAgQEAgZnVuY3Rpb24gX2lubGluZUZ1bmN0aW9uKHByb2dy
YW0sIGZ1bmMsIHZpc2l0aW5nKQogICAgIGZ1bmMuaW5saW5lZCA9IHRydWU7CiB9CiAKLWZ1bmN0
aW9uIHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCitmdW5jdGlvbiByZXNvbHZl
SW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQ
b2ludCA9IGZhbHNlKQogewotICAgIGxldCBvdmVybG9hZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNv
bnRleHQucmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5
cGVzLCB1bmRlZmluZWQsIGFsbG93RW50cnlQb2ludCk7CisgICAgbGV0IG92ZXJsb2FkID0gcHJv
Z3JhbS5nbG9iYWxOYW1lQ29udGV4dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIGFyZ3VtZW50
VHlwZXMsIHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBvaW50KTsKICAgICBpZiAoIW92ZXJsb2FkLmZ1
bmMpCiAgICAgICAgIHJldHVybiBvdmVybG9hZC5mYWlsdXJlczsKLSAgICBpZiAoIW92ZXJsb2Fk
LmZ1bmMudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgIHJldHVybiBvdmVybG9hZC5mdW5jOwotICAg
IGxldCBmdW5jID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShvdmVybG9hZC5m
dW5jLCBvdmVybG9hZC50eXBlQXJndW1lbnRzKTsKLSAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3Jh
bSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KG92ZXJsb2FkLmZ1bmMpKTsKLSAgICByZXR1cm4gZnVu
YzsKKyAgICByZXR1cm4gb3ZlcmxvYWQuZnVuYzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbmxpbmVyLmpzCmluZGV4IDQ5MWVmM2UyMjFmYzA2MzE4ZWUwMzY3YTM4MTY5OWU1NzIz
YmZlNWEuLmQ5MDZmNzZkZDUzM2U2ZGU2ZTM1Y2FkZjQwYjM0MWMwMTkzNWY4NjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwpAQCAtMzgsNyArMzgsNyBAQCBjbGFz
cyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICBpZiAocmVzdWx0Lm5hdGl2ZUZ1
bmNJbnN0YW5jZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIHJldHVybiB0
aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUuZnVuYywgKCkgPT4gewotICAgICAgICAgICAgbGV0
IGZ1bmMgPSB0aGlzLl9wcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5m
dW5jLCByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7CisgICAgICAgICAgICBsZXQgZnVuYyA9
IHJlc3VsdC5mdW5jOwogICAgICAgICAgICAgaWYgKGZ1bmMuaXNOYXRpdmUpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIG5hdGl2ZSBmdW5jOiAiICsgZnVuYyk7
CiAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24odGhpcy5fcHJvZ3JhbSwgZnVuYywgdGhpcy5f
dmlzaXRpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5z
dGFudGlhdGVJbW1lZGlhdGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjM5
ZWQ2NjM4MTQxMzQ4YWJjMTI3Njk2YjZlZTMxZTBiMGM1OGI2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0
IjsKLQotY2xhc3MgSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgUmV3cml0ZXIgewotICAg
IHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZSA9IHN1cGVyLnZpc2l0VHlw
ZVJlZihub2RlKTsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUuaW5zdGFudGlhdGUpIHsKLSAgICAg
ICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigidHlwZSBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbnRpYXRpb246ICIgKyB0
eXBlICsgIiAoIiArIHR5cGUuY29uc3RydWN0b3IubmFtZSArICIpIik7Ci0gICAgICAgICAgICBy
ZXR1cm4gbm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS50eXBlLmluc3RhbnRp
YXRlKG5vZGUudHlwZUFyZ3VtZW50cykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwotICAgIH0K
LSAgICAKLSAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBub2RlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJp
bnNpY3MuanMKaW5kZXggOTMzZGZlMDExMzAyYjBmYmM4MzQ0OTk0YTFhNWMxZjc3YzA1MmE2Zi4u
MDkzMjgzY2NlMDMxZTFkNGUxZmY2YWE1NGJkOTA1ZWMyOTkzYzg5NyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC00OTksMzMgKzQ5OSw2IEBAIGNs
YXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRy
ZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkg
aW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5v
ZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihU
W10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChy
ZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQogCiAgICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dpenpsZU9wLmFsbFN3
aXp6bGVPcGVyYXRvcnMoKSkgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzd2l6emxlLnRv
U3RyaW5nKCksIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFt
ZUNvbnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5q
cwppbmRleCBjMzFiYzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNjZTcx
MjM0ZjVhYWNkZWYzZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xhc3Mg
TmFtZUNvbnRleHQgewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAgcmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1
cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJsb2Fk
KG5hbWUsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwog
ICAgICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtd
fTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9u
cywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBv
aW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1
bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAKICAg
ICBnZXQgY3VycmVudFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZUZpbmRlci5qcwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIxZWU5
YzdkLi40M2U0NzFhYWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2IEBA
IGNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29ya2xp
c3QucHVzaChuYW1lKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRQ
cm90b2NvbFJlZihub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAg
ICAgewogICAgICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4OTgx
MjUyMjMyNTAzYmNmYWJjMzAuLmNhZjI2N2NlNTJhMWE1MDQ2MzU2ZDgzYTAzZTAxNmM5ZWJiMzZi
YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZl
ci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMK
QEAgLTQxLDE5ICs0MSwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAgICAgdGhpcy5fbmFtZUNvbnRleHQuZG9TdGF0ZW1lbnQoc3RhdGVtZW50LCAoKSA9PiBz
dGF0ZW1lbnQudmlzaXQodGhpcykpOwogICAgIH0KICAgICAKLSAgICBfdmlzaXRUeXBlUGFyYW1l
dGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkKKyAgICBfYnVpbGROYW1lQ29udGV4dCgpCiAg
ICAgewotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFt
ZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBh
cmFtZXRlcnMpIHsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsK
LSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIG5hbWVDb250ZXh0OworICAgICAgICByZXR1cm4gbmV3IE5hbWVDb250ZXh0KHRo
aXMuX25hbWVDb250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAg
ewotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fdmlzaXRUeXBl
UGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkpOworICAgICAgICBsZXQgY2hlY2tl
ciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fYnVpbGROYW1lQ29udGV4dChub2RlKSk7CiAgICAg
ICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFy
YW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChj
aGVja2VyKTsKQEAgLTYxLDE2ICs1NiwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGxl
dCBjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzID0gdGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVyc0Fu
ZEJ1aWxkTmFtZUNvbnRleHQobm9kZSk7Ci0gICAgICAgIGxldCBjaGVja2VyV2l0aFR5cGVQYXJh
bWV0ZXJzID0gbmV3IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsKLSAg
ICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMpOwot
ICAgICAgICBsZXQgY29udGV4dFdpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVDb250ZXh0KGNvbnRl
eHRXaXRoVHlwZVBhcmFtZXRlcnMpOworICAgICAgICBsZXQgaW5uZXJDb250ZXh0ID0gdGhpcy5f
YnVpbGROYW1lQ29udGV4dCgpOworICAgICAgICBsZXQgaW5uZXJDaGVja2VyID0gbmV3IE5hbWVS
ZXNvbHZlcihpbm5lckNvbnRleHQpOworICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoaW5u
ZXJDaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVy
cykgewotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRl
cnMpOwotICAgICAgICAgICAgY29udGV4dFdpdGhQYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpOwor
ICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGlubmVyQ2hlY2tlcik7CisgICAgICAgICAgICBu
ZXdDb250ZXh0LmFkZChwYXJhbWV0ZXIpOwogICAgICAgICB9Ci0gICAgICAgIGxldCBjaGVja2Vy
V2l0aFBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRleHRXaXRoUGFyYW1ldGVycyk7
Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdChjaGVja2VyV2l0aFBhcmFtZXRlcnMpOworICAgICAg
ICBub2RlLmJvZHkudmlzaXQoaW5uZXJDaGVja2VyKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRC
bG9jayhub2RlKQpAQCAtMTE1LDQxICsxMDgsOSBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5ld1Jlc29sdmVyKTsKICAgICB9
CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGZvciAo
bGV0IHBhcmVudCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwYXJlbnQudmlzaXQodGhp
cyk7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1l
Q29udGV4dCk7Ci0gICAgICAgIG5hbWVDb250ZXh0LmFkZChub2RlLnR5cGVWYXJpYWJsZSk7Ci0g
ICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7Ci0gICAg
ICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICBz
aWduYXR1cmUudmlzaXQoY2hlY2tlcik7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xS
ZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9uYW1lQ29udGV4dC5n
ZXQoUHJvdG9jb2wsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ291bGQg
bm90IGZpbmQgcHJvdG9jb2wgbmFtZWQgIiArIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUucHJv
dG9jb2xEZWNsID0gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRnVuY0Rl
Y2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwotICAgICAgICBs
ZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVuYywgbm9kZS5uYW1lKTsKLSAgICAg
ICAgaWYgKCFmdW5jcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3Jp
Z2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGFueSBmdW5jdGlvbnMgbmFtZWQgIiArIG5v
ZGUubmFtZSk7Ci0gICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBmdW5jczsKLSAgICB9
Ci0gICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgbmFtZUNv
bnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBmb3Ig
KGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5hZGQo
dHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFt
ZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0KGNoZWNrZXIp
OwogICAgIH0KQEAgLTE1Nyw0MSArMTE4LDEzIEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRz
IFZpc2l0b3IgewogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKICAgICAgICAgbGV0
IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKLSAgICAg
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgbmFtZUNvbnRl
eHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxldCBjaGVja2VyID0g
bmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9m
IG5vZGUuZmllbGRzKQogICAgICAgICAgICAgZmllbGQudmlzaXQoY2hlY2tlcik7CiAgICAgfQog
ICAgIAotICAgIF9yZXNvbHZlVHlwZUFyZ3VtZW50cyh0eXBlQXJndW1lbnRzKQotICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAg
ICAgIGlmICh0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBlT3JWYXJpYWJsZVJlZikgewotICAg
ICAgICAgICAgICAgIGxldCB0aGluZyA9IHRoaXMuX25hbWVDb250ZXh0LmdldChBbnl0aGluZywg
dHlwZUFyZ3VtZW50Lm5hbWUpOwotICAgICAgICAgICAgICAgIGlmICghdGhpbmcpCi0gICAgICAg
ICAgICAgICAgICAgIG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiQ291bGQgbm90IGZpbmQgdHlwZSBvciB2YXJpYWJsZSBuYW1lZCAiICsgdHlwZUFyZ3Vt
ZW50Lm5hbWUpOwotICAgICAgICAgICAgICAgIGlmICh0aGluZyBpbnN0YW5jZW9mIFZhbHVlKQot
ICAgICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzW2ldID0gbmV3IFZhcmlhYmxlUmVmKHR5
cGVBcmd1bWVudC5vcmlnaW4sIHR5cGVBcmd1bWVudC5uYW1lKTsKLSAgICAgICAgICAgICAgICBl
bHNlIGlmICh0aGluZyBpbnN0YW5jZW9mIFR5cGUpCi0gICAgICAgICAgICAgICAgICAgIHR5cGVB
cmd1bWVudHNbaV0gPSBuZXcgVHlwZVJlZih0eXBlQXJndW1lbnQub3JpZ2luLCB0eXBlQXJndW1l
bnQubmFtZSwgW10pOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFyZ3VtZW50Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJU
eXBlIGFyZ3VtZW50IHJlc29sdmVkIHRvIHdyb25nIGtpbmQgb2YgdGhpbmc6ICIgKyB0aGluZy5r
aW5kKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHR5cGVB
cmd1bWVudFtpXSBpbnN0YW5jZW9mIFZhbHVlCi0gICAgICAgICAgICAgICAgJiYgIXR5cGVBcmd1
bWVudFtpXS5pc0NvbnN0ZXhwcikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cih0eXBlQXJndW1lbnRbaV0ub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVkIGNvbnN0ZXhw
ciIpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAg
IHsKLSAgICAgICAgdGhpcy5fcmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRz
KTsKLSAgICAgICAgCiAgICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOwogICAgICAgICBpZiAo
IXR5cGUpIHsKICAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwg
bm9kZS5uYW1lKTsKQEAgLTE5OSwxOCArMTMyLDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVu
ZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiQ291bGQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgbm9kZS5u
YW1lKTsKICAgICAgICAgICAgIG5vZGUudHlwZSA9IHR5cGU7CiAgICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIGlmICh0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCAhPSBub2RlLnR5cGVBcmd1
bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIChwYXNzZWQg
IiArIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCBleHBlY3RlZCAiICsgdHlwZS50eXBl
UGFyYW1ldGVycy5sZW5ndGggKyAiKSIpOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5
cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0
ZXJJc1R5cGUgPSB0eXBlLnR5cGVQYXJhbWV0ZXJzW2ldIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxl
OwotICAgICAgICAgICAgbGV0IGFyZ3VtZW50SXNUeXBlID0gbm9kZS50eXBlQXJndW1lbnRzW2ld
IGluc3RhbmNlb2YgVHlwZTsKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50c1tpXS52aXNp
dCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJJc1R5cGUgJiYgIWFyZ3VtZW50SXNU
eXBlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkV4cGVjdGVkIHR5cGUsIGJ1dCBnb3QgdmFsdWUgYXQgYXJndW1lbnQgIyIg
KyBpKTsKLSAgICAgICAgICAgIGlmICghcGFyYW1ldGVySXNUeXBlICYmIGFyZ3VtZW50SXNUeXBl
KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIkV4cGVjdGVkIHZhbHVlLCBidXQgZ290IHR5cGUgYXQgYXJndW1lbnQgIyIgKyBp
KTsKLSAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkK
QEAgLTI3OSw4ICsyMDAsNiBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCiAgICAgewotICAgICAgICB0aGlz
Ll9yZXNvbHZlVHlwZUFyZ3VtZW50cyhub2RlLnR5cGVBcmd1bWVudHMpOwotICAgICAgICAKICAg
ICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7
CiAgICAgICAgIGlmIChmdW5jcykKICAgICAgICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMg
PSBmdW5jczsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2
ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCmlu
ZGV4IGE1NTMzNTJkOWFlZTYwYmNhNjJhZDZlMTIzMjg4Yjg5MDUxODI0ODcuLmRjMGZmNzgxYjY5
MmUxODQ2Mjc4NjQ4NTBlZjY4ZGQzNWI5YThmMDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAtMjUsMTMgKzI1LDEyIEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIE5hdGl2ZUZ1bmMgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3Qs
IHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBw
YXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBzdXBlcihvcmln
aW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3Qs
IHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBh
cmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuaXNSZXN0cmljdGVk
ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb24gPSBudWxsOwogICAgICAgICB0
aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGEgPSBudWxsOwotICAgICAgICB0aGlzLmluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24gPSAoc3Vic3RpdHV0aW9uKSA9PiB7fTsKICAgICAgICAgdGhpcy52aXNp
dEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZpc2l0b3IpID0+IG51
bGw7CiAgICAgICAgIHRoaXMuZGlkTGF5b3V0U3RydWN0c0luSW1wbGVtZW50YXRpb25EYXRhID0g
aW1wbGVtZW50YXRpb25EYXRhID0+IG51bGw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggYjhiMWE0NzMzMGI1ZmQ1MWZmMDIxYWYwNjU4
Njg0NGMyYWNiYThlYS4uZDgzM2Y1ZjhhYmM5YjA0NWFmY2EyNDM1YjVhYjI5MjVmNGM2OGFmMiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCkBAIC0yNSwx
NCArMjUsMTQgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5
cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpCisgICAg
Y29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQogICAgIHsKLSAgICAgICAg
aWYgKCEodHlwZVBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSkpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0eXBlUGFyYW1ldGVy
cyk7CisgICAgICAgIGlmICghKHR5cGVBcmd1bWVudHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0
eXBlQXJndW1lbnRzKTsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0g
b3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBh
cmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKKyAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9
IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2lzTnVtYmVyID0gZmFsc2U7CiAgICAgICAg
IHRoaXMuX2lzSW50ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzRmxvYXRpbmcgPSBmYWxzZTsK
QEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIAog
ICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgp
IHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVy
biB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQorICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1
cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRy
dWU7IH0KICAgICAKICAgICAvLyBXZSBsZXQgSW50cmluc2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQg
bGlrZXMuCkBAIC01NCwxOCArNTQsOSBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7
CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNQcmltaXRpdmU7IH0KICAg
ICBzZXQgaXNQcmltaXRpdmUodmFsdWUpIHsgdGhpcy5faXNQcmltaXRpdmUgPSB2YWx1ZTsgfQog
ICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBpZiAo
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyB0
byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgIGlmICghdHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5z
dGFuY2UodGhpcywgdHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotICAgIAogICAgIHRvU3RyaW5nKCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8
IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiI7CisgICAgICAgIHJldHVybiAibmF0aXZlIHR5
cGVkZWYgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzCmluZGV4IDg4MTAzMDEz
MDc3M2U3MGVhODhlMGFiNTk3OTc0Y2Y1NjFmOWQ1ZTQuLjA1MGMxMmJlODcyMTRkYTA3YTMyOWJi
ZDAyOTBjYzNlMjA3ZDhjNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05vZGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwpA
QCAtMTIzLDExICsxMjMsNCBAQCBjbGFzcyBOb2RlIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0
aGlzLnZpc2l0KG5ldyBTdWJzdGl0dXRpb24ocGFyYW1ldGVycywgYXJndW1lbnRMaXN0KSk7CiAg
ICAgfQotICAgIAotICAgIHN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKHBhcmFtZXRlcnMsIHVuaWZp
Y2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnN1YnN0aXR1dGUoCi0g
ICAgICAgICAgICBwYXJhbWV0ZXJzLAotICAgICAgICAgICAgcGFyYW1ldGVycy5tYXAodHlwZSA9
PiB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0eXBlKSkpOwotICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKaW5kZXggNmQyYjQzMTYxNTYwMWFiOWRkM2QwOTM4ZmJm
YjM4NWVlMmE0ZGFmMS4uZmJlZTFkNzFhOTRiN2ZlODM0ZjA2MTgwZTBiZDUxNzA3NjEzYTJiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKQEAgLTEyMSwxMiArMTIxLDYg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBm
dW5jdGlvbiBwYXJzZVByb3RvY29sUmVmKCkKLSAgICB7Ci0gICAgICAgIGxldCBwcm90b2NvbFRv
a2VuID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90
b2NvbFJlZihwcm90b2NvbFRva2VuLCBwcm90b2NvbFRva2VuLnRleHQpOwotICAgIH0KLSAgICAK
ICAgICBmdW5jdGlvbiBjb25zdW1lRW5kT2ZUeXBlQXJncygpCiAgICAgewogICAgICAgICBsZXQg
cmlnaHRTaGlmdCA9IHRyeUNvbnN1bWUoIj4+Iik7CkBAIC0xMzYsMzQgKzEzMCw2IEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgICAgIGNvbnN1bWUoIj4iKTsKICAgICB9CiAgICAgCi0gICAgZnVuY3Rp
b24gcGFyc2VUeXBlUGFyYW1ldGVycygpCi0gICAgewotICAgICAgICBpZiAoIXRlc3QoIjwiKSkK
LSAgICAgICAgICAgIHJldHVybiBbXTsKLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSBb
XTsKLSAgICAgICAgY29uc3VtZSgiPCIpOwotICAgICAgICB3aGlsZSAoIXRlc3QoIj4iKSkgewot
ICAgICAgICAgICAgbGV0IGNvbnN0ZXhwciA9IGxleGVyLmJhY2t0cmFja2luZ1Njb3BlKCgpID0+
IHsKLSAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICAgICAg
ICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAg
ICBhc3NlcnROZXh0KCIsIiwgIj4iLCAiPj4iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3
IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5hbWUudGV4dCwgdHlwZSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmIChjb25zdGV4cHIpCi0gICAgICAgICAgICAg
ICAgcmVzdWx0LnB1c2goY29uc3RleHByKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAg
ICAgICBsZXQgcHJvdG9jb2wgPSB0cnlDb25zdW1lKCI6IikgPyBwYXJzZVByb3RvY29sUmVmKCkg
OiBudWxsOwotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBUeXBlVmFyaWFibGUobmFt
ZSwgbmFtZS50ZXh0LCBwcm90b2NvbCkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYg
KCF0cnlDb25zdW1lKCIsIikpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAg
ICAgICAgY29uc3VtZUVuZE9mVHlwZUFyZ3MoKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9Ci0gICAgCiAgICAgZnVuY3Rpb24gcGFyc2VUZXJtKCkKICAgICB7CiAgICAgICAgIGxldCB0
b2tlbjsKQEAgLTIyMiw3ICsxODgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQg
dG9rZW47CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi0iKSkKLSAgICAgICAgICAg
IHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0
LCBbXSwgW3BhcnNlVGVybSgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNz
aW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlVGVybSgpXSk7CiAgICAg
ICAgIGxldCBsZWZ0ID0gcGFyc2VUZXJtKCk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1
bWUoIi4iKSkKICAgICAgICAgICAgIGxlZnQgPSBuZXcgRG90RXhwcmVzc2lvbih0b2tlbiwgbGVm
dCwgY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0KTsKQEAgLTI4Miw4ICsyNDgsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgICAgICBhZGRyZXNzU3BhY2UgPSB0b2tlbi50ZXh0OwogICAgICAg
ICAKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAg
ICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwotICAgICAgICBsZXQg
dHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cyk7CisgICAg
ICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0KTsKICAgICAgICAgCiAg
ICAgICAgIGZ1bmN0aW9uIGdldEFkZHJlc3NTcGFjZSgpCiAgICAgICAgIHsKQEAgLTMxOCwxMSAr
MjgzLDEwIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1l
KCJ0eXBlZGVmIik7CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIi
KS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJz
KCk7CiAgICAgICAgIGNvbnN1bWUoIj0iKTsKICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUo
KTsKICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYob3Jp
Z2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgVHlw
ZURlZihvcmlnaW4sIG5hbWUsIHR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBnZW5l
cmljUGFyc2VMZWZ0KHRleHRzLCBuZXh0UGFyc2VyLCBjb25zdHJ1Y3RvcikKQEAgLTMzOSwxMyAr
MzAzLDEyIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAg
ICAgICAgICAgICB0ZXh0cywgbmV4dFBhcnNlciwKICAgICAgICAgICAgICh0b2tlbiwgbGVmdCwg
cmlnaHQpID0+Ci0gICAgICAgICAgICAgICAgbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3Bl
cmF0b3IiICsgdG9rZW4udGV4dCwgW10sIFtsZWZ0LCByaWdodF0pKTsKKyAgICAgICAgICAgICAg
ICBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbbGVm
dCwgcmlnaHRdKSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlQ2FsbEV4cHJlc3Np
b24oKQogICAgIHsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIp
OwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAg
ICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIGxldCBhcmd1bWVudExpc3QgPSBbXTsKICAgICAg
ICAgd2hpbGUgKCF0ZXN0KCIpIikpIHsKQEAgLTM1NSw3ICszMTgsNyBAQCBmdW5jdGlvbiBwYXJz
ZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY29uc3VtZSgiKSIpOwot
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwg
dHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBD
YWxsRXhwcmVzc2lvbihuYW1lLCBuYW1lLnRleHQsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMzYzLDcgKzMyNiw2IEBAIGZ1bmN0aW9uIHBh
cnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBsZXhlci50ZXN0U2NvcGUoKCkgPT4gewogICAgICAgICAg
ICAgY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIHBhcnNlVHlwZUFyZ3Vt
ZW50cygpOwogICAgICAgICAgICAgY29uc3VtZSgiKCIpOwogICAgICAgICB9KTsKICAgICB9CkBA
IC0zODEsNyArMzQzLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAobmFtZSA9PSAib3BlcmF0
b3IiKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1l
KTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5h
bWUsIFtdLCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwg
bmFtZSwgYXJncyk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGZpbmlzaFBhcnNpbmdQb3N0
SW5jcmVtZW50KHRva2VuLCBsZWZ0KQpAQCAtNDU0LDcgKzQxNiw3IEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICAgICAgaWYgKHRlc3QoIisrIiwgIi0tIikpCiAgICAgICAgICAgICByZXR1cm4gcGFyc2VQcmVJ
bmNyZW1lbnQoKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKyIsICItIiwgIn4i
KSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRv
ciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOworICAgICAgICAg
ICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRl
eHQsIFtwYXJzZVBvc3NpYmxlUHJlZml4KCldKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29u
c3VtZSgiKiIpKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24o
dG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNv
bnN1bWUoIiYiKSkKQEAgLTQ2Myw3ICs0MjUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBv
cmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICBy
ZXR1cm4gbmV3IE1ha2VBcnJheVJlZkV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVm
aXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiEiKSkgewogICAgICAgICAg
ICAgbGV0IHJlbWFpbmRlciA9IHBhcnNlUG9zc2libGVQcmVmaXgoKTsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5v
cmlnaW4sICJib29sIiwgW10sIFtyZW1haW5kZXJdKSk7CisgICAgICAgICAgICByZXR1cm4gbmV3
IExvZ2ljYWxOb3QodG9rZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5kZXIub3JpZ2luLCAi
Ym9vbCIsIFtyZW1haW5kZXJdKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlUG9z
c2libGVTdWZmaXgoKTsKICAgICB9CkBAIC00OTMsNyArNDU1LDcgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
ICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIFsiPT0iLCAiIT0iXSwg
cGFyc2VQb3NzaWJsZVJlbGF0aW9uYWxJbmVxdWFsaXR5LAogICAgICAgICAgICAgKHRva2VuLCBs
ZWZ0LCByaWdodCkgPT4gewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4
cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09IiwgW10sIFtsZWZ0LCByaWdodF0pOworICAgICAg
ICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRv
cj09IiwgW2xlZnQsIHJpZ2h0XSk7CiAgICAgICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0g
IiE9IikKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IExvZ2ljYWxOb3QodG9rZW4s
IHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTUxOSw3ICs0ODEs
NyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1i
ZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgK
ICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAotICAgICAgICAgICAgKHRva2VuLCBsZWZ0
LCByaWdodCkgPT4gbmV3IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBuZXcg
Q2FsbEV4cHJlc3Npb24obGVmdC5vcmlnaW4sICJib29sIiwgW10sIFtsZWZ0XSksIG5ldyBDYWxs
RXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJib29sIiwgW10sIFtyaWdodF0pKSk7CisgICAgICAg
ICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4s
IHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbbGVm
dF0pLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmlnaHQub3JpZ2luLCAiYm9vbCIsIFtyaWdodF0pKSk7
CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVMb2dpY2FsQW5kKCkKQEAg
LTY1Niw3ICs2MTgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBlbHNlQm9keTsKICAgICAg
ICAgaWYgKHRyeUNvbnN1bWUoImVsc2UiKSkKICAgICAgICAgICAgIGVsc2VCb2R5ID0gcGFyc2VT
dGF0ZW1lbnQoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBD
YWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25h
bF0pLCBib2R5LCBlbHNlQm9keSk7CisgICAgICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3Jp
Z2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25k
aXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VX
aGlsZSgpCkBAIC02NjYsNyArNjI4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgY29uZGl0
aW9uYWwgPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAgICAgY29uc3VtZSgiKSIpOwogICAgICAg
ICBsZXQgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2hpbGVM
b29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wi
LCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHkpOworICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9v
cChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwg
W2NvbmRpdGlvbmFsXSksIGJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlRm9yKCkK
QEAgLTY4Nyw3ICs2NDksNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGVsc2UgewogICAgICAgICAg
ICAgY29uZGl0aW9uID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7
Iik7Ci0gICAgICAgICAgICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9u
Lm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbl0pOworICAgICAgICAgICAgY29uZGl0aW9u
ID0gbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbi5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlv
bl0pOwogICAgICAgICB9CiAgICAgICAgIGxldCBpbmNyZW1lbnQ7CiAgICAgICAgIGlmICh0cnlD
b25zdW1lKCIpIikpCkBAIC03MDgsNyArNjcwLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBjb25z
dW1lKCIoIik7CiAgICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwog
ICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3Jp
Z2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIs
IFtdLCBbY29uZGl0aW9uYWxdKSk7CisgICAgICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3Jp
Z2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIs
IFtjb25kaXRpb25hbF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJs
ZURlY2xzKCkKQEAgLTg1OCwxMyArODIwLDExIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9y
aWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9y
aWdpbjsKICAgICAgICAgbGV0IHJldHVyblR5cGU7CiAgICAgICAgIGxldCBuYW1lOwotICAgICAg
ICBsZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIGxldCBpc0Nhc3Q7CiAgICAgICAgIGxldCBz
aGFkZXJUeXBlOwogICAgICAgICBsZXQgb3BlcmF0b3JUb2tlbiA9IHRyeUNvbnN1bWUoIm9wZXJh
dG9yIik7CiAgICAgICAgIGlmIChvcGVyYXRvclRva2VuKSB7CiAgICAgICAgICAgICBvcmlnaW4g
PSBvcGVyYXRvclRva2VuOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQ
YXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICByZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7CiAgICAg
ICAgICAgICBuYW1lID0gIm9wZXJhdG9yIGNhc3QiOwogICAgICAgICAgICAgaXNDYXN0ID0gdHJ1
ZTsKQEAgLTg3Nyw0NCArODM3LDE3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIH0gZWxzZQog
ICAgICAgICAgICAgICAgIG9yaWdpbiA9IHJldHVyblR5cGUub3JpZ2luOwogICAgICAgICAgICAg
bmFtZSA9IHBhcnNlRnVuY05hbWUoKTsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFy
c2VUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBwYXJzZVBhcmFtZXRlcnMoKTsKLSAgICAgICAg
cmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMs
IHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRnVu
YyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlw
ZSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gcGFyc2VQcm90b2NvbEZ1bmNEZWNsKCkKLSAgICB7
Ci0gICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwotICAgICAgICByZXR1cm4gbmV3
IFByb3RvY29sRnVuY0RlY2woZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBl
LCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5j
LnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZ1bmNEZWYoKQog
ICAgIHsKICAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGxldCBi
b2R5ID0gcGFyc2VCbG9jaygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmln
aW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5j
LnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0K
LSAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sRGVjbCgpCi0gICAgewotICAgICAgICBs
ZXQgb3JpZ2luID0gY29uc3VtZSgicHJvdG9jb2wiKTsKLSAgICAgICAgbGV0IG5hbWUgPSBjb25z
dW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJv
dG9jb2xEZWNsKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsK
LSAgICAgICAgICAgIHdoaWxlICghdGVzdCgieyIpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0
LmFkZEV4dGVuZHMocGFyc2VQcm90b2NvbFJlZigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRy
eUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZSgieyIpOwotICAgICAgICB3aGlsZSAoIXRyeUNv
bnN1bWUoIn0iKSkgewotICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZVByb3RvY29sRnVuY0Rl
Y2woKSk7Ci0gICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5j
Lm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2Fz
dCwgZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGaWVs
ZCgpCkBAIC05MjksOCArODYyLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBv
cmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9y
aWdpbiA9IGNvbnN1bWUoInN0cnVjdCIpOwogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5k
KCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VU
eXBlUGFyYW1ldGVycygpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUob3Jp
Z2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3Ry
dWN0VHlwZShvcmlnaW4sIG5hbWUpOwogICAgICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAgIHdo
aWxlICghdHJ5Q29uc3VtZSgifSIpKQogICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZUZpZWxk
KCkpOwpAQCAtOTQxLDcgKzg3Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBm
dW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJl
dHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5
cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1
bmMuc2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdp
biwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nh
c3QsIGZ1bmMuc2hhZGVyVHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlTmF0
aXZlKCkKQEAgLTk0OSw5ICs4ODEsOSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmlnaW4g
PSBjb25zdW1lKCJuYXRpdmUiKTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoInR5cGVkZWYiKSkg
ewogICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAg
ICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CisgICAgICAg
ICAgICBsZXQgYXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBj
b25zdW1lKCI7Iik7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBu
YW1lLnRleHQsIHBhcmFtZXRlcnMpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBl
KG9yaWdpbiwgbmFtZS50ZXh0LCBhcmd1bWVudHMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBwYXJzZU5hdGl2ZUZ1bmMoKTsKICAgICB9CkBAIC05ODUsNyArOTE3LDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiOiIpKQogICAgICAgICAgICAgYmFzZVR5cGUgPSBw
YXJzZVR5cGUoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlw
ZVJlZihuYW1lLCAiaW50IiwgW10pOworICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJl
ZihuYW1lLCAiaW50Iik7CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBFbnVtVHlwZShuYW1lLCBuYW1lLnRleHQsIGJhc2VUeXBlKTsKICAgICAgICAgd2hp
bGUgKCF0ZXN0KCJ9IikpIHsKQEAgLTEwMTMsOCArOTQ1LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJv
Z3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAg
ICAgICAgcHJvZ3JhbS5hZGQocGFyc2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBlbHNlIGlmICh0
b2tlbi50ZXh0ID09ICJlbnVtIikKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRW51bVR5
cGUoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInByb3RvY29sIikKLSAgICAg
ICAgICAgIHByb2dyYW0uYWRkKHBhcnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKaW5kZXggYTIwNDhhOWFkM2U4M2JkMThiNzY0
NDRjYTU1NDZlNDhmZTAxMTlhMC4uZTdjM2YyMzY2MDRmOGJhMDg3YWMxZTY2ZjU4ZDY3ODYwMWM1
NzZjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00Miwx
NiArNDIsMTMgQEAgbGV0IHByZXBhcmUgPSAoKCkgPT4gewogICAgICAgICBmb2xkQ29uc3RleHBy
cyhwcm9ncmFtKTsKICAgICAgICAgbGV0IG5hbWVSZXNvbHZlciA9IGNyZWF0ZU5hbWVSZXNvbHZl
cihwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVz
b2x2ZXIpOwotICAgICAgICByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVz
b2x2ZXIpOwogICAgICAgICByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pOwotICAgICAg
ICByZXNvbHZlVHlwZURlZnNJblByb3RvY29scyhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tSZWN1
cnNpdmVUeXBlcyhwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhw
cm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAg
ICAgIHJlc29sdmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAg
ICAgIHJlc29sdmVUeXBlRGVmc0luRnVuY3Rpb25zKHByb2dyYW0pOwotICAgICAgICAKLSAgICAg
ICAgZmxhdHRlblByb3RvY29sRXh0ZW5kcyhwcm9ncmFtKTsKKwogICAgICAgICBjaGVjayhwcm9n
cmFtKTsKICAgICAgICAgY2hlY2tMaXRlcmFsVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29s
dmVQcm9wZXJ0aWVzKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dy
YW0uanMKaW5kZXggYmJjNGIyNGE2MjI3YjFjZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZj
NmY3OTNlZTZlNzNlZWNhNWE2YWE3NGE0NDBhNjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0g
ZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAg
ICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMg
PSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAg
ICAgdGhpcy5fZnVuY0luc3RhbnRpYXRvciA9IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwog
ICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAg
ICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhp
cy5fZ2xvYmFsTmFtZUNvbnRleHQucmVjb2duaXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAs
NiBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVt
ZW50cygpIHsgcmV0dXJuIHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5j
dGlvbnMoKSB7IHJldHVybiB0aGlzLl9mdW5jdGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJl
dHVybiB0aGlzLl90eXBlczsgfQotICAgIGdldCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9w
cm90b2NvbHM7IH0KLSAgICBnZXQgZnVuY0luc3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1
bmNJbnN0YW50aWF0b3I7IH0KICAgICBnZXQgZ2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0
aGlzLl9nbG9iYWxOYW1lQ29udGV4dDsgfQogICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01
Niw4ICs1Miw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFy
cmF5LnB1c2goc3RhdGVtZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFu
Y2VvZiBUeXBlKQogICAgICAgICAgICAgdGhpcy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBz
dGF0ZW1lbnQpOwotICAgICAgICBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2Nv
bCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3RvY29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRl
bWVudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVt
ZW50IGlzIG5vdCBhIGZ1bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0
aGlzLl90b3BMZXZlbFN0YXRlbWVudHMucHVzaChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzNmODQ1NjQ3N2VjYTJlOGRjZjY2Y2Y0NWMyZDQ3M2NhMDg1N2Q4OC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm90b2NvbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xh
c3MgUHJvdG9jb2wgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUp
Ci0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47
Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2lu
KCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlz
Ll9uYW1lOyB9Ci0gICAgZ2V0IGtpbmQoKSB7IHJldHVybiBQcm90b2NvbDsgfQotICAgIAotICAg
IHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfQotfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTBiY2ZjZjMzYmE3Mzk1YzU2ZDk1MmE1NzlkMDk5Mjdi
MGJlNzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcworKysgL2Rldi9udWxs
CkBAIC0xLDExOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sRGVjbCBleHRlbmRzIFByb3Rv
Y29sIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBl
cihvcmlnaW4sIG5hbWUpOwotICAgICAgICB0aGlzLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgdGhp
cy5fc2lnbmF0dXJlcyA9IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAgPSBuZXcgTWFw
KCk7Ci0gICAgICAgIHRoaXMuX3R5cGVWYXJpYWJsZSA9IG5ldyBUeXBlVmFyaWFibGUob3JpZ2lu
LCBuYW1lLCBudWxsKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkRXh0ZW5kcyhwcm90b2NvbCkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuZXh0ZW5kcy5wdXNoKHByb3RvY29sKTsKLSAgICB9Ci0gICAgCi0g
ICAgYWRkKHNpZ25hdHVyZSkKLSAgICB7Ci0gICAgICAgIGlmICghKHNpZ25hdHVyZSBpbnN0YW5j
ZW9mIFByb3RvY29sRnVuY0RlY2wpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaWdu
YXR1cmUgaXNuJ3QgYSBQcm90b2NvbEZ1bmNEZWNsIGJ1dCBhICIgKyBzaWduYXR1cmUuY29uc3Ry
dWN0b3IubmFtZSk7Ci0gICAgICAgIAotICAgICAgICBzaWduYXR1cmUucHJvdG9jb2xEZWNsID0g
dGhpczsKLSAgICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgICAg
IGxldCBvdmVybG9hZHMgPSB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KHNpZ25hdHVyZS5uYW1lKTsK
LSAgICAgICAgaWYgKCFvdmVybG9hZHMpCi0gICAgICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAu
c2V0KHNpZ25hdHVyZS5uYW1lLCBvdmVybG9hZHMgPSBbXSk7Ci0gICAgICAgIG92ZXJsb2Fkcy5w
dXNoKHNpZ25hdHVyZSk7Ci0gICAgfQotICAgIAotICAgIGdldCBzaWduYXR1cmVzKCkgeyByZXR1
cm4gdGhpcy5fc2lnbmF0dXJlczsgfQotICAgIHNpZ25hdHVyZXNCeU5hbWUobmFtZSkgeyByZXR1
cm4gdGhpcy5fc2lnbmF0dXJlTWFwLmdldChuYW1lKTsgfQotICAgIGdldCB0eXBlVmFyaWFibGUo
KSB7IHJldHVybiB0aGlzLl90eXBlVmFyaWFibGU7IH0KLSAgICAKLSAgICBzaWduYXR1cmVzQnlO
YW1lV2l0aFR5cGVWYXJpYWJsZShuYW1lLCB0eXBlVmFyaWFibGUpCi0gICAgewotICAgICAgICBs
ZXQgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy50eXBlVmFyaWFibGVdLCBb
dHlwZVZhcmlhYmxlXSk7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnNpZ25hdHVyZXNCeU5h
bWUobmFtZSk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7
Ci0gICAgICAgIHJldHVybiByZXN1bHQubWFwKHNpZ25hdHVyZSA9PiBzaWduYXR1cmUudmlzaXQo
c3Vic3RpdHV0aW9uKSk7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVyUHJvdG9jb2wp
Ci0gICAgewotICAgICAgICBpZiAoIW90aGVyUHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4g
e3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIAotICAgICAgICBpZiAob3RoZXJQcm90b2NvbCBpbnN0
YW5jZW9mIFByb3RvY29sUmVmKQotICAgICAgICAgICAgb3RoZXJQcm90b2NvbCA9IG90aGVyUHJv
dG9jb2wucHJvdG9jb2xEZWNsOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgb3RoZXJTaWdu
YXR1cmUgb2Ygb3RoZXJQcm90b2NvbC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2ln
bmF0dXJlcyA9IHRoaXMuc2lnbmF0dXJlc0J5TmFtZShvdGhlclNpZ25hdHVyZS5uYW1lKTsKLSAg
ICAgICAgICAgIGlmICghc2lnbmF0dXJlcykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3Vs
dDogZmFsc2UsIHJlYXNvbjogIlByb3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIGRvZXMgbm90IGhh
dmUgYSBmdW5jdGlvbiBuYW1lZCAiICsgb3RoZXJTaWduYXR1cmUubmFtZSArICIgKGxvb2tpbmcg
YXQgc2lnbmF0dXJlICIgKyBvdGhlclNpZ25hdHVyZSArICIpIn07Ci0gICAgICAgICAgICBsZXQg
b3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAgIHNpZ25hdHVy
ZXMsIFtdLAotICAgICAgICAgICAgICAgIG90aGVyU2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLAot
ICAgICAgICAgICAgICAgIG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29s
dXRpb24pOwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNp
Z25hdHVyZSBmb3IgIiArIG90aGVyU2lnbmF0dXJlICsgIiBpbiAiICsgdGhpcy5uYW1lICsgKG92
ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMu
am9pbigiOyAiKSArICIpIiA6ICIiKX07Ci0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1
cm5UeXBlID0KLSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3Rp
dHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlw
ZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBp
ZiAoIXN1YnN0aXR1dGVkUmV0dXJuVHlwZS5lcXVhbHMob3RoZXJTaWduYXR1cmUucmV0dXJuVHlw
ZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJSZXR1
cm4gdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICIgKyBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlICsg
IiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAg
ewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy5fdHlw
ZVZhcmlhYmxlXSwgW3R5cGVdKTsKLSAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25h
dHVyZXM7Ci0gICAgICAgIGZvciAobGV0IG9yaWdpbmFsU2lnbmF0dXJlIG9mIHNpZ25hdHVyZXMp
IHsKLSAgICAgICAgICAgIGxldCBzaWduYXR1cmUgPSBvcmlnaW5hbFNpZ25hdHVyZS52aXNpdChz
dWJzdGl0dXRpb24pOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2Fk
SW1wbChzaWduYXR1cmUucG9zc2libGVPdmVybG9hZHMsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVy
cywgc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLCBzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJs
b2FkUmVzb2x1dGlvbik7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0
Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3Jp
Z2luYWxTaWduYXR1cmUub3JpZ2luLm9yaWdpblN0cmluZyArICIpIHdpdGggdHlwZSAiICsgdHlw
ZSArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZh
aWx1cmVzLmpvaW4oIjsgIikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgCi0gICAgICAgICAg
ICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1
YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlw
ZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBp
ZiAoIXN1YnN0aXR1dGVkUmV0dXJuVHlwZS5lcXVhbHMoc2lnbmF0dXJlLnJldHVyblR5cGUpKQot
ICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiQXQgc2lnbmF0
dXJlICIgKyBvcmlnaW5hbFNpZ25hdHVyZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5v
cmlnaW4ub3JpZ2luU3RyaW5nICsgIik6IHJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiAr
IHNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZSAr
ICIgaW4gZm91bmQgZnVuY3Rpb24gIiArIG92ZXJsb2FkLmZ1bmMudG9EZWNsU3RyaW5nKCl9Owot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0g
ICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJwcm90b2NvbCAiICsgdGhpcy5u
YW1lICsgIiB7ICIgKyB0aGlzLnNpZ25hdHVyZXMuam9pbigiOyAiKSArICI7IH0iOwotICAgIH0K
LX0KLQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2Nv
bEZ1bmNEZWNsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5j
RGVjbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODliNWM5YjhlNzE2MTg2OGEx
Y2U0NWQ1ODg2NjM5MmMwMjIyNDRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNE
ZWNsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2Nv
bEZ1bmNEZWNsIGV4dGVuZHMgRnVuYyB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJl
c29sdXRpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnMuY29u
Y2F0KHRoaXMucHJvdG9jb2xEZWNsLnR5cGVWYXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBkM2MwZWEzMGQ3NDhkOGI5ZTE2MTA3YTlmODA4YzIzYjMyODY1ZTY0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbFJlZiBleHRlbmRzIFByb3RvY29sIHsKLSAgICBj
b25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5h
bWUpOwotICAgICAgICB0aGlzLnByb3RvY29sRGVjbCA9IG51bGw7Ci0gICAgfQotICAgIAotICAg
IGluaGVyaXRzKG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNs
LmluaGVyaXRzKG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmhhc0hlaXIodHlwZSk7Ci0gICAgfQot
ICAgIAotICAgIGdldCBpc1ByaW1pdGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5w
cm90b2NvbERlY2wuaXNQcmltaXRpdmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCmluZGV4IDE5MjJlOGVjMjdmYzM5ZDk1YjRhYThi
ZmE5YTU2YzkxMGY2ZTY4YjIuLjQ5ZGM4NjM3ZDRlMTQzYTliMDdkNTljZjNmYjk3NWNmODRhNjVl
MTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1l
cy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMK
QEAgLTM1LDEyICszNSw2IEBAIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwg
bmFtZVJlc29sdmVyKQogICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQodHlwZSk7CiB9
CiAKLWZ1bmN0aW9uIHJlc29sdmVOYW1lc0luUHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZl
cikKLXsKLSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMo
KSkKLSAgICAgICAgbmFtZVJlc29sdmVyLmRvU3RhdGVtZW50KHByb3RvY29sKTsKLX0KLQogZnVu
Y3Rpb24gcmVzb2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogewog
ICAgIGZvciAobGV0IGZ1bmNzIG9mIHByb2dyYW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBs
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5q
cwppbmRleCA3ZTIyMTU2ZGUxYWM1ZTJhNmM3MjRhZDM0NjlkYzkxZTc0NmYyNTY2Li5kNTRiOTRk
MzZjZGIwYjA2ODI5OTYyNmFmMDU2NWE4MmJhNzc3NWM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKQEAgLTI0LDcgKzI0
LDcgQEAKICAqLwogInVzZSBzdHJpY3QiOwogCi1mdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBs
KGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxs
b3dFbnRyeVBvaW50ID0gZmFsc2UpCitmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0
aW9ucywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2Up
CiB7CiAgICAgaWYgKCFmdW5jdGlvbnMpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBm
dW5jdGlvbnM7IHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgYnkgdGhlIGNhbGxlci4iKTsK
QEAgLTM2LDcgKzM2LDcgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMs
IHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGZh
aWx1cmVzLnB1c2gobmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIkZ1bmN0aW9u
IGlzIGEgIiArIGZ1bmMuc2hhZGVyVHlwZSArICIgc2hhZGVyLCBzbyBpdCBjYW5ub3QgYmUgY2Fs
bGVkIGZyb20gd2l0aGluIGFuIGV4aXN0aW5nIHNoYWRlci4iKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9Ci0gICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxs
KGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOworICAgICAg
ICBsZXQgb3ZlcmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlKTsKICAgICAgICAgaWYgKG92ZXJsb2FkLmZhaWx1cmUpCiAgICAgICAgICAgICBm
YWlsdXJlcy5wdXNoKG92ZXJsb2FkLmZhaWx1cmUpOwogICAgICAgICBlbHNlCkBAIC03NCw3ICs3
NCw2IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1l
bnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlCiAgICAgICAgICAgICBsZXQgcGFyYW1ldGVy
RnVuYyA9IHN1Y2Nlc3Nlc1tqXS5mdW5jOwogICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5m
ZXJUeXBlc0ZvckNhbGwoCiAgICAgICAgICAgICAgICAgcGFyYW1ldGVyRnVuYywKLSAgICAgICAg
ICAgICAgICB0eXBlQXJndW1lbnRzLmxlbmd0aCA/IGFyZ3VtZW50RnVuYy50eXBlUGFyYW1ldGVy
cyA6IFtdLAogICAgICAgICAgICAgICAgIGFyZ3VtZW50RnVuYy5wYXJhbWV0ZXJUeXBlcywKICAg
ICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlv
bik7CiAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcwppbmRleCAzYmQyYTRkNjVmNTY0
ZjcwOGIwZWY0NzU5ZTQzYjJjODhkNDhjMjM0Li5lODdiZGMzYzM0ODMxOTk1MmZmOWQ4ZjAzOTlm
MzQ4ZWE5NTBkNjBlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9S
ZXNvbHZlVHlwZURlZnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVz
b2x2ZVR5cGVEZWZzLmpzCkBAIC0zMSwxMyArMzEsNiBAQCBmdW5jdGlvbiByZXNvbHZlVHlwZURl
ZnNJblR5cGVzKHByb2dyYW0pCiAgICAgICAgIHR5cGUudmlzaXQocmVzb2x2ZXIpOwogfQogCi1m
dW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblByb3RvY29scyhwcm9ncmFtKQotewotICAgIGxldCBy
ZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsKLSAgICBmb3IgKGxldCBwcm90b2NvbCBv
ZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgcHJvdG9jb2wudmlzaXQocmVz
b2x2ZXIpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFt
KQogewogICAgIGxldCByZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKaW5kZXggZjQwZDZiODhiMjZlZWRjYmY4
MjlmMWJhYmIxMGEyMDQ1YjdhOGU4My4uNzlmYmM3OTk3YjNjYTRmYmQ4NWJiYzZkZGQ2ZThkZDVk
NGE5YzVhZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0
ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAg
LTU3LDMwICs1Nyw4IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9k
ZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0VHlwZURlZihub2RlKSB7IHJldHVybiBub2Rl
OyB9CiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNp
dENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0
UHJvdG9jb2xEZWNsKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdEVudW1UeXBlKG5v
ZGUpIHsgcmV0dXJuIG5vZGU7IH0KIAotICAgIC8vIFRoaXMgaXMgYWxtb3N0IHdyb25nLiBXZSBp
bnN0YW50aWF0ZSBGdW5jIGluIFN1YnN0aXR1dGlvbiBpbiBQcm90b2NvbERlY2wuIFRoZW4sIHdl
IGVuZCB1cAotICAgIC8vIG5vdCByZXdyaXRpbmcgdHlwZSB2YXJpYWJsZXMuIEkgdGhpbmsgdGhh
dCBqdXN0IHdvcmtzIGJlY2F1c2Ugbm90IHJld3JpdGluZyB0aGVtIHRoZXJlIGlzIE9LLgotICAg
IC8vIEV2ZXJ5d2hlcmUgZWxzZSwgaXQncyBtYW5kYXRvcnkgdGhhdCB3ZSBkb24ndCByZXdyaXRl
IHRoZXNlIGJlY2F1c2Ugd2UgYWx3YXlzIGFzc3VtZSB0aGF0Ci0gICAgLy8gdHlwZSB2YXJpYWJs
ZXMgYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIHJld3JpdGluZy4KLSAgICB2aXNpdFR5cGVWYXJp
YWJsZShub2RlKSB7IHJldHVybiBub2RlOyB9Ci0KLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wo
bm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xGdW5jRGVjbCgK
LSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnJl
dHVyblR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1h
cChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKLSAgICAgICAgICAgIG5vZGUu
cGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAg
ICAgICAgICBub2RlLmlzQ2FzdCwKLSAgICAgICAgICAgIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAg
ICAgIHJlc3VsdC5wcm90b2NvbERlY2wgPSBub2RlLnByb3RvY29sRGVjbDsKLSAgICAgICAgcmVz
dWx0LnBvc3NpYmxlT3ZlcmxvYWRzID0gbm9kZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uo
bm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKApAQCAt
MTI1LDE0ICsxMDMsOSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0pKTsKICAgICB9CiAg
ICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5v
ZGU7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlw
ZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkp
OworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFt
ZSk7CiAgICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjkwLDYgQEAgY2xhc3Mg
UmV3cml0ZXIgewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpCiAg
ICAgewotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVu
dHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1bWVudCA9
PiBhY3R1YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5hY3R1
YWxUeXBlQXJndW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1
bWVudHMpOwotICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9
IGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRz
KTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50VHlwZXM7CiAgICAg
ICAgIGlmIChhcmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMg
PSBhcmd1bWVudFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRUeXBlLnZpc2l0KHRo
aXMpKTsKQEAgLTM0Miw3ICszMDcsNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAgICAgbm9kZS5vcmln
aW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFy
Z3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmFy
Z3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsK
ICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDkz
ZjZiOWI5MzJkMjcyZDc3YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLmI2MzZlOTJjY2YwMTAxYTQ4
OTkwZGNkMGE5ZjBiZWU5ZjI2ZTIwODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbApAQCAtNDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNsb25l
UHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcgKzYwLDYgQEAgdGQg
ewogICAgIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmluZEhpZ2ha
b21iaWVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0
ZW5kcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNl
dEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3Jp
cHQ+CkBAIC03OSw3ICs3Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0Zv
ckNhbGwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
SW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+
CkBAIC0xMDksMTAgKzEwNiw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3Rv
Y29sUmVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAg
LTE0MSwxMCArMTM0LDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxl
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKaW5kZXggYjRmNTA4NTlhODdhZmI2MGU1NGIzNjBjNjA1
OWM0YWFjOGMyM2JjYS4uYTlmZGVlY2U0NzU4NjY4NjYzZWQxMDMyZjcyYjIwM2U4MjA1MmFhMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcwpAQCAt
NTMsNyArNTMsNyBAQCBmdW5jdGlvbiBnZW5lcmF0ZVNQSVJWKHNwaXJ2LCBwcm9ncmFtKQogICAg
IHR5cGVNYXAuc2V0KHByb2dyYW0uaW50cmluc2ljcy51aW50MzIsIGN1cnJlbnRJZCsrKTsKIAog
ICAgIGZvciAobGV0IGVudHJ5UG9pbnQgb2YgZmluZEVudHJ5UG9pbnRzKCkpIHsKLSAgICAgICAg
bGV0IGlubGluZWRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGVu
dHJ5UG9pbnQsIFtdKTsKKyAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBvaW50Owog
ICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3IFZpc2l0
aW5nU2V0KGVudHJ5UG9pbnQpKTsKIAogICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0gbmV3IFNQ
SVJWVHlwZUFuYWx5emVyKHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggMTk4ODcy
M2MzNTQ4MDgxYzY2N2ZhYzc4NjJmNDAyNjdmOWY4Yjg1Ny4uZGU2YzRhMTYzNjhmNzZhZWEwMjE3
Y2E3MjE3ZDUxYjYxMDAwNzM3YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMTQ1LDE0ICsxNDUsNiBAQCBib29sIG9wZXJhdG9y
fihib29sIHZhbHVlKQogICAgIHJldHVybiAhdmFsdWU7CiB9CiAKLXByb3RvY29sIEFkZGFibGUg
ewotICAgIEFkZGFibGUgb3BlcmF0b3IrKEFkZGFibGUsIEFkZGFibGUpOwotfQotCi1wcm90b2Nv
bCBFcXVhdGFibGUgewotICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7
Ci19Ci0KIHJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVCgpCiB7CiAgICAgVCBkZWZhdWx0VmFsdWU7
CkBAIC0xNjQsMTEgKzE1Niw2IEBAIHJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChUIHgpCiAgICAg
cmV0dXJuIHg7CiB9CiAKLW9wZXJhdG9yPFQ6RXF1YXRhYmxlPiBib29sKFQgeCkKLXsKLSAgICBy
ZXR1cm4geCAhPSBUKCk7Ci19Ci0KIHN0cnVjdCB2ZWMyPFQ+IHsKICAgICBUIHg7CiAgICAgVCB5
OwpAQCAtMTg2LDExICsxNzMsNiBAQCBvcGVyYXRvcjxUPiB2ZWMyPFQ+KFQgeCwgVCB5KQogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMjxU
PiBhLCB2ZWMyPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsK
LX0KLQogdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMyPFQ+KiBmb28sIHVpbnQg
aW5kZXgpCiB7CiAgICAgaWYgKGluZGV4ID09IDApCkBAIC0yMzcsMTEgKzIxOSw2IEBAIG9wZXJh
dG9yPFQ+IHZlYzM8VD4oVCB4LCB2ZWMyPFQ+IHYyKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0g
ICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwotfQotCiB0
aHJlYWQgVCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzM8VD4qIGZvbywgdWludCBpbmRleCkK
IHsKICAgICBpZiAoaW5kZXggPT0gMCkKQEAgLTMzNCwxMSArMzExLDYgQEAgb3BlcmF0b3I8VD4g
dmVjNDxUPihUIHgsIHZlYzM8VD4gdjMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBv
cGVyYXRvcj09PFQ6RXF1YXRhYmxlPih2ZWM0PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1
cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsK
LX0KLQogdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWM0PFQ+KiBmb28sIHVpbnQg
aW5kZXgpCiB7CiAgICAgaWYgKGluZGV4ID09IDApCkBAIC0zODYsNCArMzU4LDQgQEAgZnVuY3Rp
b24gaW50VG9TdHJpbmcoeCkKIAogLy8gVGhlcmUgYXJlIDQ4MSBzd2l6emxlIG9wZXJhdG9ycywg
c28gd2UgY29tcGlsZSB0aGVtIGFzIG5hdGl2ZSBmdW5jdGlvbnMKIHN0YW5kYXJkTGlicmFyeSAr
PSBTd2l6emxlT3AuYWxsU3dpenpsZU9wZXJhdG9ycygpLmpvaW4oIjtcbiIpICsgIjsiOwotY29u
c29sZS5sb2coc3RhbmRhcmRMaWJyYXJ5KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitj
b25zb2xlLmxvZyhzdGFuZGFyZExpYnJhcnkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3
ZjdmYzFhNjNiYzcxY2YzMTYuLjcxY2NjYjYwMTdhMTQwMzhhOTg2YWI1NDZkMDMyODJmMzQ4NTVj
YTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENs
b25lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9u
ZXIuanMKQEAgLTI3LDExICsyNyw5IEBACiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBS
ZXdyaXRlciB7CiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlw
ZVBhcmFtZXRlcnMgPSBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5
cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNE
ZWYoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9k
ZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAg
ICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlz
aXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAg
ICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNz
IFN0YXRlbWVudENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAg
ICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUu
dHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0
aGlzKSksCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJh
bWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVy
VHlwZSk7CiAgICAgICAgIHJlc3VsdC5pc1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsK
QEAgLTU0LDUyICs1MSwyNCBAQCBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRl
ciB7CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3
IE5hdGl2ZVR5cGUoCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5
cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhp
cykpKTsKKyAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3Vt
ZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkpOwogICAg
IH0KICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBu
ZXcgVHlwZURlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAg
ICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0
ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUoCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5u
YW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9
PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcg
U3RydWN0VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKICAgICAgICAgZm9yIChsZXQgZmll
bGQgb2Ygbm9kZS5maWVsZHMpCiAgICAgICAgICAgICByZXN1bHQuYWRkKGZpZWxkLnZpc2l0KHRo
aXMpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0
ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0
KHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7
Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAg
ICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwcm90b2NvbC52aXNpdCh0aGlzKSk7Ci0gICAgICAg
IGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICByZXN1
bHQuYWRkKHNpZ25hdHVyZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgfQotCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBuZXcgVHlwZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIE5vZGUudmlzaXQobm9k
ZS5wcm90b2NvbCwgdGhpcykpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5v
ZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sUmVmKG5vZGUub3JpZ2luLCBu
b2RlLm5hbWUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUpCiAgICAg
ewogICAgICAgICByZXR1cm4gbmV3IEJvb2xMaXRlcmFsKG5vZGUub3JpZ2luLCBub2RlLnZhbHVl
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91
dEJ1aWxkZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRC
dWlsZGVyLmpzCmluZGV4IDRmOThjNTczYTFhMzgyMzdlMTY0NTBhZTEwYjg2Y2IyZTYxZDEyMzAu
LjRmMDE5N2E4ZDA2NzY2YmNjMjg2Y2I3ZDdkZGNjMzhjYzQ1OWFhOWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwpAQCAt
MzksOCArMzksNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgewogICAgICAgICBpZiAobm9kZS5zaXplICE9IG51bGwpCiAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIGlmIChub2RlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRvIGxheW91dCBmb3IgZ2VuZXJpYyB0eXBlOiAiICsg
bm9kZSk7CiAgICAgICAgIGxldCBvbGRPZmZzZXQgPSB0aGlzLl9vZmZzZXQ7CiAgICAgICAgIHRo
aXMuX29mZnNldCA9IDA7CiAgICAgICAgIHN1cGVyLnZpc2l0U3RydWN0VHlwZShub2RlKTsKQEAg
LTc2LDEzICs3NCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICB7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0
KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIGxldCBo
YW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0gICAgICAgICAg
ICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFy
Z3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAgIGFyZ3Vt
ZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBoYW5k
bGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAg
ICAgICAgIE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwogICAgICAg
ICBOb2RlLnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKaW5kZXggZjlkOGM3ZGE0ODU4MzIxNjFl
NTVkMjJhNDM4NzYyOTkzMzdjYjkzNi4uMzk0N2ZkYmFjMDcwMDBkZTgwZmZmNjVmZDY2YzZlMDA1
OGEyN2VjMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0
VHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpz
CkBAIC0yNSwxMiArMjUsMTEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgU3RydWN0VHlwZSBl
eHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRl
cnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIo
KTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0g
bmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAg
ICAgICAgdGhpcy5fZmllbGRzID0gbmV3IE1hcCgpOwogICAgIH0KICAgICAKQEAgLTQ0LDcgKzQz
LDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlz
Ll9vcmlnaW47IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBl
UGFyYW1ldGVyczsgfQogICAgIAogICAgIGdldCBmaWVsZE5hbWVzKCkgeyByZXR1cm4gdGhpcy5f
ZmllbGRzLmtleXMoKTsgfQogICAgIGZpZWxkQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX2Zp
ZWxkcy5nZXQobmFtZSk7IH0KQEAgLTU4LDMyICs1Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0
ZW5kcyBUeXBlIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgaW5z
dGFudGlhdGUodHlwZUFyZ3VtZW50cyA9IG51bGwpCi0gICAgewotICAgICAgICBsZXQgc3Vic3Rp
dHV0aW9uID0gbnVsbDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy50eXBlUGFy
YW1ldGVyczsKLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlQXJndW1lbnRzKSB7Ci0gICAgICAg
ICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5n
dGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3Jp
Z2luU3RyaW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRvIGluc3RhbnRpYXRp
b24iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0
aXR1dGlvbih0aGlzLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXJzID0gW107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCBp
bnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZSh0aGlzLm9yaWdpbiwgdGhpcy5uYW1lLCB0
eXBlUGFyYW1ldGVycyk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7
Ci0gICAgICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZDsKLSAgICAgICAgICAgIGlmIChzdWJz
dGl0dXRpb24pCi0gICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChzdWJz
dGl0dXRpb24pOwotICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChpbnN0YW50
aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChuZXdGaWVsZCk7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAg
IHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaWYg
KHRoaXMuc2l6ZSA9PSBudWxsKQpAQCAtOTQsNiArNjYsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4
dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJu
ICJzdHJ1Y3QgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiB7
ICIgKyBBcnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CisgICAgICAg
IHJldHVybiAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIEFycmF5LmZyb20odGhpcy5m
aWVsZHMpLmpvaW4oIjsgIikgKyAiOyB9IjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCmluZGV4
IDVhZjJiZGY5M2E4MDVmYzA4YzI5ZjFlYTA1MTBjZTI5ZTI4MGE1NmYuLjE3YjYxODQ4YWI1ZDhi
YzkyYTc0NTlkZThkNjQwMzE0NDAwMTc5YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCkBAIC0zNSwzMSAr
MzUsMzEgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSkKICAgICAg
ICAgbGV0IHNoYWRlclR5cGU7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5h
dGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlw
ZVJlZih0eXBlLm9yaWdpbiwgImJvb2wiLCBbXSksIFtdLAorICAgICAgICAgICAgdHlwZS5vcmln
aW4sICJvcGVyYXRvcj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sICJib29sIiksCiAgICAg
ICAgICAgICBbCi0gICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4s
IG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSksCi0gICAgICAg
ICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVm
KHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSkKKyAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUu
bmFtZSkpLAorICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBu
dWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSkKICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+IEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5j
KTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAg
ICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IudmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0
KG5ldyBSZXdyaXRlcigpKSwgW10sCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlw
ZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSld
LAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5
cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAorICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVy
KHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSld
LAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQo
bmF0aXZlRnVuYyk7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1
bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VU
eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwgW10sCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJh
bWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5h
bWUsIFtdKSldLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlw
ZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRp
dmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9n
cmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcg
TmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5l
dyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSwgW10sCisgICAgICAgICAgICB0
eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlw
ZS5uYW1lKSwKICAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVs
bCwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSkpXSwKICAgICAgICAgICAgIGlz
Q2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gdmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwppbmRleCBmNzgxNmYyYjI1MmU5
YmE0ZGE5ZWM4NGRlZjYxMWM1NWU0YmZlM2E5Li4wYWE3NTYwZWE1M2ZlYWJjOTc3OWQyMDhiYzRh
ZGU2OWIxOWM4ODQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKQEAgLTMxLDI4ICszMSw4IEBAIGZ1
bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2YgdHlwZS5maWVsZHMp
IHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZS50eXBlUGFyYW1ldGVycy5tYXAoCi0g
ICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChu
ZXcgVHlwZVBhcmFtZXRlclJld3JpdGVyKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IAotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZUFyZ3VtZW50cygpCi0gICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1l
dGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24gc2V0dXBJbXBsZW1lbnRh
dGlvbkRhdGEobmF0aXZlRnVuYywgaW1wbGVtZW50YXRpb24pCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgbmF0aXZlRnVuYy5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uID0gc3Vic3Rp
dHV0aW9uID0+IHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1R5cGUgPSB0eXBlLmluc3Rh
bnRpYXRlKG5hdGl2ZUZ1bmMudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gewot
ICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGUgPSBzdWJzdGl0dXRpb24ubWFw
LmdldCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3Vic3Rp
dHV0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwg
c3Vic3RpdHV0ZSBmb3IgdHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGU7Ci0gICAgICAgICAgICAgICAgICAg
IH0pKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBuZXdUeXBlLCBmaWVsZE5h
bWU6IGZpZWxkLm5hbWV9OwotICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgbmF0
aXZlRnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZp
c2l0b3IpID0+IHsKICAgICAgICAgICAgICAgICAgICAgLy8gVmlzaXRpbmcgdGhlIHR5cGUgZmly
c3QgZW5zdXJlcyB0aGF0IHRoZSBzdHJ1Y3QgbGF5b3V0IGJ1aWxkZXIgZmlndXJlcyBvdXQgdGhl
IGZpZWxkJ3MKICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0LgpAQCAtODksMjMgKzY5LDIx
IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmllbGRUeXBlKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgU3Vic3RpdHV0
aW9uKHR5cGUudHlwZVBhcmFtZXRlcnMsIHR5cGVQYXJhbWV0ZXJzKSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZpZWxkLnR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlUmVmKCkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0
eXBlLCBjcmVhdGVUeXBlQXJndW1lbnRzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBUeXBl
UmVmLmluc3RhbnRpYXRlKHR5cGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAg
ICAgICAgICBsZXQgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAgICAgICBsZXQgc2hhZGVyVHlwZTsK
LSAgICAgICAgICAgIGxldCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgICAgIGxldCBuYXRpdmVG
dW5jOwogCiAgICAgICAgICAgICAvLyBUaGUgZ2V0dGVyOiBvcGVyYXRvci5maWVsZAotICAgICAg
ICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAg
ICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgICAgIGZpZWxkLm9y
aWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lLCBjcmVhdGVGaWVsZFR5cGUoKSwgdHlwZVBh
cmFtZXRlcnMsCisgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZp
ZWxkLm5hbWUsIGNyZWF0ZUZpZWxkVHlwZSgpLAogICAgICAgICAgICAgICAgIFtuZXcgRnVuY1Bh
cmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZVR5cGVSZWYoKSldLCBpc0Nhc3QsIHNo
YWRlclR5cGUpOwogICAgICAgICAgICAgc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEobmF0aXZlRnVu
YywgKFtiYXNlXSwgb2Zmc2V0LCBzdHJ1Y3RTaXplLCBmaWVsZFNpemUpID0+IHsKICAgICAgICAg
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoZmllbGRTaXplKSwgMCk7
CkBAIC0xMTUsOSArOTMsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHBy
b2dyYW0pCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgLy8gVGhlIHNldHRlcjogb3BlcmF0b3IuZmllbGQ9Ci0gICAgICAgICAg
ICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBu
YXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2lu
LCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUgKyAiPSIsIGNyZWF0ZVR5cGVSZWYoKSwgdHlwZVBh
cmFtZXRlcnMsCisgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZp
ZWxkLm5hbWUgKyAiPSIsIGNyZWF0ZVR5cGVSZWYoKSwKICAgICAgICAgICAgICAgICBbCiAgICAg
ICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3Jl
YXRlVHlwZVJlZigpKSwKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmll
bGQub3JpZ2luLCBudWxsLCBjcmVhdGVGaWVsZFR5cGUoKSkKQEAgLTEzNCwxMCArMTExLDggQEAg
ZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAg
Ly8gVGhlIGFuZGVyOiBvcGVyYXRvciYuZmllbGQKICAgICAgICAgICAgIGZ1bmN0aW9uIHNldHVw
QW5kZXIoYWRkcmVzc1NwYWNlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHR5cGVQ
YXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgICAgICBuYXRp
dmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCiAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdp
biwgIm9wZXJhdG9yJi4iICsgZmllbGQubmFtZSwgbmV3IFB0clR5cGUoZmllbGQub3JpZ2luLCBh
ZGRyZXNzU3BhY2UsIGNyZWF0ZUZpZWxkVHlwZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAg
ICAgIG5ldyBGdW5jUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxk
Lm9yaWdpbiwgbnVsbCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRl
eCBhNjQxZDMwNDY0OTNkYWJjMmQ3NDVlN2QwZWM5NmQwYmRkNDQxYmJjLi5lYjI3MmMxMzcwNWQz
N2YwNjI5ZTYwMDE1ZDFmOGQ1NjAyZDBhZGJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5odG1sCkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFt
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29u
dGludWUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhw
cmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2Ny
aXB0PgpAQCAtNTUsNyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
RmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9j
b2xFeHRlbmRzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZz
ZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAg
LTczLDcgKzcxLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxp
bmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5z
aWNzLmpzIj48L3NjcmlwdD4KQEAgLTEwMywxMCArMTAwLDYgQEAKIDxzY3JpcHQgc3JjPSJQcm9w
ZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlByb3RvY29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xG
dW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJl
YWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlY3Vy
c2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjQsNyBAQAogPHNjcmlwdCBz
cmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDJi
MDU2OTAyYTY2Y2MzMmQwNGExZWE3MjBkMjUxZTNmNzBjZjk2NDguLjc2Y2NhODc5YWIyZmFmYjEw
NTU5ZmVjZjhlODQzMzE1NzYxZTE3NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5qcwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rpb24o
KSB7CiAgICAgICAgIHJ1bnMgb3ZlciBtdWx0aXBsZSBsaW5lcyAqLwogICAgICAgICBib29sIGZv
bygpIHsgcmV0dXJuIHRydWU7IH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogCiAgICAg
Y2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYApAQCAtMjAwLDkyICsyMDAsOTIgQEAg
dGVzdHMuY29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKIAogdGVzdHMubGl0ZXJhbEJvb2wg
PSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oKSB7IHJl
dHVybiB0cnVlOyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIH0KIAogdGVzdHMuaWRlbnRpdHlC
b29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJv
b2wgeCkgeyByZXR1cm4geDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMu
aW50U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJp
bnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQg
eCwgaW50IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgLTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAtMik7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgLTUpXSksIC0zNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwg
aW50IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgMildKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
LTIpXSksIC0zKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTIpXSksIC0zKTsKIH0KIAogdGVzdHMu
dWludFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgi
dWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVp
bnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWlu
dChwcm9ncmFtLCA3KV0pLCA0Mjk0OTY3Mjk0KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50
IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBm
b28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAzKTsKIH0KIAogdGVzdHMudWludDhTaW1wbGVNYXRoID0gZnVu
Y3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1
aW50OCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4
KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWlu
dDggeCwgdWludDggeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
NyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNSks
IG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtl
VWludDgocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNSksIG1ha2VVaW50OChw
cm9ncmFtLCA3KV0pLCAyNTQpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50
OCB4LCB1aW50OCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBm
b28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJv
Z3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDIpXSksIDMpOwogfQogCiB0ZXN0cy5lcXVhbGl0eSA9IGZ1
bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50IHgsIHVp
bnQgeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludDggeCwgdWludDgg
eSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50
OChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50
OChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJv
Z3JhbSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFt
LCA3KV0pLCB0cnVlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCwgaW50
IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgsIGJvb2wgeSkgeyByZXR1cm4g
eCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubG9naWNhbE5lZ2F0
aW9uID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhi
b29sIHgpIHsgcmV0dXJuICF4OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRy
dWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwogfQogCiB0ZXN0
cy5ub3RFcXVhbGl0eSA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJi
b29sIGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBm
b28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJv
Z3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJi
b29sIGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgs
IGJvb2wgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSks
IG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0s
IGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAog
dGVzdHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTI5OCwxMyArMjk4LDEz
IEBAIHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5jdGlvbigpCiB0ZXN0cy5nZW5lcmFs
TmVnYXRpb24gPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wg
Zm9vKGludCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMuYWRkMSA9IGZ1bmN0
aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4KSB7IHJldHVy
biB4ICsgMTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
MildKSwgNDMpOwogfQogCiB0ZXN0cy5zaW1wbGVHZW5lcmljID0gZnVuY3Rpb24oKSB7CkBAIC0z
MTIsNyArMzEyLDcgQEAgdGVzdHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewogICAgICAg
ICBUIGlkPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgZm9vKGludCB4KSB7IHJl
dHVybiBpZCh4KSArIDE7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMubmFtZVJlc29sdXRpb25GYWlsdXJl
ID0gZnVuY3Rpb24oKQpAQCAtMzMxLDcgKzMzMSw3IEBAIHRlc3RzLnNpbXBsZVZhcmlhYmxlID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwog
fQogCiB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQpAQCAtMzQ0LDcgKzM0NCw3
IEBAIHRlc3RzLnNpbXBsZUFzc2lnbm1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBsZURlZmF1bHQgPSBm
dW5jdGlvbigpCkBAIC0zNTYsNyArMzU2LDcgQEAgdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAwKTsKIH0KIAogdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCkBAIC0z
NjksNyArMzY5LDcgQEAgdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAg
YCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwg
MTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBl
ZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVz
dHMuZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKQEAgLTM4Miw3ICszODIsNyBAQCB0ZXN0
cy5kZXJlZmVyZW5jZVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJu
YWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihi
dWZmZXIsIDApKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFs
dWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKICAgICBpZiAoYnVmZmVyLmdl
dCgwKSAhPSA1MikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBidWZmZXIgdG8g
Y29udGFpbiA1MiBidXQgaXQgY29udGFpbnM6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KQEAgLTM5
Niw3ICszOTYsNyBAQCB0ZXN0cy5zaW1wbGVNYWtlUHRyID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuICZ4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0cikK
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVyOiAi
ICsgcmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxz
KHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBAIC00MTgsNyArNDE4LDcgQEAgdGVzdHMudGhy
ZWFkQXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcg
RUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJl
ZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIp
LCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1
bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJy
YXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVj
a0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDMyLDcgKzQzMiw3IEBAIHRlc3Rz
LnRocmVhZEFycmF5TG9hZEludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0
IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxl
dCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7
CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFs
dWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEp
KV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQogCkBAIC00NDYsNyAr
NDQ2LDcgQEAgdGVzdHMuZGV2aWNlQXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAg
IGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAg
ICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFs
dWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEp
KV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBl
ZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJv
Z3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDAp
LCAxKSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDYz
LDEwICs0NjMsMTAgQEAgdGVzdHMudGhyZWFkQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBs
ZXQgYXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShl
eHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAg
ICAgIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSld
KTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChw
cm9ncmFtLCA2NSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6
ICIgKyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAg
IGlmIChidWZmZXIuZ2V0KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0
KDApKTsKIH0KQEAgLTQ4NCwxMCArNDg0LDEwIEBAIHRlc3RzLmRldmljZUFycmF5U3RvcmUgPSBm
dW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5l
dyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEp
KTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJy
YXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0g
NjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZl
ciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7Cisg
ICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3Jh
bSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEp
OiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC01MDUsMzIgKzUwNSwxNCBAQCB0ZXN0cy5kZXZp
Y2VBcnJheVN0b3JlSW50TGl0ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYXJyYXlSZWYgPSBU
eXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAgIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKKyAgICBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsK
ICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIgKyBidWZmZXIuZ2V0
KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlmIChidWZmZXIuZ2V0
KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KIAotdGVz
dHMuc2ltcGxlUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlBZGRhYmxl
IG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBh
ZGQ8VDpNeUFkZGFibGU+KFQgYSwgVCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
YSArIGI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGFkZCh4LCA3Myk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0NSldKSwgNDUgKyA3Myk7Ci19Ci0KIHRlc3RzLnR5cGVNaXNtYXRjaFJldHVybiA9
IGZ1bmN0aW9uKCkKIHsKICAgICBjaGVja0ZhaWwoCkBAIC02NjYsNyArNjQ4LDcgQEAgdGVzdHMu
c2ltcGxlU3RydWN0ID0gZnVuY3Rpb24oKQogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigy
KTsKICAgICBidWZmZXIuc2V0KDAsIDYyKTsKICAgICBidWZmZXIuc2V0KDEsIDI0KTsKLSAgICBs
ZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW25ldyBUeXBlZFZh
bHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CisgICAgbGV0IHJlc3VsdCA9
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUs
IG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMoc3Ry
dWN0VHlwZSkpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6ICIg
KyByZXN1bHQudHlwZSk7CiAgICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7CkBAIC02Nzcs
MzQgKzY1OSw2IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIgKyB4ICsg
IikiKTsKIH0KIAotdGVzdHMuZ2VuZXJpY1N0cnVjdEluc3RhbmNlID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAg
ICAgICAgICBUIHg7Ci0gICAgICAgICAgICBUIHk7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vPGlu
dD4gZm9vKEZvbzxpbnQ+IGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vPGludD4gcmVz
dWx0OwotICAgICAgICAgICAgcmVzdWx0LnggPSBmb28ueTsKLSAgICAgICAgICAgIHJlc3VsdC55
ID0gZm9vLng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgYCk7
Ci0gICAgbGV0IHN0cnVjdFR5cGUgPSBUeXBlUmVmLmluc3RhbnRpYXRlKHByb2dyYW0udHlwZXMu
Z2V0KCJGb28iKSwgW3Byb2dyYW0uaW50cmluc2ljcy5pbnQzMl0pOwotICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigyKTsKLSAgICBidWZmZXIuc2V0KDAsIDYyKTsKLSAgICBidWZmZXIuc2V0
KDEsIDI0KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7Ci0g
ICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7Ci0gICAgbGV0IHkgPSByZXN1bHQuZVB0ci5n
ZXQoMSk7Ci0gICAgaWYgKHggIT0gMjQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jvbmcg
cmVzdWx0IGZvciB4OiAiICsgeCArICIgKHkgPSAiICsgeSArICIpIik7Ci0gICAgaWYgKHkgIT0g
NjIpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsgeSAr
ICIgKHggKyAiICsgeCArICIpIik7Ci19Ci0KIHRlc3RzLmRvdWJsZUdlbmVyaWNDYWxsc0RvdWJs
ZUdlbmVyaWMgPSBmdW5jdGlvbigpCiB7CiAgICAgZG9QcmVwKGAKQEAgLTc0Nyw3ICs3MDEsNyBA
QCB0ZXN0cy5yZXR1cm5OdWxsID0gZnVuY3Rpb24oKQogICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKICAgICAgICAgdGhyZWFkIGludCogZm9vKCkgeyByZXR1cm4gbnVsbDsgfQogICAgIGApOwot
ICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7Cisg
ICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlm
ICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5
cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50
eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtNzY2
LDcgKzcyMCw3IEBAIHRlc3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGwgPSBmdW5jdGlvbigpCiAg
ICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBF
cnJvcik7CiB9CiAKQEAgLTc4MCw3ICs3MzQsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWRO
dWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03OTcsNyArNzUxLDcgQEAgdGVzdHMu
cGFzc051bGxUb1B0ck1vbm9tb3JwaGljID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7
CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
ciIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwg
W10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC04
NTcsNyArODExLDcgQEAgdGVzdHMucmV0dXJuTnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgdGhyZWFkIGludFtdIGZvbygpIHsgcmV0
dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzQXJyYXlSZWYpCiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGFuIGFycmF5IHJlZmVyZW5jZTog
IiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFs
cyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtODc2LDcgKzgzMCw3IEBAIHRlc3RzLmRl
cmVmZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAg
IGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApA
QCAtODkwLDcgKzg0NCw3IEBAIHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGxBcnJheVJlZiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9
PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTA0LDcgKzg1OCw3IEBAIHRlc3RzLmRlZmF1
bHRJbml0aWFsaXplZE51bGxBcnJheVJlZkludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgICAg
IH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7
CiB9CiAKQEAgLTkyMSw3ICs4NzUsNyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWNB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUp
ID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTQ0LDEzICs4OTgsMTMgQEAg
dGVzdHMucGFzc051bGxUb1B0clBvbHltb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB0ZXN0
cy5yZXR1cm5JbnRMaXRlcmFsVWludCA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcCgidWludCBmb28oKSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVyKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAgIGNo
ZWNrTnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Mik7
CiB9CiAKIHRlc3RzLnJldHVybkludExpdGVyYWxGbG9hdCA9IGZ1bmN0aW9uKCkKIHsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcCgiZmxvYXQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsKLSAgICBj
aGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5iYWRJbnRMaXRlcmFsRm9ySW50ID0gZnVuY3Rpb24o
KQpAQCAtOTg4LDcgKzk0Miw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbCA9IGZ1bmN0aW9u
KCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVy
LnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwog
fQogCiB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9uKCkKQEAgLTEw
MDUsNyArOTU5LDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHkgPSBmdW5jdGlv
bigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZl
ci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsK
IH0KIAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHlSZXZlcnNlID0gZnVuY3Rpb24o
KQpAQCAtMTAyMiw2NSArOTc2LDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHlS
ZXZlcnNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7Ci19Ci0KLXRlc3RzLm51bGxUeXBlVmFyaWFibGVVbmlm
eSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgbGVmdCA9IG5ldyBOdWxsVHlwZShleHRlcm5hbE9y
aWdpbik7Ci0gICAgbGV0IHJpZ2h0ID0gbmV3IFR5cGVWYXJpYWJsZShleHRlcm5hbE9yaWdpbiwg
IlQiLCBudWxsKTsKLSAgICBpZiAobGVmdC5lcXVhbHMocmlnaHQpKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFuZCAi
ICsgcmlnaHQpOwotICAgIGlmIChyaWdodC5lcXVhbHMobGVmdCkpCi0gICAgICAgIHRocm93IG5l
dyBFcnJvcigiU2hvdWxkIG5vdCBiZSBlcXVhbCBidXQgYXJlOiAiICsgbGVmdCArICIgYW5kICIg
KyByaWdodCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlPcmRlcihhcnJheSwgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBmdW5jdGlvbiByZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgb3JkZXIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghYXJyYXkubGVuZ3RoKQotICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjay5jYWxsKG51bGwsIG9yZGVyKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgICAgIGxldCBuZXh0QXJyYXkgPSBhcnJheS5jb25jYXQoKTsKLSAgICAgICAgICAgICAg
ICBuZXh0QXJyYXkuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgICAgIHJlY3Vyc2UobmV4dEFy
cmF5LCBjYWxsYmFjaywgb3JkZXIuY29uY2F0KFthcnJheVtpXV0pKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmVjdXJzZShhcnJheSwgY2FsbGJhY2ssIFtd
KTsKLSAgICB9Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlQYWlyKHRoaW5ncykKLSAgICB7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlu
Z3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpbmdz
Lmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGkgIT0gaikKLSAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LnB1c2goW3RoaW5nc1tpXSwgdGhpbmdzW2pdXSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAg
ZXZlcnlPcmRlcigKLSAgICAgICAgZXZlcnlQYWlyKFsibnVsbFR5cGUiLCAidmFyaWFibGVUeXBl
IiwgInB0clR5cGUiXSksCi0gICAgICAgIG9yZGVyID0+IHsKLSAgICAgICAgICAgIGxldCB0eXBl
cyA9IHt9OwotICAgICAgICAgICAgdHlwZXMubnVsbFR5cGUgPSBuZXcgTnVsbFR5cGUoZXh0ZXJu
YWxPcmlnaW4pOwotICAgICAgICAgICAgdHlwZXMudmFyaWFibGVUeXBlID0gbmV3IFR5cGVWYXJp
YWJsZShleHRlcm5hbE9yaWdpbiwgIlQiLCBudWxsKTsKLSAgICAgICAgICAgIHR5cGVzLnB0clR5
cGUgPSBuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImNvbnN0YW50IiwgbmV3IE5hdGl2ZVR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJmb29fdCIsIFtdKSk7Ci0gICAgICAgICAgICBsZXQgdW5pZmlj
YXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChbdHlwZXMudmFyaWFibGVUeXBl
XSk7Ci0gICAgICAgICAgICBmb3IgKGxldCBbbGVmdE5hbWUsIHJpZ2h0TmFtZV0gb2Ygb3JkZXIp
IHsKLSAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IHR5cGVzW2xlZnROYW1lXTsKLSAgICAgICAg
ICAgICAgICBsZXQgcmlnaHQgPSB0eXBlc1tyaWdodE5hbWVdOwotICAgICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBsZWZ0LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcmlnaHQpOwotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkluIG9yZGVyICIgKyBvcmRlciArICIgY2Fubm90IHVuaWZ5ICIgKyBsZWZ0ICsgIiB3aXRo
ICIgKyByaWdodCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXVuaWZpY2F0aW9u
Q29udGV4dC52ZXJpZnkoKS5yZXN1bHQpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJJbiBvcmRlciAiICsgb3JkZXIubWFwKHZhbHVlID0+ICIoIiArIHZhbHVlICsgIikiKSArICIg
Y2Fubm90IHZlcmlmeSIpOwotICAgICAgICB9KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRl
cm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRy
KGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQpA
QCAtMTA5MSw4ICs5ODcsOCBAQCB0ZXN0cy5kb3VibGVOb3QgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gISF4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2Up
OwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCkBAIC0xMTA3LDExNCAr
MTAwMyw2IEBAIHRlc3RzLnNpbXBsZVJlY3Vyc2lvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgKGUp
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKIH0KIAotdGVzdHMucHJvdG9jb2xNb25vU2ln
UG9seURlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBJbnRBbmQ8VD4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAg
ICAgVCBzZWNvbmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihpbnQg
Zmlyc3QsIFQgc2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VD4gcmVzdWx0
OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1bHQu
c2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IGlu
dEFuZChJbnRBbmRhYmxlLCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIGludCBmb288VDpJbnRB
bmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRB
bmQ8aW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNlY29uZCk7Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZDsKLSAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMildKSwgNTQgKyAxMik7Ci19Ci0K
LXRlc3RzLnByb3RvY29sUG9seVNpZ1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAgICAg
IGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAgIElu
dEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0
OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAg
ICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KEludEFuZGFibGUsIFQpOwotICAgICAgICB9Ci0g
ICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNlY29u
ZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZDsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAx
MildKSwgNTQgKyAxMik7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBv
bHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAg
ICAgIFQgc2Vjb25kOwotICAgICAgICAgICAgVSB0aGlyZDsKLSAgICAgICAgfQotICAgICAgICBJ
bnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhpcmQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICBy
ZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7
Ci0gICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAg
ICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQsIFUpOwotICAgICAg
ICB9Ci0gICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kLCBp
bnQgdGhpcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVzdWx0
ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1
bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChw
cm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQotdGVzdHMucHJvdG9jb2xEb3VibGVQ
b2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAg
ICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhpcmQ7
Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmlyc3Qs
IFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwgVT4g
cmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICBy
ZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29s
IEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJbnRB
bmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4o
VCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZDxpbnQsIGludD4oZmlyc3QsIHNlY29uZCwg
dGhpcmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQg
KyByZXN1bHQudGhpcmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCks
IG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5KV0pLCA1NCArIDEyICsg
MzkpOwotfQotCiB0ZXN0cy52YXJpYWJsZVNoYWRvd2luZyA9IGZ1bmN0aW9uKCkKIHsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC0xMjI5LDcgKzEwMTcsNyBAQCB0ZXN0cy52YXJpYWJs
ZVNoYWRvd2luZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGlu
dCBmb28oKQogICAgICAgICB7CkBAIC0xMjQyLDcgKzEwMzAsNyBAQCB0ZXN0cy52YXJpYWJsZVNo
YWRvd2luZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNyk7CiB9CiAKIHRlc3RzLmlmU3RhdGVtZW50ID0gZnVuY3Rpb24oKQpA
QCAtMTI1NywxMyArMTA0NSwxMyBAQCB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
OCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCAzKV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgOCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKIH0KIAogdGVz
dHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQpAQCAtMTI4MCwxMyArMTA2OCwxMyBAQCB0
ZXN0cy5pZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDYpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSks
IDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CiB9CiAKIHRlc3RzLmlmRWxzZUlmU3RhdGVtZW50
ID0gZnVuY3Rpb24oKQpAQCAtMTMwMywxMyArMTA5MSwxMyBAQCB0ZXN0cy5pZkVsc2VJZlN0YXRl
bWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgOSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA5KV0pLCA2KTsKIH0KIAogdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24o
KQpAQCAtMTMyOCwxMyArMTExNiwxMyBAQCB0ZXN0cy5pZkVsc2VJZkVsc2VTdGF0ZW1lbnQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgOSldKSwgMTApOwogfQogCiB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKQEAgLTEzODcs
MTMgKzExNzUsMTMgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOwogICAgIGNoZWNrRmFpbCgK
ICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0x
NDE5LDEzICsxMjA3LDEzIEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0p
LCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogICAgIGNoZWNrRmFpbCgK
ICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0x
NDQ5LDcgKzEyMzcsNyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCA2KTsKIH0KIAogdGVzdHMuc2ltcGxlV2hpbGUgPSBmdW5jdGlv
bigpCkBAIC0xNDYyLDM5ICsxMjUwLDcgQEAgdGVzdHMuc2ltcGxlV2hpbGUgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDE2KTsKLX0KLQotdGVzdHMucHJvdG9jb2xNb25vUG9seVNpZ0RvdWJsZVBvbHlE
ZWZFeHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgICAgICAgICBz
dHJ1Y3QgSW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0OwotICAg
ICAgICAgICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgICAgICAgICAgVSB0aGlyZDsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxU
LCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZWNv
bmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgICAgICAgICAg
SW50QW5kPFQsIGludD4gaW50QW5kPFQ+KEludEFuZGFibGUsIFQsIGludCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBp
bnQgc2Vjb25kLCBpbnQgdGhpcmQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
ICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZDxpbnQ+KGZpcnN0LCBzZWNvbmQs
IHRoaXJkKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3Vs
dC5zZWNvbmQgKyByZXN1bHQudGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
YCk7Ci0gICAgICAgICAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5
KV0pOwotICAgICAgICB9LAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ip
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwogfQogCiB0ZXN0cy5hbWJpZ3VvdXNPdmVybG9hZFNp
bXBsZSA9IGZ1bmN0aW9uKCkKQEAgLTE1MzcsNyArMTI5Myw3IEBAIHRlc3RzLmludE92ZXJsb2Fk
UmVzb2x1dGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbyhmbG9hdCkgeyByZXR1cm4g
MzsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwg
MSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBb
XSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25SZXZlcnNlT3JkZXIgPSBm
dW5jdGlvbigpCkBAIC0xNTQ4LDcgKzEzMDQsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRp
b25SZXZlcnNlT3JkZXIgPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb28oaW50KSB7IHJldHVy
biAxOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10p
LCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIs
IFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvbkdlbmVyaWMgPSBmdW5j
dGlvbigpCkBAIC0xNTU4LDcgKzEzMTQsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25H
ZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQpIHsgcmV0dXJuIDI7IH0K
ICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAx
KTsKIH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0xNTY3LDE5
ICsxMzIzLDcgQEAgdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAg
IGludCBmb288VD4oVCB4KSB7IHJldHVybiAzNDc4OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJl
dHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMuaW50TGl0ZXJh
bEdlbmVyaWNXaXRoUHJvdG9jb2xzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZVRvSW50IHsKLSAgICAgICAg
ICAgIG9wZXJhdG9yIGludChNeUNvbnZlcnRpYmxlVG9JbnQpOwotICAgICAgICB9Ci0gICAgICAg
IGludCBmb288VDpNeUNvbnZlcnRpYmxlVG9JbnQ+KFQgeCkgeyByZXR1cm4gaW50KHgpOyB9Ci0g
ICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDM0
NzgpOwogfQogCiB0ZXN0cy51aW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0xNTg4
LDE5ICsxMzMyLDcgQEAgdGVzdHMudWludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQogICAg
ICAgICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFyKCkg
eyByZXR1cm4gZm9vKDQydSk7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDM0NzgpOwotfQotCi10ZXN0cy51aW50
TGl0ZXJhbEdlbmVyaWNXaXRoUHJvdG9jb2xzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZVRvVWludCB7Ci0g
ICAgICAgICAgICBvcGVyYXRvciB1aW50KE15Q29udmVydGlibGVUb1VpbnQpOwotICAgICAgICB9
Ci0gICAgICAgIHVpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvVWludD4oVCB4KSB7IHJldHVybiB1
aW50KHgpOyB9Ci0gICAgICAgIHVpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQydSk7IH0KLSAgICBg
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBb
XSwgW10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSksIDM0NzgpOwogfQogCiB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1NwZWNpZmlj
ID0gZnVuY3Rpb24oKQpAQCAtMTYwOSw3ICsxMzQxLDcgQEAgdGVzdHMuaW50TGl0ZXJhbEdlbmVy
aWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgVCBmb288VD4oVCB4KSB7IHJldHVybiB4
OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oaW50KDQyKSk7IH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBb
XSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
ciIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5zaW1wbGVDb25zdGV4cHIgPSBmdW5jdGlvbigpCkBA
IC0xNjI0LDcgKzEzNTYsNyBAQCB0ZXN0cy5zaW1wbGVDb25zdGV4cHIgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gZm9vPDQyPihiKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDU4KV0pLCA1OCArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDU4KV0pLCA1OCArIDQyKTsK
IH0KIAogdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCkBAIC0xNjQwLDggKzEzNzIsOCBAQCB0ZXN0
cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSks
IDIwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDIwKTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpA
QCAtMTY1OCw4ICsxMzkwLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICAKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDEwKV0pLCAxOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDEwKV0pLCAxOSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAg
ICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE2OTUsNyArMTQyNyw3IEBAIHRlc3RzLmJyZWFr
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQogICAg
ICAgICAgICAgewpAQCAtMTcwNSw3ICsxNDM3LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsKICAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oKQogICAgICAgICAgICAgewpAQCAtMTcx
NCw3ICsxNDQ2LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogICAgIGNoZWNrRmFpbCgKICAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNzQz
LDcgKzE0NzUsNyBAQCB0ZXN0cy5jb250aW51ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgMTgpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNzY5LDggKzE1MDEsOCBAQCB0
ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAx
MSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCA4KTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAg
ewpAQCAtMTc4Miw3ICsxNTE0LDcgQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTc5OCw3ICsxNTMwLDcgQEAgdGVz
dHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxOSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0p
LCAxOSk7CiB9CiAKIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCkBAIC0xODE0LDkgKzE1NDYs
OSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAg
IHsKQEAgLTE4MjcsOSArMTU1OSw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50
IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg0MSw5ICsxNTczLDkgQEAgdGVzdHMuZm9yTG9v
cCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODU2LDEwICsx
NTg4LDEwIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
c3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgMTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTEpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7
CkBAIC0xODcyLDExICsxNjA0LDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0p
LCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4
KQogICAgICAgICB7CkBAIC0xODg5LDExICsxNjIxLDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBp
bnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xOTA3LDExICsxNjM5LDExIEBAIHRlc3RzLmZv
ckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
Nik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAo
YAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xOTI2LDExICsxNjU4LDEx
IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDYpXSksIDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAz
KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIGNoZWNr
RmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIHZvaWQgZm9vKGludCB4
KQpAQCAtMTk1MCwxMSArMTY4MiwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogICAg
IGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28o
aW50IHgpCkBAIC0xOTczLDExICsxNzA1LDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0p
LCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7
CiB9CiAKIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTk5Niw3ICsxNzI4
LDcgQEAgdGVzdHMuY2hhaW5Db25zdGV4cHIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gYmFyPDQyPihiKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU4KV0p
LCA1OCArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJheiIsIFttYWtlSW50KHByb2dyYW0sIDU4KV0pLCA1OCArIDQyKTsKIH0KIAogdGVzdHMuY2hh
aW5HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMjAxNSw3ICsxNzQ3LDcgQEAgdGVzdHMuY2hhaW5H
ZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcigmeCk7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzNyldKSwgMzcpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgMzcp
XSksIDM3KTsKIH0KIAogdGVzdHMuY2hhaW5TdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC0yMDM4LDcg
KzE3NzAsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBmb28oJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDY1Nyld
KSwgNDY1Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbbWFrZUludChwcm9ncmFtLCA0NjU3KV0pLCA0NjU3KTsKIH0KIAogdGVzdHMuY2hhaW5T
dHJ1Y3ROZXdseVZhbGlkID0gZnVuY3Rpb24oKQpAQCAtMjA2Myw3ICsxNzk1LDcgQEAgdGVzdHMu
Y2hhaW5TdHJ1Y3ROZXdseVZhbGlkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZm
ZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc4NDUzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1
ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3ODQ1Myk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5ib3go
bmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3ODQ1Myk7CiB9CiAKIHRlc3RzLmNoYWlu
U3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQpAQCAtMjA4OCw3ICsxODIwLDcgQEAgdGVzdHMuY2hh
aW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5l
dyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgNzkyMDEpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChu
ZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5p
bnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRy
VHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiks
IG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKIH0KIAogdGVzdHMucGFyYW1DaGFpblN0
cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIxMTMsODkgKzE4NDUsNyBAQCB0ZXN0cy5wYXJh
bUNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7Ci19Ci0KLXRlc3RzLnNp
bXBsZVByb3RvY29sRXh0ZW5kcyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGZvbyh0aHJl
YWQgRm9vKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyIDogRm9vIHsKLSAgICAg
ICAgICAgIHZvaWQgYmFyKHRocmVhZCBCYXIqKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGZ1
eno8VDpGb28+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28ocCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBidXp6PFQ6QmFyPih0aHJlYWQgVCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJhcihwKTsKLSAgICAgICAgfQot
ICAgICAgICB2b2lkIGZvbyh0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAq
cCA9ICpwICsgNzQzOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBpbnQqIHAp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA5MTsKLSAgICAgICAgfQotICAgICAg
ICBpbnQgdGhpbmd5KGludCBhKQotICAgICAgICB7Ci0gICAgICAgICAgICBidXp6KCZhKTsKLSAg
ICAgICAgICAgIHJldHVybiBhOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0aGluZ3kiLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjQyKV0pLCA2NDIgKyA3NDMgKyA5MSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRXh0ZW5kc1R3
byA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGZvbyh0aHJlYWQgRm9vKik7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJvdG9jb2wgQmFyIHsKLSAgICAgICAgICAgIHZvaWQgYmFyKHRocmVhZCBC
YXIqKTsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXogOiBGb28sIEJhciB7Ci0gICAg
ICAgICAgICB2b2lkIGJheih0aHJlYWQgQmF6Kik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBm
dXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHApOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGJhcihwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIHh1eno8VDpC
YXo+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmdXp6KHApOwotICAgICAg
ICAgICAgYnV6eihwKTsKLSAgICAgICAgICAgIGJheihwKTsKLSAgICAgICAgfQotICAgICAgICB2
b2lkIGZvbyh0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsg
NzQzOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBpbnQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgICpwID0gKnAgKyA5MTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJh
eih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgMzk7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewotICAgICAgICAg
ICAgeHV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhpbmd5IiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEgKyAzOSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CiB9CiAKIHRlc3RzLnBy
ZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtMjIwNyw3ICsxODU3LDcgQEAgdGVzdHMucHJl
Zml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCld
KSwgNjUpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAg
LTIyMTgsNyArMTg2OCw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuICsreDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOwogfQogCiB0ZXN0cy5w
b3N0Zml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCkBAIC0yMjMwLDcgKzE4ODAsNyBAQCB0ZXN0cy5w
b3N0Zml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjUpOwogfQogCiB0ZXN0cy5wb3N0Zml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigp
CkBAIC0yMjQxLDcgKzE4OTEsNyBAQCB0ZXN0cy5wb3N0Zml4UGx1c1BsdXNSZXN1bHQgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCsrOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CiB9CiAKIHRl
c3RzLnByZWZpeE1pbnVzTWludXMgPSBmdW5jdGlvbigpCkBAIC0yMjUzLDcgKzE5MDMsNyBAQCB0
ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucHJlZml4TWludXNNaW51c1Jlc3VsdCA9IGZ1
bmN0aW9uKCkKQEAgLTIyNjQsNyArMTkxNCw3IEBAIHRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1
bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gLS14OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7
CiB9CiAKIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQpAQCAtMjI3Niw3ICsx
OTI2LDcgQEAgdGVzdHMucG9zdGZpeE1pbnVzTWludXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNNaW51
c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIyODcsNyArMTkzNyw3IEBAIHRlc3RzLnBvc3RmaXhN
aW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgtLTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wbHVzRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjI5
OSw3ICsxOTQ5LDcgQEAgdGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKIH0KIAogdGVzdHMucGx1
c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMTAsNyArMTk2MCw3IEBAIHRlc3RzLnBs
dXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCArPSA0MjsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLm1pbnVzRXF1YWxzID0g
ZnVuY3Rpb24oKQpAQCAtMjMyMiw3ICsxOTcyLDcgQEAgdGVzdHMubWludXNFcXVhbHMgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0
Mik7CiB9CiAKIHRlc3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjMzMyw3
ICsxOTgzLDcgQEAgdGVzdHMubWludXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4geCAtPSA0MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDM4NSldKSwgMzg1IC0gNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7CiB9CiAK
IHRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM0NSw3ICsxOTk1LDcgQEAgdGVz
dHMudGltZXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMzg1KV0pLCAzODUgKiA0Mik7CiB9CiAKIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0g
ZnVuY3Rpb24oKQpAQCAtMjM1Niw3ICsyMDA2LDcgQEAgdGVzdHMudGltZXNFcXVhbHNSZXN1bHQg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCAqPSA0MjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1
KV0pLCAzODUgKiA0Mik7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFscyA9IGZ1bmN0aW9uKCkKQEAg
LTIzNjgsNyArMjAxOCw3IEBAIHRlc3RzLmRpdmlkZUVxdWFscyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1
KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAw
KTsKIH0KIAogdGVzdHMuZGl2aWRlRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjM3OSw3
ICsyMDI5LDcgQEAgdGVzdHMuZGl2aWRlRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHggLz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQy
KSB8IDApOwogfQogCiB0ZXN0cy50d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzOTAs
NyArMjA0MCw3IEBAIHRlc3RzLnR3b0ludExpdGVyYWxzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIDQyID09IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVl
KTsKIH0KIAogdGVzdHMudW5pZnlEaWZmZXJlbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKQEAgLTI0
NzksNyArMjEyOSw3IEBAIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0MiAqIDUg
KyA0MiAqIDQxIC8gMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKIH0KIAogdGVzdHMuYnVpbGRB
cnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCkBAIC0yNTAwLDcg
KzIxNTAsNyBAQCB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0VXNpbmdBcnJheVJlZmVyZW5jZSA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoQGFycmF5KTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8gMik7
CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtMjUy
Niw3ICsyMTc2LDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3QgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gZm9vWzBdICsgZm9vWzFdICogMzsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgNDk4ICsgMTkgKiAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkgKiAzKTsKIH0KIAogdGVzdHMub3ZlcnJp
ZGVTdWJzY3JpcHRTdHJ1Y3RBbmREb1N0b3JlcyA9IGZ1bmN0aW9uKCkKQEAgLTI1NTIsNyArMjIw
Miw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnggKyBmb28ueTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNDk4ICsgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0OTggKyAxOSk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0
U3RydWN0QW5kVXNlUG9pbnRlcnMgPSBmdW5jdGlvbigpCkBAIC0yNTgyLDcgKzIyMzIsNyBAQCB0
ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGJhcigmZm9vKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDk4
ICsgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0OTggKyAxOSk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5k
VXNlUG9pbnRlcnNJbmNvcnJlY3RseSA9IGZ1bmN0aW9uKCkKQEAgLTI2MjksNyArMjI3OSw3IEBA
IHRlc3RzLm1ha2VBcnJheVJlZkZyb21Mb2NhbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBiYXIoQHgpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ4KTsKIH0KIAogdGVz
dHMubWFrZUFycmF5UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCkBAIC0yNjQ5LDcgKzIyOTks
NyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tUG9pbnRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBiYXooJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ4KTsKIH0K
IAogdGVzdHMubWFrZUFycmF5UmVmRnJvbUFycmF5UmVmID0gZnVuY3Rpb24oKQpAQCAtMjY4Miw3
ICsyMzMyLDcgQEAgdGVzdHMuc2ltcGxlTGVuZ3RoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIChAYXJyYXkpLmxlbmd0aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc1NCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3
NTQpOwogfQogCiB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9u
KCkKQEAgLTI2OTQsNyArMjM0NCw3IEBAIHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhTdWNj
ZWVkID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDc1NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NTQpOwogfQogCiB0ZXN0cy5ub25BcnJheVJlZkFy
cmF5TGVuZ3RoRmFpbCA9IGZ1bmN0aW9uKCkKQEAgLTI3OTMsNyArMjQ0Myw3IEBAIHRlc3RzLnNp
bXBsZUdldHRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28ueTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNzgwNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc4MDQpOwogfQogCiB0ZXN0cy5zaW1wbGVTZXR0ZXIg
PSBmdW5jdGlvbigpCkBAIC0yODE4LDcgKzI0NjgsNyBAQCB0ZXN0cy5zaW1wbGVTZXR0ZXIgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLng7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDc4MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA3ODA0KTsKIH0KIAogdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9u
KCkKQEAgLTI5MDMsMzU0ICsyNTUzLDEwMyBAQCB0ZXN0cy5nZW5lcmljQWNjZXNzb3JzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby5zdW07CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTdXBlckJh
c2ljIiwgW10sIFtdKSwgMSArIDIgKyAzICsgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSwgW10pLCA5MzIpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXIi
LCBbXSwgW10pLCA1MyArIDkzMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0WkdldHRlciIsIFtdLCBbXSksIDEgKyAzKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSwg
W10pLCAxICsgMiArIDMgKiA1ICsgNCk7Ci19Ci0KLXRlc3RzLmJpdFN1YnNjcmlwdEFjY2Vzc29y
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJv
dG9jb2wgTXlCaXRtYXNrYWJsZSA6IEVxdWF0YWJsZSB7Ci0gICAgICAgICAgICBNeUJpdG1hc2th
YmxlIG9wZXJhdG9yJihNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAg
IE15Qml0bWFza2FibGUgb3BlcmF0b3J8KE15Qml0bWFza2FibGUsIE15Qml0bWFza2FibGUpOwot
ICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcn4oTXlCaXRtYXNrYWJsZSk7Ci0gICAg
ICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yPDwoTXlCaXRtYXNrYWJsZSwgdWludCk7Ci0g
ICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yPj4oTXlCaXRtYXNrYWJsZSwgdWludCk7
Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUJpdG1hc2thYmxlKGludCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgVCBtYXNrRm9yQml0SW5kZXg8VDpNeUJpdG1hc2thYmxlPih1aW50IGluZGV4KQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gVCgxKSA8PCBpbmRleDsKLSAgICAgICAgfQotICAg
ICAgICBib29sIG9wZXJhdG9yW108VDpNeUJpdG1hc2thYmxlPihUIHZhbHVlLCB1aW50IGluZGV4
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYm9vbCh2YWx1ZSAmIG1hc2tGb3JCaXRJ
bmRleDxUPihpbmRleCkpOwotICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3JbXT08VDpNeUJp
dG1hc2thYmxlPihUIHZhbHVlLCB1aW50IGluZGV4LCBib29sIGJpdCkKLSAgICAgICAgewotICAg
ICAgICAgICAgVCBtYXNrID0gbWFza0ZvckJpdEluZGV4PFQ+KGluZGV4KTsKLSAgICAgICAgICAg
IGlmIChiaXQpCi0gICAgICAgICAgICAgICAgdmFsdWUgfD0gbWFzazsKLSAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICB2YWx1ZSAmPSB+bWFzazsKLSAgICAgICAgICAgIHJldHVybiB2
YWx1ZTsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9w
ZXJhdG9yLmxlbmd0aCh1aW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RJbnRTZXRCaXQzKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1szXSA9IHRydWU7Ci0gICAgICAgICAgICBy
ZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludFNldEdldEJpdDUoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgZm9vWzVdID0gdHJ1
ZTsKLSAgICAgICAgICAgIHJldHVybiBmb29bNV07Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCB0
ZXN0SW50R2V0Qml0MSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAgICAg
ICAgICByZXR1cm4gZm9vWzFdOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0VWludFN1bUJp
dHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vID0gNDI7Ci0gICAgICAgICAgICBp
bnQgcmVzdWx0OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmxlbmd0aDsg
KytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZvb1tpXSkKLSAgICAgICAgICAgICAgICAgICAg
cmVzdWx0Kys7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgICAgIGludCB0ZXN0VWludFN3YXBCaXRzKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9v
Lmxlbmd0aCAvIDI7ICsraSkgewotICAgICAgICAgICAgICAgIGJvb2wgdG1wID0gZm9vW2ldOwot
ICAgICAgICAgICAgICAgIGZvb1tpXSA9IGZvb1tmb28ubGVuZ3RoIC0gaSAtIDFdOwotICAgICAg
ICAgICAgICAgIGZvb1tmb28ubGVuZ3RoIC0gaSAtIDFdID0gdG1wOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgICAgIHVpbnQgZjsKLSAgICAgICAgICAgIHVpbnQgZzsKLSAgICAgICAgfQotICAg
ICAgICBvcGVyYXRvciBGb28odWludCBmLCB1aW50IGcpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZiA9IGY7Ci0gICAgICAgICAgICByZXN1
bHQuZyA9IGc7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAg
IGludCBvcGVyYXRvci5oKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBp
bnQoKGZvby5mICYgMHhmZmZmKSB8ICgoZm9vLmcgJiAweGZmZmYpIDw8IDE2KSk7Ci0gICAgICAg
IH0KLSAgICAgICAgRm9vIG9wZXJhdG9yLmg9KEZvbyBmb28sIGludCB2YWx1ZSkKLSAgICAgICAg
ewotICAgICAgICAgICAgZm9vLmYgJj0gfjB4ZmZmZnU7Ci0gICAgICAgICAgICBmb28uZiB8PSB1
aW50KHZhbHVlKSAmIDB4ZmZmZjsKLSAgICAgICAgICAgIGZvby5nICY9IH4weGZmZmZ1OwotICAg
ICAgICAgICAgZm9vLmcgfD0gKHVpbnQodmFsdWUpID4+IDE2KSAmIDB4ZmZmZjsKLSAgICAgICAg
ICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RMVmFsdWVFbXVsYXRp
b24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9vOwotICAgICAgICAgICAgZm9vLmYg
PSA0MjsKLSAgICAgICAgICAgIGZvby5nID0gMzc7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9
IDA7IGkgPCBmb28uaC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBmb28uaFtpXSBePSB0
cnVlOwotICAgICAgICAgICAgcmV0dXJuIGludChmb28uZiArIGZvby5nKTsKLSAgICAgICAgfQot
ICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAgICAgRm9v
IGI7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yLmMoQmFyIGJhcikKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50KGJhci5hLmgpLCB1aW50KGJhci5iLmgpKTsK
LSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3IuYz0oQmFyIGJhciwgRm9vIGZvbykKLSAg
ICAgICAgewotICAgICAgICAgICAgYmFyLmEuaCA9IGludChmb28uZik7Ci0gICAgICAgICAgICBi
YXIuYi5oID0gaW50KGZvby5nKTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHRlc3RDcmF6eUxWYWx1ZUVtdWxhdGlvbigpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEJhciBiYXI7Ci0gICAgICAgICAgICBiYXIuYS5mID0gMTsKLSAgICAgICAgICAgIGJh
ci5hLmcgPSAyOwotICAgICAgICAgICAgYmFyLmIuZiA9IDM7Ci0gICAgICAgICAgICBiYXIuYi5n
ID0gNDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGJhci5jLmgubGVuZ3RoOyBp
ICs9IDIpCi0gICAgICAgICAgICAgICAgYmFyLmMuaFtpXSBePSB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuIGludChiYXIuYS5mICsgYmFyLmEuZyArIGJhci5iLmYgKyBiYXIuYi5nKTsKLSAgICAg
ICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEludFNldEJpdDMiLCBbXSwgW10pLCA4KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50U2V0R2V0Qml0NSIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRH
ZXRCaXQxIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFVpbnRTdW1CaXRzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0VWludFN3YXBCaXRzIiwgW10s
IFtdKSwgMTQwOTI4NjE0NCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMTMwOTkxKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RDcmF6eUxWYWx1ZUVtdWxh
dGlvbiIsIFtdLCBbXSksIDQzNjk2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RTdXBlckJhc2ljIiwgW10pLCAxICsgMiArIDMgKyA0KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyRGlkU2V0
WSIsIFtdKSwgOTMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RaU2V0dGVyIiwgW10pLCA1MyArIDkzMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WkdldHRlciIsIFtdKSwgMSArIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlv
biIsIFtdKSwgMSArIDIgKyAzICogNSArIDQpOwogfQogCiB0ZXN0cy5uZXN0ZWRTdWJzY3JpcHRM
VmFsdWVFbXVsYXRpb25TaW1wbGUgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludFs3XSBhcnJheTsK
LSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGluZGV4KQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKLSAgICAgICAg
fQotICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vIGZvbywgdWludCBpbmRleCwgaW50IHZhbHVl
KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28uYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVu
Z3RoKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXkubGVu
Z3RoOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oRm9vIGZvbykKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGZvby5s
ZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvb1tpXTsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAg
ICAgICAgICBGb29bNl0gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgoQmFyIGJhcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5s
ZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBp
bmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07Ci0g
ICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZv
byB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVl
OwotICAgICAgICAgICAgcmV0dXJuIGJhcjsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3VtKEJh
ciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAgICAg
ICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJlc3Vs
dCArPSBzdW0oYmFyW2ldKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0K
LSAgICAgICAgc3RydWN0IEJheiB7Ci0gICAgICAgICAgICBCYXJbNV0gYXJyYXk7Ci0gICAgICAg
IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW10oQmF6IGJheiwgdWludCBpbmRleCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAg
ICAgQmF6IG9wZXJhdG9yW109KEJheiBiYXosIHVpbnQgaW5kZXgsIEJhciB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgYmF6LmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAg
cmV0dXJuIGJhejsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChCYXog
YmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmF6LmFycmF5Lmxlbmd0aDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgc3VtKEJheiBiYXopCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGludCByZXN1bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXoubGVuZ3RoOyBp
LS07KQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmF6W2ldKTsKLSAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXModGhyZWFk
IEJheiogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei0+bGVu
Z3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSAoKmJheilbaV0ubGVu
Z3RoOyBqLS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gKCpiYXopW2ld
W2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtqXVtr
XSA9IGludChpICsgaiArIGspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgICBpbnQgdGVzdFNldFZhbHVlc0FuZFN1bSgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0gICAgICAg
ICAgICByZXR1cm4gc3VtKGJheik7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRWYWx1
ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6Owot
ICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBi
YXoubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSBiYXpbaV0u
bGVuZ3RoOyBqLS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gYmF6W2ld
W2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJheltpXVtqXVtrXSAq
PSBpbnQoayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10sIFtdKSwg
MTU3NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgNTU2NSk7Ci19Ci0KLXRlc3Rz
Lm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vPFQ+IHsKLSAgICAg
ICAgICAgIFRbN10gYXJyYXk7CisgICAgICAgICAgICBpbnRbN10gYXJyYXk7CiAgICAgICAgIH0K
LSAgICAgICAgVCBvcGVyYXRvcltdPFQ+KEZvbzxUPiBmb28sIHVpbnQgaW5kZXgpCisgICAgICAg
IGludCBvcGVyYXRvcltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIHJldHVybiBmb28uYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEZvbzxUPiBv
cGVyYXRvcltdPTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4LCBUIHZhbHVlKQorICAgICAgICBG
b28gb3BlcmF0b3JbXT0oRm9vIGZvbywgdWludCBpbmRleCwgaW50IHZhbHVlKQogICAgICAgICB7
CiAgICAgICAgICAgICBmb28uYXJyYXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICByZXR1
cm4gZm9vOwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEZvbzxU
PiBmb28pCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEZvbyBmb28pCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAgICAg
IHByb3RvY29sIE15QWRkYWJsZSB7Ci0gICAgICAgICAgICBNeUFkZGFibGUgb3BlcmF0b3IrKE15
QWRkYWJsZSwgTXlBZGRhYmxlKTsKLSAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJs
ZT4oRm9vPFQ+IGZvbykKKyAgICAgICAgaW50IHN1bShGb28gZm9vKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAg
ICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3Vs
dCArPSBmb29baV07CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAg
ICAgIHN0cnVjdCBCYXI8VD4gewotICAgICAgICAgICAgRm9vPFQ+WzZdIGFycmF5OworICAgICAg
ICBzdHJ1Y3QgQmFyIHsKKyAgICAgICAgICAgIEZvb1s2XSBhcnJheTsKICAgICAgICAgfQotICAg
ICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihCYXI8VD4gYmFyKQorICAgICAgICB1aW50IG9w
ZXJhdG9yLmxlbmd0aChCYXIgYmFyKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYmFy
LmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXTxUPihC
YXI8VD4gYmFyLCB1aW50IGluZGV4KQorICAgICAgICBGb28gb3BlcmF0b3JbXShCYXIgYmFyLCB1
aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5W2luZGV4
XTsKICAgICAgICAgfQotICAgICAgICBCYXI8VD4gb3BlcmF0b3JbXT08VD4oQmFyPFQ+IGJhciwg
dWludCBpbmRleCwgRm9vPFQ+IHZhbHVlKQorICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyIGJh
ciwgdWludCBpbmRleCwgRm9vIHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICBiYXIuYXJy
YXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICByZXR1cm4gYmFyOwogICAgICAgICB9Ci0g
ICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihCYXI8VD4gYmFyKQorICAgICAgICBpbnQgc3VtKEJh
ciBiYXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAgaW50
IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhci5sZW5ndGg7IGktLTsp
CiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXJbaV0pOwogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmF6PFQ+IHsKLSAgICAgICAg
ICAgIEJhcjxUPls1XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJheiB7CisgICAgICAgICAgICBC
YXJbNV0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9wZXJhdG9yW108VD4oQmF6
PFQ+IGJheiwgdWludCBpbmRleCkKKyAgICAgICAgQmFyIG9wZXJhdG9yW10oQmF6IGJheiwgdWlu
dCBpbmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheVtpbmRleF07
CiAgICAgICAgIH0KLSAgICAgICAgQmF6PFQ+IG9wZXJhdG9yW109PFQ+KEJhejxUPiBiYXosIHVp
bnQgaW5kZXgsIEJhcjxUPiB2YWx1ZSkKKyAgICAgICAgQmF6IG9wZXJhdG9yW109KEJheiBiYXos
IHVpbnQgaW5kZXgsIEJhciB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmF6LmFycmF5
W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGJhejsKICAgICAgICAgfQotICAg
ICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihCYXo8VD4gYmF6KQorICAgICAgICB1aW50IG9w
ZXJhdG9yLmxlbmd0aChCYXogYmF6KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYmF6
LmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4oQmF6
PFQ+IGJheikKKyAgICAgICAgaW50IHN1bShCYXogYmF6KQogICAgICAgICB7Ci0gICAgICAgICAg
ICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAgICAgZm9y
ICh1aW50IGkgPSBiYXoubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBz
dW0oYmF6W2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAg
ICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZUZyb21VaW50IHsKLSAgICAgICAgICAgIG9wZXJhdG9y
IE15Q29udmVydGlibGVGcm9tVWludCh1aW50KTsKLSAgICAgICAgfQotICAgICAgICBwcm90b2Nv
bCBTZXRWYWx1YWJsZSA6IE15QWRkYWJsZSwgTXlDb252ZXJ0aWJsZUZyb21VaW50IHsgfQotICAg
ICAgICB2b2lkIHNldFZhbHVlczxUOlNldFZhbHVhYmxlPih0aHJlYWQgQmF6PFQ+KiBiYXopCisg
ICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKICAgICAgICAgewogICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewogICAgICAgICAgICAgICAg
IGZvciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewogICAgICAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBUKGkgKyBqICsgayk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaW50IHRlc3RTZXRW
YWx1ZXNBbmRTdW0oKQogICAgICAgICB7Ci0gICAgICAgICAgICBCYXo8aW50PiBiYXo7CisgICAg
ICAgICAgICBCYXogYmF6OwogICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwogICAgICAgICAg
ICAgcmV0dXJuIHN1bShiYXopOwogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVz
TXV0YXRlVmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAgICAgICAgQmF6PGludD4gYmF6
OworICAgICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKICAg
ICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewogICAgICAgICAgICAg
ICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewpAQCAtMzI2MSw4ICsyNjYw
LDggQEAgdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uR2VuZXJpYyA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVl
c0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdLCBbXSks
IDU1NjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFNldFZhbHVlc0FuZFN1bSIsIFtdKSwgMTU3NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtIiwgW10p
LCA1NTY1KTsKIH0KIAogdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTMyNzMsMTAg
KzI2NzIsMTAgQEAgdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0K
IAogdGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzI4NywxMCArMjY4NiwxMCBAQCB0
ZXN0cy5ib29sQml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSB8IGI7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSks
IG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSks
IG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMuYm9vbEJpdFhv
ciA9IGZ1bmN0aW9uKCkKQEAgLTMzMDEsMTAgKzI3MDAsMTAgQEAgdGVzdHMuYm9vbEJpdFhvciA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwg
ZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dy
YW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXROb3QgPSBmdW5jdGlvbigp
CkBAIC0zMzE1LDggKzI3MTQsOCBAQCB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFs
c2UpOwogfQogCiB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMzI3LDEwICsyNzI2
LDEwIEBAIHRlc3RzLmludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBh
ICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHBy
b2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFt
LCA0MildKSwgNDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyld
KSwgLTcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSks
IG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMuaW50Qml0T3IgPSBmdW5jdGlvbigpCkBA
IC0zMzQxLDEwICsyNzQwLDEwIEBAIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
SW50KHByb2dyYW0sIC03KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJv
Z3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2
NTUzNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC0xKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRl
c3RzLmludEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTMzNTUsMTAgKzI3NTQsMTAgQEAgdGVzdHMu
aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwg
Nik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUz
NSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFt
LCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigpCkBA
IC0zMzY5LDEwICsyNzY4LDEwIEBAIHRlc3RzLmludEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
XSksIC0yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSldKSwgLTY1NTM2KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MSldKSwgLTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpXSksIC02NTUzNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAt
MSldKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCAtMSk7CiB9CiAKIHRlc3RzLmludExTaGlmdCA9
IGZ1bmN0aW9uKCkKQEAgLTMzODMsMTAgKzI3ODIsMTAgQEAgdGVzdHMuaW50TFNoaWZ0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0zMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIC0zMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwg
MCk7CiB9CiAKIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKQEAgLTMzOTcsMTAgKzI3OTYs
MTAgQEAgdGVzdHMuaW50UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEg
Pj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIC0xKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50Qml0QW5kID0gZnVuY3Rpb24o
KQpAQCAtMzQxMSwxMCArMjgxMCwxMCBAQCB0ZXN0cy51aW50Qml0QW5kID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjg5KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlVWludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjg5KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMudWludEJpdE9yID0gZnVuY3Rpb24o
KQpAQCAtMzQyNSwxMCArMjgyNCwxMCBAQCB0ZXN0cy51aW50Qml0T3IgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gYSB8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyOTUpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1
MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSks
IG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3RzLnVpbnRCaXRY
b3IgPSBmdW5jdGlvbigpCkBAIC0zNDM5LDEwICsyODM4LDEwIEBAIHRlc3RzLnVpbnRCaXRYb3Ig
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA2KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDYpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3RzLnVpbnRCaXROb3Qg
PSBmdW5jdGlvbigpCkBAIC0zNDUzLDEwICsyODUyLDEwIEBAIHRlc3RzLnVpbnRCaXROb3QgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDEpXSksIDQyOTQ5NjcyOTQpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1
MzUpXSksIDQyOTQ5MDE3NjApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMCldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpXSksIDQyOTQ5
NjcyOTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5NDkwMTc2MCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIC0xKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCldKSwgNDI5NDk2NzI5NSk7CiB9CiAKIHRl
c3RzLnVpbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNDY3LDEwICsyODY2LDEwIEBAIHRlc3Rz
LnVpbnRMU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA8PCBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMjYyMTQwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgNDI5NDk2NzI2NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAx
MjgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0
MCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNDI5NDk2NzI2
NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAog
dGVzdHMudWludFJTaGlmdCA9IGZ1bmN0aW9uKCkKQEAgLTM0ODEsMTAgKzI4ODAsMTAgQEAgdGVz
dHMudWludFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFt
LCA3KV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMTYzODMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAxMzQyMTc3MjcpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0s
IDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMTYzODMpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEzNDIxNzcyNyk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMu
dWludDhCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zNDk1LDEwICsyODk0LDEwIEBAIHRlc3RzLnVp
bnQ4Qml0QW5kID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwg
NyldKSwgMSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IC03KV0pLCAyNDkpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDg1NzMyKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDEpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0p
LCA0Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI0
OSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7
CiB9CiAKIHRlc3RzLnVpbnQ4Qml0T3IgPSBmdW5jdGlvbigpCkBAIC0zNTA5LDEwICsyOTA4LDEw
IEBAIHRlc3RzLnVpbnQ4Qml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSB8
IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50
OChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNDIpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNDIpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJv
Z3JhbSwgLTcpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFt
LCA4NTczMildKSwgMjI4KTsKIH0KIAogdGVzdHMudWludDhCaXRYb3IgPSBmdW5jdGlvbigpCkBA
IC0zNTIzLDEwICsyOTIyLDEwIEBAIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyMTMpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CisgICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJv
Z3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjEzKTsKKyAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAt
MSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1h
a2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKIH0KIAogdGVzdHMudWludDhCaXROb3Qg
PSBmdW5jdGlvbigpCkBAIC0zNTM3LDEwICsyOTM2LDEwIEBAIHRlc3RzLnVpbnQ4Qml0Tm90ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDEpXSksIDI1NCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1
KV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9n
cmFtLCAwKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpXSksIDI1NCk7CisgICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJv
Z3JhbSwgNjU1MzUpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKV0pLCAwKTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCAwKV0pLCAyNTUpOwogfQogCiB0ZXN0cy51aW50OExTaGlmdCA9IGZ1bmN0aW9uKCkK
QEAgLTM1NTEsMTAgKzI5NTAsMTAgQEAgdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gYSA8PCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMjI0KTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjUyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIDIyNCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50
KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50OFJTaGlmdCA9IGZ1bmN0aW9uKCkK
QEAgLTM1NjUsMTAgKzI5NjQsMTAgQEAgdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTUpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNSldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKQEAgLTM2
MjQsMTcgKzMwMjMsMTcgQEAgdGVzdHMuZmxvYXRNYXRoID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZsb2F0KHgpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgNy41
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzkiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10sIFtdKSwgNyk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10s
IFtdKSwgNy41KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10p
LCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSksIDcpOworICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtdKSwgNy41KTsKICAg
ICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgYmFy
KGludCB4KQpAQCAtMzcyOSw3ICszMTI4LDcgQEAgdGVzdHMuZ2VuZXJpY0Nhc3RJbmZlciA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LnJlYWwgKyB4LmltYWc7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMuYm9vbGVhbk1hdGggPSBmdW5jdGlvbigp
CkBAIC0zNzY4LDE0ICszMTY3LDE0IEBAIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlIHx8IGZhbHNlOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb283IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdLCBbXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbXSks
IGZhbHNlKTsKIH0KIAogdGVzdHMuYm9vbGVhblNob3J0Y2lyY3VpdGluZyA9IGZ1bmN0aW9uKCkK
QEAgLTM4MTYsMTAgKzMyMTUsMTAgQEAgdGVzdHMuYm9vbGVhblNob3J0Y2lyY3VpdGluZyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogCi0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJhbmRUcnVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JUcnVlIiwgW10s
IFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJv
ckZhbHNlIiwgW10sIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJhbmRUcnVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImFuZEZhbHNlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvckZhbHNlIiwgW10pLCAyKTsKIH0K
IAogdGVzdHMudHlwZWRlZkFycmF5ID0gZnVuY3Rpb24oKQpAQCAtMzgzMiw3ICszMjMxLDcgQEAg
dGVzdHMudHlwZWRlZkFycmF5ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGFycmF5
VHlwZWRlZlswXTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwogfQogCiB0ZXN0cy5z
aGFkZXJUeXBlcyA9IGZ1bmN0aW9uKCkKQEAgLTQwODQsMjQgKzM0ODMsMjQgQEAgdGVzdHMuYnVp
bHRpblZlY3RvcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYiA9PSBjOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCA1KTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10sIFtdKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb291IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MyIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U0IiwgW10sIFtd
KSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
dTUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb291NiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZiIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIsIFtdLCBbXSksIDQp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMyIs
IFtdLCBbXSksIDMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb29mNCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjYiLCBbXSwgW10pLCBmYWxzZSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtd
KSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291IiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwgNCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSksIDMpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U0IiwgW10p
LCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291
NSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vdTYiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vZiIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YyIiwgW10pLCA0KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSksIDMpOworICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNCIsIFtdKSwgNSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBb
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb2Y2IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1
Y3QgPSBmdW5jdGlvbigpCkBAIC00MTIxLDcgKzM1MjAsNyBAQCB0ZXN0cy5pbnN0YW50aWF0ZVN0
cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgueC54OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA0Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQzKTsKIH0KIAogdGVzdHMuaW5zdGFudGlhdGVTdHJ1
Y3RJblN0cnVjdFdpdGhJbnQyID0gZnVuY3Rpb24oKQpAQCAtNDEzOCw3ICszNTM3LDcgQEAgdGVz
dHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdFdpdGhJbnQyID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHgueC54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Myk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQzKTsKIH0K
IAogdGVzdHMuc2ltcGxlRW51bSA9IGZ1bmN0aW9uKCkKQEAgLTQyNjMsMzIgKzM2NjIsMzIgQEAg
dGVzdHMuc2ltcGxlRW51bSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28oaW50
RGVhdGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10s
IFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
QW5vdGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwg
W10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRGYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10sIFtdKSwgMyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lVmFsdWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2Fy
VmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxp
dGVyYWwiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10sIFtd
KSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
RmFtaW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdLCBbXSksIDIp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRo
QmFja3dhcmRzIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxl
RXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1w
bGVOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwi
LCBbXSksIHRydWUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50V2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10p
LCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVW
YWx1ZUxpdGVyYWwiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtd
KSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
V2FyQmFja3dhcmRzIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMi
LCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludERlYXRoQmFja3dhcmRzIiwgW10pLCAzKTsKIH0KIAogdGVzdHMuZW51bVdpdGhNYW51YWxW
YWx1ZXMgPSBmdW5jdGlvbigpCkBAIC00MzE3LDEwICszNzE2LDEwIEBAIHRlc3RzLmVudW1XaXRo
TWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMjMp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwg
W10sIFtdKSwgLTQyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ3YXIiLCBbXSksIDcyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIzKTsKKyAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgLTQyKTsKIH0KIAog
dGVzdHMuZW51bVdpdGhvdXRaZXJvID0gZnVuY3Rpb24oKQpAQCAtNDM3NywxMCArMzc3NiwxMCBA
QCB0ZXN0cy5lbnVtV2l0aFNvbWVNYW51YWxWYWx1ZXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gRm9vLkRlYXRoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgNzIpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSks
IDczKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0
aWxlbmNlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDcyKTsKKyAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDczKTsKKyAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAw
KTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIs
IFtdKSwgMSk7CiB9CiAKIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljRnVuY3Rpb24gPSBmdW5j
dGlvbigpCkBAIC00MzkxLDggKzM3OTAsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY0Z1
bmN0aW9uID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgdGVzdFgoKSB7IHJldHVybiBmb288QXhp
cy5YPigpOyB9CiAgICAgICAgIGludCB0ZXN0WSgpIHsgcmV0dXJuIGZvbzxBeGlzLlk+KCk7IH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5lbnVt
Q29uc3RleHByR2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTQ0MTIsOCArMzgxMSw4IEBA
IHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZvbyhmKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10sIFtdKSwgMSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtd
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
WSIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLnRyYXAgPSBmdW5jdGlvbigpCkBAIC00NDM5LDE0ICsz
ODM4LDE0IEBAIHRlc3RzLnRyYXAgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
CiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAxKV0pLCA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA0KTsKICAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVy
cm9yKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtdKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAK
QEAgLTQ0NzAsOSArMzg2OSw5IEBAIHRlc3RzLnN3aXp6bGUgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gcXVpeC56OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwg
Nik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbXSwgW10pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDQpOwogfQogCiB0ZXN0cy5lbnVtV2l0aEV4
cGxpY2l0SW50QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ1OTcsMzIgKzM5OTYsMzIgQEAgdGVzdHMu
ZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
Rm9vKGludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7
Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5j
ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVh
bCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwg
W10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImlu
dFdhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2Fy
VmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMSk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNl
VmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwg
W10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJp
bnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtd
KSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5v
dEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwg
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1
ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwi
LCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVy
YWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFj
a3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1XaXRo
VWludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00NzQ3LDMyICs0MTQ2LDMyIEBAIHRlc3RzLmVudW1X
aXRoVWludEJhc2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKHVpbnREZWF0
aCgpKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10p
LCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0
aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2Up
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90
aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InVpbnRGYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdLCBbXSks
IDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZh
bHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwg
MSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMyk7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhckJhY2t3
YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInVpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZUJhY2t3YXJk
cyIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwg
W10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJk
ZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1
YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyIiwgW10pLCAwKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10pLCAxKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZSIs
IFtdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dWludERlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdKSwg
Mik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhW
YWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1
ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyQmFja3dhcmRzIiwgW10pLCAwKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5l
QmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludERlYXRoQmFja3dhcmRzIiwg
W10pLCAzKTsKIH0KIAogdGVzdHMuZW51bUZsb2F0QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ4MTgs
NyArNDIxNyw3IEBAIHRlc3RzLmVtcHR5U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIDQ2OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Nik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ2KTsKIH0KIAogdGVzdHMu
ZW51bVN0cnVjdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODU3LDkgKzQyNTYsOSBAQCB0ZXN0cy5z
aW1wbGVTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwg
NzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAy
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9
CiAKIHRlc3RzLmV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKQEAgLTQ4NzAsNyAr
NDI2OSw3IEBAIHRlc3RzLmV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKICAgICB0
ZXh0ICs9ICJ9IH0iOwogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQpOwogICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwg
aSAqIDEuNSk7CisgICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOwogfQogCiB0ZXN0
cy5ub3RRdWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKQEAgLTQ4OTEsNyAr
NDI5MCw3IEBAIHRlc3RzLm5vdFF1aXRlRXhoYXVzdGl2ZVVpbnQ4U3dpdGNoV2l0aERlZmF1bHQg
PSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBp
ICogMS41KTsKIH0KIAogdGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCkBAIC00
OTEzLDkgKzQzMTIsOSBAQCB0ZXN0cy5zd2l0Y2hGYWxsVGhyb3VnaCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3NjcpXSksIDI3ICsgNzYyNCArIDQ5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYy
NCArIDQ5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSks
IDI3ICsgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKQEAg
LTQ5MzgsOSArNDMzNyw5IEBAIHRlc3RzLnN3aXRjaEJyZWFrID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDc2NyldKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY5
KV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuZW51bVN3aXRj
aEJyZWFrRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKQEAgLTQ5NjYsOSArNDM2NSw5IEBAIHRlc3Rz
LmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAi
QSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VF
bnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEi
KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3Jh
bSwgIkZvbyIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtOb3RRdWl0
ZUV4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBAIC01MDIxLDkgKzQ0MjAsOSBAQCB0ZXN0cy5lbnVt
U3dpdGNoQnJlYWtOb3RRdWl0ZUV4aGF1c3RpdmVXaXRoRGVmYXVsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJv
Z3JhbSwgIkZvbyIsICJBIildKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0p
LCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dy
YW0sICJGb28iLCAiQSIpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0pLCA3NjI0
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CiB9CiAKIHRlc3RzLnNpbXBsZVJl
Y3Vyc2l2ZVN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTUwNzIsNyArNDQ3MSw3IEBAIHRlc3RzLm11
dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuID0gZnVuY3Rpb24oKQogICAg
ICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIC01MTEpLAorICAg
ICAgICAoKSA9PiBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgLTUxMSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQog
CkBAIC01MDk4LDcgKzQ0OTcsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQ
b2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28uYmFyLT5iYXIgLSBi
YXIuZm9vLT5mb287CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIC01MTEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAtNTExKTsKIH0KIAog
dGVzdHMubGlua2VkTGlzdCA9IGZ1bmN0aW9uKCkKQEAgLTUxMTksNyArNDUxOCw3IEBAIHRlc3Rz
LmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5uZXh0LT5uZXh0
LT52YWx1ZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOwogfQogCiB0ZXN0cy5wb2lu
dGVyVG9Qb2ludGVyID0gZnVuY3Rpb24oKQpAQCAtNTE0Miw3ICs0NTQxLDcgQEAgdGVzdHMucG9p
bnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDc2ICsgMzkgKyA4Myk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc2ICsgMzkgKyA4Myk7CiB9CiAK
IHRlc3RzLmFycmF5UmVmVG9BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTUxNjUsNyArNDU2NCw3
IEBAIHRlc3RzLmFycmF5UmVmVG9BcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc2ICsgMzkgKyA4Myk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc2ICsg
MzkgKyA4Myk7CiB9CiAKIHRlc3RzLnBvaW50ZXJHZXR0ZXIgPSBmdW5jdGlvbigpCkBAIC01MjQ2
LDk0ICs0NjQ1LDYgQEAgdGVzdHMuc2V0dGVyV2l0aE1hdGNoZWRUeXBlID0gZnVuY3Rpb24oKQog
ICAgIGApOwogfQogCi10ZXN0cy5vcGVyYXRvcldpdGhVbmluZmVycmFibGVUeXBlVmFyaWFibGUg
PSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3IrPFQ+KEZvbyBhLCBGb28gYikKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgICAgIHJl
c3VsdC54ID0gYS54ICsgYi54OwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yKTsKLX0KLQotdGVzdHMub3BlcmF0b3JXaXRob3V0VW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxl
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3Ry
dWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgfQotICAgICAgICBGb28gb3Bl
cmF0b3IrKEZvbyBhLCBGb28gYikKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3VsdDsK
LSAgICAgICAgICAgIHJlc3VsdC54ID0gYS54ICsgYi54OwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAg
ICAgRm9vIGE7Ci0gICAgICAgICAgICBhLnggPSA2NDU7Ci0gICAgICAgICAgICBGb28gYjsKLSAg
ICAgICAgICAgIGIueCA9IC0zNTsKLSAgICAgICAgICAgIHJldHVybiAoYSArIGIpLng7Ci0gICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDY0NSAtIDM1KTsKLX0KLQotdGVzdHMub3BlcmF0b3JDYXN0V2l0
aFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG9wZXJhdG9yPFQ+
IEZvbyhpbnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGb28gcmVzdWx0Owot
ICAgICAgICAgICAgICAgIHJlc3VsdC54ID0geDsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhUeXBlVmFyaWFibGVJ
bmZlcnJlZEZyb21SZXR1cm5UeXBlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAg
ICAgfQotICAgICAgICBwcm90b2NvbCBCYXJhYmxlIHsKLSAgICAgICAgICAgIHZvaWQgYmFyKHRo
cmVhZCBCYXJhYmxlKiwgaW50KTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQg
ZmxvYXQqIHJlc3VsdCwgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcmVzdWx0
ID0gZmxvYXQodmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIG9wZXJhdG9yPFQ6QmFyYWJsZT4g
VChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBUIHJlc3VsdDsKLSAgICAgICAgICAg
IGJhcigmcmVzdWx0LCBmb28ueCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
ICB9Ci0gICAgICAgIGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9vOwot
ICAgICAgICAgICAgZm9vLnggPSA3NTsKLSAgICAgICAgICAgIGZsb2F0IHggPSBmbG9hdChmb28p
OwotICAgICAgICAgICAgcmV0dXJuIGludCh4ICogMS41KTsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgMTEyKTsKLX0KLQogdGVzdHMuaW5jV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9uKCkK
IHsKICAgICBjaGVja0ZhaWwoCkBAIC01ODIzLDcgKzUxMzQsNyBAQCB0ZXN0cy5hbmRlcldpdGhO
b3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5mb287CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5hbmRlcldpdGhXcm9uZ051
bWJlck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNTg5Nyw3ICs1MjA4LDcgQEAgdGVzdHMu
YW5kZXJXaXRoQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEB4KS5m
b287CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5wb2ludGVy
SW5kZXhHZXR0ZXIgPSBmdW5jdGlvbigpCkBAIC02MDgzLDcgKzUzOTQsNyBAQCB0ZXN0cy5pbmRl
eEFuZGVyV2l0aE5vdGhpbmdXcm9uZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4
WzY2Nl07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5pbmRl
eEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHMgPSBmdW5jdGlvbigpCkBAIC02MTY4LDcg
KzU0NzksNyBAQCB0ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIChAeClbZmxvYXQoLTEpXTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
MTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAxMyk7CiB9CiAKIHRlc3RzLmRldmljZVB0clB0ciA9IGZ1bmN0aW9uKCkKQEAgLTYyMDcs
MzA2ICs1NTE4LDYgQEAgdGVzdHMuY29uc3RhbnRQdHJQdHIgPSBmdW5jdGlvbigpCiAgICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIklsbGVn
YWwgcG9pbnRlciB0byBub24tcHJpbWl0aXZlIHR5cGU6IGludDMyKiBjb25zdGFudCogY29uc3Rh
bnQiKSAhPSAtMSk7CiB9CiAKLXRlc3RzLnBvaW50ZXJJbmRleEdldHRlckluUHJvdG9jb2wgPSBm
dW5jdGlvbigpCi17Ci0gICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFjZXMp
IHsKLSAgICAgICAgY2hlY2tGYWlsKAotICAgICAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXSgke2FkZHJlc3NTcGFjZX0gRm9vKiwgdWludCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9y
W10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgYCksCi0gICAgICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJDYW5u
b3QgaGF2ZSBnZXR0ZXIgZm9yIHBvaW50ZXIgdHlwZSIpICE9IC0xKTsKLSAgICB9Ci19Ci0KLXRl
c3RzLmxvbmVJbmRleFNldHRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRv
cltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkV2
ZXJ5IHNldHRlciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIiKSAhPSAtMSk7Ci19Ci0KLXRl
c3RzLm5vdExvbmVJbmRleFNldHRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgZG9Q
cmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltd
KEZvbywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQp
OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVyYXRv
cltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJh
ciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10ZXN0cy5pbmRl
eFNldHRlcldpdGhNaXNtYXRjaGVkVHlwZUluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBvcGVyYXRvcltdKEZvbywgdWludCk7Ci0gICAg
ICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3Jb
XShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0o
QmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJTZXR0ZXIg
YW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUiKSAhPSAtMSk7Ci19Ci0KLXRlc3Rz
LmluZGV4T3BlcmF0b3JXcm9uZ0FyZ3VtZW50TGVuZ3RoSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKCk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJh
dG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9
PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUHJvdG9jb2wn
cyB0eXBlIHZhcmlhYmxlIChGb28pIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlIikgIT0gLTEp
OwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vKTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJl
Y3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXShGb28sIGludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVp
bnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBh
cmFtZXRlcnMiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4T3BlcmF0b3JTZXR0ZXJXcm9uZ0Fy
Z3VtZW50TGVuZ3RoSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgICAgIGludCBvcGVyYXRvcltdPSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
c3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyBy
ZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkg
eyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJs
ZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28pOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwg
dWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVp
bnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1i
ZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGlu
dCBvcGVyYXRvcltdPShGb28sIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVy
biA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJl
dHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0
ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW109
KEZvbywgaW50LCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3Qg
QmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0
MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVy
biBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJz
IikgIT0gLTEpOwotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJQb2ludGVySW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9w
ZXJhdG9yW109KHRocmVhZCBGb28qIHB0ciwgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1
aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJDYW5ub3QgaGF2ZSBz
ZXR0ZXIgZm9yIHBvaW50ZXIgdHlwZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJX
aXRoTm9HZXR0ZXJPdmVybG9hZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShpbnQsIEZvbyk7Ci0gICAgICAgICAgICAg
ICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVp
bnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50
LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJEaWQgbm90IGZpbmQgZnVu
Y3Rpb24gbmFtZWQgb3BlcmF0b3JbXT0gd2l0aCBhcmd1bWVudHMgRm9vLHVpbnQzMiIpICE9IC0x
KTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZEZpeGVkSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28g
ewotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgIEZv
byBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0
IEJhciB7IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigp
OyB9Ci0gICAgYCk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJXaXRoTm90aGluZ1dyb25nSW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJl
YWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICB9Ci0gICAgICAgIGludCBiYXI8VDpGb28+KFQg
eCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHhbNDJdOwotICAgICAgICB9Ci0gICAg
ICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBCYXIqLCB1aW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsK
LSAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBmb28o
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEJhcigpKTsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJXaXRoV3JvbmdOdW1iZXJP
ZkFyZ3VtZW50c0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAg
ICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSgpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCBy
ZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAg
ICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiUHJvdG9jb2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5vdCBt
ZW50aW9uZWQgaW4gc2lnbmF0dXJlIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBv
cGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1l
dGVycyBmb3Igb3BlcmF0b3ImW10iKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAg
ICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQsIHVpbnQpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVy
biAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJl
ciBvZiBwYXJhbWV0ZXJzIGZvciBvcGVyYXRvciZbXSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5k
ZXhBbmRlckRvZXNudFJldHVyblBvaW50ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywg
dWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJSZXR1cm4g
dHlwZSBvZiBhbmRlciBpcyBub3QgYSBwb2ludGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRl
eEFuZGVyRG9lc250VGFrZVJlZmVyZW5jZUluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXShGb28gZm9vLCB1
aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAg
ICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlBhcmFtZXRl
ciB0byBhbmRlciBpcyBub3QgYSByZWZlcmVuY2UiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4
QW5kZXJXaXRoQXJyYXlSZWZJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHRocmVh
ZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb29bXSBhcnJheSwgZmxvYXQgaW5kZXgpOwotICAg
ICAgICB9Ci0gICAgICAgIGludCBiYXI8VDpGb28+KHRocmVhZCBUW10geCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIHhbMS41XTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyW10sIGZsb2F0
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAg
IHJldHVybiAmcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBmb28oKQotICAgICAgICB7
Ci0gICAgICAgICAgICBCYXIgeDsKLSAgICAgICAgICAgIHJldHVybiBiYXIoQHgpOwotICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCAxMjM0KTsKLX0KLQogdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJlZiA9
IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC02NTIyLDcgKzU1
MzMsNyBAQCB0ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuICpwdHI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDM1NCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDM1NCk7CiB9CiAK
IG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1R5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCmluZGV4
IDdjMjg3OTE4OTUzYTViMWQ1ZTM1ZTg1MGUzMzBmMzg5ZGY2ZTc2ZTguLjIxYTMzMTk1OGUxMzRi
ZDk5NTgwM2JkYTgxZmNjY2MxZWZiNDRjNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VHlwZS5qcwpAQCAtMjUsNyArMjUsNiBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBlIGV4
dGVuZHMgTm9kZSB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gW107IH0KICAg
ICBnZXQga2luZCgpIHsgcmV0dXJuIFR5cGU7IH0KICAgICBnZXQgaXNQdHIoKSB7IHJldHVybiBm
YWxzZTsgfQogICAgIGdldCBpc0FycmF5KCkgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTM3LDE1ICsz
Niw2IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgaXNFbnVtKCkgeyByZXR1
cm4gZmFsc2U7IH0KICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQogICAg
IAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbCkK
LSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgcmV0dXJuIHByb3Rv
Y29sLmhhc0hlaXIodGhpcyk7Ci0gICAgfQotICAgIAotICAgIGdldCBpbnN0YW50aWF0ZWRUeXBl
KCkgeyByZXR1cm4gdGhpcy52aXNpdChuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCkpOyB9Ci0g
ICAgCiAgICAgLy8gSGF2ZSB0byBjYWxsIHRoZXNlIG9uIHRoZSB1bmlmeU5vZGUuCiAgICAgYXJn
dW1lbnRGb3JBbmRPdmVybG9hZChvcmlnaW4sIHZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCmluZGV4IDZjMGY5YzE3NGY1MzIzNTY0MWY0Y2QzMDJj
YWI0YzNhYWIyN2MxNDMuLmQ3YjAwY2QyYzczZWIzYTVhODgyMzRiZjI5ZGMzYTZhYzdiNzFjM2Yg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwpAQCAtMjUsMjMgKzI1
LDIxIEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVEZWYgZXh0ZW5kcyBUeXBlIHsKLSAg
ICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKQorICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAg
ICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7
Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAg
IHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIH0KICAgICAKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1
cm4gdGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9
Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7
IH0KICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KICAgICAKICAgICB0b1N0
cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8
IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiA9ICIgKyB0aGlzLnR5cGU7CisgICAgICAgIHJl
dHVybiAidHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIiA9ICIgKyB0aGlzLnR5cGU7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVz
b2x2ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2ZXIu
anMKaW5kZXggYTgxZWFiNDJkOTQ4ZmNhM2U5MzBjNjg1N2E5NjRkZGNjZmNlZTU3Zi4uMDkxYjg0
MzU0MmFjYTU5MWRmZjIyZDBhNjVhMzU0OWI4Y2NlMDFlMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcwpAQCAtMzQsMjEgKzM0LDkgQEAg
Y2xhc3MgVHlwZURlZlJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlzaXRUeXBlUmVm
KG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUsICgpID0+
IHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgICAgICAg
ICAgaWYgKG5vZGUudHlwZSBpbnN0YW5jZW9mIFR5cGVEZWYpIHsKLSAgICAgICAgICAgICAgICBs
ZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChub2RlLnR5cGUu
dHlwZVBhcmFtZXRlcnMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMu
bGVuZ3RoICE9IG5vZGUudHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiYXJndW1lbnQvcGFyYW1ldGVyIG1pc21hdGNoIChzaG91
bGQgaGF2ZSBiZWVuIGNhdWdodCBlYXJsaWVyKSIpOwotICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAg
ICAgICAgICBub2RlLnR5cGVBcmd1bWVudHNbaV0udW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBu
b2RlLnR5cGUudHlwZVBhcmFtZXRlcnNbaV0pOwotICAgICAgICAgICAgICAgIGxldCB2ZXJpZmlj
YXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHJlZmVy
ZW5jZSB0byBhIHR5cGUgZGVmaW5pdGlvbiB2aW9sYXRlcyBwcm90b2NvbCBjb25zdHJhaW50czog
IiArIHZlcmlmaWNhdGlvblJlc3VsdC5yZWFzb24pOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGxldCBuZXdUeXBlID0gbm9kZS50eXBlLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmlj
YXRpb24obm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQpOwotICAg
ICAgICAgICAgICAgIG5ld1R5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbm9kZS5z
ZXRUeXBlQW5kQXJndW1lbnRzKG5ld1R5cGUsIFtdKTsKKyAgICAgICAgICAgICAgICBub2RlLnR5
cGUudmlzaXQodGhpcyk7CisgICAgICAgICAgICAgICAgbm9kZS5zZXRUeXBlKG5vZGUudHlwZS50
eXBlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmQwMzdjOTI3Mjc1MTYwZmM0NWViMmY5YTg2Njkx
Nzc3MTE2YmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVHlwZVBhcmFtZXRlclJl
d3JpdGVyIHsKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlLm9yaWdpbiwgbm9k
ZS5uYW1lLCBub2RlLnR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlw
ZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUucHJvdG9jb2wpOwotICAgIH0K
LX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKaW5kZXggZjJiMzIy
ZjNhZjZhNzMwODYxNDFlNTZkNjkzZWZjZTFjMzUxZGFmYy4uNGY3NDliNzQwODU4MjkzYTk3ZWI0
YTgxMzNjZWY3YmI4ZjA5YjA1YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVHlwZVJlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UmVmLmpzCkBAIC0yNSw2OSArMjUsNTggQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZVJl
ZiBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3Vt
ZW50cykKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCiAgICAgewogICAgICAgICBzdXBl
cigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUg
PSBuYW1lOwogICAgICAgICB0aGlzLnR5cGUgPSBudWxsOwotICAgICAgICB0aGlzLl90eXBlQXJn
dW1lbnRzID0gdHlwZUFyZ3VtZW50czsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIHdyYXAodHlw
ZSkKICAgICB7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgVHlwZVJlZiAmJiAhdHlwZS50
eXBlQXJndW1lbnRzKQorICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYpCiAgICAg
ICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgICAgbGV0IG5hbWUgPSB0eXBlLm5hbWU7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgbmFtZSwgW10pOworICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUpOwogICAgICAg
ICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAg
IAotICAgIHN0YXRpYyBpbnN0YW50aWF0ZSh0eXBlLCB0eXBlQXJndW1lbnRzKQorICAgIHN0YXRp
YyBpbnN0YW50aWF0ZSh0eXBlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBl
UmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIHR5cGVBcmd1bWVudHMpOworICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSk7CiAgICAgICAgIHJl
c3VsdC50eXBlID0gdHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgCiAgICAg
Z2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhp
cy5fdHlwZUFyZ3VtZW50czsgfQogICAgIAogICAgIGdldCB1bmlmeU5vZGUoKQogICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJu
IHRoaXMudHlwZS51bmlmeU5vZGU7Ci0gICAgICAgIHJldHVybiB0aGlzOworICAgICAgICByZXR1
cm4gdGhpcy50eXBlLnVuaWZ5Tm9kZTsKICAgICB9CiAgICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0
VmFsdWUoYnVmZmVyLCBvZmZzZXQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3Vt
ZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3Qg
Z2V0IGRlZmF1bHQgdmFsdWUgb2YgYSB0eXBlIGluc3RhbnRpYXRpb24iKTsKKyAgICAgICAgcmV0
dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7CiAgICAg
fQogICAgIAogICAgIGdldCBzaXplKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJn
dW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHNpemUgb2YgYSB0eXBlIGluc3RhbnRpYXRp
b24iKTsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5zaXplOwogICAgIH0KICAgICAKICAgICBn
ZXQgaXNQcmltaXRpdmUoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMu
bGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5pc1ByaW1pdGl2ZTsKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZGV0ZXJtaW5lIGlmIGFuIHVuaW5zdGFudGlhdGVk
IHR5cGUgaXMgcHJpbWl0aXZlOiAiICsgdGhpcyk7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
aXNQcmltaXRpdmU7CiAgICAgfQogICAgIAotICAgIHNldFR5cGVBbmRBcmd1bWVudHModHlwZSwg
dHlwZUFyZ3VtZW50cykKKyAgICBzZXRUeXBlKHR5cGUpCiAgICAgewogICAgICAgICB0aGlzLl9u
YW1lID0gbnVsbDsKICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICAgICAgdGhpcy5fdHlw
ZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHVuaWZ5SW1wbCh1
bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQpAQCAtOTYsMTIgKzg1LDYgQEAgY2xhc3MgVHlwZVJl
ZiBleHRlbmRzIFR5cGUgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAo
IXRoaXMudHlwZS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAodGhpcy50eXBlQXJndW1lbnRzLmxlbmd0
aCAhPSBvdGhlci50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3Ro
OyArK2kpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVu
aWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZUFyZ3VtZW50c1tpXSkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICAKQEAgLTEwOSw5ICs5Miw3IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAg
ICB7CiAgICAgICAgIGlmICghdGhpcy5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlw
ZS50b1N0cmluZygpOwotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lOwotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsg
IjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iOworICAgICAgICByZXR1cm4gdGhpcy5uYW1l
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VHlwZVZhcmlhYmxlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlh
YmxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzIxOGE5NTlmNTFkMWVlYjlk
MDUxNGI5NTBkZWM5NjcyZmEwYjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5q
cworKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVWYXJpYWJs
ZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcHJvdG9jb2wp
Ci0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47
Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl9wcm90b2NvbCA9IHBy
b3RvY29sOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3Jp
Z2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHBy
b3RvY29sKCkgeyByZXR1cm4gdGhpcy5fcHJvdG9jb2w7IH0KLSAgICAKLSAgICBnZXQgaXNQcmlt
aXRpdmUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3RvY29sICYmIHRoaXMuX3By
b3RvY29sLmlzUHJpbWl0aXZlOwotICAgIH0KLSAgICAKLSAgICBnZXQgaXNVbmlmaWFibGUoKSB7
IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgaW5oZXJpdHMocHJvdG9jb2wpCi0gICAgewotICAg
ICAgICBpZiAoIXByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9Owot
ICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDog
ZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgIiArIHRoaXMgKyAiIGRvZXMgbm90IGhhdmUg
YSBwcm90b2NvbCJ9OwotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbC5pbmhlcml0cyhwcm90
b2NvbCk7Ci0gICAgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29u
dGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFR5cGUp
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRo
aXMuX3R5cGVWYXJpYWJsZVVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAg
ICB9Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy50eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRl
eHQsIG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlv
bkNvbnRleHQpCi0gICAgewotICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRl
eHQuZmluZCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIC8vIFRoZSB0aGluZyB3ZSBnZXQgdW5p
ZmllZCB3aXRoIG11c3QgYmUgYSB0eXBlIHZhcmlhYmxlIHRoYXQgYWNjZXB0cyBhIGJyb2FkZXIg
c2V0IG9mCi0gICAgICAgIC8vIHRoaW5ncyB0aGFuIHdlIGRvLgotICAgICAgICBpZiAoIShyZWFs
VGhpcyBpbnN0YW5jZW9mIFR5cGVWYXJpYWJsZSkpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3Vs
dDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgYXJndW1lbnQgIiArIHRoaXMgKyAiIGNh
bm5vdCBiZSBwYXNzZWQgdG8gbm9uLXR5cGUtdmFyaWFibGUgcGFyYW1ldGVyIHR5cGUgIiArIHJl
YWxUaGlzfTsKLSAgICAgICAgCi0gICAgICAgIGlmICghdGhpcy5wcm90b2NvbCkgewotICAgICAg
ICAgICAgaWYgKHJlYWxUaGlzLnByb3RvY29sKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVz
dWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZSB3aXRob3V0IHByb3RvY29sICIgKyB0
aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIHBhcmFtZXRlciB0eXBlIHZhcmlhYmxlIHdpdGgg
cHJvdG9jb2wgIiArIHJlYWxUaGlzLnByb3RvY29sfTsKLSAgICAgICAgICAgIHJldHVybiB7cmVz
dWx0OiB0cnVlfTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRo
aXMucHJvdG9jb2wuaW5oZXJpdHMocmVhbFRoaXMucHJvdG9jb2wpOwotICAgICAgICBpZiAoIXJl
c3VsdC5yZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjog
IlByb3RvY29sICIgKyB0aGlzLnByb3RvY29sICsgIiBkb2VzIG5vdCBzdWJzdW1lIHByb3RvY29s
ICIgKyByZWFsVGhpcy5wcm90b2NvbCArICIgKHBhc3NpbmcgdHlwZSAiICsgdGhpcyArICIgdG8g
dHlwZSAiICsgcmVhbFRoaXMgKyAiKTogIiArIHJlc3VsdC5yZWFzb259OwotICAgICAgICByZXR1
cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzUGFyYW1ldGVyKHVu
aWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5wcm90b2NvbCkKLSAg
ICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0g
dW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIGxldCByZXN1bHQgPSByZWFs
VGhpcy5pbmhlcml0cyh0aGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0
KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlICIgKyBy
ZWFsVGhpcyArICIgZG9lcyBub3QgaW5oZXJpdCBwcm90b2NvbCAiICsgdGhpcy5wcm90b2NvbCAr
ICIgKHBhc3NpbmcgdHlwZSAiICsgcmVhbFRoaXMgKyAiIHRvIHR5cGUgIiArIHRoaXMgKyAiKTog
IiArIHJlc3VsdC5yZWFzb259OwotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAg
fQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWUg
KyAodGhpcy5wcm90b2NvbCA/ICI6IiArIHRoaXMucHJvdG9jb2wubmFtZSA6ICIiKTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJp
YWJsZVRyYWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFi
bGVUcmFja2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTllMjlhYWUxNDU0
OTI3Y2QwZDUxMzljMDg1MjM5MWY4MzVmN2M3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJp
YWJsZVRyYWNrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNz
IFR5cGVWYXJpYWJsZVRyYWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25zdHJ1Y3Rvcigp
Ci0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9zZXQgPSBuZXcgU2V0KCk7
Ci0gICAgfQotICAgIAotICAgIGdldCBzZXQoKSB7IHJldHVybiB0aGlzLl9zZXQ7IH0KLSAgICAK
LSAgICBfY29uc2lkZXIodGhpbmcpCi0gICAgewotICAgICAgICBpZiAodGhpbmcuaXNVbmlmaWFi
bGUpCi0gICAgICAgICAgICB0aGlzLl9zZXQuYWRkKHRoaW5nKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCkgewotICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlw
ZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fY29uc2lkZXIobm9k
ZS50eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAgIHsK
LSAgICAgICAgdGhpcy5fY29uc2lkZXIobm9kZS52YXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQuanMK
aW5kZXggMGExM2RlNDNkNTMyNmUxMzU3Yzg3Zjg4NTlkOWQ2MDE1ZTBjYWQ0Ny4uNzc5ODFkYzRi
NDhkYjY4YzQxOGI1YmQ4YWQwY2ZjYWQ2Y2QzYmFkMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcwpAQCAtMjUsOSArMjUsOCBA
QAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBVbmlmaWNhdGlvbkNvbnRleHQgewotICAgIGNvbnN0
cnVjdG9yKHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKCkKICAgICB7Ci0gICAgICAg
IHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gbmV3IFNldCh0eXBlUGFyYW1ldGVycyk7CiAgICAgICAg
IHRoaXMuX25leHRNYXAgPSBuZXcgTWFwKCk7CiAgICAgICAgIHRoaXMuX2V4dHJhTm9kZXMgPSBu
ZXcgU2V0KCk7CiAgICAgfQpAQCAtNDUsMTAgKzQ0LDYgQEAgY2xhc3MgVW5pZmljYXRpb25Db250
ZXh0IHsKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB1bmlmeSBub24t
dW5pZmlhYmxlIHRoaW5ncyAiICsgYSArICIgYW5kICIgKyBiKTsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdHlwZSBwYXJhbWV0ZXJzIGRvbid0IGVuZCB1
cCBiZWluZyByb290cy4KLSAgICAgICAgaWYgKGEuaXNVbmlmaWFibGUgJiYgYi5pc1VuaWZpYWJs
ZSAmJiB0aGlzLl90eXBlUGFyYW1ldGVycy5oYXMoYikpCi0gICAgICAgICAgICBbYSwgYl0gPSBb
YiwgYV07Ci0gICAgICAgIAogICAgICAgICB0aGlzLl9uZXh0TWFwLnNldChhLCBiKTsKICAgICB9
CiAgICAgCkBAIC04NSwxOCArODAsNiBAQCBjbGFzcyBVbmlmaWNhdGlvbkNvbnRleHQgewogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICB0eXBlUGFyYW1ldGVycygpIHsg
cmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0gICAgKnR5cGVBcmd1bWVudHMoKQotICAg
IHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRoaXMubm9kZXMpIHsKLSAgICAg
ICAgICAgIGlmICghdHlwZUFyZ3VtZW50LmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmhhcyh0eXBlQXJn
dW1lbnQpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgeWllbGQgdHlw
ZUFyZ3VtZW50OwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZlcmlmeSgpCiAgICAgewog
ICAgICAgICAvLyBXZSBkbyBhIHR3by1waGFzZSBwcmUtdmVyaWZpY2F0aW9uLiBUaGlzIGdpdmVz
IGxpdGVyYWxzIGEgY2hhbmNlIHRvIHNlbGVjdCBhIG1vcmUgc3BlY2lmaWMgdHlwZS4KQEAgLTEx
MSw0MCArOTQsMTYgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgICAgIGlm
ICghcmVzdWx0LnJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHRoaXMuX3R5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZVBhcmFtZXRlci52
ZXJpZnlBc1BhcmFtZXRlcih0aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkK
LSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGxldCBu
dW1UeXBlVmFyaWFibGVBcmd1bWVudHMgPSAwOwotICAgICAgICBsZXQgYXJndW1lbnRTZXQgPSBu
ZXcgU2V0KCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1
bWVudHMoKSkgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudC52ZXJpZnlB
c0FyZ3VtZW50KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50Lmlz
TGl0ZXJhbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGFyZ3VtZW50
U2V0LmFkZCh0aGlzLmZpbmQodHlwZUFyZ3VtZW50KSk7Ci0gICAgICAgICAgICBudW1UeXBlVmFy
aWFibGVBcmd1bWVudHMrKzsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXJndW1lbnRTZXQuc2l6
ZSA9PSBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3Vs
dDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2
YXJpYWJsZXMgdXNlZCBhcyBhcmd1bWVudHMgZ290IHVuaWZpZWQgd2l0aCBlYWNoIG90aGVyIn07
CisgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGNv
bnZlcnNpb25Db3N0KCkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSAwOwotICAgICAgICBm
b3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRzKCkpCi0gICAgICAgICAg
ICByZXN1bHQgKz0gdHlwZUFyZ3VtZW50LmNvbnZlcnNpb25Db3N0KHRoaXMpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCiAgICAgY29tbWl0
KCkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1
bWVudHMoKSkKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC5jb21taXRVbmlmaWNhdGlvbih0aGlz
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Zpc2l0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCmlu
ZGV4IDRiZjA1MzEzZTI4NTdkNzFlZmU1MTNlZTFlMzVmMDUwZGVmNTMzNmQuLjhhYTYwNGU3YzVj
M2Q2Mzg4MGE3M2Q4NzNjMDdmNGUzMzNmNTIzNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVmlzaXRvci5qcwpAQCAtMzQsMTcgKzM0LDEwIEBAIGNsYXNzIFZpc2l0b3IgewogICAg
IHZpc2l0RnVuYyhub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRo
aXMpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRl
cnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3Ig
KGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQogICAgICAgICAgICAgcGFyYW1ldGVy
LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwotICAgIH0KLSAgICAKICAg
ICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNp
dCh0aGlzKTsKQEAgLTc5LDE4ICs3Miw2IEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAgICAgICAg
ZXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJl
Zihub2RlKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkK
LSAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9mIG5vZGUuZXh0ZW5kcykKLSAgICAg
ICAgICAgIHByb3RvY29sLnZpc2l0KHRoaXMpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUg
b2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZpc2l0KHRoaXMpOwot
ICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIGZvciAo
bGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCkBAIC05OSw4ICs4MCw4IEBA
IGNsYXNzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsK
LSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQot
ICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKKyAgICAgICAgZm9yIChsZXQg
dHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgICAgIHR5cGVBcmd1
bWVudC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlSW5zdGFu
Y2Uobm9kZSkKQEAgLTExMiwyOSArOTMsMTUgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgCiAgICAg
dmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVy
IG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0
KHRoaXMpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAogICAg
IHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFt
ZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52
aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCiAgICAg
ICAgICAgICBmaWVsZC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlVmFy
aWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwgdGhp
cyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQot
ICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKICAgICB2
aXNpdEZpZWxkKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CkBA
IC0zNDAsMTQgKzMwNyw2IEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAgICAgICAgdHlwZUFyZ3Vt
ZW50LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBub2RlLmFyZ3Vt
ZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUudmlzaXQoYXJndW1lbnQsIHRoaXMpOwotICAgICAg
ICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewotICAg
ICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgICAgICBmb3Ig
KGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAg
ICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAg
ICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAg
ICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50
cyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwog
ICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmV0dXJuVHlwZSwgdGhpcyk7CiAgICAgICAgIE5vZGUu
dmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dT
TC5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiNjY1Njc4MjZhNTFkZDZjNzU0
ZDRlOWIyNGQ3NTc4OTcyYmIzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQKKysrIC9kZXYv
bnVsbApAQCAtMSw0NzkgKzAsMCBAQAotIyBXZWJHUFUgU2hhZGluZyBMYW5ndWFnZQotCi1XZWJH
UFUgU2hhZGluZyBMYW5ndWFnZSwgb3IgV1NMIGZvciBzaG9ydCwgaXMgYSB0eXBlLXNhZmUgbG93
LW92ZXJoZWFkIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBHUFVzIChncmFwaGljcyBwcm9jZXNz
aW5nIHVuaXRzKS4gVGhpcyBkb2N1bWVudCBleHBsYWlucyBob3cgV1NMIHdvcmtzLgotCi0jIEdv
YWxzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBhY2hpZXZlIHRoZSBmb2xsb3dpbmcgZ29hbHM6Ci0K
LS0gV1NMIHNob3VsZCBmZWVsICpmYW1pbGlhciogdG8gQysrIHByb2dyYW1tZXJzLgotLSBXU0wg
c2hvdWxkIGJlIGhhdmUgYSAqc291bmQqIGFuZCAqZGVjaWRhYmxlKiB0eXBlIHN5c3RlbS4KLS0g
V1NMIHNob3VsZCBub3QgcGVybWl0ICpvdXQtb2YtYm91bmRzKiBtZW1vcnkgYWNjZXNzZXMuCi0t
IFdTTCBzaG91bGQgYmUgaGF2ZSAqbG93IG92ZXJoZWFkKi4KLQotVGhlIGNvbWJpbmF0aW9uIG9m
IGEgc291bmQgdHlwZSBzeXN0ZW0gYW5kIGJvdW5kcyBjaGVja2luZyBtYWtlcyBXU0wgYSBzZWN1
cmUgc2hhZGVyIGxhbmd1YWdlOiB0aGUgbGFuZ3VhZ2UgaXRzZWxmIGlzIHJlc3BvbnNpYmxlIGZv
ciBpc29sYXRpbmcgdGhlIHNoYWRlciBmcm9tIHRoZSByZXN0IG9mIHRoZSBHUFUuCi0KLSMgRmFt
aWxpYXIgU3ludGF4Ci0KLVdTTCBpcyBiYXNlZCBvbiBDIHN5bnRheCwgYnV0IGV4Y2x1ZGVzIGZl
YXR1cmVzIHRoYXQgYXJlIGVpdGhlciB1bm5lY2Vzc2FyeSwgaW5zZWN1cmUsIG9yIHJlcGxhY2Vk
IGJ5IG90aGVyIFdTTCBmZWF0dXJlczoKLQotLSBObyBzdHJpbmdzLgotLSBObyBgcmVnaXN0ZXJg
LCBgdm9sYXRpbGVgLCBgY29uc3RgLCBgcmVzdHJpY3RgLCBvciBgZXh0ZXJuYCBrZXl3b3Jkcy4K
LS0gTm8gdW5pb25zLiBgdW5pb25gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGdvdG8gb3IgbGFi
ZWxzLiBgZ290b2AgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gYCpgIHBvaW50ZXJzLgotLSBFZmZl
Y3RsZXNzIGV4cHJlc3Npb25zIGFyZSBub3Qgc3RhdGVtZW50cyAoYGEgKyBiO2AgaXMgYSBwYXJz
ZSBlcnJvcikuCi0tIE5vIHVuZGVmaW5lZCB2YWx1ZXMgKGBpbnQgeDtgIGluaXRpYWxpemVzIHgg
dG8gMCkuCi0tIE5vIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb25zIChgaW50IHg7IHVpbnQgeSA9
IHg7YCBpcyBhIHR5cGUgZXJyb3IpLgotLSBObyByZWN1cnNpb24uCi0tIE5vIGR5bmFtaWMgbWVt
b3J5IGFsbG9jYXRpb24uCi0tIE5vIG1vZHVsYXJpdHkuIFRoZSB3aG9sZSBwcm9ncmFtIGlzIG9u
ZSBmaWxlLgotCi1PbiB0b3Agb2YgdGhpcyBiYXJlIEMtbGlrZSBmb3VuZGF0aW9uLCBXU0wgYWRk
cyBzZWN1cmUgdmVyc2lvbnMgb2YgZmFtaWxpYXIgQysrIGZlYXR1cmVzOgotCi0tIFR5cGUtc2Fm
ZSBwb2ludGVycyAoYF5gKSBhbmQgYXJyYXkgcmVmZXJlbmNlcyAoYFtdYCkuCi0tIEdlbmVyaWNz
IHRvIHJlcGxhY2UgdGVtcGxhdGVzLgotLSBPcGVyYXRvciBvdmVybG9hZGluZy4gQnVpbHQtaW4g
b3BlcmF0aW9ucyBsaWtlIGBpbnQgb3BlcmF0b3IrKGludCwgaW50KWAgYXJlIGp1c3QgbmF0aXZl
IGZ1bmN0aW9ucy4KLS0gQ2FzdCBvdmVybG9hZGluZy4gQnVpbHQtaW4gY2FzdHMgbGlrZSBgb3Bl
cmF0b3IgaW50KGRvdWJsZSlgIGFyZSBqdXN0IG5hdGl2ZSBmdW5jdGlvbnMuCi0tIEdldHRlcnMg
YW5kIHNldHRlcnMuIFByb3BlcnR5IGFjY2Vzc2VzIGxpa2UgYHZlYy54YCByZXNvbHZlIHRvIG92
ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvci5maWVsZChmbG9hdDQpYC4KLS0gQXJyYXkgYWNj
ZXNzIG92ZXJsb2FkaW5nLiBBcnJheSBhY2Nlc3NlcyBsaWtlIGB2ZWNbMF1gIHJlc29sdmUgdG8g
dmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3JbXShmbG9hdDQsIHVpbnQpYC4KLQotSW4gdGhl
IGZvbGxvd2luZyBzZWN0aW9ucywgV1NMIGlzIHNob3duIGJ5IGV4YW1wbGUgc3RhcnRpbmcgd2l0
aCBpdHMgQy1saWtlIGZvdW5kYXRpb24gYW5kIHRoZW4gYnVpbGRpbmcgdXAgdG8gaW5jbHVkZSBt
b3JlIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMgbGlrZSBnZW5lcmljcy4KLQotIyMgQ29tbW9uIHN1
YnNldCBvZiBDIGFuZCBXU0wKLQotVGhlIGZvbGxvd2luZyBpcyBhIHZhbGlkIFdTTCBmdW5jdGlv
biBkZWZpbml0aW9uOgotCi0gICAgaW50IGZvbyhpbnQgeCwgaW50IHksIGJvb2wgcCkKLSAgICB7
Ci0gICAgICAgIGlmIChwKQotICAgICAgICAgICAgcmV0dXJuIHggLSB5OwotICAgICAgICByZXR1
cm4geCArIHk7Ci0gICAgfQotCi1XU0wgc291cmNlIGZpbGVzIGJlaGF2ZSBzaW1pbGFybHkgdG8g
QyBzb3VyY2UgZmlsZXM6Ci0KLS0gVG9wLWxldmVsIHN0YXRlbWVudHMgbXVzdCBiZSB0eXBlIG9y
IGZ1bmN0aW9uIGRlZmluaXRpb25zLgotLSBXU0wgdXNlcyBzdHJ1Y3R1cmVkIEMgY29udHJvbCBm
bG93IGNvbnN0cnVjdHMsIGxpa2UgYGlmYCwgYHdoaWxlYCwgYGZvcmAsIGBkb2AsIGBicmVha2As
IGFuZCBgY29udGludWVgLgotLSBXU0wgdXNlcyBDLWxpa2UgYHN3aXRjaGAgc3RhdGVtZW50cywg
YnV0IGRvZXMgbm90IGFsbG93IHRoZW0gdG8gb3ZlcmxhcCBvdGhlciBjb250cm9sIGZsb3cgKGku
ZS4gbm8gW0R1ZmYncyBkZXZpY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0R1ZmYl
MjdzX2RldmljZSkpLgotLSBXU0wgYWxsb3dzIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBhbnl3aGVy
ZSBDKysgd291bGQuCi0KLVdTTCB0eXBlcyBkaWZmZXIgZnJvbSBDIHR5cGVzLiBGb3IgZXhhbXBs
ZSwgdGhpcyBpcyBhbiBhcnJheSBvZiA0MiBpbnRlZ2VycyBpbiBXU0w6Ci0KLSAgICBpbnRbNDJd
IGFycmF5OwotCi1UaGUgdHlwZSBuZXZlciBzdXJyb3VuZHMgdGhlIHZhcmlhYmxlLCBsaWtlIGl0
IHdvdWxkIGluIEMgKGBpbnQgYXJyYXlbNDJdYCkuCi0KLSMjIFR5cGUtc2FmZSBwb2ludGVycwot
Ci1XU0wgaW5jbHVkZXMgYSBzZWN1cmUgcG9pbnRlciB0eXBlLiBUbyBlbXBoYXNpemUgdGhhdCBp
dCBpcyBub3QgbGlrZSB0aGUgQyBwb2ludGVyLCBXU0wgdXNlcyBgXmAgZm9yIHRoZSBwb2ludGVy
IHR5cGUgYW5kIGZvciBkZXJlZmVyZW5jZS4gTGlrZSBpbiBDLCBgJmAgaXMgdXNlZCB0byB0YWtl
IHRoZSBhZGRyZXNzIG9mIGEgdmFsdWUuICBCZWNhdXNlIEdQVXMgaGF2ZSBkaWZmZXJlbnQga2lu
ZHMgb2YgbWVtb3JpZXMsIHBvaW50ZXJzIG11c3QgYmUgYW5ub3RhdGVkIHdpdGggYW4gYWRkcmVz
cyBzcGFjZSAob25lIG9mIGB0aHJlYWRgLCBgdGhyZWFkZ3JvdXBgLCBgZGV2aWNlYCwgb3IgYGNv
bnN0YW50YCkuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBiYXIodGhyZWFkIGludF4gcCkKLSAg
ICB7Ci0gICAgICAgIF5wICs9IDQyOwotICAgIH0KLSAgICBpbnQgZm9vKCkKLSAgICB7Ci0gICAg
ICAgIGludCB4ID0gMjQ7Ci0gICAgICAgIGJhcigmeCk7Ci0gICAgICAgIHJldHVybiB4OyAvLyBS
ZXR1cm5zIDY2LgotICAgIH0KLQotUG9pbnRlcnMgY2FuIGJlIGBudWxsYC4gRWFjaCBwb2ludGVy
IGFjY2VzcyBpcyBudWxsLWNoZWNrZWQsIHRob3VnaCBtb3N0IHBvaW50ZXIgYWNjZXNzZXMgKGxp
a2UgdGhpcyBvbmUpIHdpbGwgbm90IGhhdmUgYSBudWxsIGNoZWNrLiBXU0wgcGxhY2VzIGVub3Vn
aCBjb25zdHJhaW50cyBvbiB0aGUgcHJvZ3JhbW1lciB0aGF0IHByb2dyYW1zIGFyZSBlYXN5IGZv
ciB0aGUgY29tcGlsZXIgdG8gYW5hbHl6ZS4gVGhlIGNvbXBpbGVyIHdpbGwgYWx3YXlzIGtub3cg
dGhhdCBgXnAgKz0gNDJgIGFkZHMgYDQyYCB0byBgeGAgaW4gdGhpcyBjYXNlLgotCi1XU0wgcG9p
bnRlcnMgZG8gbm90IHN1cHBvcnQgY2FzdGluZyBvciBwb2ludGVyIGFyaXRobWV0aWMuIEFsbCBt
ZW1vcnkgYWNjZXNzaWJsZSB0byBhIHNoYWRlciBvdXRsaXZlcyB0aGUgc2hhZGVyLiBUaGlzIGlz
IGV2ZW4gdHJ1ZSBvZiBsb2NhbCB2YXJpYWJsZXMuIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBX
U0wgZG9lcyBub3Qgc3VwcG9ydCByZWN1cnNpb24uIFRoZXJlZm9yZSwgbG9jYWwgdmFyaWFibGVz
IHNpbXBseSBnZXQgZ2xvYmFsIHN0b3JhZ2UuIExvY2FsIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6
ZWQgYXQgdGhlIHBvaW50IG9mIHRoZWlyIGRlY2xhcmF0aW9uLiBIZW5jZSwgdGhlIGZvbGxvd2lu
ZyBpcyBhIHZhbGlkIHByb2dyYW0sIHdoaWNoIHdpbGwgZXhoaWJpdCB0aGUgc2FtZSBiZWhhdmlv
ciBvbiBldmVyeSBXU0wgaW1wbGVtZW50YXRpb246Ci0KLSAgICB0aHJlYWQgaW50XiBmb28oKQot
ICAgIHsKLSAgICAgICAgaW50IHggPSA0MjsKLSAgICAgICAgcmV0dXJuICZ4OwotICAgIH0KLSAg
ICBpbnQgYmFyKCkKLSAgICB7Ci0gICAgICAgIHRocmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAg
ICAgdGhyZWFkIGludF4gcSA9IGZvbygpOwotICAgICAgICBecCA9IDUzOwotICAgICAgICByZXR1
cm4gXnE7IC8vIFJldHVybnMgNTMuCi0gICAgfQotICAgIGludCBiYXooKQotICAgIHsKLSAgICAg
ICAgdGhyZWFkIGludF4gcCA9IGZvbygpOwotICAgICAgICBecCA9IDUzOwotICAgICAgICBmb28o
KTsKLSAgICAgICAgcmV0dXJuIF5wOyAvLyBSZXR1cm5zIDQyLgotICAgIH0KLQotSXQncyBwb3Nz
aWJsZSB0byBwb2ludCB0byBhbnkga2luZCBvZiBkYXRhIHR5cGUuIEZvciBleGFtcGxlLCBgdGhy
ZWFkIGRvdWJsZVs0Ml1eYCBpcyBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgNDIgZG91Ymxlcy4K
LQotIyMgVHlwZS1zYWZlIGFycmF5IHJlZmVyZW5jZXMKLQotV1NMIHN1cHBvcnRzIGFycmF5IHJl
ZmVyZW5jZXMgdGhhdCBjYXJyeSBhIHBvaW50ZXIgdG8gdGhlIGJhc2Ugb2YgdGhlIGFycmF5IGFu
ZCB0aGUgYXJyYXkncyBsZW5ndGguIFRoaXMgYWxsb3dzIGFjY2Vzc2VzIHRvIHRoZSBhcnJheSB0
byBiZSBib3VuZHMtY2hlY2tlZC4KLQotQW4gYXJyYXkgcmVmZXJlbmNlIGNhbiBiZSBjcmVhdGVk
IHVzaW5nIHRoZSBgQGAgb3BlcmF0b3I6Ci0KLSAgICBpbnRbNDJdIGFycmF5OwotICAgIHRocmVh
ZCBpbnRbXSBhcnJheVJlZiA9IEBhcnJheTsKLQotQm90aCBhcnJheXMgYW5kIGFycmF5IHJlZmVy
ZW5jZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFuZCBzdG9yZWQgdG8gdXNpbmcgYG9wZXJhdG9yW11g
OgotCi0gICAgaW50IHggPSBhcnJheVtpXTsKLSAgICBpbnQgeSA9IGFycmF5UmVmW2ldOwotCi1C
b3RoIGFycmF5cyBhbmQgYXJyYXkgcmVmZXJlbmNlcyBrbm93IHRoZWlyIGxlbmd0aDoKLQotICAg
IHVpbnQgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7Ci0gICAgdWludCBhcnJheVJlZkxlbmd0
aCA9IGFycmF5UmVmLmxlbmd0aDsKLQotR2l2ZW4gYW4gYXJyYXkgb3IgYXJyYXkgcmVmZXJlbmNl
LCBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIHBvaW50ZXIgdG8gb25lIG9mIGl0cyBlbGVtZW50czoK
LQotICAgIHRocmVhZCBpbnReIHB0cjEgPSAmYXJyYXlbaV07Ci0gICAgdGhyZWFkIGludF4gcHRy
MiA9ICZhcnJheVJlZltpXTsKLQotQSBwb2ludGVyIGlzIGxpa2UgYW4gYXJyYXkgcmVmZXJlbmNl
IHdpdGggb25lIGVsZW1lbnQuIEl0J3MgcG9zc2libGUgdG8gcGVyZm9ybSB0aGlzIGNvbnZlcnNp
b246Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmID0gQHB0cjE7Ci0gICAgcmVmWzBdIC8vIEVxdWl2
YWxlbnQgdG8gXnB0cjEuCi0gICAgcmVmLmxlbmd0aCAvLyAwIGlmIHB0cjEgd2FzIG51bGwsIDEg
aWYgcHRyMSB3YXMgbm90IG51bGwuCi0KLVNpbWlsYXJseSwgdXNpbmcgYEBgIG9uIGEgbm9uLXBv
aW50ZXIgdmFsdWUgcmVzdWx0cyBpbiBhIHJlZmVyZW5jZSBvZiBsZW5ndGggMToKLQotICAgIGlu
dCB4OwotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAeDsKLSAgICByZWZbMF0gLy8gQWxpYXNlcyB4
LgotICAgIHJlZi5sZW5ndGggLy8gUmV0dXJucyAxLgotCi1JdCdzIG5vdCBsZWdhbCB0byB1c2Ug
YEBgIG9uIGFuIGFycmF5IHJlZmVyZW5jZToKLQotICAgIHRocmVhZCBpbnRbXSByZWY7Ci0gICAg
dGhyZWFkIGludFtdW10gcmVmZXJlZiA9IEByZWY7IC8vIEVycm9yIQotCi0jIyBHZW5lcmljcwot
Ci1XU0wgc3VwcG9ydHMgZ2VuZXJpYyB0eXBlcyB1c2luZyBhIHNpbXBsZSBzeW50YXguIFdTTCdz
IGdlbmVyaWMgYXJlIGRlc2lnbmVkIHRvIGludGVncmF0ZSBjbGVhbmx5IGludG8gdGhlIGNvbXBp
bGVyIHBpcGVsaW5lOgotCi0tIEdlbmVyaWNzIGhhdmUgdW5hbWJpZ3VvdXMgc3ludGF4LgotLSBH
ZW5lcmljIGZ1bmN0aW9ucyBjYW4gYmUgdHlwZSBjaGVja2VkIGJlZm9yZSB0aGV5IGFyZSBpbnN0
YW50aWF0ZWQuCi0KLVNlbWFudGljIGVycm9ycyBpbnNpZGUgZ2VuZXJpYyBmdW5jdGlvbnMgc2hv
dyB1cCBvbmNlIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZ2VuZXJpYyBm
dW5jdGlvbiBpcyBpbnN0YW50aWF0ZWQuCi0KLVRoaXMgaXMgYSBzaW1wbGUgZ2VuZXJpYyBmdW5j
dGlvbjoKLQotICAgIFQgaWRlbnRpdHk8VD4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIFQgdG1w
ID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0bXA7Ci0gICAgfQotCi1XU0wgYWxzbyBzdXBwb3J0
cyBzdHJ1Y3RzLCB3aGljaCBhcmUgYWxzbyBhbGxvd2VkIHRvIGJlIGdlbmVyaWM6Ci0KLSAgICAv
LyBOb3QgZ2VuZXJpYy4KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAg
IGRvdWJsZSB5OwotICAgIH0KLSAgICAvLyBHZW5lcmljLgotICAgIHN0cnVjdCBCYXI8VCwgVT4g
ewotICAgICAgICBUIHg7Ci0gICAgICAgIFUgeTsKLSAgICB9Ci0KLVR5cGUgcGFyYW1ldGVycyBj
YW4gYWxzbyBiZSBjb25zdGFudCBleHByZXNzaW9ucy4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lk
IGluaXRpYWxpemVBcnJheTxULCB1aW50IGxlbmd0aD4odGhyZWFkIFRbbGVuZ3RoXV4gYXJyYXks
IFQgdmFsdWUpCi0gICAgewotICAgICAgICBmb3IgKHVpbnQgaSA9IGxlbmd0aDsgaS0tOykKLSAg
ICAgICAgICAgICheYXJyYXkpW2ldID0gdmFsdWU7Ci0gICAgfQotCi1Db25zdGFudCBleHByZXNz
aW9ucyBwYXNzZWQgYXMgdHlwZSBhcmd1bWVudHMgbXVzdCBvYmV5IGEgdmVyeSBuYXJyb3cgZGVm
aW5pdGlvbiBvZiBjb25zdGFudG5lc3MuIE9ubHkgbGl0ZXJhbHMgYW5kIHJlZmVyZW5jZXMgdG8g
b3RoZXIgY29uc3RhbnQgcGFyYW1ldGVycyBxdWFsaWZ5LgotCi1XU0wgaXMgZ3VhcmFudGVlZCB0
byBjb21waWxlIGdlbmVyaWNzIGJ5IGluc3RhbnRpYXRpb24uIFRoaXMgaXMgb2JzZXJ2YWJsZSwg
c2luY2UgZnVuY3Rpb25zIGNhbiByZXR1cm4gcG9pbnRlcnMgdG8gdGhlaXIgbG9jYWxzLiBIZXJl
IGlzIGFuIGV4YW1wbGUgb2YgdGhpcyBwaGVub21lbm9uOgotCi0gICAgdGhyZWFkIGludF4gYWxs
b2NhdGU8dWludD4oKQotICAgIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIHJldHVybiAmeDsK
LSAgICB9Ci0KLVRoZSBgYWxsb2NhdGVgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgZGlmZmVyZW50
IHBvaW50ZXIgZm9yIGVhY2ggdW5zaWduZWQgaW50ZWdlciBjb25zdGFudCBwYXNzZWQgYXMgYSB0
eXBlIHBhcmFtZXRlci4gVGhpcyBhbGxvY2F0aW9uIGlzIGNvbXBsZXRlbHkgc3RhdGljLCBzaW5j
ZSB0aGUgYHVpbnRgIHBhcmFtZXRlciBtdXN0IGJlIGdpdmVuIGEgY29tcGlsZS10aW1lIGNvbnN0
YW50LgotCi1XU0wncyBgdHlwZWRlZmAgdXNlcyBhIHNsaWdodGx5IGRpZmZlcmVudCBzeW50YXgg
dGhhbiBDLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAgICAg
VCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIHR5cGVkZWYgRkNvbXBsZXggPSBD
b21wbGV4PGZsb2F0PjsKLQotYHR5cGVkZWZgIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBnZW5lcmlj
IHR5cGVzOgotCi0gICAgc3RydWN0IEZvbzxULCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAg
VSB5OwotICAgIH0KLSAgICB0eXBlZGVmIEJhcjxUPiA9IEZvbzxULCBUPjsKLQotIyMgUHJvdG9j
b2xzCi0KLVByb3RvY29scyBlbmFibGUgZ2VuZXJpYyBmdW5jdGlvbnMgdG8gd29yayB3aXRoIGRh
dGEgb2YgZ2VuZXJpYyB0eXBlLiBCZWNhdXNlIGEgZnVuY3Rpb24gbXVzdCBiZSB0eXBlLWNoZWNr
YWJsZSBiZWZvcmUgaW5zdGFudGlhdGlvbiwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3QgYmUgbGVn
YWw6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAuLi4gfQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7
IC4uLiB9Ci0gICAgCi0gICAgVCBmb288VD4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiYXIodmFsdWUpOyAvLyBFcnJvciEKLSAgICB9Ci0KLVRoZSBjYWxsIHRvIGBiYXJgIGRvZXNu
J3QgdHlwZSBjaGVjayBiZWNhdXNlIHRoZSBjb21waWxlciBjYW5ub3Qga25vdyB0aGF0IGBmb288
VD5gIHdpbGwgYmUgaW5zdGFudGlhdGVkIHdpdGggYFQgPSBpbnRgIG9yIGBUID0gZG91YmxlYC4g
UHJvdG9jb2xzIGVuYWJsZSB0aGUgcHJvZ3JhbW1lciB0byB0ZWxsIHRoZSBjb21waWxlciB3aGF0
IHRvIGV4cGVjdCBvZiBhIHR5cGUgdmFyaWFibGU6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAuLi4g
fQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7IC4uLiB9Ci0gICAgCi0gICAgcHJvdG9jb2wgU3Vw
cG9ydHNCYXIgewotICAgICAgICBTdXBwb3J0c0JhciBiYXIoU3VwcG9ydHNCYXIpOwotICAgIH0K
LSAgICAKLSAgICBUIGZvbzxUOlN1cHBvcnRzQmFyPihUIHZhbHVlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGJhcih2YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIGludCB4ID0gZm9vKDQyKTsKLSAg
ICBkb3VibGUgeSA9IGZvbyg0LjIpOwotCi1Qcm90b2NvbHMgaGF2ZSBhdXRvbWF0aWMgcmVsYXRp
b25zaGlwcyB0byBvbmUgYW5vdGhlciBiYXNlZCBvbiB3aGF0IGZ1bmN0aW9ucyB0aGV5IGNvbnRh
aW46Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0K
LSAgICBwcm90b2NvbCBCYXIgewotICAgICAgICB2b2lkIGZvbyhCYXIpOwotICAgICAgICB2b2lk
IGJhcihCYXIpOwotICAgIH0KLSAgICB2b2lkIGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAg
IHZvaWQgYnV6ejxUOkJhcj4oVCB4KQotICAgIHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJl
Y2F1c2UgQmFyIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiBGb28uICAgIAotICAgIH0KLQotUHJvdG9j
b2xzIGNhbiBhbHNvIG1peCBvdGhlciBwcm90b2NvbHMgaW4gZXhwbGljaXRseS4gTGlrZSBpbiB0
aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGV4YW1wbGUgYmVsb3cgcmVsaWVzIG9uIHRoZSBmYWN0IHRo
YXQgYEJhcmAgaXMgYSBtb3JlIHNwZWNpZmljIHByb3RvY29sIHRoYW4gYEZvb2AuIEhvd2V2ZXIs
IHRoaXMgZXhhbXBsZSBkZWNsYXJlcyB0aGlzIGV4cGxpY2l0bHkgKGBwcm90b2NvbCBCYXIgOiBG
b29gKSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGxhbmd1YWdlIHRvIGluZmVyIGl0OgotCi0g
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsKLSAgICB9Ci0gICAgcHJv
dG9jb2wgQmFyIDogRm9vIHsKLSAgICAgICAgdm9pZCBiYXIoQmFyKTsKLSAgICB9Ci0gICAgdm9p
ZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAgICB2b2lkIGJ1eno8VDpCYXI+KFQgeCkKLSAg
ICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBiZWNhdXNlIEJhciBpcyBtb3JlIHNwZWNpZmlj
IHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLSMjIE92ZXJsb2FkaW5nCi0KLVdTTCBzdXBwb3J0cyBv
dmVybG9hZGluZyB2ZXJ5IHNpbWlsYXJseSB0byBob3cgQysrIGRvZXMgaXQuIEZvciBleGFtcGxl
OgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAgIHZvaWQgZm9vKGRvdWJsZSk7IC8v
IDIKLSAgICAKLSAgICBpbnQgeDsKLSAgICBmb28oeCk7IC8vIGNhbGxzIDEKLSAgICAKLSAgICBk
b3VibGUgeTsKLSAgICBmb28oeSk7IC8vIGNhbGxzIDIKLQotV1NMIGF1dG9tYXRpY2FsbHkgc2Vs
ZWN0cyB0aGUgbW9zdCBzcGVjaWZpYyBvdmVybG9hZCBpZiBnaXZlbiBtdWx0aXBsZSBjaG9pY2Vz
LiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lkIGZv
byhkb3VibGUpOyAvLyAyCi0gICAgdm9pZCBmb288VD4oVCk7ICAgLy8gMwotCi0gICAgZm9vKDEp
OyAvLyBjYWxscyAxCi0gICAgZm9vKDEuKTsgLy8gY2FsbHMgMgotICAgIGZvbygxdSk7IC8vIGNh
bGxzIDMKLQotR2VuZXJpYyBmdW5jdGlvbnMgbGlrZSBgZm9vPFQ+YCBjYW4gYmUgY2FsbGVkIHdp
dGggb3Igd2l0aG91dCBhbGwgb2YgdGhlaXIgdHlwZSBhcmd1bWVudHMgc3VwcGxpZWQuIElmIHRo
ZXkgYXJlIG5vdCBzdXBwbGllZCwgdGhlIGZ1bmN0aW9uIHBhcnRpY2lwYXRlcyBpbiBvdmVybG9h
ZCByZXNvbHV0aW9uIGxpa2UgYW55IG90aGVyIGZ1bmN0aW9uIHdvdWxkLiBGdW5jdGlvbnMgYXJl
IHJhbmtlZCBieSBob3cgc3BlY2lmaWMgdGhleSBhcmU7IGZ1bmN0aW9uIEEgaXMgbW9yZSBzcGVj
aWZpYyB0aGFuIGZ1bmN0aW9uIEIgaWYgQSdzIHBhcmFtZXRlciB0eXBlcyBjYW4gYmUgdXNlZCBh
cyBhcmd1bWVudCB0eXBlcyBmb3IgYSBjYWxsIHRvIEIgYnV0IG5vdCB2aWNlLXZlcnNhLiBJZiBv
bmUgZnVuY3Rpb25zIG1vcmUgc3BlY2lmaWMgdGhhbiBhbGwgb3RoZXJzIHRoZW4gdGhpcyBmdW5j
dGlvbiBpcyBzZWxlY3RlZCwgb3RoZXJ3aXNlIGEgdHlwZSBlcnJvciBpcyBpc3N1ZWQuCi0KLSMj
IE9wZXJhdG9yIE92ZXJsb2FkaW5nCi0KLU1hbnkgV1NMIG9wZXJhdGlvbnMgZGVzdWdhciB0byBj
YWxscyB0byBmdW5jdGlvbnMuIFRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkICpvcGVyYXRvciBv
dmVybG9hZHMqIGFuZCBhcmUgZGVjbGFyZWQgdXNpbmcgc3ludGF4IHRoYXQgaW52b2x2ZXMgdGhl
IGtleXdvcmQgYG9wZXJhdG9yYC4gVGhlIGZvbGxvd2luZyBvcGVyYXRpb25zIHJlc3VsdCBpbiBj
YWxscyB0byBvcGVyYXRvciBvdmVybG9hZHM6Ci0KLS0gTnVtZXJpY2FsIG9wZXJhdG9ycyAoYCtg
LCBgLWAsIGAqYCwgYC9gLCBldGMuKS4KLS0gSW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgKGArK2As
IGAtLWApLgotLSBDYXN0aW5nIChgdHlwZSh2YWx1ZSlgKS4KLS0gQWNjZXNzaW5nIHZhbHVlcyBp
biBhcnJheXMgKGBbXWAsIGBbXT1gLCBgJltdYCkuCi0tIEFjY2Vzc2luZyBmaWVsZHMgKGAuZmll
bGRgLCBgLmZpZWxkPWAsIGAmLmZpZWxkYCkuCi0KLVdTTCdzIG9wZXJhdG9yIG92ZXJsb2FkaW5n
IGlzIGRlc2lnbmVkIHRvIHN5bnRoZXNpemUgbWFueSBvcGVyYXRvcnMgZm9yIHlvdToKLQotLSBS
ZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRvcnMgbGlrZSBgKz1gIGFyZSBkZXN1Z2FyZWQgdG8gYSBs
b2FkIG9mIHRoZSBsb2FkIHZhbHVlLCB0aGUgdW5kZXJseWluZyBvcGVyYXRvciAobGlrZSBgK2Ap
LCBhbmQgYSBzdG9yZSBvZiB0aGUgbmV3IHZhbHVlLiBJdCdzIG5vdCBwb3NzaWJsZSB0byBvdmVy
cmlkZSBgKz1gLCBgLT1gLCBldGMuCi0tIGB4KytgIGFuZCBgKyt4YCBib3RoIGNhbGwgdGhlIHNh
bWUgb3BlcmF0b3Igb3ZlcmxvYWQuIGBvcGVyYXRvcisrYCB0YWtlcyB0aGUgb2xkIHZhbHVlIGFu
ZCByZXR1cm5zIGEgbmV3IG9uZTsgZm9yIGV4YW1wbGUgdGhlIGJ1aWx0LWluIGArK2AgZm9yIGBp
bnRgIGNvdWxkIGJlIHdyaXR0ZW4gYXM6IGBpbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0
dXJuIHZhbHVlICsgMTsgfWAuCi0tIGBvcGVyYXRvcj09YCBjYW4gYmUgb3ZlcmxvYWRlZCwgYnV0
IGAhPWAgaXMgYXV0b21hdGljYWxseSBzeW50aGVzaXplZCBhbmQgY2Fubm90IGJlIG92ZXJsb2Fk
ZWQuCi0KLVNvbWUgb3BlcmF0b3JzIGFuZCBvdmVybG9hZHMgYXJlIHJlc3RyaWN0ZWQ6Ci0KLS0g
YCFgLCBgJiZgLCBhbmQgYHx8YCBhcmUgYnVpbHQtaW4gb3BlcmF0aW9ucyBvbiB0aGUgYGJvb2xg
IHR5cGUuCi0tIFNlbGYtY2FzdHMgKGBUKFQpYCkgYXJlIGFsd2F5cyB0aGUgaWRlbnRpdHkgZnVu
Y3Rpb24uCi0tIENhc3RzIHdpdGggbm8gYXJndW1lbnRzIChgVCgpYCkgYWx3YXlzIHJldHVybiB0
aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhhdCB0eXBlLiBFdmVyeSB0eXBlIGhhcyBhIGRlZmF1bHQg
dmFsdWUgKGAwYCwgYG51bGxgLCBvciB0aGUgZXF1aXZhbGVudCBmb3IgZWFjaCBmaWVsZCkuCi0K
LUNhc3Qgb3ZlcmxvYWRpbmcgYWxsb3dzIGZvciBzdXBwb3J0aW5nIGNvbnZlcnNpb25zIGJldHdl
ZW4gdHlwZXMgYW5kIGZvciBjcmVhdGluZyBjb25zdHJ1Y3RvcnMgZm9yIGN1c3RvbSB0eXBlcy4g
SGVyZSBpcyBhbiBleGFtcGxlIG9mIGNhc3Qgb3ZlcmxvYWRpbmcgYmVpbmcgdXNlZCB0byBjcmVh
dGUgYSBjb25zdHJ1Y3RvcjoKLQotICAgIHN0cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAgICAgVCBy
ZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIG9wZXJhdG9yPFQ+IENvbXBsZXg8VD4o
VCByZWFsLCBUIGltYWcpCi0gICAgewotICAgICAgICBDb21wbGV4PFQ+IHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0LnJlYWwgPSByZWFsOwotICAgICAgICByZXN1bHQuaW1hZyA9IGltYWc7Ci0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIENvbXBsZXg8ZmxvYXQ+IGkgPSBD
b21wbGV4PGZsb2F0PigwLCAxKTsKLQotV1NMIHN1cHBvcnRzIGFjY2Vzc29yIG92ZXJsb2FkaW5n
IGFzIHBhcnQgb2YgdGhlIG9wZXJhdG9yIG92ZXJsb2FkaW5nIHN5bnRheC4gVGhpcyBnaXZlcyB0
aGUgcHJvZ3JhbW1lciBicm9hZCBwb3dlcnMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IEZv
byB7Ci0gICAgICAgIGludCB4OwotICAgICAgICBpbnQgeTsKLSAgICB9Ci0gICAgaW50IG9wZXJh
dG9yLnN1bShGb28gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7Ci0g
ICAgfQotCi1JdCdzIHBvc3NpYmxlIHRvIHNheSBgZm9vLnN1bWAgdG8gY2FsbCB0aGUgYG9wZXJh
dG9yLnN1bWAgZnVuY3Rpb24uIEJvdGggZ2V0dGVycyBhbmQgc2V0dGVycyBjYW4gYmUgcHJvdmlk
ZWQ6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAgICBk
b3VibGUgb3BlcmF0b3IuZG91YmxlVmFsdWUoRm9vIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGRvdWJsZSh2YWx1ZS52YWx1ZSk7Ci0gICAgfQotICAgIEZvbyBvcGVyYXRvci5kb3VibGVW
YWx1ZT0oRm9vIHZhbHVlLCBkb3VibGUgZG91YmxlVmFsdWUpCi0gICAgewotICAgICAgICB2YWx1
ZS52YWx1ZSA9IGludChkb3VibGVWYWx1ZSk7Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9
Ci0KLVByb3ZpZGluZyBib3RoIGdldHRlciBhbmQgc2V0dGVyIG92ZXJsb2FkcyBtYWtlcyBgZG91
YmxlVmFsdWVgIGJlaGF2ZSBhbG1vc3QgYXMgaWYgaXQgd2FzIGEgZmllbGQgb2YgYEZvb2AuIEZv
ciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRvIHNheToKLQotICAgIEZvbyBmb287Ci0gICAgZm9v
LnZhbHVlID0gNDI7Ci0gICAgZm9vLmRvdWJsZVZhbHVlICo9IDI7IC8vIE5vdyBmb28udmFsdWUg
aXMgODQKLQotSXQncyBhbHNvIHBvc3NpYmxlIHRvIHByb3ZpZGUgYW4gYWRkcmVzcy1nZXR0aW5n
IG92ZXJsb2FkIGNhbGxlZCBhbiAqYW5kZXIqOgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAg
IGludCB2YWx1ZTsKLSAgICB9Ci0gICAgdGhyZWFkIGludF4gb3BlcmF0b3ImLnZhbHVlQWxpYXMo
dGhyZWFkIEZvb14gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZmb28tPnZhbHVlOwotICAg
IH0KLQotUHJvdmlkaW5nIGp1c3QgdGhpcyBvdmVybG9hZCBmb3IgYSBwb2ludGVyIHR5cGUgaW4g
ZXZlcnkgYWRkcmVzcyBzcGFjZSBnaXZlcyB0aGUgc2FtZSBwb3dlciBhcyBvdmVybG9hZGluZyBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzLiBBZGRpdGlvbmFsbHksIGl0IG1ha2VzIGl0IHBvc3NpYmxlIHRv
IGAmZm9vLnZhbHVlQWxpYXNgLgotCi1UaGUgc2FtZSBvdmVybG9hZGluZyBwb3dlciBpcyBwcm92
aWRlZCBmb3IgYXJyYXkgYWNjZXNzZXMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IFZlY3Rv
cjxUPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVCB5OwotICAgIH0KLSAgICB0aHJlYWQgVF4g
b3BlcmF0b3ImW10odGhyZWFkIFReIHB0ciwgdWludCBpbmRleCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBpbmRleCA/ICZwdHItPnkgOiAmcHRyLT54OwotICAgIH0KLQotQWx0ZXJuYXRpdmVseSwg
aXQncyBwb3NzaWJsZSB0byBvdmVybG9hZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIChgb3BlcmF0b3Jb
XWAgYW5kIGBvcGVyYXRvcltdPWApLgotCi0jIE1hcHBpbmcgb2YgQVBJIGNvbmNlcHRzCi0KLVdT
TCBpcyBkZXNpZ25lZCB0byBiZSB1c2VmdWwgYXMgYm90aCBhIGdyYXBoaWNzIHNoYWRpbmcgbGFu
Z3VhZ2UgYW5kIGFzIGEgY29tcHV0YXRpb24gbGFuZ3VhZ2UuIEhvd2V2ZXIsIHRoZXNlIHR3byBl
bnZpcm9ubWVudHMgaGF2ZQotc2xpZ2h0bHkgZGlmZmVyZW50IHNlbWFudGljcy4KLQotV2hlbiB1
c2luZyBXU0wgYXMgYSBncmFwaGljcyBzaGFkaW5nIGxhbmd1YWdlLCB0aGVyZSBpcyBhIGRpc3Rp
bmN0aW9uIGJldHdlZW4gKmVudHJ5LXBvaW50cyogYW5kICpub24tZW50cnktcG9pbnRzKi4gRW50
cnkgcG9pbnRzIGFyZSB0b3AtbGV2ZWwgZnVuY3Rpb25zIHdoaWNoIGhhdmUgZWl0aGVyIHRoZSBg
dmVydGV4YCBvciBgZnJhZ21lbnRgIGtleXdvcmQgaW4gZnJvbnQgb2YgdGhlaXIgZGVjbGFyYXRp
b24uIEVudHJ5IHBvaW50cyBtYXkgbm90IGJlIGZvcndhcmQgZGVjbGFyZWQuIEFuIGVudHJ5IHBv
aW50IGFubm90YXRlZCB3aXRoIHRoZSBgdmVydGV4YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBh
cyBhIGZyYWdtZW50IHNoYWRlciwgYW5kIGFuIGVudHJ5IHBvaW50IGFubm90YXRlZCB3aXRoIHRo
ZSBgZnJhZ21lbnRgIGtleXdvcmQgbWF5IG5vdCBiZSB1c2VkIGFzIGEgdmVydGV4IHNoYWRlci4g
Tm8gYXJndW1lbnQgbm9yIHJldHVybiB2YWx1ZSBvZiBhbiBlbnRyeSBwb2ludCBtYXkgYmUgYSBw
b2ludGVyLiBFbnRyeSBwb2ludHMgbXVzdCBub3QgYWNjZXB0IHR5cGUgYXJndW1lbnRzIChhbHNv
IGtub3duIGFzICJnZW5lcmljcyIpLgotCi0jIyBWZXJ0ZXggZW50cnkgcG9pbnRzCi0KLVdlYkdQ
VSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIFdTTCB2ZXJ0ZXggc2hhZGVyIGluIGZvdXIgd2F5czoK
LQotLSBBdHRyaWJ1dGVzCi0tIEJ1ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBs
ZXJzCi0KLUVhY2ggb2YgdGhlc2UgQVBJIG9iamVjdHMgaXMgcmVmZXJyZWQgdG8gYnkgbmFtZSBm
cm9tIHRoZSBBUEkuIFZhcmlhYmxlcyBpbiBXU0wgYXJlIG5vdCBhbm5vdGF0ZWQgd2l0aCBleHRy
YSBBUEktdmlzaWJsZSBuYW1lcyAobGlrZSB0aGV5IGFyZSBpbiBzb21lIG90aGVyIGdyYXBoaWNz
IEFQSXMpLgotCi1WYXJpYWJsZXMgYXJlIHBhc3NlZCB0byB2ZXJ0ZXggc2hhZGVycyBhcyBhcmd1
bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQuIEVhY2ggYnVmZmVyIGlzIHJlcHJlc2VudGVk
IGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVmZXJlbmNlIHR5cGUgKHVzaW5nIHRoZSBg
W11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVycyBhcmUgcmVwcmVzZW50ZWQgYnkgYXJn
dW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNhbXBsZXJgIHR5cGVzLCByZXNwZWN0aXZl
bHkuIEFsbCBvdGhlciBub24tYnVpbHRpbiBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9p
bnQgYXJlIGltcGxpZWQgdG8gYmUgYXR0cmlidXRlcy4KLQotU29tZSBhcmd1bWVudHMgYXJlIHJl
Y29nbml6ZWQgYnkgdGhlIGNvbXBpbGVyIGZyb20gdGhlaXIgbmFtZSBhbmQgdHlwZS4gVGhlc2Ug
YXJndW1lbnRzIHByb3ZpZGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eSBpbmhlcmVudCBpbiB0aGUg
Z3JhcGhpY3MgcGlwZWxpbmUuIEZvciBleGFtcGxlLCBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBg
aW50IHdzbF92ZXJ0ZXhJRGAgcmVmZXJzIHRvIHRoZSBJRCBvZiB0aGUgY3VycmVudCB2ZXJ0ZXgs
IGFuZCBpcyBub3QgcmVjb2duaXplZCBhcyBhbiBhdHRyaWJ1dGUuIEFsbCBub24tYnVpbHRpbiBh
cmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGgg
YW4gQVBJIG9iamVjdCB3aGVuZXZlciBhbnkgZHJhdyBjYWxsIHVzaW5nIHRoZSB2ZXJ0ZXggZW50
cnkgcG9pbnQgaXMgaW52b2tlZC4gT3RoZXJ3aXNlLCB0aGUgZHJhdyBjYWxsIHdpbGwgZmFpbC4K
LQotVGhlIG9ubHkgd2F5IHRvIHBhc3MgZGF0YSBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc2hhZGVyIHN0
YWdlcyB3aXRoaW4gYSBzaW5nbGUgZHJhdyBjYWxsIGlzIGJ5IHJldHVybiB2YWx1ZS4gQW4gZW50
cnkgcG9pbnQgbXVzdCBpbmRpY2F0ZSB0aGF0IGl0IHJldHVybnMgYSBjb2xsZWN0aW9uIG9mIHZh
bHVlcyBjb250YWluZWQgd2l0aGluIGEgc3RydWN0dXJlLiBFdmVyeSB2YXJpYWJsZSBpbnNpZGUg
dGhpcyBzdHJ1Y3R1cmUsIHJlY3Vyc2l2ZWx5LCBpcyBwYXNzZWQgdG8gdGhlIG5leHQgc3RhZ2Ug
aW4gdGhlIGdyYXBoaWNzIHBpcGVsaW5lLiBNZW1iZXJzIG9mIHRoaXMgc3RydWN0IG1heSBhbHNv
IGJlIG91dHB1dCBidWlsdC1pbiB2YXJpYWJsZXMuIEZvciBleGFtcGxlLCBhIHZlcnRleCBlbnRy
eSBwb2ludCBtYXkgcmV0dXJuIGEgc3RydWN0IHdoaWNoIGNvbnRhaW5zIGEgbWVtYmVyIGBmbG9h
dDQgd3NsX1Bvc2l0aW9uYCwgYW5kIHRoaXMgdmFyaWFibGUgd2lsbCByZXByZXNlbnQgdGhlIHJh
c3Rlcml6ZWQgcG9zaXRpb24gb2YgdGhlIHZlcnRleC4gQnVmZmVycyAoYXMgZGVzY3JpYmVkIGJ5
IFdTTCBhcnJheSByZWZlcmVuY2VzKSwgdGV4dHVyZXMsIGFuZCBzYW1wbGVycyBtdXN0IG5vdCBi
ZSBwcmVzZW50IGluIHRoaXMgcmV0dXJuZWQgc3RydWN0LiBCdWlsdC1pbiB2YXJpYWJsZXMgbXVz
dCBuZXZlciBhcHBlYXIgdHdpY2UgaW5zaWRlIHRoZSByZXR1cm5lZCBzdHJ1Y3R1cmUuCi0KLSMj
IEZyYWdtZW50IGVudHJ5IHBvaW50cwotCi1GcmFnbWVudCBlbnRyeSBwb2ludHMgbWF5IGFjY2Vw
dCBvbmUgYXJndW1lbnQgd2l0aCB0aGUgdHlwZSB0aGF0IHRoZSBwcmV2aW91cyBzaGFkZXIgc3Rh
Z2UgcmV0dXJuZWQuIFRoZSBhcmd1bWVudCBuYW1lIGZvciB0aGlzIGFyZ3VtZW50IG11c3QgYmUg
YHN0YWdlSW5gLiBJbiBhZGRpdGlvbiB0byB0aGlzIGFyZ3VtZW50LCBmcmFnbWVudCBlbnRyeSBw
b2ludHMgbWF5IGFjY2VwdCBidWZmZXJzLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIGFzIGFyZ3Vt
ZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB2ZXJ0ZXggZW50cnkgcG9pbnRzIGFjY2VwdCB0aGVt
LiBGcmFnbWVudCBlbnRyeSBwb2ludHMgYWxzbyBtdXN0IHJldHVybiBhIHN0cnVjdCwgYW5kIGFs
bCBtZW1iZXJzIG9mIHRoaXMgc3RydWN0IG11c3QgYmUgYnVpbHQtaW4gdmFyaWFibGVzLiBUaGUg
c2V0IG9mIHJlY29nbml6ZWQgYnVpbHQtaW4gdmFyaWFibGVzIHdoaWNoIG1heSBiZSBhY2NlcHRl
ZCBvciByZXR1cm5lZCBmcm9tIGFuIGVudHJ5IHBvaW50IGlzIGRpZmZlcmVudCBiZXR3ZWVuIGFs
bCB0eXBlcyBvZiBlbnRyeSBwb2ludHMuCi0KLUZvciBleGFtcGxlLCB0aGlzIHdvdWxkIGJlIGEg
dmFsaWQgZ3JhcGhpY3MgcHJvZ3JhbToKLQotICAgIHN0cnVjdCBWZXJ0ZXhJbnB1dCB7Ci0gICAg
ICAgIGZsb2F0MiBwb3NpdGlvbjsKLSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAgICAK
LSAgICBzdHJ1Y3QgVmVydGV4T3V0cHV0IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Qb3NpdGlvbjsK
LSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAgICAKLSAgICBzdHJ1Y3QgRnJhZ21lbnRP
dXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX0NvbG9yOwotICAgIH0KLSAgICAKLSAgICB2ZXJ0
ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkgewot
ICAgICAgICBWZXJ0ZXhPdXRwdXQgcmVzdWx0OwotICAgICAgICByZXN1bHQud3NsX1Bvc2l0aW9u
ID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAwLiwgMS4pOwotICAgICAgICByZXN1bHQu
Y29sb3IgPSB2ZXJ0ZXhJbnB1dC5jb2xvcjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9
Ci0gICAgCi0gICAgZnJhZ21lbnQgRnJhZ21lbnRPdXRwdXQgZnJhZ21lbnRTaGFkZXIoVmVydGV4
T3V0cHV0IHN0YWdlSW4pIHsKLSAgICAgICAgRnJhZ21lbnRPdXRwdXQgcmVzdWx0OwotICAgICAg
ICByZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0KHN0YWdlSW4uY29sb3IsIDEuKTsKLSAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSMjIENvbXB1dGUgZW50cnkgcG9pbnRzCi0KLVdlYkdQ
VSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIGNvbXB1dGUgc2hhZGVyIGluIHRocmVlIHdheXM6Ci0K
LS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEKLS0gU2FtcGxlcnMKLQotQ29tcHV0ZSBl
bnRyeSBwb2ludHMgc3RhcnQgd2l0aCB0aGUga2V5d29yZCBgY29tcHV0ZWAuIFRoZSByZXR1cm4g
dHlwZSBmb3IgYSBjb21wdXRlIGVudHJ5IHBvaW50IG11c3QgYmUgYHZvaWRgLiBFYWNoIGJ1ZmZl
ciBpcyByZXByZXNlbnRlZCBhcyBhbiBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0
eXBlICh1c2luZyB0aGUgYFtdYCBzeW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJl
cHJlc2VudGVkIGJ5IGFyZ3VtZW50cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0
eXBlcywgcmVzcGVjdGl2ZWx5LiBDb21wdXRlIGVudHJ5IHBvaW50cyBtYXkgYWxzbyBhY2NlcHQg
YnVpbHQtaW4gdmFyaWFibGVzIGFzIGFyZ3VtZW50cy4gQXJndW1lbnRzIG9mIGFueSBvdGhlciB0
eXBlIGFyZSBkaXNhbGxvd2VkLiBBcmd1bWVudHMgbWF5IG5vdCB1c2UgdGhlIGB0aHJlYWRncm91
cGAgbWVtb3J5IHNwYWNlLgotCi0jIEVycm9yIGhhbmRsaW5nCi0KLUVycm9ycyBtYXkgb2NjdXIg
ZHVyaW5nIHNoYWRlciBwcm9jZXNzaW5nLiBGb3IgZXhhbXBsZSwgdGhlIHNoYWRlciBtYXkgYXR0
ZW1wdCB0byBkZXJlZmVyZW5jZSBhIGBudWxsYCBhcnJheSByZWZlcmVuY2UuIElmIHRoaXMgb2Nj
dXJzLCB0aGUgc2hhZGVyIHN0YWdlIGltbWVkaWF0ZWx5IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHku
IFRoZSBlbnRyeSBwb2ludCBpbW1lZGlhdGVseSByZXR1cm5zIGEgc3RydWN0IHdpdGggYWxsIGZp
ZWxkcyBzZXQgdG8gMC4gQWZ0ZXIgdGhpcyBldmVudCwgc3Vic2VxdWVudCBzaGFkZXIgc3RhZ2Vz
IHdpbGwgcHJvY2VlZCBhcyBpZiB0aGVyZSB3YXMgbm8gcHJvYmxlbS4KLQotQnVmZmVyIGFuZCB0
ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYmVmb3JlIHRoZSBlcnJvciBhbGwgY29tcGxldGUsIGFu
ZCBoYXZlIHRoZSBzYW1lIHNlbWFudGljcyBhcyBpZiBubyBlcnJvciBoYWQgb2NjdXJyZWQuIEJ1
ZmZlciBhbmQgdGV4dHVyZSByZWFkcyBhbmQgd3JpdGVzIGFmdGVyIHRoZSBlcnJvciBkbyBub3Qg
b2NjdXIuCi0KLSMgU3VtbWFyeQotCi1XU0wgaXMgYSB0eXBlLXNhZmUgbGFuZ3VhZ2UgYmFzZWQg
b24gQyBzeW50YXguIEl0IGVsaW1pbmF0ZXMgc29tZSBDIGZlYXR1cmVzLCBsaWtlIHVuaW9ucyBh
bmQgcG9pbnRlciBjYXN0cywgYnV0IGFkZHMgb3RoZXIgbW9kZXJuIGZlYXR1cmVzIGluIHRoZWly
IHBsYWNlLCBsaWtlIGdlbmVyaWNzIGFuZCBvdmVybG9hZGluZy4KLQotIyBBZGRpdGlvbmFsIExp
bWl0YXRpb25zCi0KLVRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBsaW1pdGF0aW9ucyBtYXkgYmUg
cGxhY2VkIG9uIGEgV1NMIHByb2dyYW06Ci0KLS0gYGRldmljZWAsIGBjb25zdGFudGAsIGFuZCBg
dGhyZWFkZ3JvdXBgIHBvaW50ZXJzIGNhbm5vdCBwb2ludCB0byBkYXRhIHRoYXQgbWF5IGhhdmUg
cG9pbnRlcnMgaW4gaXQuIFRoaXMgc2FmZXR5IGNoZWNrIGlzIG5vdCBkb25lIGFzIHBhcnQgb2Yg
dGhlIG5vcm1hbCB0eXBlIHN5c3RlbSBjaGVja3MuIEl0J3MgcGVyZm9ybWVkIG9ubHkgYWZ0ZXIg
aW5zdGFudGlhdGlvbi4KLS0gUG9pbnRlcnMgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGNvbGxlY3Rp
dmVseSwgKnJlZmVyZW5jZXMqKSBtYXkgYmUgcmVzdHJpY3RlZCB0byBzdXBwb3J0IGNvbXBpbGlu
ZyB0byBTUElSLVYgKmxvZ2ljYWwgbW9kZSouIEluIHRoaXMgbW9kZSwgYXJyYXlzIG11c3Qgbm90
IHRyYW5zaXRpdmVseSBob2xkIHJlZmVyZW5jZXMuIFJlZmVyZW5jZXMgbXVzdCBiZSBpbml0aWFs
aXplZCB1cG9uIGRlY2xhcmF0aW9uIGFuZCBuZXZlciByZWFzc2lnbmVkLiBGdW5jdGlvbnMgdGhh
dCByZXR1cm4gcmVmZXJlbmNlcyBtdXN0IGhhdmUgb25lIHJldHVybiBwb2ludC4gVGVybmFyeSBl
eHByZXNzaW9ucyBtYXkgbm90IHJldHVybiByZWZlcmVuY2VzLgotLSBHcmFwaGljcyBlbnRyeSBw
b2ludHMgbXVzdCB0cmFuc2l0aXZlbHkgbmV2ZXIgcmVmZXIgdG8gdGhlIGB0aHJlYWRncm91cGAg
bWVtb3J5IHNwYWNlLgotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1dyYXBDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENo
ZWNrZXIuanMKaW5kZXggNGNhZGM3ZDBkOWU2YTZkZmRhNTU1ZGFiODlkMDI3MTc3MGRiZDlhNy4u
Y2Y2ZTlmYjE5ZWY3NWU3ODkwY2Q1NWE5ZTlhYmZmYzE4YjVjNzNjOCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKQEAgLTUyLDExICs1Miw2IEBAIGNs
YXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiRm91bmQgdW53cmFwcGVkICIgKyBub2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIgKyBv
cmlnaW5TdHJpbmcobm9kZSkgKyAiOiAiICsgbm9kZSArICJcbldoaWxlIHZpc2l0aW5nICIgKyB0
aGlzLl9zdGFydE5vZGUuY29uc3RydWN0b3IubmFtZSArICIgYXQgIiArIG9yaWdpblN0cmluZyh0
aGlzLl9zdGFydE5vZGUub3JpZ2luKSArICI6ICIgKyB0aGlzLl9zdGFydE5vZGUpOwogICAgIH0K
ICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1
bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5v
ZGUpOwpAQCAtNzcsMTEgKzcyLDYgQEAgY2xhc3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7CiAgICAgfQogICAgIAotICAg
IHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9mb3VuZFVud3Jh
cHBlZChub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgLy8gTk9URTogVGhpcyBkb2VzIG5vdCBrbm93
IGhvdyB0byBoYW5kbGUgTmF0aXZlVHlwZUluc3RhbmNlLCBiZWNhdXNlIHRoaXMgaXMgbmV2ZXIg
Y2FsbGVkIG9uIGluc3RhbnRpYXRlZAogICAgIC8vIGNvZGUuIE9uY2UgY29kZSBpcyBpbnN0YW50
aWF0ZWQsIHlvdSBjYW5ub3QgaW5zdGFudGlhdGUgaXQgZnVydGhlci4KICAgICAKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDgwOTRiMTkzNzgxYjRhYTliMGMz
OTA5ZTlhOTFkMjgxNWYyYjJhYmEuLjVhZjBmNGZhZDdjYTE5NGUzZmQ3MDExOGRkOWQ2ZGU1MWY2
ZWJiZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0
bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMzYs
NyArMzYsNiBAQAogPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb25z
dGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJh
bWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTU1LDcgKzU0LDYg
QEAKIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iRmllbGQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC03Myw3ICs3MSw2IEBACiA8c2Ny
aXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Iklu
bGluZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBA
IC0xMDMsMTAgKzEwMCw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
UHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQ
dHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3Nj
cmlwdD4KQEAgLTEzMSwxMCArMTI0LDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0z
NDQsNyArMzM0LDcgQEAgZnVuY3Rpb24gc2VsZWN0ZWRTaGFkZXJzQ2hhbmdlZChmcm9tQ29tcGls
YXRpb24gPSBmYWxzZSkgewogICAgIGN1cnJlbnRWZXJ0ZXhTaGFkZXIgPSBhdmFpbGFibGVWZXJ0
ZXhTaGFkZXJzW3ZlcnRleFNoYWRlclNlbGVjdC5zZWxlY3RlZEluZGV4XTsKICAgICBjdXJyZW50
RnJhZ21lbnRTaGFkZXIgPSBhdmFpbGFibGVGcmFnbWVudFNoYWRlcnNbZnJhZ21lbnRTaGFkZXJT
ZWxlY3Quc2VsZWN0ZWRJbmRleF07CiAKLSAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gcHJvZ3Jh
bS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShjdXJyZW50VmVydGV4U2hhZGVyLCBbXSk7Cisg
ICAgaW5saW5lZFZlcnRleFNoYWRlciA9IGN1cnJlbnRWZXJ0ZXhTaGFkZXI7CiAgICAgX2lubGlu
ZUZ1bmN0aW9uKHByb2dyYW0sIGlubGluZWRWZXJ0ZXhTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChj
dXJyZW50VmVydGV4U2hhZGVyKSk7CiAKICAgICBhbGxBcmd1bWVudEluZm9zID0gW107CkBAIC00
MjYsNyArNDE2LDcgQEAgZnVuY3Rpb24gcnVuU2hhZGVycygpIHsKICAgICAgICAgZnVuYy5wYXJh
bWV0ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1lbnRFUHRyc1tpXS5lUHRyLCBhcmd1bWVudEVQ
dHJzW2ldLnNpemUpOwogICAgIGxldCByZXN1bHQgPSBuZXcgRXZhbHVhdG9yKHByb2dyYW0pLnJ1
bkZ1bmMoZnVuYyk7CiAKLSAgICBpbmxpbmVkRnJhZ21lbnRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJ
bnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRGcmFnbWVudFNoYWRlciwgW10pOworICAgIGlu
bGluZWRGcmFnbWVudFNoYWRlciA9IGN1cnJlbnRGcmFnbWVudFNoYWRlcjsKICAgICBfaW5saW5l
RnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZEZyYWdtZW50U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQo
Y3VycmVudEZyYWdtZW50U2hhZGVyKSk7CiAgICAgZnVuYyA9IGlubGluZWRGcmFnbWVudFNoYWRl
cjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346826</attachid>
            <date>2018-08-08 23:37:29 -0700</date>
            <delta_ts>2018-08-09 10:13:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188400-20180808233728.patch</filename>
            <type>text/plain</type>
            <size>327811</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzE5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjJjM2NjNWU2MGY3YTI5OTg0MTVkZGUyM2FkYTllN2Iy
ZTQ0ODQ4MS4uMzQwNzlkOTliNDUzNjZhOWE4OTRhNzAzNTZmOGYyNDQ3NjI0MTc2YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmZXJlbmNlIGluIFdlYkJhY2tGb3J3YXJkTGlzdDo6
cmVzdG9yZUZyb21TdGF0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDE1
ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2NTguLmEwN2VkNmM1MWE3YTg1MGY2
NDUxMzM0Yjk3ZmFhNmEyNjkwMzNlZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwu
anMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5qcyIpOwogbG9hZCgiQ2xvbmVQcm9n
cmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNvbnN0ZXhwckZv
bGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyIpOwogbG9hZCgiQ29u
dGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyIpOwog
bG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBAIC03Nyw3ICs3Niw2IEBAIGxvYWQo
IkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVybmFsT3JpZ2luLmpzIik7CiBsb2Fk
KCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVzLmpzIik7Ci1sb2FkKCJGbGF0dGVu
UHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJl
ci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBsb2FkKCJGbG9hdExpdGVyYWxUeXBl
LmpzIik7CkBAIC05NSw3ICs5Myw2IEBAIGxvYWQoIkluZGV4RXhwcmVzc2lvbi5qcyIpOwogbG9h
ZCgiSW5mZXJUeXBlc0ZvckNhbGwuanMiKTsKIGxvYWQoIklubGluZS5qcyIpOwogbG9hZCgiSW5s
aW5lci5qcyIpOwotbG9hZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIik7CiBsb2FkKCJJbnRM
aXRlcmFsLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiSW50cmluc2lj
cy5qcyIpOwpAQCAtMTI1LDEwICsxMjIsNiBAQCBsb2FkKCJQcmVwYXJlLmpzIik7CiBsb2FkKCJQ
cm9ncmFtLmpzIik7CiBsb2FkKCJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5q
cyIpOwogbG9hZCgiUHJvcGVydHlSZXNvbHZlci5qcyIpOwotbG9hZCgiUHJvdG9jb2wuanMiKTsK
LWxvYWQoIlByb3RvY29sRGVjbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xGdW5jRGVjbC5qcyIpOwot
bG9hZCgiUHJvdG9jb2xSZWYuanMiKTsKIGxvYWQoIlB0clR5cGUuanMiKTsKIGxvYWQoIlJlYWRN
b2RpZnlXcml0ZUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIlJlY3Vyc2lvbkNoZWNrZXIuanMiKTsK
QEAgLTE1MywxMCArMTQ2LDcgQEAgbG9hZCgiVHJhcFN0YXRlbWVudC5qcyIpOwogbG9hZCgiVHlw
ZURlZi5qcyIpOwogbG9hZCgiVHlwZURlZlJlc29sdmVyLmpzIik7CiBsb2FkKCJUeXBlT3JWYXJp
YWJsZVJlZi5qcyIpOwotbG9hZCgiVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIik7CiBsb2FkKCJU
eXBlUmVmLmpzIik7Ci1sb2FkKCJUeXBlVmFyaWFibGUuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJs
ZVRyYWNrZXIuanMiKTsKIGxvYWQoIlR5cGVkVmFsdWUuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFs
LmpzIik7CiBsb2FkKCJVaW50TGl0ZXJhbFR5cGUuanMiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMKaW5kZXggODBhZTdkOTJhNGZhNjI2NjZkYjJhMmZm
NTIyMGQxNDlhN2YzOGU5Yy4uMjE2YTdlMmUzM2RlOTkxYjA2YWI2MzZkYjVjZmNhYjQwNWQ4ZWUy
OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIuanMKQEAg
LTM1LDExICszNSw2IEBAIGNsYXNzIEF1dG9XcmFwcGVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAg
ICAgICByZXR1cm4gbm9kZTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFy
YW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVmFyaWFibGVSZWYud3JhcChub2Rl
KTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAg
ICAgICByZXR1cm4gVmFyaWFibGVSZWYud3JhcChub2RlKTsKQEAgLTYwLDExICs1NSw2IEBAIGNs
YXNzIEF1dG9XcmFwcGVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICByZXR1cm4gVHlwZVJl
Zi53cmFwKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChub2RlKTsKLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRHZW5lcmljTGl0ZXJhbFR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBu
b2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJl
c3Npb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5q
cwppbmRleCBiNWFlMGZlNDlmY2VkYzhmYTc2YTY2NzkzY2ZlMGNiMWYwOGI0NTcxLi5mMDY2YWMz
MjBhOWRjZTQyMWQ0ZjhlZmQzNjMzM2EyNGVhNzYyZmJlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcwpAQCAtMjUsMTEgKzI1LDEwIEBACiAi
dXNlIHN0cmljdCI7CiAKIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExp
c3QpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCBhcmd1bWVudExpc3QpCiAgICAgewog
ICAgICAgICBzdXBlcihvcmlnaW4pOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAg
ICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2Fy
Z3VtZW50TGlzdCA9IGFyZ3VtZW50TGlzdDsKICAgICAgICAgdGhpcy5mdW5jID0gbnVsbDsKICAg
ICAgICAgdGhpcy5faXNDYXN0ID0gZmFsc2U7CkBAIC0zNyw3MSArMzYsNDEgQEAgY2xhc3MgQ2Fs
bEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICB9CiAgICAgCiAgICAgZ2V0IG5h
bWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJl
dHVybiB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGFyZ3VtZW50TGlzdCgpIHsgcmV0
dXJuIHRoaXMuX2FyZ3VtZW50TGlzdDsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJldHVybiB0aGlz
Ll9pc0Nhc3Q7IH0KICAgICBnZXQgcmV0dXJuVHlwZSgpIHsgcmV0dXJuIHRoaXMuX3JldHVyblR5
cGU7IH0KICAgICAKLSAgICBzdGF0aWMgcmVzb2x2ZShvcmlnaW4sIHBvc3NpYmxlT3ZlcmxvYWRz
LCB0eXBlUGFyYW1ldGVyc0luU2NvcGUsIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlz
dCwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKKyAgICBzdGF0aWMgcmVzb2x2ZShvcmlnaW4s
IHBvc3NpYmxlT3ZlcmxvYWRzLCBuYW1lLCBhcmd1bWVudExpc3QsIGFyZ3VtZW50VHlwZXMsIHJl
dHVyblR5cGUpCiAgICAgewotICAgICAgICBsZXQgY2FsbCA9IG5ldyBDYWxsRXhwcmVzc2lvbihv
cmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCk7CisgICAgICAgIGxldCBj
YWxsID0gbmV3IENhbGxFeHByZXNzaW9uKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRMaXN0KTsKICAg
ICAgICAgY2FsbC5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlcy5tYXAoYXJndW1lbnQgPT4g
YXJndW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpKTsKICAgICAgICAgY2FsbC5wb3NzaWJs
ZU92ZXJsb2FkcyA9IHBvc3NpYmxlT3ZlcmxvYWRzOwogICAgICAgICBpZiAocmV0dXJuVHlwZSkK
ICAgICAgICAgICAgIGNhbGwuc2V0Q2FzdERhdGEocmV0dXJuVHlwZSk7Ci0gICAgICAgIHJldHVy
biB7Y2FsbCwgcmVzdWx0VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzLCB0eXBl
UGFyYW1ldGVyc0luU2NvcGUsIHR5cGVBcmd1bWVudHMpfTsKKyAgICAgICAgcmV0dXJuIHtjYWxs
LCByZXN1bHRUeXBlOiBjYWxsLnJlc29sdmUocG9zc2libGVPdmVybG9hZHMpfTsKICAgICB9CiAg
ICAgCi0gICAgcmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3Bl
LCB0eXBlQXJndW1lbnRzKQorICAgIHJlc29sdmUocG9zc2libGVPdmVybG9hZHMpCiAgICAgewog
ICAgICAgICBpZiAoIXBvc3NpYmxlT3ZlcmxvYWRzKQogICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRGlkIG5vdCBmaW5kIGFueSBmdW5j
dGlvbnMgbmFtZWQgIiArIHRoaXMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgb3Zlcmxv
YWQgPSBudWxsOwogICAgICAgICBsZXQgZmFpbHVyZXMgPSBbXTsKLSAgICAgICAgZm9yIChsZXQg
dHlwZVBhcmFtZXRlciBvZiB0eXBlUGFyYW1ldGVyc0luU2NvcGUpIHsKLSAgICAgICAgICAgIGlm
ICghKHR5cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUpKQotICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKCF0eXBlUGFyYW1ldGVyLnByb3RvY29sKQot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgbGV0IHNpZ25hdHVyZXMgPQot
ICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIucHJvdG9jb2wucHJvdG9jb2xEZWNsLnNpZ25h
dHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKHRoaXMubmFtZSwgdHlwZVBhcmFtZXRlcik7Ci0g
ICAgICAgICAgICBpZiAoIXNpZ25hdHVyZXMpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoc2lnbmF0dXJlcywgdGhp
cy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7Ci0g
ICAgICAgICAgICBpZiAob3ZlcmxvYWQuZnVuYykKLSAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKKyAgICAgICAgICAgIHBv
c3NpYmxlT3ZlcmxvYWRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7Cisg
ICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewogICAgICAgICAgICAgZmFpbHVyZXMucHVzaCgu
Li5vdmVybG9hZC5mYWlsdXJlcyk7Ci0gICAgICAgICAgICBvdmVybG9hZCA9IG51bGw7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFvdmVybG9hZCkgewotICAgICAgICAgICAgb3ZlcmxvYWQgPSBy
ZXNvbHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAgIHBvc3NpYmxlT3ZlcmxvYWRzLCB0
aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBlcywgdGhpcy5yZXR1cm5UeXBlKTsK
LSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewotICAgICAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgICAgIGxldCBtZXNz
YWdlID0gIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3Ig
Y2FsbCB3aXRoICI7Ci0gICAgICAgICAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5n
dGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gInR5cGUgYXJndW1lbnRzIDwiICsg
dGhpcy50eXBlQXJndW1lbnRzICsgIj4gYW5kICI7Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSAr
PSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFyZ3VtZW50VHlwZXMgKyAiKSI7Ci0gICAgICAg
ICAgICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkKLSAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7Ci0gICAgICAgICAgICAg
ICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAi
LCBidXQgY29uc2lkZXJlZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpCi0gICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdl
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCB0eXBlQXJndW1l
bnRUeXBlID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAgICAgIGxldCB0eXBlUGFyYW1ldGVy
ID0gb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAgICAgIGlmICghKHR5
cGVQYXJhbWV0ZXIgaW5zdGFuY2VvZiBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFtZXRlci50eXBlLmVx
dWFsc1dpdGhDb21taXQodHlwZUFyZ3VtZW50VHlwZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJBdCAiICsgdGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBjb25zdGV4cHIg
dHlwZSBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVzIG5vdCBlcXVhbDogYXJndW1lbnQgPSAi
ICsgdHlwZUFyZ3VtZW50VHlwZSArICIsIHBhcmFtZXRlciA9ICIgKyB0eXBlUGFyYW1ldGVyLnR5
cGUpOworICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5h
bWVkICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKKyAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOworICAg
ICAgICAgICAgaWYgKHRoaXMucmV0dXJuVHlwZSkKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9
IiBhbmQgcmV0dXJuIHR5cGUgIiArIHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIGlmIChm
YWlsdXJlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiLCBidXQgY29uc2lk
ZXJlZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpCisgICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsIG1lc3NhZ2UpOwogICAgICAgICB9CiAg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hcmd1bWVudFR5cGVzLmxlbmd0aDsgKytp
KSB7CiAgICAgICAgICAgICBsZXQgYXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzW2ld
OwotICAgICAgICAgICAgbGV0IHBhcmFtZXRlclR5cGUgPSBvdmVybG9hZC5mdW5jLnBhcmFtZXRl
cnNbaV0udHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICBvdmVy
bG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOwor
ICAgICAgICAgICAgbGV0IHBhcmFtZXRlclR5cGUgPSBvdmVybG9hZC5mdW5jLnBhcmFtZXRlcnNb
aV0udHlwZTsKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBhcmd1bWVudFR5cGUuZXF1YWxzV2l0
aENvbW1pdChwYXJhbWV0ZXJUeXBlKTsKICAgICAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmlu
ZyArICIgYXJndW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1YWwgYWZ0ZXIgdHlwZSBh
cmd1bWVudCBzdWJzdGl0dXRpb246IGFyZ3VtZW50ID0gIiArIGFyZ3VtZW50VHlwZSArICIsIHBh
cmFtZXRlciA9ICIgKyBwYXJhbWV0ZXJUeXBlKTsKQEAgLTExMiwxMCArODEsNyBAQCBjbGFzcyBD
YWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHJlc29sdmVUb092ZXJsb2Fk
KG92ZXJsb2FkKQogICAgIHsKICAgICAgICAgdGhpcy5mdW5jID0gb3ZlcmxvYWQuZnVuYzsKLSAg
ICAgICAgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRzID0gb3ZlcmxvYWQudHlwZUFyZ3VtZW50cy5t
YXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudCBpbnN0YW5jZW9mIFR5cGUgPyB0eXBlQXJn
dW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpIDogdHlwZUFyZ3VtZW50KTsKLSAgICAgICAg
dGhpcy5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzID0gdGhpcy5hY3R1YWxUeXBlQXJn
dW1lbnRzOwotICAgICAgICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1
YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFy
YW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZTsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgcmV0dXJuIHR5cGUiKTsKICAgICAgICAgcmVz
dWx0ID0gcmVzdWx0LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKQEAgLTEyNSwxMSArOTEsMTAg
QEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICAKICAgICBi
ZWNvbWVDYXN0KHJldHVyblR5cGUpCiAgICAgewotICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0g
bmV3IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFtZSwgdGhpcy5fdHlwZUFyZ3VtZW50cyk7
CisgICAgICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcgVHlwZVJlZih0aGlzLm9yaWdpbiwgdGhp
cy5uYW1lKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZS50eXBlID0gcmV0dXJuVHlwZTsKICAg
ICAgICAgdGhpcy5fbmFtZSA9ICJvcGVyYXRvciBjYXN0IjsKICAgICAgICAgdGhpcy5faXNDYXN0
ID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IFtdOwogICAgIH0KICAgICAK
ICAgICBzZXRDYXN0RGF0YShyZXR1cm5UeXBlKQpAQCAtMTQxLDggKzEwNiw2IEBAIGNsYXNzIENh
bGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgdG9TdHJpbmcoKQogICAgIHsK
ICAgICAgICAgcmV0dXJuICh0aGlzLmlzQ2FzdCA/ICJvcGVyYXRvciAiICsgdGhpcy5yZXR1cm5U
eXBlIDogdGhpcy5uYW1lKSArCi0gICAgICAgICAgICAiPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMg
KyAiPiIgKwotICAgICAgICAgICAgKHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA/ICI8PCIgKyB0
aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgKyAiPj4iIDogIiIpICsKICAgICAgICAgICAgICIoIiAr
IHRoaXMuYXJndW1lbnRMaXN0ICsgIikiOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwppbmRleCBmMGYwMzlmNTQ2MmQwNzgxZDgyYjM0
NjRjODc0Nzg3MTRjMGExNzM3Li43NDk1NzYwZjJjNWQ4MWQ4Mzk0NTZjZGU0YzQ1OTc3MGJjYzMz
MGZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rp
b24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpz
CkBAIC0yNSwxNyArMjUsMTcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogLy8gVGhpcyBhbGxvd3MgeW91
IHRvIHBhc3Mgc3RydWN0cyBhbmQgYXJyYXlzIGluLXBsYWNlLCBidXQgaXQncyBhIG1vcmUgYW5u
b3lpbmcgQVBJLgotZnVuY3Rpb24gY2FsbEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50TGlzdCkKK2Z1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBuYW1l
LCBhcmd1bWVudExpc3QpCiB7CiAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBhcmd1bWVudExpc3Qu
bWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnR5cGUpOwotICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9
IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRUeXBlcywgdHJ1ZSk7CisgICAgbGV0IGZ1bmNPckZhaWx1cmVzID0gcmVzb2x2ZUlubGlu
ZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVudFR5cGVzLCB0cnVlKTsKICAgICBpZiAo
IShmdW5jT3JGYWlsdXJlcyBpbnN0YW5jZW9mIEZ1bmMpKSB7CiAgICAgICAgIGxldCBmYWlsdXJl
cyA9IGZ1bmNPckZhaWx1cmVzOwotICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiPGNhbGxG
dW5jdGlvbj4iLCAiQ2Fubm90IHJlc29sdmUgZnVuY3Rpb24gY2FsbCAiICsgbmFtZSArICI8IiAr
IHR5cGVBcmd1bWVudHMgKyAiPigiICsgYXJndW1lbnRMaXN0ICsgIikiICsgKGZhaWx1cmVzLmxl
bmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOworICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcigiPGNhbGxGdW5jdGlvbj4iLCAiQ2Fubm90IHJlc29sdmUg
ZnVuY3Rpb24gY2FsbCAiICsgbmFtZSArICIoIiArIGFyZ3VtZW50TGlzdCArICIpIiArIChmYWls
dXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsK
ICAgICB9CiAgICAgbGV0IGZ1bmMgPSBmdW5jT3JGYWlsdXJlczsKICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IGZ1bmMucGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICBsZXQgdHlwZSA9
IGFyZ3VtZW50VHlwZXNbaV0uaW5zdGFudGlhdGVkVHlwZTsKKyAgICAgICAgbGV0IHR5cGUgPSBh
cmd1bWVudFR5cGVzW2ldOwogICAgICAgICB0eXBlLnZpc2l0KG5ldyBTdHJ1Y3RMYXlvdXRCdWls
ZGVyKCkpOwogICAgICAgICBmdW5jLnBhcmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVu
dExpc3RbaV0uZVB0ciwgdHlwZS5zaXplKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ2hlY2tlci5qcwppbmRleCA4ZDU1YzUwZDgzNmMxNTQ4NmZkMjU4MGM1OGU5NjA2Y2Fk
NTk2ZWNiLi41ZGNhNDYwZmI5NmMxNDgzOWNiODlmMDVmMTczNGQ0MzljZTk1YjViIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKQEAgLTQzLDggKzQzLDYgQEAgY2xh
c3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAKICAgICAgICAgZm9yIChsZXQg
dHlwZSBvZiBub2RlLnR5cGVzLnZhbHVlcygpKQogICAgICAgICAgICAgZG9TdGF0ZW1lbnQodHlw
ZSk7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9mIG5vZGUucHJvdG9jb2xzLnZhbHVlcygp
KQotICAgICAgICAgICAgZG9TdGF0ZW1lbnQocHJvdG9jb2wpOwogICAgICAgICBmb3IgKGxldCBm
dW5jcyBvZiBub2RlLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICAgICAgZm9yIChsZXQg
ZnVuYyBvZiBmdW5jcykgewogICAgICAgICAgICAgICAgIHRoaXMudmlzaXRGdW5jKGZ1bmMpOwpA
QCAtNTksOCArNTcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgX2No
ZWNrU2hhZGVyVHlwZShub2RlKQogICAgIHsKICAgICAgICAgLy8gRklYTUU6IFJlbGF4IHRoZXNl
IGNoZWNrcyBvbmNlIHdlIGhhdmUgaW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgdGV4dHVyZXMgYW5k
IHNhbXBsZXJzLgotICAgICAgICBpZiAobm9kZS50eXBlUGFyYW1ldGVycy5sZW5ndGggIT0gMCkK
LSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmlu
ZywgIkVudHJ5IHBvaW50ICIgKyBub2RlLm5hbWUgKyAiIG11c3Qgbm90IGhhdmUgdHlwZSBhcmd1
bWVudHMuIik7CiAgICAgICAgIGxldCBzaGFkZXJGdW5jID0gbm9kZTsKICAgICAgICAgc3dpdGNo
IChub2RlLnNoYWRlclR5cGUpIHsKICAgICAgICAgY2FzZSAidmVydGV4IjoKQEAgLTg0LDE1ICs4
MCw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYgKCFmdW5j
Lm5hbWUuc3RhcnRzV2l0aCgib3BlcmF0b3IiKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIG9wZXJhdG9yIG92ZXJsb2FkIG5hbWU6ICIgKyBmdW5jLm5hbWUpOwogICAgICAgICAK
LSAgICAgICAgbGV0IHR5cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcgVHlwZVZhcmlhYmxlVHJhY2tl
cigpOwotICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXJUeXBlIG9mIGZ1bmMucGFyYW1ldGVyVHlw
ZXMpCi0gICAgICAgICAgICBwYXJhbWV0ZXJUeXBlLnZpc2l0KHR5cGVWYXJpYWJsZVRyYWNrZXIp
OwotICAgICAgICBOb2RlLnZpc2l0KGZ1bmMucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlv
biwgdHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIg
b2YgZnVuYy50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVU
cmFja2VyLnNldC5oYXModHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUeXBlRXJyb3IodHlwZVBhcmFtZXRlci5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXJh
bWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIHRvIG9wZXJhdG9yICIgKyBmdW5jLnRvRGVjbFN0
cmluZygpICsgIiBpcyBub3QgaW5mZXJyYWJsZSBmcm9tIHZhbHVlIHBhcmFtZXRlcnMiKTsKLSAg
ICAgICAgfQotICAgICAgICAKICAgICAgICAgbGV0IGNoZWNrR2V0dGVyID0gKGtpbmQpID0+IHsK
ICAgICAgICAgICAgIGxldCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgPSBraW5kID09ICJpbmRleCIg
PyAyIDogMTsKICAgICAgICAgICAgIGlmIChmdW5jLnBhcmFtZXRlcnMubGVuZ3RoICE9IG51bUV4
cGVjdGVkUGFyYW1ldGVycykKQEAgLTExNSwxMSArMTAyLDEwIEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGlmICghZ2V0dGVyRnVuY3MpCiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXZl
cnkgc2V0dGVyIG11c3QgaGF2ZSBhIG1hdGNoaW5nIGdldHRlciwgYnV0IGRpZCBub3QgZmluZCBh
bnkgZnVuY3Rpb24gbmFtZWQgIiArIGdldHRlck5hbWUgKyAiIHRvIG1hdGNoICIgKyBmdW5jLm5h
bWUpOwogICAgICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBmdW5jLnBhcmFtZXRlclR5cGVz
LnNsaWNlKDAsIG51bUV4cGVjdGVkUGFyYW1ldGVycyAtIDEpOwotICAgICAgICAgICAgbGV0IG92
ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChnZXR0ZXJGdW5jcywgW10sIGFyZ3VtZW50VHlw
ZXMsIG51bGwpOworICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1w
bChnZXR0ZXJGdW5jcywgYXJndW1lbnRUeXBlcywgbnVsbCk7CiAgICAgICAgICAgICBpZiAoIW92
ZXJsb2FkLmZ1bmMpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkICIgKyBmdW5j
Lm5hbWUgKyAiIHdpdGggYXJndW1lbnRzICIgKyBhcmd1bWVudFR5cGVzICsgKG92ZXJsb2FkLmZh
aWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxu
IikgOiAiIikpOwotICAgICAgICAgICAgbGV0IHJlc3VsdFR5cGUgPSBvdmVybG9hZC5mdW5jLnJl
dHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgb3Zlcmxv
YWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAg
ICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlOwogICAg
ICAgICAgICAgaWYgKCFyZXN1bHRUeXBlLmVxdWFscyh2YWx1ZVR5cGUpKQogICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIlNldHRl
ciBhbmQgZ2V0dGVyIG11c3QgYWdyZWUgb24gdmFsdWUgdHlwZSAoZ2V0dGVyIGF0ICIgKyBvdmVy
bG9hZC5mdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIHNheXMgIiArIHJlc3VsdFR5cGUgKyAi
IHdoaWxlIHRoaXMgc2V0dGVyIHNheXMgIiArIHZhbHVlVHlwZSArICIpIik7CiAgICAgICAgIH07
CkBAIC0yMTEsMjMgKzE5Nyw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICB7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAg
ICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAg
ICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0g
ICAgICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXJUeXBlIG9mIHNpZ25hdHVyZS5wYXJhbWV0ZXJU
eXBlcykKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJUeXBlLnZpc2l0KHR5cGVWYXJpYWJsZVRy
YWNrZXIpOwotICAgICAgICAgICAgTm9kZS52aXNpdChzaWduYXR1cmUucmV0dXJuVHlwZUZvck92
ZXJsb2FkUmVzb2x1dGlvbiwgdHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgICAgICBmb3Ig
KGxldCB0eXBlUGFyYW1ldGVyIG9mIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycykgewotICAgICAg
ICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQYXJhbWV0ZXIp
KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBXVHlwZUVycm9yKHR5cGVQYXJhbWV0ZXIub3Jp
Z2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyIHRvIHByb3RvY29sIHNpZ25hdHVyZSBu
b3QgaW5mZXJyYWJsZSBmcm9tIHZhbHVlIHBhcmFtZXRlcnMiKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKG5vZGUudHlwZVZhcmlh
YmxlKSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihzaWduYXR1cmUub3Jp
Z2luLm9yaWdpblN0cmluZywgIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoIiArIG5vZGUubmFt
ZSArICIpIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlOiAiICsgc2lnbmF0dXJlKTsKLSAgICAg
ICAgICAgIHRoaXMuX2NoZWNrT3BlcmF0b3JPdmVybG9hZChzaWduYXR1cmUsIG5hbWUgPT4gbm9k
ZS5zaWduYXR1cmVzQnlOYW1lKG5hbWUpKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2
aXNpdEVudW1UeXBlKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLmJhc2VUeXBlLnZpc2l0KHRo
aXMpOwpAQCAtMjc4LDI5ICsyNDcsMTIgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiRW51bSBkb2VzIG5vdCBoYXZlIGEgbWVtYmVyIHdpdGggdGhlIHZhbHVlIHplcm8iKTsK
ICAgICB9CiAgICAgCi0gICAgX2NoZWNrVHlwZUFyZ3VtZW50cyhvcmlnaW4sIHR5cGVQYXJhbWV0
ZXJzLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0
eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IGFyZ3VtZW50SXNU
eXBlID0gdHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7Ci0gICAgICAgICAgICBsZXQg
cmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChh
cmd1bWVudElzVHlwZSkgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1l
bnRzW2ldLmluaGVyaXRzKHR5cGVQYXJhbWV0ZXJzW2ldLnByb3RvY29sKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IGRvZXMgbm90IGlu
aGVyaXQgcHJvdG9jb2w6ICIgKyByZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuZXF1YWxzV2l0aENvbW1pdCh0eXBlUGFyYW1l
dGVyc1tpXS50eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
b3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIHR5cGUgZm9yIGNvbnN0ZXhwciIpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQog
ICAgIHsKICAgICAgICAgaWYgKCFub2RlLnR5cGUpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIlR5cGUgcmVmZXJlbmNlIHdpdGhvdXQgYSB0eXBlIGluIGNoZWNrZXI6ICIgKyBub2RlICsg
IiBhdCAiICsgbm9kZS5vcmlnaW4pOwogICAgICAgICBpZiAoIShub2RlLnR5cGUgaW5zdGFuY2Vv
ZiBTdHJ1Y3RUeXBlKSkKICAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICAg
ICAgdGhpcy5fY2hlY2tUeXBlQXJndW1lbnRzKG5vZGUub3JpZ2luLCBub2RlLnR5cGUudHlwZVBh
cmFtZXRlcnMsIG5vZGUudHlwZUFyZ3VtZW50cyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0QXJy
YXlUeXBlKG5vZGUpCkBAIC00MjYsOCArMzc4LDggQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAKICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgIGxldCByZXN1bHQg
PSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAotICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLnBvc3NpYmxlR2V0T3ZlcmxvYWRzLCB0aGlzLl9jdXJyZW50U3RhdGVtZW50LnR5cGVQYXJh
bWV0ZXJzLAotICAgICAgICAgICAgICAgIG5vZGUuZ2V0RnVuY05hbWUsIFtdLCBbbm9kZS5iYXNl
LCAuLi5leHRyYUFyZ3NdLCBbYmFzZVR5cGUsIC4uLmV4dHJhQXJnVHlwZXNdLCBudWxsKTsKKyAg
ICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUdldE92ZXJsb2FkcywKKyAg
ICAgICAgICAgICAgICBub2RlLmdldEZ1bmNOYW1lLCBbbm9kZS5iYXNlLCAuLi5leHRyYUFyZ3Nd
LCBbYmFzZVR5cGUsIC4uLmV4dHJhQXJnVHlwZXNdLCBudWxsKTsKICAgICAgICAgICAgIG5vZGUu
Y2FsbEZvckdldCA9IHJlc3VsdC5jYWxsOwogICAgICAgICAgICAgbm9kZS5yZXN1bHRUeXBlRm9y
R2V0ID0gcmVzdWx0LnJlc3VsdFR5cGU7CiAgICAgICAgIH0gY2F0Y2ggKGUpIHsKQEAgLTQ0MCw4
ICszOTIsOCBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICBs
ZXQgYmFzZUZvckFuZCA9IGJhc2VUeXBlLmFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQobm9kZS5vcmln
aW4sIG5vZGUuYmFzZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxldCByZXN1bHQgPSBD
YWxsRXhwcmVzc2lvbi5yZXNvbHZlKAotICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2Rl
LnBvc3NpYmxlQW5kT3ZlcmxvYWRzLCB0aGlzLl9jdXJyZW50U3RhdGVtZW50LnR5cGVQYXJhbWV0
ZXJzLAotICAgICAgICAgICAgICAgIG5vZGUuYW5kRnVuY05hbWUsIFtdLCBbYmFzZUZvckFuZCwg
Li4uZXh0cmFBcmdzXSwgW3R5cGVGb3JBbmQsIC4uLmV4dHJhQXJnVHlwZXNdLAorICAgICAgICAg
ICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBvc3NpYmxlQW5kT3ZlcmxvYWRzLAorICAgICAgICAg
ICAgICAgIG5vZGUuYW5kRnVuY05hbWUsIFtiYXNlRm9yQW5kLCAuLi5leHRyYUFyZ3NdLCBbdHlw
ZUZvckFuZCwgLi4uZXh0cmFBcmdUeXBlc10sCiAgICAgICAgICAgICAgICAgbnVsbCk7CiAgICAg
ICAgICAgICBub2RlLmNhbGxGb3JBbmQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIG5vZGUu
cmVzdWx0VHlwZUZvckFuZCA9IHJlc3VsdC5yZXN1bHRUeXBlLnVuaWZ5Tm9kZS5yZXR1cm5UeXBl
RnJvbUFuZE92ZXJsb2FkKG5vZGUub3JpZ2luKTsKQEAgLTQ2NSw5ICs0MTcsOSBAQCBjbGFzcyBD
aGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZXN1bHQgdHlwZSByZXNvbHZlZCBieS12YWx1
ZSAoIiArIG5vZGUucmVzdWx0VHlwZUZvckdldCArICIpIGRvZXMgbm90IG1hdGNoIHJlc3VsdCB0
eXBlIHJlc29sdmVkIGJ5LXBvaW50ZXIgKCIgKyBub2RlLnJlc3VsdFR5cGVGb3JBbmQgKyAiKSIp
OwogICAgICAgICAKICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSBDYWxs
RXhwcmVzc2lvbi5yZXNvbHZlKAotICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBv
c3NpYmxlU2V0T3ZlcmxvYWRzLCB0aGlzLl9jdXJyZW50U3RhdGVtZW50LnR5cGVQYXJhbWV0ZXJz
LAotICAgICAgICAgICAgICAgIG5vZGUuc2V0RnVuY05hbWUsIFtdLCBbbm9kZS5iYXNlLCAuLi5l
eHRyYUFyZ3MsIG51bGxdLCBbYmFzZVR5cGUsIC4uLmV4dHJhQXJnVHlwZXMsIG5vZGUucmVzdWx0
VHlwZV0sIG51bGwpOworICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2
ZSgKKyAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZVNldE92ZXJsb2Fk
cywKKyAgICAgICAgICAgICAgICBub2RlLnNldEZ1bmNOYW1lLCBbbm9kZS5iYXNlLCAuLi5leHRy
YUFyZ3MsIG51bGxdLCBbYmFzZVR5cGUsIC4uLmV4dHJhQXJnVHlwZXMsIG5vZGUucmVzdWx0VHlw
ZV0sIG51bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yU2V0ID0gcmVzdWx0LmNhbGw7CiAg
ICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHRUeXBlLmVxdWFscyhiYXNlVHlwZSkpCiAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5n
LCAiUmVzdWx0IHR5cGUgb2Ygc2V0dGVyICIgKyByZXN1bHQuY2FsbC5mdW5jICsgIiBpcyBub3Qg
dGhlIGJhc2UgdHlwZSAiICsgYmFzZVR5cGUpOwpAQCAtNjc1LDcgKzYyNyw2IEBAIGNsYXNzIENo
ZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5v
ZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSk7CiAgICAgICAg
IGxldCBhcmd1bWVudFR5cGVzID0gbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IHsK
ICAgICAgICAgICAgIGxldCBuZXdBcmd1bWVudCA9IGFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAg
ICAgICAgICAgaWYgKCFuZXdBcmd1bWVudCkKQEAgLTY4Nyw3ICs2MzgsNyBAQCBjbGFzcyBDaGVj
a2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmIChub2RlLnJldHVyblR5cGUpCiAgICAg
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyk7CiAKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5vZGUucmVzb2x2ZShub2RlLnBvc3NpYmxlT3ZlcmxvYWRzLCB0aGlzLl9jdXJyZW50U3Rh
dGVtZW50LnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IG5vZGUucmVzb2x2ZShub2RlLnBvc3NpYmxlT3ZlcmxvYWRzKTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTNjMTgyNmVkNTVmM2ZlNTZmN2UwZWQyYTAzZGZkYTAyOGRhNWIzOS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
NzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1jbGFzcyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyIGV4dGVuZHMgVmFs
dWUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZSkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5f
bmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgIH0KLSAgICAKLSAg
ICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7
IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBl
OyB9Ci0gICAgZ2V0IGlzQ29uc3RleHByKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBpc1Vu
aWZpYWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgdmFySXNMVmFsdWUoKSB7IHJldHVy
biBmYWxzZTsgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4
dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFZhbHVlKSkK
LSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBpZiAoIXRoaXMudHlwZS51bmlm
eSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZVVuaWZ5SW1w
bCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdW5pZnlJbXBs
KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50
eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKLSAgICB9Ci0gICAg
Ci0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAg
ICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzUGFyYW1l
dGVyKHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0
cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMudHlwZSArICIgIiArIHRoaXMubmFtZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKaW5kZXggMTI5MTRk
YTMxMzdmZDZiOTBmZWRhNzI1ODYyN2VmZmZmYmQ0ZTU0MS4uYTlkNzQ1MzMzZWQ4ZmY2MWVjNmVm
Y2QyODI3ZTA4NDkzZTZhZTRhOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMKQEAgLTMyLDcgKzMyLDcgQEAgZnVuY3Rpb24gY3Jl
YXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgICAg
IHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7
Ci0gICAgICAgICAgICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4sIGNv
bmZpZy5wcmVmZXJyZWRUeXBlTmFtZSwgW10pOworICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRU
eXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVkVHlwZU5hbWUpOwogICAg
ICAgICB9CiAgICAgICAgIAogICAgICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3Jp
Z2luOyB9CkBAIC01OCw3ICs1OCw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZp
ZykKICAgICAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAgICAg
ewogICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhp
cyk7Ci0gICAgICAgICAgICBpZiAocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUgfHwg
cmVhbFRoaXMuaXNMaXRlcmFsKSB7CisgICAgICAgICAgICBpZiAocmVhbFRoaXMuaXNMaXRlcmFs
KSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKHJlYWxUaGlzLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdGhpcy5wcmVmZXJyZWRUeXBl
KSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKQEAgLTc3
LDE0ICs3Nyw2IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiR2VuZXJpY0xpdGVyYWxUeXBlIHNob3VsZCBuZXZlciBiZSB1
c2VkIGFzIGEgdHlwZSBwYXJhbWV0ZXIiKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
Y29udmVyc2lvbkNvc3QodW5pZmljYXRpb25Db250ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAg
ICAgIGlmIChyZWFsVGhpcy5lcXVhbHModGhpcy5wcmVmZXJyZWRUeXBlKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAg
IAogICAgICAgICBjb21taXRVbmlmaWNhdGlvbih1bmlmaWNhdGlvbkNvbnRleHQpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHRoaXMudHlwZSA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMp
LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCmluZGV4IDMwZTZiMDMxYTZkZDY2NTk3NDA3ZjNm
NmI3ZmU3MTNlZDhmZGNjNGEuLjAyOTQ3ODJjMGU3OTNhYTM3OTU3M2Y1Mjg4YzZlZTllOGY5MDA2
OWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25G
aW5kZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZp
bmRlci5qcwpAQCAtMzUsOCArMzUsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMg
VmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jYWxs
YmFjayhub2RlLnJldHVyblR5cGUpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9m
IG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRo
aXMpOwogICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgIH0KQEAgLTQ2LDExICs0NCw2IEBA
IGNsYXNzIEV4cHJlc3Npb25GaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5f
Y2FsbGJhY2sobm9kZS50eXBlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUp
OwotICAgIH0KLSAgICAKICAgICB2aXNpdEFzc2lnbm1lbnQobm9kZSkKICAgICB7CiAgICAgICAg
IHRoaXMuX2NhbGxiYWNrKG5vZGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc2MTcyZDk4ZDFlMmMwMDhlZGI1ZDgxODNmNWVlZmQ2NzhkYzhlZTkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcworKysgL2Rldi9udWxsCkBA
IC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLSJ1c2Ugc3RyaWN0IjsKLQotZnVuY3Rpb24gZmxhdHRlblByb3RvY29sRXh0ZW5kcyhwcm9n
cmFtKQotewotICAgIGxldCB2aXNpdGluZyA9IG5ldyBWaXNpdGluZ1NldCgpOwotICAgIAotICAg
IGZ1bmN0aW9uIGZsYXR0ZW4ocHJvdG9jb2wpCi0gICAgewotICAgICAgICBpZiAoIXByb3RvY29s
LmV4dGVuZHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAgICAg
dmlzaXRpbmcuZG9WaXNpdChwcm90b2NvbCwgKCkgPT4gewotICAgICAgICAgICAgZm9yIChsZXQg
cGFyZW50IG9mIHByb3RvY29sLmV4dGVuZHMpIHsKLSAgICAgICAgICAgICAgICBwYXJlbnQgPSBw
YXJlbnQucHJvdG9jb2xEZWNsOwotICAgICAgICAgICAgICAgIGZsYXR0ZW4ocGFyZW50KTsKLSAg
ICAgICAgICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2YgcGFyZW50LnNpZ25hdHVyZXMpIHsK
LSAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1NpZ25hdHVyZSA9IHNpZ25hdHVyZS52aXNpdCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBTdWJzdGl0dXRpb24oW3BhcmVudC50eXBlVmFy
aWFibGVdLCBbcHJvdG9jb2wudHlwZVZhcmlhYmxlXSkpOwotICAgICAgICAgICAgICAgICAgICBw
cm90b2NvbC5hZGQobmV3U2lnbmF0dXJlKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBwcm90b2NvbC5leHRlbmRzID0gW107Ci0gICAgICAgIH0pOwotICAg
IH0KLSAgICAKLSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1
ZXMoKSkKLSAgICAgICAgZmxhdHRlbihwcm90b2NvbCk7Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcwppbmRleCBlNmM1NzM3ZGUxNmE0YTY0OGQ4
NWFkY2ExNjkzNDU0YjYxNDA3MjdlLi5kNWQxYjE1MjMwZjA5YzEwYTBiYzEyNWYwM2NmNWFkNGNl
M2RkMmY3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExp
dGVyYWwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFs
LmpzCkBAIC0zMCw3ICszMCw3IEBAIGxldCBGbG9hdExpdGVyYWwgPSBjcmVhdGVMaXRlcmFsKHsK
ICAgICAKICAgICBuZWdDb25zdGV4cHIob3JpZ2luKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5l
dyBJbnRMaXRlcmFsKG9yaWdpbiwgLXRoaXMudmFsdWUpOworICAgICAgICByZXR1cm4gbmV3IEZs
b2F0TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKICAgICB9LAogICAgIAogICAgIGNyZWF0
ZVR5cGUob3JpZ2luLCB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCmlu
ZGV4IDZmYTdjOWQxYjZmNGI5NTgzMzU5ODFjMjcyOGJlODY1YTU2ZTczYWUuLjZmYzczMzI3NjFk
NDYzYzM1YThjNDBjMmE3NmYyZjRiMzZjMjMyMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRnVuYy5qcwpAQCAtMjUsNyArMjUsNyBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBGdW5j
IGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBz
aGFkZXJUeXBlKQogICAgIHsKICAgICAgICAgaWYgKCEob3JpZ2luIGluc3RhbmNlb2YgTGV4ZXJU
b2tlbikpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvcmlnaW46ICIgKyBvcmln
aW4pOwpAQCAtMzksNyArMzksNiBAQCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgICAg
IHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAgICAg
ICAgIHRoaXMuX3JldHVyblR5cGUgPSByZXR1cm5UeXBlOwotICAgICAgICB0aGlzLl90eXBlUGFy
YW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0gcGFy
YW1ldGVyczsKICAgICAgICAgdGhpcy5faXNDYXN0ID0gaXNDYXN0OwogICAgICAgICB0aGlzLl9z
aGFkZXJUeXBlID0gc2hhZGVyVHlwZTsKQEAgLTQ4LDggKzQ3LDYgQEAgY2xhc3MgRnVuYyBleHRl
bmRzIE5vZGUgewogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAg
ICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KICAgICBnZXQgcmV0dXJuVHlwZSgp
IHsgcmV0dXJuIHRoaXMuX3JldHVyblR5cGU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7
IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVyc0Zv
ckNhbGxSZXNvbHV0aW9uKCkgeyByZXR1cm4gdGhpcy50eXBlUGFyYW1ldGVyczsgfQogICAgIGdl
dCBwYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fcGFyYW1ldGVyczsgfQogICAgIGdldCBwYXJh
bWV0ZXJUeXBlcygpIHsgcmV0dXJuIHRoaXMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBh
cmFtZXRlci50eXBlKTsgfQogICAgIGdldCBpc0Nhc3QoKSB7IHJldHVybiB0aGlzLl9pc0Nhc3Q7
IH0KQEAgLTY1LDkgKzYyLDkgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewogICAgICAgICBp
ZiAodGhpcy5zaGFkZXJUeXBlKQogICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuc2hhZGVyVHlw
ZSArICIgIjsKICAgICAgICAgaWYgKHRoaXMuaXNDYXN0KQotICAgICAgICAgICAgcmVzdWx0ICs9
ICJvcGVyYXRvcjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+ICIgKyB0aGlzLnJldHVyblR5
cGU7CisgICAgICAgICAgICByZXN1bHQgKz0gIm9wZXJhdG9yICIgKyB0aGlzLnJldHVyblR5cGU7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAi
ICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4iOworICAgICAg
ICAgICAgcmVzdWx0ICs9IHRoaXMucmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdCArICIoIiArIHRoaXMucGFyYW1ldGVycyArICIpIjsKICAgICB9CiAg
ICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcwppbmRleCAxMWZhMDky
ZTNiMjI3OGUyMTVhMGE2N2U5NTFlMTdkYWJhMTM2YTgzLi5jYTA1OTdmY2QyOTRkZmFiNjA0NDIx
NGUwNzU0ZjdlZjk0NGI4NzhlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GdW5jRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNE
ZWYuanMKQEAgLTI1LDkgKzI1LDkgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuY0RlZiBl
eHRlbmRzIEZ1bmMgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwg
dHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGJvZHksIGlzQ2FzdCwgc2hhZGVyVHlwZSkKKyAg
ICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGJvZHks
IGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwg
cmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlw
ZSk7CisgICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywg
aXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgdGhpcy5fYm9keSA9IGJvZHk7CiAgICAgICAg
IHRoaXMuaXNSZXN0cmljdGVkID0gZmFsc2U7CiAgICAgfQpAQCAtMzYsOCArMzYsNiBAQCBjbGFz
cyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7CiAgICAgCiAgICAgcmV3cml0ZShyZXdyaXRlcikKICAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXdyaXRlIGFuIHVuaW5zdGFudGlhdGVkIGZ1bmN0
aW9uIik7CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUgPSB0aGlzLl9yZXR1cm5UeXBlLnZpc2l0
KHJld3JpdGVyKTsKICAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHRoaXMuX3BhcmFtZXRlcnMu
bWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQocmV3cml0ZXIpKTsKICAgICAgICAgdGhp
cy5fYm9keSA9IHRoaXMuYm9keS52aXNpdChyZXdyaXRlcik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODkyODYyYTZkZDg1NjVlZTM3ZTQyMDYzMWQ3YWY3MGQ1MjI3ZTU4Ni4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MTU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgRnVuY0luc3RhbnRpYXRvciB7Ci0gICAgY29uc3RydWN0
b3IocHJvZ3JhbSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Byb2dyYW0gPSBwcm9ncmFtOwotICAg
ICAgICB0aGlzLl9pbnN0YW5jZXMgPSBuZXcgTWFwKCk7Ci0gICAgfQotICAgIAotICAgIGdldCBp
bnN0YW5jZXMoKSB7IHJldHVybiB0aGlzLl9pbnN0YW5jZXM7IH0KLSAgICAKLSAgICAvLyBSZXR1
cm5zIGEgRnVuYyBvYmplY3QgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgcGFydGljdWxhciBz
eXN0ZW0gb2YgdHlwZSBhcmd1bWVudHMuIFlvdSBtdXN0Ci0gICAgLy8gaW50YW50aWF0ZSB0aGlu
Z3Mgd2l0aCBjb25jcmV0ZSB0eXBlcywgYmVjYXVzZSB0aGlzIGNvZGUgY2FzdWFsbHkgYXNzdW1l
cyB0aGlzLiBOb3RlIHRoYXQgdGhpcwotICAgIC8vIHdpbGwgcmV0dXJuIGEgZGlmZmVyZW50IGZ1
bmMgZnJvbSBgZnVuY2Agbm8gbWF0dGVyIHdoYXQuIFRoaXMgZW5zdXJlcyB0aGF0IHdlIGNhbiB1
c2UgdGhlCi0gICAgLy8gcmV0dXJuZWQgZnVuYyBmb3IgcmV3cml0ZXMgdGhhdCBpbnN0YW50aWF0
ZSB0eXBlcyB3aXRob3V0IGRlc3Ryb3lpbmcgb3VyIGFiaWxpdHkgdG8gZG8gb3ZlcmxvYWQKLSAg
ICAvLyByZXNvbHV0aW9ucyBvbiB0aGUgb3JpZ2luYWwgUHJvZ3JhbS4KLSAgICBnZXRVbmlxdWUo
ZnVuYywgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGNsYXNzIEZpbmRUeXBlVmFyaWFi
bGUgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICAgICAgICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2Rl
LnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0
aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXRUeXBl
VmFyaWFibGUobm9kZSkgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBl
Y3RlZCB0eXBlIHZhcmlhYmxlOiAiICsgbm9kZSArICIgd2hlbiBpbnN0YW50aWF0aW5nICIgKyBm
dW5jICsgIiB3aXRoIGFyZ3VtZW50cyAiICsgdHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnQudmlzaXQobmV3IEZpbmRUeXBlVmFyaWFibGUo
KSk7Ci0gICAgICAgIAotICAgICAgICBsZXQgaW5zdGFuY2VzID0gdGhpcy5faW5zdGFuY2VzLmdl
dChmdW5jKTsKLSAgICAgICAgaWYgKCFpbnN0YW5jZXMpCi0gICAgICAgICAgICB0aGlzLl9pbnN0
YW5jZXMuc2V0KGZ1bmMsIGluc3RhbmNlcyA9IFtdKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAo
bGV0IGluc3RhbmNlIG9mIGluc3RhbmNlcykgewotICAgICAgICAgICAgbGV0IG9rID0gdHJ1ZTsK
LSAgICAgICAgICAgIGZvciAobGV0IGkgPSBpbnN0YW5jZS50eXBlQXJndW1lbnRzLmxlbmd0aDsg
aS0tOykgewotICAgICAgICAgICAgICAgIGlmICghaW5zdGFuY2UudHlwZUFyZ3VtZW50c1tpXS5l
cXVhbHModHlwZUFyZ3VtZW50c1tpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxz
ZTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKCFvaykKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIHJldHVybiBpbnN0YW5jZS5mdW5jOwotICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBsZXQgdGhpc0luc3RhbnRpYXRvciA9IHRoaXM7Ci0gICAgICAgIAotICAgICAgICBj
bGFzcyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9uIGV4dGVuZHMgU3Vic3RpdHV0aW9uIHsKLSAg
ICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvLyBXZSBtYXkgaGF2ZSB0byByZS1y
ZXNvbHZlIHRoZSBmdW5jdGlvbiBjYWxsLCBpZiBpdCB3YXMgYSBjYWxsIHRvIGEgcHJvdG9jb2wK
LSAgICAgICAgICAgICAgICAvLyBzaWduYXR1cmUuCi0gICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dC5mdW5jIGluc3RhbmNlb2YgUHJvdG9jb2xGdW5jRGVjbCkgewotICAgICAgICAgICAgICAgICAg
ICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHJlc3VsdC5wb3NzaWJsZU92ZXJs
b2FkcywgcmVzdWx0LnR5cGVBcmd1bWVudHMsIHJlc3VsdC5hcmd1bWVudFR5cGVzLCByZXN1bHQu
cmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IHJlc29sdmUg
cHJvdG9jb2wgc2lnbmF0dXJlIGZ1bmN0aW9uIGNhbGwgZHVyaW5nIGluc3RhbnRpYXRpb246ICIg
KyByZXN1bHQuZnVuYyArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIg
KyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnJlc29sdmVUb092ZXJsb2FkKG92ZXJsb2FkKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5mdW5jLmlzTmF0
aXZlKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQubmF0aXZlRnVuY0luc3RhbmNlID0gdGhp
c0luc3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3VsdC5hY3R1YWxUeXBlQXJn
dW1lbnRzKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBsZXQgc3Vic3Rp
dHV0aW9uID0gbmV3IEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24oZnVuYy50eXBlUGFyYW1ldGVy
cywgdHlwZUFyZ3VtZW50cyk7Ci0KLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGlvbkluc3RhbnRp
YXRlSW1tZWRpYXRlcyBleHRlbmRzIEluc3RhbnRpYXRlSW1tZWRpYXRlcyB7Ci0gICAgICAgICAg
ICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgLy8gV2UgbmVlZCB0byBwcmVzZXJ2ZSBjZXJ0YWluIHRoaW5ncyB0aGF0IHdvdWxkIGhhdmUg
aW5zdGFudGlhdGVkLCBidXQgdGhhdCB3ZSBjYW5ub3QKLSAgICAgICAgICAgICAgICAvLyBpbnN0
YW50aWF0ZSB3aXRob3V0IGJyZWFraW5nIGNoYWluLWluc3RhbnRpYXRpb25zIChnZW5lcmljIGZ1
bmN0aW9uIGNhbGxzIGdlbmVyaWMKLSAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBzbyB0aGVy
ZWZvcmUgdGhlIGluc3RhbnRpYXRlZCBnZW5lcmljIGZ1bmN0aW9uIG11c3Qgc3RpbGwgaGF2ZSB0
aGUgb3JpZ2luYWwKLSAgICAgICAgICAgICAgICAvLyAodW5pbnN0YW50aWF0ZWQpIHR5cGVzIHRv
IGluc3RhbnRpYXRlIHRoZSBnZW5lcmljIGZ1bmN0aW9uIHRoYXQgaXQgY2FsbHMpLgotICAgICAg
ICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24oCi0gICAgICAgICAgICAg
ICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cywKLSAgICAg
ICAgICAgICAgICAgICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5vZGUudmlz
aXQoYXJndW1lbnQsIHRoaXMpKSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdGhpcy5wcm9j
ZXNzRGVyaXZlZENhbGxEYXRhKG5vZGUsIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBBcnJheS5mcm9tKG5vZGUuYXJndW1l
bnRUeXBlcyk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUuaXNDYXN0KQotICAgICAgICAgICAg
ICAgICAgICByZXN1bHQuc2V0Q2FzdERhdGEobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAg
ICAgICByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IEFycmF5LmZyb20obm9kZS5hY3R1YWxU
eXBlQXJndW1lbnRzKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgbGV0IGluc3RhbnRp
YXRlSW1tZWRpYXRlcyA9IG5ldyBJbnN0YW50aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7
Ci0gICAgICAgIAotICAgICAgICBjbGFzcyBJbnN0YW50aWF0ZSB7Ci0gICAgICAgICAgICB2aXNp
dEZ1bmNEZWYoZnVuYykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBsZXQgcmV0dXJu
VHlwZSA9IGZ1bmMucmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAg
ICAgIHJldHVyblR5cGUgPSByZXR1cm5UeXBlLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7
Ci0gICAgICAgICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBmdW5jLnBhcmFtZXRlcnMubWFwKHBh
cmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICAg
ICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlz
aXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKSk7Ci0gICAgICAgICAgICAgICAgbGV0IGJvZHkgPSBm
dW5jLmJvZHkudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgICAgICBib2R5ID0gYm9k
eS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgICAgIHJldHVybiBu
ZXcgRnVuY0RlZigKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwg
cmV0dXJuVHlwZSwgW10sIHBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LAotICAgICAgICAg
ICAgICAgICAgICBmdW5jLnNoYWRlclR5cGUpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgICAgICB2aXNpdE5hdGl2ZUZ1bmMoZnVuYykKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUZ1bmNJbnN0YW5jZSgKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYywKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1
YnN0aXR1dGlvbikudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKSwKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1
YnN0aXR1dGlvbikudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKSksCi0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaXNDYXN0LAotICAgICAgICAgICAgICAgICAgICBmdW5jLnNoYWRlclR5cGUs
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbihzdWJz
dGl0dXRpb24pKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBsZXQgcmVzdWx0
aW5nRnVuYyA9IGZ1bmMudmlzaXQobmV3IEluc3RhbnRpYXRlKCkpOwotICAgICAgICByZXN1bHRp
bmdGdW5jLnVuaW5zdGFudGlhdGVkUmV0dXJuVHlwZSA9IGZ1bmMucmV0dXJuVHlwZS52aXNpdChz
dWJzdGl0dXRpb24pOwotICAgICAgICBsZXQgaW5zdGFuY2UgPSB7ZnVuYzogcmVzdWx0aW5nRnVu
YywgdHlwZUFyZ3VtZW50c307Ci0gICAgICAgIGluc3RhbmNlcy5wdXNoKGluc3RhbmNlKTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdGluZ0Z1bmM7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzCmluZGV4IDQ0NmIzNTFk
YTU3MTVjNjhhMzVkNzY5Nzk2OWQ2OThlYzczZTc0ZjguLjYwNDkxNTM2MjUxZDA5YmNlMDNhMTRl
ZDY3NzUyMmEwMmQxM2E2NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0luZmVyVHlwZXNGb3JDYWxsLmpzCkBAIC0yNCwxOSArMjQsMTEgQEAKICAqLwogInVzZSBz
dHJpY3QiOwogCi1mdW5jdGlvbiBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCB0eXBlQXJndW1lbnRz
LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQorZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwo
ZnVuYywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKIHsKLSAgICBpZiAodHlwZUFyZ3VtZW50
cy5sZW5ndGggJiYgdHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gZnVuYy50eXBlUGFyYW1ldGVycy5s
ZW5ndGgpCi0gICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZh
aWx1cmUoZnVuYywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyB0
eXBlQXJndW1lbnRzLmxlbmd0aCArICIsIHJlcXVpcmUgIiArIGZ1bmMudHlwZVBhcmFtZXRlcnMu
bGVuZ3RoICsgIikiKX07CiAgICAgaWYgKGFyZ3VtZW50VHlwZXMubGVuZ3RoICE9IGZ1bmMucGFy
YW1ldGVycy5sZW5ndGgpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUoZnVuYywgIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgKHBhc3NlZCAi
ICsgYXJndW1lbnRUeXBlcy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBmdW5jLnBhcmFtZXRlcnMu
bGVuZ3RoICsgIikiKX07Ci0gICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNh
dGlvbkNvbnRleHQoZnVuYy50eXBlUGFyYW1ldGVyc0ZvckNhbGxSZXNvbHV0aW9uKTsKLSAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAg
bGV0IGFyZ3VtZW50ID0gdHlwZUFyZ3VtZW50c1tpXTsKLSAgICAgICAgbGV0IHBhcmFtZXRlciA9
IGZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAgICAgIGlmICghYXJndW1lbnQudW5pZnkodW5p
ZmljYXRpb25Db250ZXh0LCBwYXJhbWV0ZXIpKQotICAgICAgICAgICAgcmV0dXJuIHtmYWlsdXJl
OiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiVHlwZSBhcmd1bWVudCAjIiAr
IChpICsgMSkgKyAiIGZvciBwYXJhbWV0ZXIgIiArIHBhcmFtZXRlci5uYW1lICsgIiBkb2VzIG5v
dCBtYXRjaCAocGFzc2VkICIgKyBhcmd1bWVudCArICIsIHJlcXVpcmUgIiArIHBhcmFtZXRlciAr
ICIpIil9OwotICAgIH0KKyAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0
aW9uQ29udGV4dCgpOwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJndW1lbnRUeXBlcy5sZW5n
dGg7ICsraSkgewogICAgICAgICBpZiAoIWFyZ3VtZW50VHlwZXNbaV0pCiAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIk51bGwgYXJndW1lbnQgdHlwZSBhdCBpID0gIiArIGkpOwpAQCAtNDgs
MTYgKzQwLDYgQEAgZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50
cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0
ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwogICAgIGlmICghdmVyaWZpY2F0aW9uUmVz
dWx0LnJlc3VsdCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0
aW9uRmFpbHVyZShmdW5jLCB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKX07Ci0gICAgbGV0IHNo
b3VsZEJ1aWxkVHlwZUFyZ3VtZW50cyA9ICF0eXBlQXJndW1lbnRzLmxlbmd0aDsKLSAgICBpZiAo
c2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzKQotICAgICAgICB0eXBlQXJndW1lbnRzID0gW107Ci0g
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgIGxldCB0eXBlQXJndW1lbnQgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0eXBlUGFyYW1l
dGVyKTsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVudCA9PSB0eXBlUGFyYW1ldGVyKQotICAgICAg
ICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5j
LCAiVHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIgKyAiIGRpZCBub3QgZ2V0IGFzc2ln
bmVkIGEgdHlwZSIpfTsKLSAgICAgICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAg
ICAgICAgICAgIHR5cGVBcmd1bWVudHMucHVzaCh0eXBlQXJndW1lbnQpOwotICAgIH0KLSAgICBy
ZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dCwgdHlwZUFyZ3VtZW50c307CisgICAgcmV0
dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHR9OwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbmxpbmUuanMKaW5kZXggZjAyODczYmQyNzNkOTEwYjNkZjA0ZmQyYTUxYTNjN2Mw
YTQ2N2NlZi4uMDkwNzQ2OTkyNmY4YzA3ZDUzMzRiYjAzMDdkZDM1MTg1YjhlNTIzYyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwpAQCAtMjgsMTggKzI4LDEzIEBAIGZ1
bmN0aW9uIGlubGluZShwcm9ncmFtKQogewogICAgIGZvciAobGV0IGZ1bmNMaXN0IG9mIHByb2dy
YW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CiAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY0xp
c3QpIHsKLSAgICAgICAgICAgIGlmICghZnVuYy50eXBlUGFyYW1ldGVycy5sZW5ndGgpIHsKLSAg
ICAgICAgICAgICAgICBmdW5jID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShm
dW5jLCBbXSkKLSAgICAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywg
bmV3IFZpc2l0aW5nU2V0KGZ1bmMpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9pbmxp
bmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQoZnVuYykpOwogICAgICAg
ICB9CiAgICAgfQogfQogCiBmdW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywg
dmlzaXRpbmcpCiB7Ci0gICAgaWYgKGZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBpbmxpbmUgZnVuY3Rpb24gdGhhdCBoYXMgdHlwZSBw
YXJhbWV0ZXJzIik7CiAgICAgaWYgKGZ1bmMuaW5saW5lZCB8fCBmdW5jLmlzTmF0aXZlKQogICAg
ICAgICByZXR1cm47CiAgICAgCkBAIC01NSwxNCArNTAsMTAgQEAgZnVuY3Rpb24gX2lubGluZUZ1
bmN0aW9uKHByb2dyYW0sIGZ1bmMsIHZpc2l0aW5nKQogICAgIGZ1bmMuaW5saW5lZCA9IHRydWU7
CiB9CiAKLWZ1bmN0aW9uIHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCitmdW5j
dGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50VHlwZXMs
IGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQogewotICAgIGxldCBvdmVybG9hZCA9IHByb2dyYW0u
Z2xvYmFsTmFtZUNvbnRleHQucmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRz
LCBhcmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50cnlQb2ludCk7CisgICAgbGV0IG92
ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5h
bWUsIGFyZ3VtZW50VHlwZXMsIHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBvaW50KTsKICAgICBpZiAo
IW92ZXJsb2FkLmZ1bmMpCiAgICAgICAgIHJldHVybiBvdmVybG9hZC5mYWlsdXJlczsKLSAgICBp
ZiAoIW92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgIHJldHVybiBvdmVybG9h
ZC5mdW5jOwotICAgIGxldCBmdW5jID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1
ZShvdmVybG9hZC5mdW5jLCBvdmVybG9hZC50eXBlQXJndW1lbnRzKTsKLSAgICBfaW5saW5lRnVu
Y3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KG92ZXJsb2FkLmZ1bmMpKTsKLSAg
ICByZXR1cm4gZnVuYzsKKyAgICByZXR1cm4gb3ZlcmxvYWQuZnVuYzsKIH0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzCmluZGV4IDQ5MWVmM2UyMjFmYzA2MzE4ZWUwMzY3
YTM4MTY5OWU1NzIzYmZlNWEuLmQ5MDZmNzZkZDUzM2U2ZGU2ZTM1Y2FkZjQwYjM0MWMwMTkzNWY4
NjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwpAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICBpZiAocmVz
dWx0Lm5hdGl2ZUZ1bmNJbnN0YW5jZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
ICAgIHJldHVybiB0aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUuZnVuYywgKCkgPT4gewotICAg
ICAgICAgICAgbGV0IGZ1bmMgPSB0aGlzLl9wcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5p
cXVlKHJlc3VsdC5mdW5jLCByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7CisgICAgICAgICAg
ICBsZXQgZnVuYyA9IHJlc3VsdC5mdW5jOwogICAgICAgICAgICAgaWYgKGZ1bmMuaXNOYXRpdmUp
CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIG5hdGl2ZSBmdW5j
OiAiICsgZnVuYyk7CiAgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24odGhpcy5fcHJvZ3JhbSwg
ZnVuYywgdGhpcy5fdmlzaXRpbmcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYjM5ZWQ2NjM4MTQxMzQ4YWJjMTI3Njk2YjZlZTMxZTBiMGM1OGI2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8K
LSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgUmV3
cml0ZXIgewotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZSA9IHN1
cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKLSAgICAgICAgaWYgKCFub2RlLnR5cGUuaW5zdGFudGlh
dGUpIHsKLSAgICAgICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBkb2VzIG5vdCBzdXBwb3J0IGluc3RhbnRp
YXRpb246ICIgKyB0eXBlICsgIiAoIiArIHR5cGUuY29uc3RydWN0b3IubmFtZSArICIpIik7Ci0g
ICAgICAgICAgICByZXR1cm4gbm9kZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbm9kZS50
eXBlLmluc3RhbnRpYXRlKG5vZGUudHlwZUFyZ3VtZW50cykudmlzaXQobmV3IEF1dG9XcmFwcGVy
KCkpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0ludHJpbnNpY3MuanMKaW5kZXggOTMzZGZlMDExMzAyYjBmYmM4MzQ0OTk0YTFhNWMx
Zjc3YzA1MmE2Zi4uMDkzMjgzY2NlMDMxZTFkNGUxZmY2YWE1NGJkOTA1ZWMyOTkzYzg5NyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCkBAIC00OTksMzMg
KzQ5OSw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgCi0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3Bh
Y2VzKSB7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRp
dmUgVCogJHthZGRyZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0s
dWludClgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCFyZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdU
cmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiQXJyYXkgaW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyBy
ZWYpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1
cyhpbmRleCAqIG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7
Ci0gICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9y
Lmxlbmd0aDxUPihUW10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5v
ZGUpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveChyZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgfQogCiAgICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dp
enpsZU9wLmFsbFN3aXp6bGVPcGVyYXRvcnMoKSkgewogICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dChzd2l6emxlLnRvU3RyaW5nKCksIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUNvbnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9O
YW1lQ29udGV4dC5qcwppbmRleCBjMzFiYzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2
MTg4Li5hZmNjZTcxMjM0ZjVhYWNkZWYzZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQs
MTMgQEAgY2xhc3MgTmFtZUNvbnRleHQgewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAg
ICAgCi0gICAgcmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVu
dFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZl
RnVuY092ZXJsb2FkKG5hbWUsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQ
b2ludCA9IGZhbHNlKQogICAgIHsKICAgICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1
bmMsIG5hbWUpOwogICAgICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7
ZmFpbHVyZXM6IFtdfTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJ
bXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwg
YWxsb3dFbnRyeVBvaW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVu
Y3Rpb25zLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAg
IH0KICAgICAKICAgICBnZXQgY3VycmVudFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJh
NTc2Yjk5MjIxZWU5YzdkLi40M2U0NzFhYWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQz
LDEyICs0Myw2IEBAIGNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
dGhpcy5fd29ya2xpc3QucHVzaChuYW1lKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2Nv
bFJlZihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAg
c3VwZXIudmlzaXRQcm90b2NvbFJlZihub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBl
UmVmKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgy
MjFhZTczMTE4OTgxMjUyMjMyNTAzYmNmYWJjMzAuLmNhZjI2N2NlNTJhMWE1MDQ2MzU2ZDgzYTAz
ZTAxNmM5ZWJiMzZiYjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05hbWVSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanMKQEAgLTQxLDE5ICs0MSwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fbmFtZUNvbnRleHQuZG9TdGF0ZW1lbnQoc3RhdGVt
ZW50LCAoKSA9PiBzdGF0ZW1lbnQudmlzaXQodGhpcykpOwogICAgIH0KICAgICAKLSAgICBfdmlz
aXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkKKyAgICBfYnVpbGROYW1l
Q29udGV4dCgpCiAgICAgewotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRl
eHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9m
IG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBl
UGFyYW1ldGVyKTsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAg
ICAgIH0KLSAgICAgICAgcmV0dXJuIG5hbWVDb250ZXh0OworICAgICAgICByZXR1cm4gbmV3IE5h
bWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5j
KG5vZGUpCiAgICAgewotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhp
cy5fdmlzaXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkpOworICAgICAg
ICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fYnVpbGROYW1lQ29udGV4dChu
b2RlKSk7CiAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyKTsKICAgICAgICAg
Zm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFt
ZXRlci52aXNpdChjaGVja2VyKTsKQEAgLTYxLDE2ICs1NiwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2
ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7
Ci0gICAgICAgIGxldCBjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzID0gdGhpcy5fdmlzaXRUeXBl
UGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSk7Ci0gICAgICAgIGxldCBjaGVja2Vy
V2l0aFR5cGVQYXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFR5cGVQYXJh
bWV0ZXJzKTsKLSAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBh
cmFtZXRlcnMpOwotICAgICAgICBsZXQgY29udGV4dFdpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVD
b250ZXh0KGNvbnRleHRXaXRoVHlwZVBhcmFtZXRlcnMpOworICAgICAgICBsZXQgaW5uZXJDb250
ZXh0ID0gdGhpcy5fYnVpbGROYW1lQ29udGV4dCgpOworICAgICAgICBsZXQgaW5uZXJDaGVja2Vy
ID0gbmV3IE5hbWVSZXNvbHZlcihpbm5lckNvbnRleHQpOworICAgICAgICBub2RlLnJldHVyblR5
cGUudmlzaXQoaW5uZXJDaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykgewotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXJXaXRo
VHlwZVBhcmFtZXRlcnMpOwotICAgICAgICAgICAgY29udGV4dFdpdGhQYXJhbWV0ZXJzLmFkZChw
YXJhbWV0ZXIpOworICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGlubmVyQ2hlY2tlcik7Cisg
ICAgICAgICAgICBuZXdDb250ZXh0LmFkZChwYXJhbWV0ZXIpOwogICAgICAgICB9Ci0gICAgICAg
IGxldCBjaGVja2VyV2l0aFBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRleHRXaXRo
UGFyYW1ldGVycyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdChjaGVja2VyV2l0aFBhcmFtZXRl
cnMpOworICAgICAgICBub2RlLmJvZHkudmlzaXQoaW5uZXJDaGVja2VyKTsKICAgICB9CiAgICAg
CiAgICAgdmlzaXRCbG9jayhub2RlKQpAQCAtMTE1LDQxICsxMDgsOSBAQCBjbGFzcyBOYW1lUmVz
b2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5ld1Jlc29s
dmVyKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0g
ICAgICAgIGZvciAobGV0IHBhcmVudCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwYXJl
bnQudmlzaXQodGhpcyk7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4
dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIG5hbWVDb250ZXh0LmFkZChub2RlLnR5cGVW
YXJpYWJsZSk7Ci0gICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29u
dGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0g
ICAgICAgICAgICBzaWduYXR1cmUudmlzaXQoY2hlY2tlcik7Ci0gICAgfQotICAgIAotICAgIHZp
c2l0UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9u
YW1lQ29udGV4dC5nZXQoUHJvdG9jb2wsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghcmVzdWx0
KQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiQ291bGQgbm90IGZpbmQgcHJvdG9jb2wgbmFtZWQgIiArIG5vZGUubmFtZSk7Ci0gICAg
ICAgIG5vZGUucHJvdG9jb2xEZWNsID0gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFBy
b3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUp
OwotICAgICAgICBsZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVuYywgbm9kZS5u
YW1lKTsKLSAgICAgICAgaWYgKCFmdW5jcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGFueSBmdW5jdGlvbnMg
bmFtZWQgIiArIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBm
dW5jczsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewogICAgICAg
ICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwot
ICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsK
LSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1l
Q29udGV4dC5hZGQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNr
ZXIgPSBuZXcgTmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgbm9kZS50eXBlLnZp
c2l0KGNoZWNrZXIpOwogICAgIH0KQEAgLTE1Nyw0MSArMTE4LDEzIEBAIGNsYXNzIE5hbWVSZXNv
bHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsK
ICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250
ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0
ZXJzKSB7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAg
ICAgbmFtZUNvbnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxl
dCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIGZvciAo
bGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQogICAgICAgICAgICAgZmllbGQudmlzaXQoY2hlY2tl
cik7CiAgICAgfQogICAgIAotICAgIF9yZXNvbHZlVHlwZUFyZ3VtZW50cyh0eXBlQXJndW1lbnRz
KQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdHlwZUFyZ3VtZW50c1tp
XTsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBlT3JWYXJpYWJs
ZVJlZikgewotICAgICAgICAgICAgICAgIGxldCB0aGluZyA9IHRoaXMuX25hbWVDb250ZXh0Lmdl
dChBbnl0aGluZywgdHlwZUFyZ3VtZW50Lm5hbWUpOwotICAgICAgICAgICAgICAgIGlmICghdGhp
bmcpCi0gICAgICAgICAgICAgICAgICAgIG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiQ291bGQgbm90IGZpbmQgdHlwZSBvciB2YXJpYWJsZSBuYW1lZCAi
ICsgdHlwZUFyZ3VtZW50Lm5hbWUpOwotICAgICAgICAgICAgICAgIGlmICh0aGluZyBpbnN0YW5j
ZW9mIFZhbHVlKQotICAgICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzW2ldID0gbmV3IFZh
cmlhYmxlUmVmKHR5cGVBcmd1bWVudC5vcmlnaW4sIHR5cGVBcmd1bWVudC5uYW1lKTsKLSAgICAg
ICAgICAgICAgICBlbHNlIGlmICh0aGluZyBpbnN0YW5jZW9mIFR5cGUpCi0gICAgICAgICAgICAg
ICAgICAgIHR5cGVBcmd1bWVudHNbaV0gPSBuZXcgVHlwZVJlZih0eXBlQXJndW1lbnQub3JpZ2lu
LCB0eXBlQXJndW1lbnQubmFtZSwgW10pOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFyZ3VtZW50Lm9yaWdpbi5vcmln
aW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IHJlc29sdmVkIHRvIHdyb25nIGtpbmQgb2YgdGhpbmc6
ICIgKyB0aGluZy5raW5kKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAg
ICAgaWYgKHR5cGVBcmd1bWVudFtpXSBpbnN0YW5jZW9mIFZhbHVlCi0gICAgICAgICAgICAgICAg
JiYgIXR5cGVBcmd1bWVudFtpXS5pc0NvbnN0ZXhwcikKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnRbaV0ub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVj
dGVkIGNvbnN0ZXhwciIpOwotICAgICAgICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJl
Zihub2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50
eXBlQXJndW1lbnRzKTsKLSAgICAgICAgCiAgICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOwog
ICAgICAgICBpZiAoIXR5cGUpIHsKICAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4
dC5nZXQoVHlwZSwgbm9kZS5uYW1lKTsKQEAgLTE5OSwxOCArMTMyLDYgQEAgY2xhc3MgTmFtZVJl
c29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ291bGQgbm90IGZpbmQgdHlwZSBuYW1l
ZCAiICsgbm9kZS5uYW1lKTsKICAgICAgICAgICAgIG5vZGUudHlwZSA9IHR5cGU7CiAgICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCAhPSBu
b2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1l
bnRzIChwYXNzZWQgIiArIG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCBleHBlY3RlZCAi
ICsgdHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpOwotICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
IGxldCBwYXJhbWV0ZXJJc1R5cGUgPSB0eXBlLnR5cGVQYXJhbWV0ZXJzW2ldIGluc3RhbmNlb2Yg
VHlwZVZhcmlhYmxlOwotICAgICAgICAgICAgbGV0IGFyZ3VtZW50SXNUeXBlID0gbm9kZS50eXBl
QXJndW1lbnRzW2ldIGluc3RhbmNlb2YgVHlwZTsKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3Vt
ZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJJc1R5cGUgJiYg
IWFyZ3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5v
ZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVkIHR5cGUsIGJ1dCBnb3QgdmFsdWUgYXQg
YXJndW1lbnQgIyIgKyBpKTsKLSAgICAgICAgICAgIGlmICghcGFyYW1ldGVySXNUeXBlICYmIGFy
Z3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVkIHZhbHVlLCBidXQgZ290IHR5cGUgYXQgYXJn
dW1lbnQgIyIgKyBpKTsKLSAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2aXNpdFJlZmVyZW5j
ZVR5cGUobm9kZSkKQEAgLTI3OSw4ICsyMDAsNiBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCiAgICAgewot
ICAgICAgICB0aGlzLl9yZXNvbHZlVHlwZUFyZ3VtZW50cyhub2RlLnR5cGVBcmd1bWVudHMpOwot
ICAgICAgICAKICAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMs
IG5vZGUubmFtZSk7CiAgICAgICAgIGlmIChmdW5jcykKICAgICAgICAgICAgIG5vZGUucG9zc2li
bGVPdmVybG9hZHMgPSBmdW5jczsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL05hdGl2ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRp
dmVGdW5jLmpzCmluZGV4IGE1NTMzNTJkOWFlZTYwYmNhNjJhZDZlMTIzMjg4Yjg5MDUxODI0ODcu
LmRjMGZmNzgxYjY5MmUxODQ2Mjc4NjQ4NTBlZjY4ZGQzNWI5YThmMDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAtMjUsMTMgKzI1LDEyIEBACiAi
dXNlIHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZUZ1bmMgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCBy
ZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAg
ICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJl
dHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMu
aXNSZXN0cmljdGVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuaW1wbGVtZW50YXRpb24gPSBudWxs
OwogICAgICAgICB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGEgPSBudWxsOwotICAgICAgICB0aGlz
Lmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24gPSAoc3Vic3RpdHV0aW9uKSA9PiB7fTsKICAgICAg
ICAgdGhpcy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZp
c2l0b3IpID0+IG51bGw7CiAgICAgICAgIHRoaXMuZGlkTGF5b3V0U3RydWN0c0luSW1wbGVtZW50
YXRpb25EYXRhID0gaW1wbGVtZW50YXRpb25EYXRhID0+IG51bGw7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggYjhiMWE0NzMzMGI1ZmQ1
MWZmMDIxYWYwNjU4Njg0NGMyYWNiYThlYS4uZDgzM2Y1ZjhhYmM5YjA0NWFmY2EyNDM1YjVhYjI5
MjVmNGM2OGFmMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0
aXZlVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBl
LmpzCkBAIC0yNSwxNCArMjUsMTQgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlVHlw
ZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFt
ZXRlcnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQogICAg
IHsKLSAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSkpCi0gICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0
eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGlmICghKHR5cGVBcmd1bWVudHMgaW5zdGFuY2VvZiBB
cnJheSkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3Qg
YXJyYXk6ICIgKyB0eXBlQXJndW1lbnRzKTsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAg
dGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKKyAgICAgICAgdGhpcy5fdHlw
ZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2lzTnVtYmVyID0gZmFs
c2U7CiAgICAgICAgIHRoaXMuX2lzSW50ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzRmxvYXRp
bmcgPSBmYWxzZTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5
cGUgewogICAgIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAg
ICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRl
cnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQorICAgIGdldCB0eXBlQXJndW1l
bnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBpc05hdGl2ZSgp
IHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAvLyBXZSBsZXQgSW50cmluc2ljcy5qcyBzZXQg
dGhlc2UgYXMgaXQgbGlrZXMuCkBAIC01NCwxOCArNTQsOSBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4
dGVuZHMgVHlwZSB7CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNQcmlt
aXRpdmU7IH0KICAgICBzZXQgaXNQcmltaXRpdmUodmFsdWUpIHsgdGhpcy5faXNQcmltaXRpdmUg
PSB2YWx1ZTsgfQogICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1bWVudHMpCi0gICAgewot
ICAgICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5s
ZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiB0eXBl
IGFyZ3VtZW50cyB0byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgIGlmICghdHlwZUFyZ3VtZW50
cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAgICAgcmV0dXJuIG5ldyBO
YXRpdmVUeXBlSW5zdGFuY2UodGhpcywgdHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotICAgIAogICAg
IHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRo
aXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiI7CisgICAgICAgIHJldHVy
biAibmF0aXZlIHR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50
cyArICI+IjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL05vZGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzCmlu
ZGV4IDg4MTAzMDEzMDc3M2U3MGVhODhlMGFiNTk3OTc0Y2Y1NjFmOWQ1ZTQuLjZkMjExYjc2MmIw
YTI1OGQzNTU1MTkzNGQ2MDhhNTM4Y2UzMDM3OWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05vZGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTm9kZS5qcwpAQCAtODksOCArODksNiBAQCBjbGFzcyBOb2RlIHsKICAgICAKICAgICBnZXQg
aXNOYXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIAotICAgIGNvbnZlcnNpb25Db3N0KHVu
aWZpY2F0aW9uQ29udGV4dCkgeyByZXR1cm4gMDsgfQotICAgIAogICAgIGVxdWFscyhvdGhlcikK
ICAgICB7CiAgICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25D
b250ZXh0KCk7CkBAIC0xMDQsNyArMTAyLDYgQEAgY2xhc3MgTm9kZSB7CiAgICAgICAgIGxldCB1
bmlmaWNhdGlvbkNvbnRleHQgPSB0aGlzLmVxdWFscyhvdGhlcik7CiAgICAgICAgIGlmICghdW5p
ZmljYXRpb25Db250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB1bmlm
aWNhdGlvbkNvbnRleHQuY29tbWl0KCk7CiAgICAgICAgIHJldHVybiB1bmlmaWNhdGlvbkNvbnRl
eHQ7CiAgICAgfQogICAgIApAQCAtMTE1LDcgKzExMiw2IEBAIGNsYXNzIE5vZGUgewogICAgICAg
ICBsZXQgcmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwogICAgICAgICBpZiAo
IXJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV0Vycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBpbmZlciB0eXBlOiAiICsgcmVzdWx0LnJlYXNvbik7
Ci0gICAgICAgIHVuaWZpY2F0aW9uQ29udGV4dC5jb21taXQoKTsKICAgICAgICAgcmV0dXJuIHVu
aWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwogICAgIH0KICAgICAKQEAgLTEyMywxMSArMTE5
LDQgQEAgY2xhc3MgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy52aXNpdChuZXcg
U3Vic3RpdHV0aW9uKHBhcmFtZXRlcnMsIGFyZ3VtZW50TGlzdCkpOwogICAgIH0KLSAgICAKLSAg
ICBzdWJzdGl0dXRlVG9VbmlmaWNhdGlvbihwYXJhbWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5zdWJzdGl0dXRlKAotICAgICAgICAgICAgcGFy
YW1ldGVycywKLSAgICAgICAgICAgIHBhcmFtZXRlcnMubWFwKHR5cGUgPT4gdW5pZmljYXRpb25D
b250ZXh0LmZpbmQodHlwZSkpKTsKLSAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1BhcnNlLmpzCmluZGV4IDZkMmI0MzE2MTU2MDFhYjlkZDNkMDkzOGZiZmIzODVlZTJhNGRhZjEu
LmZiZWUxZDcxYTk0YjdmZTgzNGYwNjE4MGUwYmQ1MTcwNzYxM2EyYjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCkBAIC0xMjEsMTIgKzEyMSw2IEBAIGZ1bmN0aW9uIHBh
cnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgZnVuY3Rpb24gcGFyc2VQ
cm90b2NvbFJlZigpCi0gICAgewotICAgICAgICBsZXQgcHJvdG9jb2xUb2tlbiA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvdG9jb2xSZWYocHJvdG9j
b2xUb2tlbiwgcHJvdG9jb2xUb2tlbi50ZXh0KTsKLSAgICB9Ci0gICAgCiAgICAgZnVuY3Rpb24g
Y29uc3VtZUVuZE9mVHlwZUFyZ3MoKQogICAgIHsKICAgICAgICAgbGV0IHJpZ2h0U2hpZnQgPSB0
cnlDb25zdW1lKCI+PiIpOwpAQCAtMTM2LDM0ICsxMzAsNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9n
cmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAg
ICAgICBjb25zdW1lKCI+Iik7CiAgICAgfQogICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlVHlwZVBh
cmFtZXRlcnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0ZXN0KCI8IikpCi0gICAgICAgICAgICBy
ZXR1cm4gW107Ci0gICAgICAgIAotICAgICAgICBsZXQgcmVzdWx0ID0gW107Ci0gICAgICAgIGNv
bnN1bWUoIjwiKTsKLSAgICAgICAgd2hpbGUgKCF0ZXN0KCI+IikpIHsKLSAgICAgICAgICAgIGxl
dCBjb25zdGV4cHIgPSBsZXhlci5iYWNrdHJhY2tpbmdTY29wZSgoKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKLSAgICAgICAgICAgICAgICBsZXQgbmFtZSA9
IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0TmV4dCgi
LCIsICI+IiwgIj4+Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKHR5cGUub3JpZ2luLCBuYW1lLnRleHQsIHR5cGUpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICBpZiAoY29uc3RleHByKQotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNo
KGNvbnN0ZXhwcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBsZXQgbmFt
ZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICAgICAgbGV0IHByb3Rv
Y29sID0gdHJ5Q29uc3VtZSgiOiIpID8gcGFyc2VQcm90b2NvbFJlZigpIDogbnVsbDsKLSAgICAg
ICAgICAgICAgICByZXN1bHQucHVzaChuZXcgVHlwZVZhcmlhYmxlKG5hbWUsIG5hbWUudGV4dCwg
cHJvdG9jb2wpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdHJ5Q29uc3VtZSgi
LCIpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGNvbnN1bWVF
bmRPZlR5cGVBcmdzKCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAg
IGZ1bmN0aW9uIHBhcnNlVGVybSgpCiAgICAgewogICAgICAgICBsZXQgdG9rZW47CkBAIC0yMjIs
NyArMTg4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IHRva2VuOwogICAgICAg
ICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCItIikpCi0gICAgICAgICAgICByZXR1cm4gbmV3IENh
bGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW10sIFtwYXJzZVRl
cm0oKV0pOworICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9w
ZXJhdG9yIiArIHRva2VuLnRleHQsIFtwYXJzZVRlcm0oKV0pOwogICAgICAgICBsZXQgbGVmdCA9
IHBhcnNlVGVybSgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIuIikpCiAgICAg
ICAgICAgICBsZWZ0ID0gbmV3IERvdEV4cHJlc3Npb24odG9rZW4sIGxlZnQsIGNvbnN1bWVLaW5k
KCJpZGVudGlmaWVyIikudGV4dCk7CkBAIC0yODIsOCArMjQ4LDcgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
ICAgICAgICAgYWRkcmVzc1NwYWNlID0gdG9rZW4udGV4dDsKICAgICAgICAgCiAgICAgICAgIGxl
dCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgbGV0IHR5cGVBcmd1
bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKLSAgICAgICAgbGV0IHR5cGUgPSBuZXcgVHlw
ZVJlZihuYW1lLCBuYW1lLnRleHQsIHR5cGVBcmd1bWVudHMpOworICAgICAgICBsZXQgdHlwZSA9
IG5ldyBUeXBlUmVmKG5hbWUsIG5hbWUudGV4dCk7CiAgICAgICAgIAogICAgICAgICBmdW5jdGlv
biBnZXRBZGRyZXNzU3BhY2UoKQogICAgICAgICB7CkBAIC0zMTgsMTEgKzI4MywxMCBAQCBmdW5j
dGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQs
IHRleHQpCiAgICAgewogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgidHlwZWRlZiIpOwog
ICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAg
ICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwogICAgICAgICBj
b25zdW1lKCI9Iik7CiAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgIGNv
bnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBUeXBlRGVmKG9yaWdpbiwgbmFtZSwgdHlw
ZVBhcmFtZXRlcnMsIHR5cGUpOworICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYob3JpZ2luLCBu
YW1lLCB0eXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gZ2VuZXJpY1BhcnNlTGVmdCh0
ZXh0cywgbmV4dFBhcnNlciwgY29uc3RydWN0b3IpCkBAIC0zMzksMTMgKzMwMywxMiBAQCBmdW5j
dGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQs
IHRleHQpCiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgdGV4
dHMsIG5leHRQYXJzZXIsCiAgICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PgotICAg
ICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2Vu
LnRleHQsIFtdLCBbbGVmdCwgcmlnaHRdKSk7CisgICAgICAgICAgICAgICAgbmV3IENhbGxFeHBy
ZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW2xlZnQsIHJpZ2h0XSkpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZUNhbGxFeHByZXNzaW9uKCkKICAgICB7CiAg
ICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgbGV0
IHR5cGVBcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAgICAgY29uc3VtZSgi
KCIpOwogICAgICAgICBsZXQgYXJndW1lbnRMaXN0ID0gW107CiAgICAgICAgIHdoaWxlICghdGVz
dCgiKSIpKSB7CkBAIC0zNTUsNyArMzE4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3Jp
Z2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNvbnN1bWUoIikiKTsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihuYW1lLCBuYW1lLnRleHQsIHR5cGVBcmd1bWVudHMs
IGFyZ3VtZW50TGlzdCk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24o
bmFtZSwgbmFtZS50ZXh0LCBhcmd1bWVudExpc3QpOwogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKQEAgLTM2Myw3ICszMjYsNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBv
cmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAg
ICByZXR1cm4gbGV4ZXIudGVzdFNjb3BlKCgpID0+IHsKICAgICAgICAgICAgIGNvbnN1bWVLaW5k
KCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAg
ICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAtMzgxLDcgKzM0Myw3
IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJl
ck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKG5hbWUgPT0gIm9wZXJhdG9yIikKICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBuYW1lOiAiICsgbmFtZSk7CiAgICAgICAgIAot
ICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCBuYW1lLCBbXSwgYXJncyk7
CisgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5hbWUsIGFyZ3MpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBmaW5pc2hQYXJzaW5nUG9zdEluY3JlbWVudCh0b2tl
biwgbGVmdCkKQEAgLTQ1NCw3ICs0MTYsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlmICh0ZXN0
KCIrKyIsICItLSIpKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlUHJlSW5jcmVtZW50KCk7CiAg
ICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIisiLCAiLSIsICJ+IikpCi0gICAgICAgICAg
ICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4
dCwgW10sIFtwYXJzZVBvc3NpYmxlUHJlZml4KCldKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcg
Q2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbcGFyc2VQb3Nz
aWJsZVByZWZpeCgpXSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIioiKSkKICAg
ICAgICAgICAgIHJldHVybiBuZXcgRGVyZWZlcmVuY2VFeHByZXNzaW9uKHRva2VuLCBwYXJzZVBv
c3NpYmxlUHJlZml4KCkpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCImIikpCkBA
IC00NjMsNyArNDI1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgcmV0dXJuIG5ldyBNYWtl
QXJyYXlSZWZFeHByZXNzaW9uKHRva2VuLCBwYXJzZVBvc3NpYmxlUHJlZml4KCkpOwogICAgICAg
ICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIhIikpIHsKICAgICAgICAgICAgIGxldCByZW1haW5k
ZXIgPSBwYXJzZVBvc3NpYmxlUHJlZml4KCk7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IExvZ2lj
YWxOb3QodG9rZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5kZXIub3JpZ2luLCAiYm9vbCIs
IFtdLCBbcmVtYWluZGVyXSkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2FsTm90KHRv
a2VuLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJvb2wiLCBbcmVtYWlu
ZGVyXSkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZVBvc3NpYmxlU3VmZml4KCk7
CiAgICAgfQpAQCAtNDkzLDcgKzQ1NSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgcmV0dXJuIGdl
bmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICBbIj09IiwgIiE9Il0sIHBhcnNlUG9zc2libGVS
ZWxhdGlvbmFsSW5lcXVhbGl0eSwKICAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+
IHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKHRva2Vu
LCAib3BlcmF0b3I9PSIsIFtdLCBbbGVmdCwgcmlnaHRdKTsKKyAgICAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3I9PSIsIFtsZWZ0LCBy
aWdodF0pOwogICAgICAgICAgICAgICAgIGlmICh0b2tlbi50ZXh0ID09ICIhPSIpCiAgICAgICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBMb2dpY2FsTm90KHRva2VuLCByZXN1bHQpOwogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC01MTksNyArNDgxLDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgIHsKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICB0
ZXh0cywgbmV4dFBhcnNlciwKLSAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5l
dyBMb2dpY2FsRXhwcmVzc2lvbih0b2tlbiwgdG9rZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9u
KGxlZnQub3JpZ2luLCAiYm9vbCIsIFtdLCBbbGVmdF0pLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmln
aHQub3JpZ2luLCAiYm9vbCIsIFtdLCBbcmlnaHRdKSkpOworICAgICAgICAgICAgKHRva2VuLCBs
ZWZ0LCByaWdodCkgPT4gbmV3IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBu
ZXcgQ2FsbEV4cHJlc3Npb24obGVmdC5vcmlnaW4sICJib29sIiwgW2xlZnRdKSwgbmV3IENhbGxF
eHByZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbcmlnaHRdKSkpOwogICAgIH0KICAgICAK
ICAgICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlTG9naWNhbEFuZCgpCkBAIC02NTYsNyArNjE4LDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgZWxzZUJvZHk7CiAgICAgICAgIGlmICh0cnlDb25z
dW1lKCJlbHNlIikpCiAgICAgICAgICAgICBlbHNlQm9keSA9IHBhcnNlU3RhdGVtZW50KCk7Ci0g
ICAgICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24o
Y29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSwgYm9keSwgZWxz
ZUJvZHkpOworICAgICAgICByZXR1cm4gbmV3IElmU3RhdGVtZW50KG9yaWdpbiwgbmV3IENhbGxF
eHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxdKSwgYm9k
eSwgZWxzZUJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlV2hpbGUoKQpAQCAtNjY2
LDcgKzYyOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwg
bGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IGNvbmRpdGlvbmFsID0gcGFyc2VF
eHByZXNzaW9uKCk7CiAgICAgICAgIGNvbnN1bWUoIikiKTsKICAgICAgICAgbGV0IGJvZHkgPSBw
YXJzZVN0YXRlbWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9vcChvcmlnaW4sIG5l
dyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRp
b25hbF0pLCBib2R5KTsKKyAgICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Aob3JpZ2luLCBuZXcg
Q2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0p
LCBib2R5KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZUZvcigpCkBAIC02ODcsNyArNjQ5
LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNvbmRpdGlvbiA9
IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICAg
ICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbi5vcmlnaW4sICJib29s
IiwgW10sIFtjb25kaXRpb25dKTsKKyAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBDYWxsRXhw
cmVzc2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25dKTsKICAgICAgICAg
fQogICAgICAgICBsZXQgaW5jcmVtZW50OwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiKSIpKQpA
QCAtNzA4LDcgKzY3MCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2lu
S2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgY29uc3VtZSgiKCIpOwogICAg
ICAgICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAgICAgY29uc3Vt
ZSgiKSIpOwotICAgICAgICByZXR1cm4gbmV3IERvV2hpbGVMb29wKG9yaWdpbiwgYm9keSwgbmV3
IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlv
bmFsXSkpOworICAgICAgICByZXR1cm4gbmV3IERvV2hpbGVMb29wKG9yaWdpbiwgYm9keSwgbmV3
IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxd
KSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVEZWNscygpCkBAIC04
NTgsMTMgKzgyMCwxMSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmlnaW47CiAgICAgICAg
IGxldCByZXR1cm5UeXBlOwogICAgICAgICBsZXQgbmFtZTsKLSAgICAgICAgbGV0IHR5cGVQYXJh
bWV0ZXJzOwogICAgICAgICBsZXQgaXNDYXN0OwogICAgICAgICBsZXQgc2hhZGVyVHlwZTsKICAg
ICAgICAgbGV0IG9wZXJhdG9yVG9rZW4gPSB0cnlDb25zdW1lKCJvcGVyYXRvciIpOwogICAgICAg
ICBpZiAob3BlcmF0b3JUb2tlbikgewogICAgICAgICAgICAgb3JpZ2luID0gb3BlcmF0b3JUb2tl
bjsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwog
ICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICAgICAgbmFtZSA9
ICJvcGVyYXRvciBjYXN0IjsKICAgICAgICAgICAgIGlzQ2FzdCA9IHRydWU7CkBAIC04NzcsNDQg
KzgzNywxNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAg
ICBvcmlnaW4gPSByZXR1cm5UeXBlLm9yaWdpbjsKICAgICAgICAgICAgIG5hbWUgPSBwYXJzZUZ1
bmNOYW1lKCk7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRl
cnMoKTsKICAgICAgICAgICAgIGlzQ2FzdCA9IGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIGxl
dCBwYXJhbWV0ZXJzID0gcGFyc2VQYXJhbWV0ZXJzKCk7Ci0gICAgICAgIHJldHVybiBuZXcgRnVu
YyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBp
c0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICByZXR1cm4gbmV3IEZ1bmMob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgpCi0gICAgewotICAgICAgICBsZXQg
ZnVuYyA9IHBhcnNlRnVuY0RlY2woKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2NvbEZ1bmNE
ZWNsKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFy
YW1ldGVycywgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsK
LSAgICB9Ci0gICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGdW5jRGVmKCkKICAgICB7CiAgICAgICAg
IGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAgICAgICBsZXQgYm9keSA9IHBhcnNlQmxv
Y2soKTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUs
IGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJhbWV0ZXJzLCBi
b2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICB9Ci0gICAgCi0gICAgZnVu
Y3Rpb24gcGFyc2VQcm90b2NvbERlY2woKQotICAgIHsKLSAgICAgICAgbGV0IG9yaWdpbiA9IGNv
bnN1bWUoInByb3RvY29sIik7Ci0gICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50
aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRGVjbChvcmln
aW4sIG5hbWUpOwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgiOiIpKSB7Ci0gICAgICAgICAgICB3
aGlsZSAoIXRlc3QoInsiKSkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5hZGRFeHRlbmRzKHBh
cnNlUHJvdG9jb2xSZWYoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF0cnlDb25zdW1lKCIsIikp
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGNvbnN1bWUoInsiKTsKLSAgICAgICAgd2hpbGUgKCF0cnlDb25zdW1lKCJ9IikpIHsK
LSAgICAgICAgICAgIHJlc3VsdC5hZGQocGFyc2VQcm90b2NvbEZ1bmNEZWNsKCkpOwotICAgICAg
ICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJl
dHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVy
VHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlRmllbGQoKQpAQCAtOTI5LDgg
Kzg2Miw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1l
KCJzdHJ1Y3QiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIp
LnRleHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMo
KTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdpbiwgbmFtZSwgdHlw
ZVBhcmFtZXRlcnMpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUob3JpZ2lu
LCBuYW1lKTsKICAgICAgICAgY29uc3VtZSgieyIpOwogICAgICAgICB3aGlsZSAoIXRyeUNvbnN1
bWUoIn0iKSkKICAgICAgICAgICAgIHJlc3VsdC5hZGQocGFyc2VGaWVsZCgpKTsKQEAgLTk0MSw3
ICs4NzMsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVu
Y0RlY2woKTsKICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICByZXR1cm4gbmV3IE5hdGl2
ZUZ1bmMoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQ
YXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUp
OworICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUZ1bmMoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwg
ZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRl
clR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZU5hdGl2ZSgpCkBAIC05NDks
OSArODgxLDkgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgibmF0
aXZlIik7CiAgICAgICAgIGlmICh0cnlDb25zdW1lKCJ0eXBlZGVmIikpIHsKICAgICAgICAgICAg
IGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIGxldCBw
YXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOworICAgICAgICAgICAgbGV0IGFyZ3Vt
ZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICAgICAgY29uc3VtZSgiOyIpOwot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZS50ZXh0LCBwYXJh
bWV0ZXJzKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZShvcmlnaW4sIG5hbWUu
dGV4dCwgYXJndW1lbnRzKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcGFyc2VOYXRpdmVG
dW5jKCk7CiAgICAgfQpAQCAtOTg1LDcgKzkxNyw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0s
IG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYg
KHRyeUNvbnN1bWUoIjoiKSkKICAgICAgICAgICAgIGJhc2VUeXBlID0gcGFyc2VUeXBlKCk7CiAg
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJhc2VUeXBlID0gbmV3IFR5cGVSZWYobmFtZSwgImlu
dCIsIFtdKTsKKyAgICAgICAgICAgIGJhc2VUeXBlID0gbmV3IFR5cGVSZWYobmFtZSwgImludCIp
OwogICAgICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRW51bVR5
cGUobmFtZSwgbmFtZS50ZXh0LCBiYXNlVHlwZSk7CiAgICAgICAgIHdoaWxlICghdGVzdCgifSIp
KSB7CkBAIC0xMDEzLDggKzk0NSw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIHByb2dyYW0u
YWRkKHBhcnNlU3RydWN0VHlwZSgpKTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAi
ZW51bSIpCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUVudW1UeXBlKCkpOwotICAgICAg
ICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJwcm90b2NvbCIpCi0gICAgICAgICAgICBwcm9ncmFt
LmFkZChwYXJzZVByb3RvY29sRGVjbCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcHJv
Z3JhbS5hZGQocGFyc2VGdW5jRGVmKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9QcmVwYXJlLmpzCmluZGV4IGEyMDQ4YTlhZDNlODNiZDE4Yjc2NDQ0Y2E1NTQ2ZTQ4ZmUw
MTE5YTAuLmU3YzNmMjM2NjA0ZjhiYTA4N2FjMWU2NmY1OGQ2Nzg2MDFjNTc2YzYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwpAQCAtNDIsMTYgKzQyLDEzIEBAIGxl
dCBwcmVwYXJlID0gKCgpID0+IHsKICAgICAgICAgZm9sZENvbnN0ZXhwcnMocHJvZ3JhbSk7CiAg
ICAgICAgIGxldCBuYW1lUmVzb2x2ZXIgPSBjcmVhdGVOYW1lUmVzb2x2ZXIocHJvZ3JhbSk7CiAg
ICAgICAgIHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKTsKLSAgICAg
ICAgcmVzb2x2ZU5hbWVzSW5Qcm90b2NvbHMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKTsKICAgICAg
ICAgcmVzb2x2ZVR5cGVEZWZzSW5UeXBlcyhwcm9ncmFtKTsKLSAgICAgICAgcmVzb2x2ZVR5cGVE
ZWZzSW5Qcm90b2NvbHMocHJvZ3JhbSk7CiAgICAgICAgIGNoZWNrUmVjdXJzaXZlVHlwZXMocHJv
Z3JhbSk7CiAgICAgICAgIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSk7CiAgICAg
ICAgIHN5bnRoZXNpemVFbnVtRnVuY3Rpb25zKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFt
ZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwogICAgICAgICByZXNvbHZlVHlw
ZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKTsKLSAgICAgICAgCi0gICAgICAgIGZsYXR0ZW5Qcm90
b2NvbEV4dGVuZHMocHJvZ3JhbSk7CisKICAgICAgICAgY2hlY2socHJvZ3JhbSk7CiAgICAgICAg
IGNoZWNrTGl0ZXJhbFR5cGVzKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlUHJvcGVydGllcyhw
cm9ncmFtKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dy
YW0uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCmluZGV4IGJi
YzRiMjRhNjIyN2IxY2U1YjA2ZDczM2FjMjBkOTJiNTk2YTRjNzMuLjhmYzZmNzkzZWU2ZTczZWVj
YTVhNmFhNzRhNDQwYTY3Yjg2YmU2ZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Byb2dyYW0uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHJvZ3JhbS5qcwpAQCAtMzEsOCArMzEsNiBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7
CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3RhdGVtZW50cyA9IFtdOwogICAgICAgICB0aGlzLl9m
dW5jdGlvbnMgPSBuZXcgTWFwKCk7CiAgICAgICAgIHRoaXMuX3R5cGVzID0gbmV3IE1hcCgpOwot
ICAgICAgICB0aGlzLl9wcm90b2NvbHMgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX2Z1bmNJ
bnN0YW50aWF0b3IgPSBuZXcgRnVuY0luc3RhbnRpYXRvcih0aGlzKTsKICAgICAgICAgdGhpcy5f
Z2xvYmFsTmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQoKTsKICAgICAgICAgdGhpcy5fZ2xv
YmFsTmFtZUNvbnRleHQucHJvZ3JhbSA9IHRoaXM7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVD
b250ZXh0LnJlY29nbml6ZUludHJpbnNpY3MoKTsKQEAgLTQyLDggKzQwLDYgQEAgY2xhc3MgUHJv
Z3JhbSBleHRlbmRzIE5vZGUgewogICAgIGdldCB0b3BMZXZlbFN0YXRlbWVudHMoKSB7IHJldHVy
biB0aGlzLl90b3BMZXZlbFN0YXRlbWVudHM7IH0KICAgICBnZXQgZnVuY3Rpb25zKCkgeyByZXR1
cm4gdGhpcy5fZnVuY3Rpb25zOyB9CiAgICAgZ2V0IHR5cGVzKCkgeyByZXR1cm4gdGhpcy5fdHlw
ZXM7IH0KLSAgICBnZXQgcHJvdG9jb2xzKCkgeyByZXR1cm4gdGhpcy5fcHJvdG9jb2xzOyB9Ci0g
ICAgZ2V0IGZ1bmNJbnN0YW50aWF0b3IoKSB7IHJldHVybiB0aGlzLl9mdW5jSW5zdGFudGlhdG9y
OyB9CiAgICAgZ2V0IGdsb2JhbE5hbWVDb250ZXh0KCkgeyByZXR1cm4gdGhpcy5fZ2xvYmFsTmFt
ZUNvbnRleHQ7IH0KICAgICAKICAgICBhZGQoc3RhdGVtZW50KQpAQCAtNTYsOCArNTIsNiBAQCBj
bGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgICAgICAgICBhcnJheS5wdXNoKHN0YXRl
bWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGVtZW50IGluc3RhbmNlb2YgVHlwZSkKICAg
ICAgICAgICAgIHRoaXMuX3R5cGVzLnNldChzdGF0ZW1lbnQubmFtZSwgc3RhdGVtZW50KTsKLSAg
ICAgICAgZWxzZSBpZiAoc3RhdGVtZW50IGluc3RhbmNlb2YgUHJvdG9jb2wpCi0gICAgICAgICAg
ICB0aGlzLl9wcm90b2NvbHMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlN0YXRlbWVudCBpcyBub3QgYSBm
dW5jdGlvbiBvciB0eXBlOiAiICsgc3RhdGVtZW50KTsKICAgICAgICAgdGhpcy5fdG9wTGV2ZWxT
dGF0ZW1lbnRzLnB1c2goc3RhdGVtZW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHJvdG9jb2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzZjg0NTY0NzdlY2Ey
ZThkY2Y2NmNmNDVjMmQ0NzNjYTA4NTdkODguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sIGV4
dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAg
ICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlz
Ll9uYW1lID0gbmFtZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAg
IGdldCBraW5kKCkgeyByZXR1cm4gUHJvdG9jb2w7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjUwYmNmY2YzM2JhNzM5NWM1NmQ5NTJhNTc5ZDA5OTI3YjBiZTc2Ny4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbERlY2wgZXh0ZW5kcyBQcm90b2NvbCB7Ci0gICAgY29u
c3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1l
KTsKLSAgICAgICAgdGhpcy5leHRlbmRzID0gW107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMg
PSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0dXJlTWFwID0gbmV3IE1hcCgpOwotICAgICAgICB0
aGlzLl90eXBlVmFyaWFibGUgPSBuZXcgVHlwZVZhcmlhYmxlKG9yaWdpbiwgbmFtZSwgbnVsbCk7
Ci0gICAgfQotICAgIAotICAgIGFkZEV4dGVuZHMocHJvdG9jb2wpCi0gICAgewotICAgICAgICB0
aGlzLmV4dGVuZHMucHVzaChwcm90b2NvbCk7Ci0gICAgfQotICAgIAotICAgIGFkZChzaWduYXR1
cmUpCi0gICAgewotICAgICAgICBpZiAoIShzaWduYXR1cmUgaW5zdGFuY2VvZiBQcm90b2NvbEZ1
bmNEZWNsKSkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU2lnbmF0dXJlIGlzbid0IGEg
UHJvdG9jb2xGdW5jRGVjbCBidXQgYSAiICsgc2lnbmF0dXJlLmNvbnN0cnVjdG9yLm5hbWUpOwot
ICAgICAgICAKLSAgICAgICAgc2lnbmF0dXJlLnByb3RvY29sRGVjbCA9IHRoaXM7Ci0gICAgICAg
IHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpOwotICAgICAgICBsZXQgb3ZlcmxvYWRz
ID0gdGhpcy5fc2lnbmF0dXJlTWFwLmdldChzaWduYXR1cmUubmFtZSk7Ci0gICAgICAgIGlmICgh
b3ZlcmxvYWRzKQotICAgICAgICAgICAgdGhpcy5fc2lnbmF0dXJlTWFwLnNldChzaWduYXR1cmUu
bmFtZSwgb3ZlcmxvYWRzID0gW10pOwotICAgICAgICBvdmVybG9hZHMucHVzaChzaWduYXR1cmUp
OwotICAgIH0KLSAgICAKLSAgICBnZXQgc2lnbmF0dXJlcygpIHsgcmV0dXJuIHRoaXMuX3NpZ25h
dHVyZXM7IH0KLSAgICBzaWduYXR1cmVzQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX3NpZ25h
dHVyZU1hcC5nZXQobmFtZSk7IH0KLSAgICBnZXQgdHlwZVZhcmlhYmxlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZVZhcmlhYmxlOyB9Ci0gICAgCi0gICAgc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFy
aWFibGUobmFtZSwgdHlwZVZhcmlhYmxlKQotICAgIHsKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlv
biA9IG5ldyBTdWJzdGl0dXRpb24oW3RoaXMudHlwZVZhcmlhYmxlXSwgW3R5cGVWYXJpYWJsZV0p
OwotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5zaWduYXR1cmVzQnlOYW1lKG5hbWUpOwotICAg
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICByZXR1
cm4gcmVzdWx0Lm1hcChzaWduYXR1cmUgPT4gc2lnbmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbikp
OwotICAgIH0KLSAgICAKLSAgICBpbmhlcml0cyhvdGhlclByb3RvY29sKQotICAgIHsKLSAgICAg
ICAgaWYgKCFvdGhlclByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwotICAgICAgICAKLSAgICAgICAgaWYgKG90aGVyUHJvdG9jb2wgaW5zdGFuY2VvZiBQcm90b2Nv
bFJlZikKLSAgICAgICAgICAgIG90aGVyUHJvdG9jb2wgPSBvdGhlclByb3RvY29sLnByb3RvY29s
RGVjbDsKLSAgICAgICAgCi0gICAgICAgIGZvciAobGV0IG90aGVyU2lnbmF0dXJlIG9mIG90aGVy
UHJvdG9jb2wuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlz
LnNpZ25hdHVyZXNCeU5hbWUob3RoZXJTaWduYXR1cmUubmFtZSk7Ci0gICAgICAgICAgICBpZiAo
IXNpZ25hdHVyZXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFz
b246ICJQcm90b2NvbCAiICsgdGhpcy5uYW1lICsgIiBkb2VzIG5vdCBoYXZlIGEgZnVuY3Rpb24g
bmFtZWQgIiArIG90aGVyU2lnbmF0dXJlLm5hbWUgKyAiIChsb29raW5nIGF0IHNpZ25hdHVyZSAi
ICsgb3RoZXJTaWduYXR1cmUgKyAiKSJ9OwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVz
b2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBzaWduYXR1cmVzLCBbXSwKLSAgICAg
ICAgICAgICAgICBvdGhlclNpZ25hdHVyZS5wYXJhbWV0ZXJUeXBlcywKLSAgICAgICAgICAgICAg
ICBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAg
ICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3Vs
dDogZmFsc2UsIHJlYXNvbjogIkRpZCBub3QgZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIg
KyBvdGhlclNpZ25hdHVyZSArICIgaW4gIiArIHRoaXMubmFtZSArIChvdmVybG9hZC5mYWlsdXJl
cy5sZW5ndGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsgIikgKyAi
KSIgOiAiIil9OwotICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGVkUmV0dXJuVHlwZSA9Ci0gICAg
ICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0
aW9uKAotICAgICAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBv
dmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRl
ZFJldHVyblR5cGUuZXF1YWxzKG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiUmV0dXJuIHR5cGUgbWlzbWF0
Y2ggYmV0d2VlbiAiICsgb3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZSArICIgYW5kICIgKyBzdWJz
dGl0dXRlZFJldHVyblR5cGV9OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0
cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgbGV0
IHN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24oW3RoaXMuX3R5cGVWYXJpYWJsZV0sIFt0
eXBlXSk7Ci0gICAgICAgIGxldCBzaWduYXR1cmVzID0gdGhpcy5zaWduYXR1cmVzOwotICAgICAg
ICBmb3IgKGxldCBvcmlnaW5hbFNpZ25hdHVyZSBvZiBzaWduYXR1cmVzKSB7Ci0gICAgICAgICAg
ICBsZXQgc2lnbmF0dXJlID0gb3JpZ2luYWxTaWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKTsK
LSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoc2lnbmF0dXJl
LnBvc3NpYmxlT3ZlcmxvYWRzLCBzaWduYXR1cmUudHlwZVBhcmFtZXRlcnMsIHNpZ25hdHVyZS5w
YXJhbWV0ZXJUeXBlcywgc2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24p
OwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVy
biB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVy
ZSBmb3IgIiArIG9yaWdpbmFsU2lnbmF0dXJlICsgIiAoYXQgIiArIG9yaWdpbmFsU2lnbmF0dXJl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKSB3aXRoIHR5cGUgIiArIHR5cGUgKyAob3ZlcmxvYWQu
ZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6ICIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCI7
ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgbGV0IHN1YnN0aXR1
dGVkUmV0dXJuVHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9Vbmlm
aWNhdGlvbigKLSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBv
dmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQpOwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRl
ZFJldHVyblR5cGUuZXF1YWxzKHNpZ25hdHVyZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkF0IHNpZ25hdHVyZSAiICsgb3JpZ2lu
YWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3JpZ2luYWxTaWduYXR1cmUub3JpZ2luLm9yaWdpblN0
cmluZyArICIpOiByZXR1cm4gdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICIgKyBzaWduYXR1cmUucmV0
dXJuVHlwZSArICIgYW5kICIgKyBzdWJzdGl0dXRlZFJldHVyblR5cGUgKyAiIGluIGZvdW5kIGZ1
bmN0aW9uICIgKyBvdmVybG9hZC5mdW5jLnRvRGVjbFN0cmluZygpfTsKLSAgICAgICAgfQotICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiAicHJvdG9jb2wgIiArIHRoaXMubmFtZSArICIgeyAiICsg
dGhpcy5zaWduYXR1cmVzLmpvaW4oIjsgIikgKyAiOyB9IjsKLSAgICB9Ci19Ci0KLQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5YjVjOWI4ZTcxNjE4NjhhMWNlNDVkNTg4NjYzOTJj
MDIyMjQ0ZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcworKysgL2Rl
di9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xGdW5jRGVjbCBleHRl
bmRzIEZ1bmMgewotICAgIGdldCB0eXBlUGFyYW1ldGVyc0ZvckNhbGxSZXNvbHV0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGVQYXJhbWV0ZXJzLmNvbmNhdCh0aGlzLnByb3Rv
Y29sRGVjbC50eXBlVmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDNjMGVhMzBkNzQ4ZDhiOWUxNjEwN2E5ZjgwOGMyM2IzMjg2NWU2NC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm90b2NvbFJlZi5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQot
Y2xhc3MgUHJvdG9jb2xSZWYgZXh0ZW5kcyBQcm90b2NvbCB7Ci0gICAgY29uc3RydWN0b3Iob3Jp
Z2luLCBuYW1lKQotICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lKTsKLSAgICAgICAg
dGhpcy5wcm90b2NvbERlY2wgPSBudWxsOwotICAgIH0KLSAgICAKLSAgICBpbmhlcml0cyhvdGhl
cikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5pbmhlcml0cyhvdGhl
cik7Ci0gICAgfQotICAgIAotICAgIGhhc0hlaXIodHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnByb3RvY29sRGVjbC5oYXNIZWlyKHR5cGUpOwotICAgIH0KLSAgICAKLSAgICBnZXQg
aXNQcmltaXRpdmUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmlz
UHJpbWl0aXZlOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Jlc29sdmVOYW1lcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVOYW1lcy5qcwppbmRleCAxOTIyZThlYzI3ZmMzOWQ5NWI0YWE4YmZhOWE1NmM5MTBmNmU2
OGIyLi40OWRjODYzN2Q0ZTE0M2E5YjA3ZDU5Y2YzZmI5NzVjZjg0YTY1ZTE2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCkBAIC0zNSwxMiArMzUs
NiBAQCBmdW5jdGlvbiByZXNvbHZlTmFtZXNJblR5cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikK
ICAgICAgICAgbmFtZVJlc29sdmVyLmRvU3RhdGVtZW50KHR5cGUpOwogfQogCi1mdW5jdGlvbiBy
ZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCi17Ci0gICAgZm9y
IChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIG5h
bWVSZXNvbHZlci5kb1N0YXRlbWVudChwcm90b2NvbCk7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVO
YW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKIHsKICAgICBmb3IgKGxldCBm
dW5jcyBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKaW5kZXggN2UyMjE1
NmRlMWFjNWUyYTZjNzI0YWQzNDY5ZGM5MWU3NDZmMjU2Ni4uYWM3MjQ5NGVlMjBiODQ3MmI1ODg3
MzI5MDRiYTgyMDAzNDA1NDc0MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KICJ1
c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9
IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3VtZW50
VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQogewogICAgIGlmICgh
ZnVuY3Rpb25zKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgZnVuY3Rpb25zOyB0aGF0
IHNob3VsZCBoYXZlIGJlZW4gY2F1Z2h0IGJ5IHRoZSBjYWxsZXIuIik7CkBAIC0zNiw3ICszNiw3
IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRz
LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG5l
dyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJGdW5jdGlvbiBpcyBhICIgKyBmdW5j
LnNoYWRlclR5cGUgKyAiIHNoYWRlciwgc28gaXQgY2Fubm90IGJlIGNhbGxlZCBmcm9tIHdpdGhp
biBhbiBleGlzdGluZyBzaGFkZXIuIikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBsZXQgb3ZlcmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCB0eXBlQXJn
dW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKTsKKyAgICAgICAgbGV0IG92ZXJsb2Fk
ID0gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSk7CiAg
ICAgICAgIGlmIChvdmVybG9hZC5mYWlsdXJlKQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaChv
dmVybG9hZC5mYWlsdXJlKTsKICAgICAgICAgZWxzZQpAQCAtNDYsMTIgKzQ2LDYgQEAgZnVuY3Rp
b24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50
VHlwZXMsIHJldHVyblR5cGUKICAgICBpZiAoIXN1Y2Nlc3Nlcy5sZW5ndGgpCiAgICAgICAgIHJl
dHVybiB7ZmFpbHVyZXM6IGZhaWx1cmVzfTsKICAgICAKLSAgICBsZXQgbWluaW11bUNvbnZlcnNp
b25Db3N0ID0gc3VjY2Vzc2VzLnJlZHVjZSgKLSAgICAgICAgKHJlc3VsdCwgb3ZlcmxvYWQpID0+
IE1hdGgubWluKHJlc3VsdCwgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0LmNvbnZlcnNpb25D
b3N0KSwKLSAgICAgICAgSW5maW5pdHkpOwotICAgIHN1Y2Nlc3NlcyA9IHN1Y2Nlc3Nlcy5maWx0
ZXIoCi0gICAgICAgIG92ZXJsb2FkID0+IG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dC5jb252
ZXJzaW9uQ29zdCA9PSBtaW5pbXVtQ29udmVyc2lvbkNvc3QpOwotICAgIAogICAgIC8vIElmIGFu
eSBvZiB0aGUgc2lnbmF0dXJlcyBhcmUgcmVzdHJpY3RlZCB0aGVuIHdlIGNvbnNpZGVyIHRob3Nl
IGZpcnN0LiBUaGlzIGlzIGFuIGVzY2FwZSBtZWNoYW5pc20gZm9yCiAgICAgLy8gYnVpbHQtaW4g
dGhpbmdzLgogICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUgYW4gZXJyb3IgdG8gZGVjbGFyZSBh
IGZ1bmN0aW9uIHRoYXQgaXMgYXQgbGVhc3QgYXMgc3BlY2lmaWMgYXMgYSByZXN0cmljdGVkIGZ1
bmN0aW9uLgpAQCAtNzQsNyArNjgsNiBAQCBmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1
bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZQogICAgICAg
ICAgICAgbGV0IHBhcmFtZXRlckZ1bmMgPSBzdWNjZXNzZXNbal0uZnVuYzsKICAgICAgICAgICAg
IGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKAogICAgICAgICAgICAgICAgIHBhcmFt
ZXRlckZ1bmMsCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVu
dEZ1bmMudHlwZVBhcmFtZXRlcnMgOiBbXSwKICAgICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMu
cGFyYW1ldGVyVHlwZXMsCiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnJldHVyblR5cGVG
b3JPdmVybG9hZFJlc29sdXRpb24pOwogICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURl
ZnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMK
aW5kZXggM2JkMmE0ZDY1ZjU2NGY3MDhiMGVmNDc1OWU0M2IyYzg4ZDQ4YzIzNC4uZTg3YmRjM2Mz
NDgzMTk5NTJmZjlkOGYwMzk5ZjM0OGVhOTUwZDYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcwpAQCAtMzEsMTMgKzMxLDYgQEAgZnVu
Y3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5UeXBlcyhwcm9ncmFtKQogICAgICAgICB0eXBlLnZpc2l0
KHJlc29sdmVyKTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5Qcm90b2NvbHMocHJv
Z3JhbSkKLXsKLSAgICBsZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJlc29sdmVyKCk7Ci0gICAg
Zm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAg
IHByb3RvY29sLnZpc2l0KHJlc29sdmVyKTsKLX0KLQogZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZz
SW5GdW5jdGlvbnMocHJvZ3JhbSkKIHsKICAgICBsZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJl
c29sdmVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdy
aXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4
IGY0MGQ2Yjg4YjI2ZWVkY2JmODI5ZjFiYWJiMTBhMjA0NWI3YThlODMuLjc5ZmJjNzk5N2IzY2E0
ZmJkODViYmM2ZGRkNmU4ZGQ1ZDRhOWM1YWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Jld3JpdGVyLmpzCkBAIC01NywzMCArNTcsOCBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAg
dmlzaXROYXRpdmVUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdFR5cGVEZWYo
bm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKSB7IHJldHVy
biBub2RlOyB9Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpIHsgcmV0dXJu
IG5vZGU7IH0KLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKSB7IHJldHVybiBub2RlOyB9CiAg
ICAgdmlzaXRFbnVtVHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAKLSAgICAvLyBUaGlzIGlz
IGFsbW9zdCB3cm9uZy4gV2UgaW5zdGFudGlhdGUgRnVuYyBpbiBTdWJzdGl0dXRpb24gaW4gUHJv
dG9jb2xEZWNsLiBUaGVuLCB3ZSBlbmQgdXAKLSAgICAvLyBub3QgcmV3cml0aW5nIHR5cGUgdmFy
aWFibGVzLiBJIHRoaW5rIHRoYXQganVzdCB3b3JrcyBiZWNhdXNlIG5vdCByZXdyaXRpbmcgdGhl
bSB0aGVyZSBpcyBPSy4KLSAgICAvLyBFdmVyeXdoZXJlIGVsc2UsIGl0J3MgbWFuZGF0b3J5IHRo
YXQgd2UgZG9uJ3QgcmV3cml0ZSB0aGVzZSBiZWNhdXNlIHdlIGFsd2F5cyBhc3N1bWUgdGhhdAot
ICAgIC8vIHR5cGUgdmFyaWFibGVzIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiByZXdyaXRpbmcu
Ci0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotCi0gICAgdmlz
aXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IFByb3RvY29sRnVuY0RlY2woCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAot
ICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9k
ZS50eXBlUGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSks
Ci0gICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIu
dmlzaXQodGhpcykpLAotICAgICAgICAgICAgbm9kZS5pc0Nhc3QsCi0gICAgICAgICAgICBub2Rl
LnNoYWRlclR5cGUpOwotICAgICAgICByZXN1bHQucHJvdG9jb2xEZWNsID0gbm9kZS5wcm90b2Nv
bERlY2w7Ci0gICAgICAgIHJlc3VsdC5wb3NzaWJsZU92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVP
dmVybG9hZHM7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAgIHZpc2l0
TmF0aXZlVHlwZUluc3RhbmNlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IE5hdGl2
ZVR5cGVJbnN0YW5jZSgKQEAgLTEyNSwxNCArMTAzLDkgQEAgY2xhc3MgUmV3cml0ZXIgewogICAg
ICAgICB9KSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9k
ZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJn
dW1lbnQudmlzaXQodGhpcykpKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IE5vZGUudmlzaXQo
bm9kZS50eXBlLCB0aGlzKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0zMTcs
MTQgKzI5MCw2IEBAIGNsYXNzIFJld3JpdGVyIHsKIAogICAgIHByb2Nlc3NEZXJpdmVkQ2FsbERh
dGEobm9kZSwgcmVzdWx0KQogICAgIHsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMg
PSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJn
dW1lbnRzKQotICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxUeXBlQXJndW1lbnRzLm1hcChh
Y3R1YWxUeXBlQXJndW1lbnQgPT4gYWN0dWFsVHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpKTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgfQot
ICAgICAgICByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1bWVudHMo
bm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0Lmluc3RhbnRpYXRlZEFj
dHVhbFR5cGVBcmd1bWVudHMgPSBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVk
QWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gbm9kZS5h
cmd1bWVudFR5cGVzOwogICAgICAgICBpZiAoYXJndW1lbnRUeXBlcykKICAgICAgICAgICAgIHJl
c3VsdC5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlcy5tYXAoYXJndW1lbnRUeXBlID0+IGFy
Z3VtZW50VHlwZS52aXNpdCh0aGlzKSk7CkBAIC0zNDIsNyArMzA3LDYgQEAgY2xhc3MgUmV3cml0
ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbigKICAg
ICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5cGVB
cmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpLAog
ICAgICAgICAgICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5vZGUudmlzaXQo
YXJndW1lbnQsIHRoaXMpKSk7CiAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEZXJpdmVkQ2Fs
bERhdGEobm9kZSwgcmVzdWx0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbAppbmRleCA5M2Y2YjliOTMyZDI3MmQ3N2EzZGMzMTY3ZjUyNWZhNDBhNjFlZDIz
Li5iNjM2ZTkyY2NmMDEwMWE0ODk5MGRjZDBhOWYwYmVlOWYyNmUyMDg3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTQyLDcgKzQyLDYgQEAgdGQgewogICAg
IDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb25zdGV4
cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFy
YW1ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBA
IC02MSw3ICs2MCw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJG
bGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsb2F0TGl0
ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNzksNyArNzcsNiBAQCB0ZCB7CiAgICAgPHNjcmlw
dCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
SW5saW5lLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludHJp
bnNpY3MuanMiPjwvc2NyaXB0PgpAQCAtMTA5LDEwICsxMDYsNiBAQCB0ZCB7CiAgICAgPHNjcmlw
dCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQ
cm9ncmFtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vz
c2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2Nv
bC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sRGVjbC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlB0clR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tl
ci5qcyI+PC9zY3JpcHQ+CkBAIC0xNDEsMTAgKzEzNCw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNy
Yz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlR5cGVW
YXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlZFZhbHVl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCmluZGV4IGI0ZjUwODU5
YTg3YWZiNjBlNTRiMzYwYzYwNTljNGFhYzhjMjNiY2EuLmE5ZmRlZWNlNDc1ODY2ODY2M2VkMTAz
MmY3MmIyMDNlODIwNTJhYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1NQSVJWQ29kZWdlbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
UElSVkNvZGVnZW4uanMKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24gZ2VuZXJhdGVTUElSVihz
cGlydiwgcHJvZ3JhbSkKICAgICB0eXBlTWFwLnNldChwcm9ncmFtLmludHJpbnNpY3MudWludDMy
LCBjdXJyZW50SWQrKyk7CiAKICAgICBmb3IgKGxldCBlbnRyeVBvaW50IG9mIGZpbmRFbnRyeVBv
aW50cygpKSB7Ci0gICAgICAgIGxldCBpbmxpbmVkU2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFu
dGlhdG9yLmdldFVuaXF1ZShlbnRyeVBvaW50LCBbXSk7CisgICAgICAgIGxldCBpbmxpbmVkU2hh
ZGVyID0gZW50cnlQb2ludDsKICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGlubGlu
ZWRTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChlbnRyeVBvaW50KSk7CiAKICAgICAgICAgbGV0IHR5
cGVBbmFseXplciA9IG5ldyBTUElSVlR5cGVBbmFseXplcihwcm9ncmFtLCB0eXBlTWFwLCBjdXJy
ZW50SWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRh
cmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJy
YXJ5LmpzCmluZGV4IDE5ODg3MjNjMzU0ODA4MWM2NjdmYWM3ODYyZjQwMjY3ZjlmOGI4NTcuLmRl
NmM0YTE2MzY4Zjc2YWVhMDIxN2NhNzIxN2Q1MWI2MTAwMDczN2MgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTE0NSwxNCArMTQ1
LDYgQEAgYm9vbCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkKICAgICByZXR1cm4gIXZhbHVlOwogfQog
Ci1wcm90b2NvbCBBZGRhYmxlIHsKLSAgICBBZGRhYmxlIG9wZXJhdG9yKyhBZGRhYmxlLCBBZGRh
YmxlKTsKLX0KLQotcHJvdG9jb2wgRXF1YXRhYmxlIHsKLSAgICBib29sIG9wZXJhdG9yPT0oRXF1
YXRhYmxlLCBFcXVhdGFibGUpOwotfQotCiByZXN0cmljdGVkIG9wZXJhdG9yPFQ+IFQoKQogewog
ICAgIFQgZGVmYXVsdFZhbHVlOwpAQCAtMTY0LDExICsxNTYsNiBAQCByZXN0cmljdGVkIG9wZXJh
dG9yPFQ+IFQoVCB4KQogICAgIHJldHVybiB4OwogfQogCi1vcGVyYXRvcjxUOkVxdWF0YWJsZT4g
Ym9vbChUIHgpCi17Ci0gICAgcmV0dXJuIHggIT0gVCgpOwotfQotCiBzdHJ1Y3QgdmVjMjxUPiB7
CiAgICAgVCB4OwogICAgIFQgeTsKQEAgLTE4NiwxMSArMTczLDYgQEAgb3BlcmF0b3I8VD4gdmVj
MjxUPihUIHgsIFQgeSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIG9wZXJhdG9yPT08
VDpFcXVhdGFibGU+KHZlYzI8VD4gYSwgdmVjMjxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0g
Yi54ICYmIGEueSA9PSBiLnk7Ci19Ci0KIHRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQg
dmVjMjxUPiogZm9vLCB1aW50IGluZGV4KQogewogICAgIGlmIChpbmRleCA9PSAwKQpAQCAtMjM3
LDExICsyMTksNiBAQCBvcGVyYXRvcjxUPiB2ZWMzPFQ+KFQgeCwgdmVjMjxUPiB2MikKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzM8VD4g
YSwgdmVjMzxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYg
YS56ID09IGIuejsKLX0KLQogdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMzPFQ+
KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAgaWYgKGluZGV4ID09IDApCkBAIC0zMzQsMTEgKzMx
MSw2IEBAIG9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCB2ZWMzPFQ+IHYzKQogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjNDxUPiBhLCB2ZWM0
PFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0g
Yi56ICYmIGEudyA9PSBiLnc7Ci19Ci0KIHRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQg
dmVjNDxUPiogZm9vLCB1aW50IGluZGV4KQogewogICAgIGlmIChpbmRleCA9PSAwKQpAQCAtMzg2
LDQgKzM1OCw0IEBAIGZ1bmN0aW9uIGludFRvU3RyaW5nKHgpCiAKIC8vIFRoZXJlIGFyZSA0ODEg
c3dpenpsZSBvcGVyYXRvcnMsIHNvIHdlIGNvbXBpbGUgdGhlbSBhcyBuYXRpdmUgZnVuY3Rpb25z
CiBzdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmFsbFN3aXp6bGVPcGVyYXRvcnMoKS5qb2lu
KCI7XG4iKSArICI7IjsKLWNvbnNvbGUubG9nKHN0YW5kYXJkTGlicmFyeSk7ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQorY29uc29sZS5sb2coc3RhbmRhcmRMaWJyYXJ5KTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcwppbmRleCBjOTQ3
OWEyODViYTBlMTM1MzVkZWEzN2Y3ZmMxYTYzYmM3MWNmMzE2Li43MWNjY2I2MDE3YTE0MDM4YTk4
NmFiNTQ2ZDAzMjgyZjM0ODU1Y2EzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCkBAIC0yNywxMSArMjcsOSBAQAogY2xhc3MgU3RhdGVt
ZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgIHZpc2l0RnVuY0RlZihub2RlKQogICAg
IHsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gbm9kZS50eXBlUGFyYW1ldGVycy5tYXAo
dHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKTsKICAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBGdW5jRGVmKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFt
ZSwKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXJzLAogICAgICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUuYm9keS52aXNp
dCh0aGlzKSwKICAgICAgICAgICAgIG5vZGUuaXNDYXN0LCBub2RlLnNoYWRlclR5cGUpOwpAQCAt
NDQsNyArNDIsNiBAQCBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAgIG5vZGUub3Jp
Z2luLCBub2RlLm5hbWUsCiAgICAgICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyks
Ci0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5
cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzLm1h
cChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUu
aXNDYXN0LCBub2RlLnNoYWRlclR5cGUpOwogICAgICAgICByZXN1bHQuaXNSZXN0cmljdGVkID0g
bm9kZS5pc1Jlc3RyaWN0ZWQ7CkBAIC01NCw1MiArNTEsMjQgQEAgY2xhc3MgU3RhdGVtZW50Q2xv
bmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsK
ICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4s
IG5vZGUubmFtZSwgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5u
YW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQu
dmlzaXQodGhpcykpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAg
ewogICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFt
ZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUudHlw
ZS52aXNpdCh0aGlzKSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQog
ICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKAotICAgICAgICAgICAg
bm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMu
bWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSkpOworICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSk7CiAg
ICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQogICAgICAgICAgICAgcmVzdWx0
LmFkZChmaWVsZC52aXNpdCh0aGlzKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5ldyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUub3JpZ2luLCBub2RlLm5h
bWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9j
b2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRGVj
bChub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Yg
bm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcmVzdWx0LmFkZEV4dGVuZHMocHJvdG9jb2wudmlz
aXQodGhpcykpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVz
KQotICAgICAgICAgICAgcmVzdWx0LmFkZChzaWduYXR1cmUudmlzaXQodGhpcykpOwotICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5u
YW1lLCBOb2RlLnZpc2l0KG5vZGUucHJvdG9jb2wsIHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2Nv
bFJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRCb29s
TGl0ZXJhbChub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBCb29sTGl0ZXJhbChub2Rl
Lm9yaWdpbiwgbm9kZS52YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwppbmRleCA0Zjk4YzU3M2ExYTM4MjM3ZTE2NDUw
YWUxMGI4NmNiMmU2MWQxMjMwLi40ZjAxOTdhOGQwNjc2NmJjYzI4NmNiN2Q3ZGRjYzM4Y2M0NTlh
YTljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlv
dXRCdWlsZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExh
eW91dEJ1aWxkZXIuanMKQEAgLTM5LDggKzM5LDYgQEAgY2xhc3MgU3RydWN0TGF5b3V0QnVpbGRl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgaWYgKG5vZGUuc2l6ZSAhPSBudWxs
KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobm9kZS50eXBlUGFyYW1ldGVycy5s
ZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBkbyBsYXlvdXQgZm9y
IGdlbmVyaWMgdHlwZTogIiArIG5vZGUpOwogICAgICAgICBsZXQgb2xkT2Zmc2V0ID0gdGhpcy5f
b2Zmc2V0OwogICAgICAgICB0aGlzLl9vZmZzZXQgPSAwOwogICAgICAgICBzdXBlci52aXNpdFN0
cnVjdFR5cGUobm9kZSk7CkBAIC03NiwxMyArNzQsNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWls
ZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBv
ZiBub2RlLmFyZ3VtZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUudmlzaXQoYXJndW1lbnQsIHRo
aXMpOwotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVu
dHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAg
ICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBlQXJndW1lbnRzKQotICAgICAg
ICAgICAgICAgICAgICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfTsKLSAgICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVh
bFR5cGVBcmd1bWVudHMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0luc3Rh
bmNlLCB0aGlzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5
cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCmluZGV4
IGY5ZDhjN2RhNDg1ODMyMTYxZTU1ZDIyYTQzODc2Mjk5MzM3Y2I5MzYuLjM5NDdmZGJhYzA3MDAw
ZGU4MGZmZjY1ZmQ2NmM2ZTAwNThhMjdlYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RydWN0VHlwZS5qcwpAQCAtMjUsMTIgKzI1LDExIEBACiAidXNlIHN0cmljdCI7CiAK
IGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKICAg
ICB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAg
ICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0g
dHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2ZpZWxkcyA9IG5ldyBNYXAoKTsKICAgICB9
CiAgICAgCkBAIC00NCw3ICs0Myw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsK
ICAgICAKICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KICAgICBnZXQgb3Jp
Z2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkg
eyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KICAgICAKICAgICBnZXQgZmllbGROYW1l
cygpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkcy5rZXlzKCk7IH0KICAgICBmaWVsZEJ5TmFtZShuYW1l
KSB7IHJldHVybiB0aGlzLl9maWVsZHMuZ2V0KG5hbWUpOyB9CkBAIC01OCwzMiArNTYsNiBAQCBj
bGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1bWVudHMgPSBudWxsKQotICAgIHsK
LSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG51bGw7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1l
dGVycyA9IHRoaXMudHlwZVBhcmFtZXRlcnM7Ci0gICAgICAgIAotICAgICAgICBpZiAodHlwZUFy
Z3VtZW50cykgewotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IHRoaXMu
dHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3Vt
ZW50cyB0byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHN1YnN0
aXR1dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24odGhpcy50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3Vt
ZW50cyk7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IFtdOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRl
SW1tZWRpYXRlcygpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUodGhpcy5v
cmlnaW4sIHRoaXMubmFtZSwgdHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBmb3IgKGxldCBmaWVs
ZCBvZiB0aGlzLmZpZWxkcykgewotICAgICAgICAgICAgbGV0IG5ld0ZpZWxkID0gZmllbGQ7Ci0g
ICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uKQotICAgICAgICAgICAgICAgIG5ld0ZpZWxkID0g
bmV3RmllbGQudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgIG5ld0ZpZWxkID0gbmV3
RmllbGQudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgIHJlc3VsdC5h
ZGQobmV3RmllbGQpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLSAgICAKICAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCkK
ICAgICB7CiAgICAgICAgIGlmICh0aGlzLnNpemUgPT0gbnVsbCkKQEAgLTk0LDYgKzY2LDYgQEAg
Y2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIHRvU3RyaW5nKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5
cGVQYXJhbWV0ZXJzICsgIj4geyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAi
KSArICI7IH0iOworICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5uYW1lICsgIiB7ICIg
KyBBcnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CiAgICAgfQogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1G
dW5jdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51
bUZ1bmN0aW9ucy5qcwppbmRleCA1YWYyYmRmOTNhODA1ZmMwOGMyOWYxZWEwNTEwY2UyOWUyODBh
NTZmLi4xN2I2MTg0OGFiNWQ4YmM5MmE3NDU5ZGU4ZDY0MDMxNDQwMDE3OWIyIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0
aW9ucy5qcwpAQCAtMzUsMzEgKzM1LDMxIEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVFbnVtRnVuY3Rp
b25zKHByb2dyYW0pCiAgICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAgICAgICAKICAgICAgICAg
bmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJv
cGVyYXRvcj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sICJib29sIiwgW10pLCBbXSwKKyAg
ICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCAiYm9vbCIpLAogICAgICAgICAgICAgWwotICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFy
YW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5u
YW1lLCBbXSkpLAotICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2lu
LCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpCisgICAgICAg
ICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVm
KHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKSwKKyAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFt
ZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFt
ZSkpCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAg
ICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PiBFUHRy
LmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKICAgICAgICAgcHJv
Z3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3
IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwg
dHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksIFtdLAotICAgICAgICAgICAgW25l
dyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lLCBbXSkpXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3Iu
dmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAg
IFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5v
cmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAg
ICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAg
ICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZl
RnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRv
ciBjYXN0IiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksIFtdLAotICAgICAg
ICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0
eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAi
b3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAorICAg
ICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJl
Zih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJU
eXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2
YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgIAogICAgICAg
ICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwg
Im9wZXJhdG9yIGNhc3QiLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSks
IFtdLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVS
ZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSksCiAgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0
ZXIodHlwZS5vcmlnaW4sIG51bGwsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkp
KV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMK
aW5kZXggZjc4MTZmMmIyNTJlOWJhNGRhOWVjODRkZWY2MTFjNTVlNGJmZTNhOS4uMGFhNzU2MGVh
NTNmZWFiYzk3NzlkMjA4YmM0YWRlNjliMTljODg0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCkBA
IC0zMSwyOCArMzEsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dy
YW0pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIGZvciAobGV0IGZp
ZWxkIG9mIHR5cGUuZmllbGRzKSB7Ci0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlUGFy
YW1ldGVycygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUudHlw
ZVBhcmFtZXRlcnMubWFwKAotICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVyID0+IHR5
cGVQYXJhbWV0ZXIudmlzaXQobmV3IFR5cGVQYXJhbWV0ZXJSZXdyaXRlcigpKSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVBcmd1
bWVudHMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlUGFyYW1l
dGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBBdXRvV3Jh
cHBlcigpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0
aW9uIHNldHVwSW1wbGVtZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIGltcGxlbWVudGF0aW9uKQog
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMuaW5zdGFudGlhdGVJbXBs
ZW1lbnRhdGlvbiA9IHN1YnN0aXR1dGlvbiA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBu
ZXdUeXBlID0gdHlwZS5pbnN0YW50aWF0ZShuYXRpdmVGdW5jLnR5cGVQYXJhbWV0ZXJzLm1hcCh0
eXBlUGFyYW1ldGVyID0+IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRl
ID0gc3Vic3RpdHV0aW9uLm1hcC5nZXQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoIXN1YnN0aXR1dGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJOdWxsIHN1YnN0aXR1dGUgZm9yIHR5cGUgcGFyYW1ldGVyICIgKyB0eXBl
UGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJzdGl0dXRlOwot
ICAgICAgICAgICAgICAgICAgICB9KSk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHlw
ZTogbmV3VHlwZSwgZmllbGROYW1lOiBmaWVsZC5uYW1lfTsKLSAgICAgICAgICAgICAgICB9Owog
ICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMudmlzaXRJbXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1w
bGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFZp
c2l0aW5nIHRoZSB0eXBlIGZpcnN0IGVuc3VyZXMgdGhhdCB0aGUgc3RydWN0IGxheW91dCBidWls
ZGVyIGZpZ3VyZXMgb3V0IHRoZSBmaWVsZCdzCiAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNl
dC4KQEAgLTg5LDIzICs2OSwyMSBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3Jz
KHByb2dyYW0pCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpZWxk
VHlwZSgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnR5cGUu
dmlzaXQobmV3IFN1YnN0aXR1dGlvbih0eXBlLnR5cGVQYXJhbWV0ZXJzLCB0eXBlUGFyYW1ldGVy
cykpOworICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC50eXBlLnZpc2l0KG5ldyBSZXdyaXRl
cigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24g
Y3JlYXRlVHlwZVJlZigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFR5
cGVSZWYuaW5zdGFudGlhdGUodHlwZSwgY3JlYXRlVHlwZUFyZ3VtZW50cygpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0eXBlKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIAogICAgICAgICAgICAgbGV0IGlzQ2FzdCA9IGZhbHNlOwogICAgICAgICAg
ICAgbGV0IHNoYWRlclR5cGU7Ci0gICAgICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAg
ICAgICAgICBsZXQgbmF0aXZlRnVuYzsKIAogICAgICAgICAgICAgLy8gVGhlIGdldHRlcjogb3Bl
cmF0b3IuZmllbGQKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFt
ZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAg
ICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRl
RmllbGRUeXBlKCksIHR5cGVQYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdp
biwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lLCBjcmVhdGVGaWVsZFR5cGUoKSwKICAgICAgICAg
ICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBl
UmVmKCkpXSwgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgICAgIHNldHVwSW1wbGVtZW50
YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFzZV0sIG9mZnNldCwgc3RydWN0U2l6ZSwgZmllbGRT
aXplKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVm
ZmVyKGZpZWxkU2l6ZSksIDApOwpAQCAtMTE1LDkgKzkzLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZl
RnVuYyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFRoZSBzZXR0ZXI6IG9wZXJhdG9y
LmZpZWxkPQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVy
cygpOwogICAgICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAg
ICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lICsgIj0iLCBjcmVh
dGVUeXBlUmVmKCksIHR5cGVQYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdp
biwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lICsgIj0iLCBjcmVhdGVUeXBlUmVmKCksCiAgICAg
ICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcihmaWVs
ZC5vcmlnaW4sIG51bGwsIGNyZWF0ZVR5cGVSZWYoKSksCiAgICAgICAgICAgICAgICAgICAgIG5l
dyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlRmllbGRUeXBlKCkpCkBA
IC0xMzQsMTAgKzExMSw4IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJv
Z3JhbSkKICAgICAgICAgICAgIC8vIFRoZSBhbmRlcjogb3BlcmF0b3ImLmZpZWxkCiAgICAgICAg
ICAgICBmdW5jdGlvbiBzZXR1cEFuZGVyKGFkZHJlc3NTcGFjZSkKICAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAg
ICAgICAgICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAg
ICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvciYuIiArIGZpZWxkLm5hbWUsIG5ldyBQdHJU
eXBlKGZpZWxkLm9yaWdpbiwgYWRkcmVzc1NwYWNlLCBjcmVhdGVGaWVsZFR5cGUoKSksCi0gICAg
ICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzLAogICAgICAgICAgICAgICAgICAgICBbCiAg
ICAgICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcigKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sIG51bGwsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKaW5kZXggYTY0MWQzMDQ2NDkzZGFiYzJkNzQ1ZTdkMGVjOTZkMGJkZDQ0
MWJiYy4uZWIyNzJjMTM3MDVkMzdmMDYyOWU2MDAxNWQxZjhkNTYwMmQwYWRiZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtMzYsNyArMzYsNiBAQAogPHNjcmlw
dCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29tbWFFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb252
ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkRv
V2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTU1LDcgKzU0LDYgQEAKIDxzY3JpcHQgc3JjPSJF
eHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
RmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CkBAIC03Myw3ICs3MSw2IEBACiA8c2NyaXB0IHNyYz0iSW5mZXJUeXBl
c0ZvckNhbGwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5zdGFu
dGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC0xMDMsMTAgKzEwMCw2IEBA
CiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vz
c2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlBy
b3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEzMSwxMCAr
MTI0LDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlh
YmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlh
YmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVGVzdC5qcwppbmRleCAyYjA1NjkwMmE2NmNjMzJkMDRhMWVhNzIwZDI1MWUzZjcwY2Y5NjQ4
Li43NmNjYTg3OWFiMmZhZmIxMDU1OWZlY2Y4ZTg0MzMxNTc2MWUxNzU5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4Nyw3ICsxODcsNyBAQCB0ZXN0cy5jb21tZW50
UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBydW5zIG92ZXIgbXVsdGlwbGUgbGluZXMg
Ki8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKQEAg
LTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rpb24oKSB7CiAK
IHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9
CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsgcmV0dXJuIHg7IH0iKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKyB5OyB9
Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgNyld
KSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJl
dHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUp
XSksIDM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSldKSwgLTM1
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOwogICAgIHByb2dyYW0gPSBkb1By
ZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0p
LCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4ICsg
eTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBw
cm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAtIHk7
IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA0Mjk0OTY3Mjk0
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5NDk2NzI5NCk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKiB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMzUpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMzUpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC8geTsgfSIp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CiB9CiAKIHRlc3RzLnVp
bnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1
aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJv
Z3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0g
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMik7Ci0gICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsKKyAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsKICAgICBwcm9ncmFtID0gZG9Q
cmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7CisgICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggLyB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgMildKSwgMyk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsKIH0KIAog
dGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgi
Ym9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wg
Zm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcp
LCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgi
Ym9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4
LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
LCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAK
IHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0p
LCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggIT0g
eTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggIT0geTsg
fSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCBmYWxz
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAg
cHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ICE9IHk7
IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSld
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVl
KV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5jdGlvbigp
CkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0gZnVuY3Rp
b24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9uID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCkgeyByZXR1cm4gIXg7IH0iKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgdHJ1ZSk7CiB9CiAK
IHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50
IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwg
NDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMuc2ltcGxlR2VuZXJpYyA9
IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHRlc3RzLnNpbXBsZUdlbmVyaWMgPSBm
dW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAgICAgICAg
aW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQoeCkgKyAxOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRlc3RzLm5h
bWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTMzMSw3ICszMzEsNyBAQCB0ZXN0
cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1bmN0aW9u
KCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwogfQogCiB0ZXN0
cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQpAQCAtMzU2LDcgKzM1Niw3IEBAIHRlc3RzLnNp
bXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNpbXBsZURlcmVmZXJlbmNl
ID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2OSw3IEBAIHRlc3RzLnNpbXBsZURlcmVmZXJlbmNl
ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsK
ICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJu
YWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihi
dWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4s
ICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDAp
KV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigpCkBAIC0z
ODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBg
KTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAx
Myk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94
KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRl
dmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7
CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
RXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0IGNvbnRhaW5zOiAiICsgYnVmZmVy
LmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgdGVzdHMuc2ltcGxlTWFrZVB0ciA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAmeDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7CisgICAg
bGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlmICgh
cmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUg
aXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBl
LmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtNDE4LDcg
KzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAg
ICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0g
ICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZh
bHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAx
KSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlw
ZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHBy
b2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAw
KSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQz
Miw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWRJbnRMaXRlcmFsID0gZnVuY3Rpb24o
KQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIu
c2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0
aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRy
KGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2lu
LCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcg
RVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5
KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBAIHRlc3RzLmRldmljZUFycmF5TG9hZCA9IGZ1bmN0
aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVm
ZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcg
RVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9y
aWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYo
bmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0
LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYzLDEwIEBAIHRlc3RzLnRocmVhZEFycmF5U3RvcmUg
PSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAg
IG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCks
IDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
YXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkg
IT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1
ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7
CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJv
Z3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0x
MTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC00ODQsMTAgKzQ4NCwxMCBAQCB0ZXN0cy5k
ZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFs
dWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNl
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcg
RVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlm
IChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1
ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwot
ICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChw
cm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5
UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0g
LTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVm
ZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtNTA1LDMyICs1
MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZUludExpdGVyYWwgPSBmdW5jdGlvbigpCiAg
ICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJheVJlZlR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLAog
ICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAgICBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwg
NjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQg
NjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsK
ICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVy
LmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBsZVByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlBZGRhYmxlIHsKLSAg
ICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBNeUFkZGFibGUpOwotICAg
ICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlBZGRhYmxlPihUIGEsIFQgYikKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwotICAgICAgICB9Ci0gICAgICAgIGludCBmb28oaW50
IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZGQoeCwgNzMpOwotICAgICAgICB9
Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDUpXSksIDQ1ICsgNzMpOwotfQotCiB0ZXN0cy50
eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNjY2
LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYnVm
ZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAgYnVmZmVyLnNldCgwLCA2Mik7CiAgICAgYnVmZmVy
LnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0p
OworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtuZXcgVHlw
ZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwogICAgIGlmICghcmVz
dWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUpKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldy
b25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGxldCB4ID0gcmVzdWx0LmVQ
dHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTksNiBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3QgPSBmdW5j
dGlvbigpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsg
eSArICIgKHggKyAiICsgeCArICIpIik7CiB9CiAKLXRlc3RzLmdlbmVyaWNTdHJ1Y3RJbnN0YW5j
ZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0
cnVjdCBGb288VD4gewotICAgICAgICAgICAgVCB4OwotICAgICAgICAgICAgVCB5OwotICAgICAg
ICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhGb288aW50PiBmb28pCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC54ID0gZm9vLnk7Ci0g
ICAgICAgICAgICByZXN1bHQueSA9IGZvby54OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBzdHJ1Y3RUeXBlID0gVHlwZVJlZi5pbnN0YW50
aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9vIiksIFtwcm9ncmFtLmludHJpbnNpY3MuaW50MzJd
KTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7Ci0gICAgYnVmZmVyLnNldCgwLCA2
Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0
cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwotICAgIGxl
dCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwotICAgIGlmICh4ICE9IDI0KQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeDogIiArIHggKyAiICh5ID0gIiArIHkgKyAi
KSIpOwotICAgIGlmICh5ICE9IDYyKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJl
c3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwotfQotCiB0ZXN0cy5kb3Vi
bGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmljID0gZnVuY3Rpb24oKQogewogICAgIGRvUHJlcChg
CkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMucmV0dXJuTnVsbCA9IGZ1bmN0aW9uKCkKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVhZCBpbnQqIGZvbygpIHsgcmV0dXJu
IG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQudHlwZSk7
CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHRO
dWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03ODAsNyArNzM0LDcgQEAgdGVzdHMu
ZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwog
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNzk3
LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpYyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJh
cEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgxMSw3IEBAIHRlc3RzLnJldHVybk51bGxBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVh
ZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5p
c0FycmF5UmVmKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBh
biBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlw
ZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAgLTg3Niw3
ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHROdWxsQXJyYXlSZWYgPSBmdW5jdGlv
bigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2Yg
V1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3ICs4NDQsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlh
bGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBj
aGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAg
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTkwNCw3ICs4
NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRlcmFsID0g
ZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05MjEsNyArODc1LDcgQEAgdGVzdHMucGFzc051
bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBg
KTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAg
LTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJQb2x5bW9ycGhpY0FycmF5UmVm
ID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJuSW50TGl0ZXJhbFVpbnQgPSBmdW5jdGlvbigpCiB7
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsK
LSAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5yZXR1cm5JbnRMaXRlcmFsRmxvYXQgPSBm
dW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImZsb2F0IGZvbygpIHsgcmV0
dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuYmFkSW50TGl0ZXJh
bEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4OCw3ICs5NDIsNyBAQCB0ZXN0cy5wYXNzTnVsbEFu
ZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlw
ZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5l
dyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5h
bE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1
ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHkg
PSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1OSw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVs
bEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1
ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJu
YWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihi
dWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5
UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEwMjIsNjUgKzk3Niw3IEBAIHRlc3RzLnBhc3NOdWxs
QW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQg
YnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFs
dWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwotfQotCi10ZXN0cy5u
dWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IGxlZnQgPSBuZXcg
TnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwotICAgIGxldCByaWdodCA9IG5ldyBUeXBlVmFyaWFi
bGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAgaWYgKGxlZnQuZXF1YWxzKHJpZ2h0
KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1dCBhcmU6
ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICBpZiAocmlnaHQuZXF1YWxzKGxlZnQp
KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0IGFyZTog
IiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQpOwotICAgIAotICAgIGZ1bmN0aW9uIGV2ZXJ5T3Jk
ZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShhcnJh
eSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWFycmF5Lmxl
bmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suY2FsbChudWxsLCBvcmRlcik7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgbmV4dEFycmF5ID0gYXJyYXkuY29uY2F0
KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFycmF5LnNwbGljZShpLCAxKTsKLSAgICAgICAgICAg
ICAgICByZWN1cnNlKG5leHRBcnJheSwgY2FsbGJhY2ssIG9yZGVyLmNvbmNhdChbYXJyYXlbaV1d
KSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJlY3Vyc2Uo
YXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIGV2ZXJ5UGFp
cih0aGluZ3MpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gW107Ci0gICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBmb3IgKGxl
dCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgIGlmIChp
ICE9IGopCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKFt0aGluZ3NbaV0sIHRoaW5n
c1tqXV0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7
Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3JkZXIoCi0gICAgICAgIGV2ZXJ5UGFpcihbIm51bGxU
eXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJUeXBlIl0pLAotICAgICAgICBvcmRlciA9PiB7Ci0g
ICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsKLSAgICAgICAgICAgIHR5cGVzLm51bGxUeXBlID0g
bmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICAgICAgICAgIHR5cGVzLnZhcmlhYmxl
VHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAg
ICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJjb25z
dGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVybmFsT3JpZ2luLCAiZm9vX3QiLCBbXSkpOwotICAg
ICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQo
W3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAgICAgICAgICAgZm9yIChsZXQgW2xlZnROYW1lLCBy
aWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGxlZnQgPSB0eXBlc1ts
ZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJpZ2h0ID0gdHlwZXNbcmlnaHROYW1lXTsK
LSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbGVmdC51bmlmeSh1bmlmaWNhdGlvbkNvbnRl
eHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBvcmRlciAiICsgb3JkZXIgKyAiIGNhbm5vdCB1bmlm
eSAiICsgbGVmdCArICIgd2l0aCAiICsgcmlnaHQpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCkucmVzdWx0KQotICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVyLm1hcCh2YWx1ZSA9PiAiKCIg
KyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2ZXJpZnkiKTsKLSAgICAgICAgfSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRvdWJs
ZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEsOCArOTg3LDggQEAgdGVzdHMuZG91YmxlTm90ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuICEheDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaW9uID0gZnVuY3Rp
b24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBAQCB0ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5j
dGlvbigpCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9CiAKLXRl
c3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAgICAgIGlu
dCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAgIEludEFu
ZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAg
ICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0Owot
ICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAg
ICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50QW5kYWJsZSwgaW50KTsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAg
ewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQp
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIp
XSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbFBvbHlTaWdQb2x5RGVmID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFu
ZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAg
ICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAgICAgICBy
ZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29s
IEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihJbnRBbmRhYmxl
LCBUKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwg
aW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0g
aW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCAr
IHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCks
IG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbERv
dWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAgICBp
bnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhpcmQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmlyc3QsIFQg
c2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwgVT4gcmVz
dWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1
bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIElu
dEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJbnRBbmRh
YmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBm
aXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRB
bmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAg
ICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGly
ZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9n
cmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0KLXRl
c3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8
VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0g
ICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBVPiBpbnRB
bmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewotICAgICAg
ICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZp
cnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJl
c3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAg
fQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxULCBV
PiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50
IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAg
ICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8aW50LCBp
bnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmly
c3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFt
LCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQogdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBm
dW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtMTIyOSw3ICsxMDE3
LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDgpOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgewpAQCAtMTI0Miw3ICsxMDMwLDcg
QEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogfQogCiB0ZXN0cy5pZlN0YXRl
bWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcsMTMgKzEwNDUsMTMgQEAgdGVzdHMuaWZTdGF0ZW1l
bnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
OSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEy
ODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0p
LCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogfQogCiB0ZXN0
cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMDMsMTMgKzEwOTEsMTMgQEAg
dGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZUlmRWxzZVN0
YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMjgsMTMgKzExMTYsMTMgQEAgdGVzdHMuaWZFbHNl
SWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
OCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
MTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKIH0KIAogdGVzdHMucmV0dXJuSWYgPSBm
dW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1LDEzIEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0p
LCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEw
KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBp
bnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyArMTIwNywxMyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5
KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBp
bnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsxMjM3LDcgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CiB9CiAKIHRlc3RzLnNp
bXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAtMTQ2MiwzOSArMTI1MCw3IEBAIHRlc3RzLnNpbXBs
ZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19Ci0KLXRlc3RzLnByb3RvY29sTW9u
b1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAgICAgICAg
ICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAg
ICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIElu
dEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAg
ICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAg
ICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgICAgICAgICByZXN1
bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBU
LCBpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbnQgZm9vPFQ6SW50
QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8
aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIGApOwotICAgICAgICAgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwg
bWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAgICAgICAgfSwKLSAgICAgICAgKGUpID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAogdGVzdHMu
YW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBmdW5jdGlvbigpCkBAIC0xNTM3LDcgKzEyOTMsNyBA
QCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBm
b28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0
Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0
aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQpAQCAtMTU0OCw3ICsxMzA0LDcgQEAgdGVzdHMu
aW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQogICAgICAgICBp
bnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9v
KDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9hZFJlc29s
dXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU1OCw3ICsxMzE0LDcgQEAgdGVzdHMuaW50
T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxU
PihUKSB7IHJldHVybiAyOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludExpdGVyYWxHZW5lcmljID0gZnVu
Y3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljID0g
ZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsgfQogICAg
ICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3OCk7Ci19
Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29udmVydGli
bGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBpbnQoTXlDb252ZXJ0aWJsZVRvSW50KTsK
LSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvSW50PihUIHgpIHsg
cmV0dXJuIGludCh4KTsgfQotICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMudWludExpdGVyYWxHZW5lcmljID0g
ZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMzMiw3IEBAIHRlc3RzLnVpbnRMaXRlcmFsR2VuZXJp
YyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0Nzg7IH0K
ICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAzNDc4
KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29u
dmVydGlibGVUb1VpbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgdWludChNeUNvbnZlcnRpYmxl
VG9VaW50KTsKLSAgICAgICAgfQotICAgICAgICB1aW50IGZvbzxUOk15Q29udmVydGlibGVUb1Vp
bnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsgfQotICAgICAgICB1aW50IGJhcigpIHsgcmV0dXJu
IGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMuaW50TGl0
ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKQEAgLTE2MDksNyArMTM0MSw3IEBAIHRl
c3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIFQgZm9v
PFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKGlu
dCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQ29uc3Rl
eHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3ICsxMzU2LDcgQEAgdGVzdHMuc2ltcGxlQ29uc3Rl
eHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbzw0Mj4oYik7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChwcm9ncmFt
LCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQpAQCAtMTY0
MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28o
aW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgsOCArMTM5MCw4IEBAIHRlc3RzLmJyZWFrID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSld
KSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAg
KCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNjk1LDcgKzE0
MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICByZXR1cm4g
eDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgICAgIHsKQEAgLTE3MDUsNyArMTQzNyw3IEBAIHRlc3Rz
LmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSld
KSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKCkKICAg
ICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0Niw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsK
ICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQg
Zm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1LDcgQEAgdGVzdHMuY29udGludWUgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKICAgICBjaGVja0ZhaWwo
CiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAt
MTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBm
b28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3ODIsNyArMTUxNCw3IEBAIHRlc3RzLmRvV2hpbGUg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3
OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwogfQogCiB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24o
KQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
KV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0p
LCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQg
Zm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODI3LDkgKzE1NTksOSBAQCB0ZXN0cy5mb3JMb29w
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NDEsOSArMTU3
Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3Vt
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZv
byhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3MiwxMSArMTYwNCwxMSBAQCB0ZXN0cy5mb3JMb29w
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg4OSwxMSArMTYyMSwxMSBAQCB0
ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0g
ZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkwNywxMSAr
MTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpA
QCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMp
XSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
MjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAg
ICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5NTAsMTEgKzE2ODIsMTEgQEAgdGVzdHMuZm9yTG9v
cCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAg
ICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTk3MywxMSArMTcwNSwxMSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1bmN0aW9u
KCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0
Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTIwMTUsNyArMTc0
Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBiYXIoJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzcpXSksIDM3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtt
YWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0ID0gZnVu
Y3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcgQEAgdGVzdHMuY2hhaW5TdHJ1Y3QgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgNDY1NyldKSwgNDY1Nyk7
CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKQEAgLTIwNjMs
NyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKICAg
ICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgw
LCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
Nzg0NTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMp
OwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIwODgsNyAr
MTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAgIGApOwog
ICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc5MjAx
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtd
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBw
cm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlw
ZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CiB9CiAK
IHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0yMTEzLDg5ICsx
ODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKICAgICBg
KTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA3
OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNl
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzky
MDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90b2NvbEV4dGVuZHMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29s
IEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAg
IH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9vKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJhcj4odGhy
ZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBi
YXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAg
ICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lk
IGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7
Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewotICAgICAg
ICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhpbmd5Iiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEpOwotfQotCi10ZXN0
cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhy
ZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgICAg
ICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmF6
IDogRm9vLCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXoodGhyZWFkIEJheiopOwotICAgICAg
ICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpCYXI+KHRo
cmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAg
ICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1enoocCk7Ci0gICAgICAgICAgICBiYXoocCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJl
YWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAg
IH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAg
ICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50IGEpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHh1enooJmEpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiArIDc0MyAr
IDkxICsgMzkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNl
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzky
MDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIyMDcsNyAr
MTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXNSZXN1
bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcgKzE4NjgsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1
c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiArK3g7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSks
IDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtMjIzMCw3
ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwg
NjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVz
UmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0MSw3ICsxODkxLDcgQEAgdGVzdHMucG9zdGZpeFBs
dXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgrKzsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQpAQCAt
MjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnByZWZpeE1p
bnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjY0LDcgKzE5MTQsNyBAQCB0ZXN0cy5w
cmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIC0t
eDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9IGZ1bmN0
aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBAIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVz
dHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjg3LDcgKzE5Mzcs
NyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB4LS07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCld
KSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucGx1c0VxdWFscyA9
IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0OSw3IEBAIHRlc3RzLnBsdXNFcXVhbHMgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0
Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzEwLDcg
KzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
ODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwogfQogCiB0
ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzMjIsNyArMTk3Miw3IEBAIHRlc3Rz
Lm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFsc1Jlc3VsdCA9IGZ1
bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggLT0gNDI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSld
KSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIz
NDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSks
IDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy50
aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNTYsNyArMjAwNiw3IEBAIHRlc3Rz
LnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKj0g
NDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy5kaXZpZGVFcXVh
bHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcgKzIwMTgsNyBAQCB0ZXN0cy5kaXZpZGVFcXVhbHMg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1
KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1
bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3IEBAIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC89IDQyOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKIH0KIAogdGVzdHMudHdvSW50TGl0ZXJhbHMgPSBm
dW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAsNyBAQCB0ZXN0cy50d29JbnRMaXRlcmFscyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0MiA9PSA0MjsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLnVuaWZ5RGlmZmVyZW50TGl0ZXJhbHMg
PSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIxMjksNyBAQCB0ZXN0cy5idWlsZEFycmF5VGhlblN1
bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8gMik7
CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVu
Y3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcgQEAgdGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdFVz
aW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEBh
cnJheSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIg
KiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdCA9
IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3Niw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0
U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXSAq
IDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5ICogMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5ICogMyk7
CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBmdW5jdGlv
bigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFu
ZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0
cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24oKQpAQCAt
MjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2lu
dGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJmZvbyk7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlk
ZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzSW5jb3JyZWN0bHkgPSBmdW5jdGlvbigpCkBA
IC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tTG9jYWwgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
NDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVuY3Rpb24o
KQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbVBvaW50ZXIgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmF6KCZ4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21BcnJheVJlZiA9IGZ1
bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3IEBAIHRlc3RzLnNpbXBsZUxlbmd0aCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQGFycmF5KS5sZW5ndGg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0
aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0yNjk0LDcgKzIzNDQsNyBAQCB0ZXN0cy5ub25BcnJh
eVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBh
cnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAog
dGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgPSBmdW5jdGlvbigpCkBAIC0yNzkzLDcg
KzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc4MDQpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3ODA0KTsKIH0KIAog
dGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtMjgxOCw3ICsyNDY4LDcgQEAgdGVz
dHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54Owog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7CiB9CiAKIHRlc3RzLmdlbmVyaWNB
Y2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0yOTAzLDM1NCArMjU1MywxMDMgQEAgdGVzdHMuZ2Vu
ZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28uc3VtOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdLCBbXSksIDEgKyAyICsgMyArIDQpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZ
IiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtdKSwgNTMgKyA5MzIpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSwgW10pLCAxICsg
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0TFZh
bHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSArIDIgKyAzICogNSArIDQpOwotfQotCi10ZXN0cy5i
aXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Qml0bWFza2FibGUgOiBFcXVhdGFibGUgewotICAg
ICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvciYoTXlCaXRtYXNrYWJsZSwgTXlCaXRtYXNr
YWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yfChNeUJpdG1hc2thYmxl
LCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3J+KE15
Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcjw8KE15Qml0
bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcj4+KE15
Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgb3BlcmF0b3IgTXlCaXRtYXNrYWJsZShp
bnQpOwotICAgICAgICB9Ci0gICAgICAgIFQgbWFza0ZvckJpdEluZGV4PFQ6TXlCaXRtYXNrYWJs
ZT4odWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFQoMSkgPDwgaW5k
ZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCBvcGVyYXRvcltdPFQ6TXlCaXRtYXNrYWJsZT4o
VCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJvb2wo
dmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpKTsKLSAgICAgICAgfQotICAgICAgICBU
IG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCwgYm9vbCBi
aXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFQgbWFzayA9IG1hc2tGb3JCaXRJbmRleDxUPihp
bmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0KQotICAgICAgICAgICAgICAgIHZhbHVlIHw9IG1h
c2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdmFsdWUgJj0gfm1hc2s7Ci0g
ICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRv
ci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7Ci0gICAgICAg
IH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgodWludCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0SW50U2V0Qml0Mygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAgICAgICAgICBmb29bM10gPSB0
cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBib29sIHRl
c3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbzsKLSAgICAg
ICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZm9vWzVdOwotICAgICAg
ICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdldEJpdDEoKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0dXJuIGZvb1sxXTsKLSAgICAgICAgfQotICAgICAg
ICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbyA9
IDQyOwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0g
MDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChmb29baV0pCi0g
ICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTd2FwQml0cygp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0MjsKLSAgICAgICAgICAgIGZvciAo
dWludCBpID0gMDsgaSA8IGZvby5sZW5ndGggLyAyOyArK2kpIHsKLSAgICAgICAgICAgICAgICBi
b29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAgICAgICAgICBmb29baV0gPSBmb29bZm9vLmxlbmd0
aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAgICBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXSA9IHRt
cDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAg
ICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB1aW50IGY7Ci0gICAgICAgICAgICB1aW50
IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgRm9vKHVpbnQgZiwgdWludCBnKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmYgPSBm
OwotICAgICAgICAgICAgcmVzdWx0LmcgPSBnOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuaChGb28gZm9vKQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gaW50KChmb28uZiAmIDB4ZmZmZikgfCAoKGZvby5nICYgMHhmZmZm
KSA8PCAxNikpOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5oPShGb28gZm9vLCBp
bnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5mICY9IH4weGZmZmZ1OwotICAg
ICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1ZSkgJiAweGZmZmY7Ci0gICAgICAgICAgICBmb28u
ZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5nIHw9ICh1aW50KHZhbHVlKSA+PiAxNikg
JiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIGlu
dCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsK
LSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0gICAgICAgICAgICBmb28uZyA9IDM3OwotICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmgubGVuZ3RoOyArK2kpCi0gICAgICAgICAg
ICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoZm9vLmYgKyBm
b28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAgICBGb28g
YTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5j
KEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28odWludChiYXIuYS5o
KSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yLmM9KEJh
ciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hLmggPSBpbnQoZm9v
LmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9IGludChmb28uZyk7Ci0gICAgICAgICAgICByZXR1
cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24o
KQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXIgYmFyOwotICAgICAgICAgICAgYmFyLmEuZiA9
IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0gMjsKLSAgICAgICAgICAgIGJhci5iLmYgPSAzOwot
ICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkg
PCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAgICAgICAgIGJhci5jLmhbaV0gXj0g
dHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoYmFyLmEuZiArIGJhci5hLmcgKyBiYXIuYi5m
ICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRTZXRCaXQzIiwgW10sIFtdKSwgOCk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEludFNldEdldEJp
dDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RVaW50U3VtQml0cyIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0MDkyODYxNDQpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSks
IDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCA0MzY5Nik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdKSwgMSAr
IDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSksIDkzMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdKSwgNTMgKyA5MzIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBb
XSksIDEgKyAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKIH0KIAogdGVz
dHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uU2ltcGxlID0gZnVuY3Rpb24oKQogewog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAg
ICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oRm9v
IGZvbywgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJh
eVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVp
bnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vLmFycmF5W2lu
ZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAg
ICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3VtKEZvbyBm
b28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAgICAgICAg
Zm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSBmb29baV07Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAg
IHN0cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vWzZdIGFycmF5OwotICAgICAgICB9Ci0gICAg
ICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRv
cltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBi
YXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIg
YmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5h
cnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHN1bShCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKLSAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7Ci0gICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXogewotICAgICAgICAgICAgQmFy
WzVdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVp
bnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhd
OwotICAgICAgICB9Ci0gICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4
LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2
YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXo7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJh
ei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXogYmF6KQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWlu
dCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJh
eltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHZv
aWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKLSAgICAgICAgewotICAgICAgICAgICAgZm9y
ICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZvciAodWlu
dCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAgICBmb3Ig
KHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAg
ICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNBbmRT
dW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6OwotICAgICAgICAgICAgc2V0VmFs
dWVzKCZiYXopOwotICAgICAgICAgICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAg
ICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZv
ciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAgICBm
b3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAg
ICAgICBiYXpbaV1bal1ba10gKj0gaW50KGspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVl
c0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdLCBbXSks
IDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFsdWVFbXVsYXRpb25HZW5lcmlj
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3Ry
dWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBUWzddIGFycmF5OworICAgICAgICAgICAgaW50Wzdd
IGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3JbXTxUPihGb288VD4gZm9vLCB1
aW50IGluZGV4KQorICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGluZGV4KQog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKICAgICAgICAg
fQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXT08VD4oRm9vPFQ+IGZvbywgdWludCBpbmRleCwg
VCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGlu
dCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVl
OwogICAgICAgICAgICAgcmV0dXJuIGZvbzsKICAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJh
dG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQorICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChG
b28gZm9vKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsK
ICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlB
ZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxUPiBmb28pCisgICAgICAgIGludCBzdW0oRm9vIGZv
bykKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0tOykKICAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyPFQ+IHsKLSAgICAgICAgICAgIEZvbzxU
Pls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJhciB7CisgICAgICAgICAgICBGb29bNl0gYXJy
YXk7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmFyPFQ+IGJh
cikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmFyIGJhcikKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgRm9v
PFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJhciwgdWludCBpbmRleCkKKyAgICAgICAgRm9vIG9w
ZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0
dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9wZXJhdG9y
W109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgsIEZvbzxUPiB2YWx1ZSkKKyAgICAgICAgQmFy
IG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZvbyB2YWx1ZSkKICAgICAgICAgewog
ICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJu
IGJhcjsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4oQmFyPFQ+IGJhcikK
KyAgICAgICAgaW50IHN1bShCYXIgYmFyKQogICAgICAgICB7Ci0gICAgICAgICAgICBUIHJlc3Vs
dDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAgICAgZm9yICh1aW50IGkg
PSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmFyW2ld
KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0
IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8VD5bNV0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBC
YXogeworICAgICAgICAgICAgQmFyWzVdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIEJhcjxU
PiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXosIHVpbnQgaW5kZXgpCisgICAgICAgIEJhciBvcGVy
YXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVy
biBiYXouYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEJhejxUPiBvcGVyYXRvcltd
PTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4LCBCYXI8VD4gdmFsdWUpCisgICAgICAgIEJheiBv
cGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBi
YXo7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmF6PFQ+IGJh
eikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgVCBz
dW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXopCisgICAgICAgIGludCBzdW0oQmF6IGJheikKICAg
ICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0g
MDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKICAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVGcm9tVWludCB7Ci0g
ICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZlcnRpYmxlRnJvbVVpbnQodWludCk7Ci0gICAgICAg
IH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFsdWFibGUgOiBNeUFkZGFibGUsIE15Q29udmVydGli
bGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXM8VDpTZXRWYWx1YWJsZT4odGhy
ZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXop
CiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTsp
IHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTsp
IHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3Ro
OyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gVChpICsg
aiArIGspOworICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkg
KyBqICsgayk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAg
ICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAgICAgICAg
QmF6PGludD4gYmF6OworICAgICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNldFZhbHVl
cygmYmF6KTsKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQogICAgICAg
ICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAgICAgICBz
ZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGkt
LTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGotLTsp
IHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxh
dGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtKGJheik7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1
ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSksIDE1NzUpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0
ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5j
dGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEwIEBAIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMy
ODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9
CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzAxLDEwICsyNzAwLDEwIEBA
IHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSks
IG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5ib29s
Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMxNSw4ICsyNzE0LDggQEAgdGVzdHMuYm9vbEJpdE5v
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW50Qml0QW5kID0gZnVuY3Rpb24o
KQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUz
NSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3
KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLmludEJp
dE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwxMCArMjc0MCwxMCBAQCB0ZXN0cy5pbnRCaXRPciA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTEpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUlu
dChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dy
YW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMild
KSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzU1LDEw
ICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChw
cm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3
MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0
Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwxMCArMjc2OCwxMCBAQCB0ZXN0cy5pbnRCaXROb3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpXSksIC02
NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSks
IC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KV0pLCAtNjU1
MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOwogfQog
CiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzgzLDEwICsyNzgyLDEwIEBAIHRl
c3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMTI4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIp
XSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5jdGlvbigp
CkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1
MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAx
NjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0xKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWlu
dEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0MTEsMTAgKzI4MTAsMTAgQEAgdGVzdHMudWludEJp
dEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNDIp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2
NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSks
IDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLnVp
bnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0MjUsMTAgKzI4MjQsMTAgQEAgdGVzdHMudWludEJp
dE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTUz
NSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0
OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMild
KSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI5NSk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwog
fQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzQzOSwxMCArMjgzOCwxMCBA
QCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgXiBi
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1
NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQog
CiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzQ1MywxMCArMjg1MiwxMCBAQCB0
ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYwKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpXSksIDQyOTQ5
MDE3NjApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQy
OTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzQ2Nywx
MCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSks
IG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChw
cm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNDgx
LDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzQ5NSwxMCAr
Mjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSks
IG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCks
IG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1h
a2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VV
aW50OChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4
KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJv
Z3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQpA
QCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDAp
LCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0
WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywxMCArMjkyMiwxMCBAQCB0ZXN0cy51aW50OEJpdFhv
ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDYp
OwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwg
MjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSks
IDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0p
LCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNik7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDIxMyk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAK
IHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzUzNywxMCArMjkzNiwxMCBAQCB0
ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKV0pLCAw
KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0p
LCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAt
MSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKIH0KIAogdGVzdHMudWludDhM
U2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUxLDEwICsyOTUwLDEwIEBAIHRlc3RzLnVpbnQ4TFNo
aWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
MTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0p
LCAyNTIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAw
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7CisgICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyMjQpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWludDhS
U2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1LDEwICsyOTY0LDEwIEBAIHRlc3RzLnVpbnQ4UlNo
aWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
MCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwg
MjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAy
NTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1NSk7CisgICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5mbG9hdE1hdGgg
PSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICszMDIzLDE3IEBAIHRlc3RzLmZsb2F0TWF0aCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmbG9hdCh4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSwgW10pLCA3
LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcuNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSksIDcuNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10p
LCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAog
ICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKQEAgLTM3MjksNyArMzEyOCw3IEBAIHRlc3RzLmdl
bmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5yZWFsICsg
eC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmJvb2xl
YW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2OCwxNCArMzE2NywxNCBAQCB0ZXN0cy5ib29sZWFu
TWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCBmYWxzZTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10s
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdLCBbXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbXSwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1
aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2LDEwICszMjE1LDEwIEBAIHRlc3RzLmJvb2xlYW5T
aG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKIAotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdLCBbXSks
IDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kRmFs
c2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdLCBbXSksIDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdKSwgMik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtdKSwgMSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvclRydWUiLCBb
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JG
YWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKQEAg
LTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZbMF07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlwZXMgPSBmdW5jdGlvbigpCkBAIC00MDg0LDI0ICsz
NDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0b3JzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgNCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwg
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UyIiwgW10sIFtdKSwg
NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb291NCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTYiLCBbXSwgW10pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSwg
W10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSwgW10pLCA1KTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y2Iiwg
W10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCBmYWxzZSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTIi
LCBbXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSksIDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIsIFtdKSwg
NCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Yz
IiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnN0
YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtNDEyMSw3ICszNTIwLDcgQEAg
dGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRl
c3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKQEAgLTQx
MzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCkBAIC00
MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gRm9vKGludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgMCk7
Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtdKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90
RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1
YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10sIFtd
KSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRE
ZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBb
XSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSks
IDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdh
ckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNr
d2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNl
IiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwg
W10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtd
KSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRE
ZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtd
KSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBb
XSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVh
dGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10p
LCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRl
c3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQpAQCAtNDMxNywxMCArMzcxNiwx
MCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIC00Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAwKTsKKyAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAy
Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgi
LCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVudW1XaXRob3V0WmVybyA9IGZ1bmN0aW9uKCkKQEAg
LTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMuZW51bVdpdGhTb21lTWFudWFsVmFsdWVzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtd
LCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMSk7CisgICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwg
W10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
cGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5lbnVtQ29uc3RleHByR2Vu
ZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpAQCAtNDM5MSw4ICszNzkwLDggQEAgdGVzdHMuZW51
bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IHRlc3RY
KCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsgfQogICAgICAgICBpbnQgdGVzdFkoKSB7IHJldHVy
biBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAx
KTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlvbigpCkBA
IC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY1N0cnVjdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28oZik7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy50cmFwID0gZnVuY3Rp
b24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBAQCB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQogICAg
ICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9y
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CiAg
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKICAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcwLDkgKzM4NjksOSBAQCB0ZXN0cy5zd2l6emxlID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHF1aXguejsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCA0KTsKIH0K
IAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00NTk3LDMy
ICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBb
XSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNp
bXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5v
dE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIs
IFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxl
bmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RF
cXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10pLCAxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVu
Y2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFs
dWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRl
cmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJk
cyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwog
fQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDc0NywzMiArNDE0
NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwg
W10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5v
dGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVh
bCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIs
IFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSwg
W10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1
aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZh
bHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVl
TGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJh
bCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAz
KTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBb
XSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJF
cXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxz
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFu
b3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIsIFtdKSwgMCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWlu
ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10p
LCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0
aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRl
cmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhckJh
Y2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBb
XSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVp
bnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1GbG9hdEJhc2UgPSBm
dW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcsNyBAQCB0ZXN0cy5lbXB0eVN0cnVjdCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0NjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1Y3RCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDg1Nyw5
ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dpdGNoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5j
dGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBAQCB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2gg
PSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAgICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBp
ICogMS41KTsKIH0KIAogdGVzdHMubm90UXVpdGVFeGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5j
dGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBAQCB0ZXN0cy5ub3RRdWl0ZUV4aGF1c3RpdmVVaW50
OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7CiAgICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAweGZm
OyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAgICAgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLnN3aXRjaEZhbGxUaHJvdWdo
ID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0MzEyLDkgQEAgdGVzdHMuc3dpdGNoRmFsbFRocm91
Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwg
NzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuc3dpdGNoQnJl
YWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkgKzQzMzcsOSBAQCB0ZXN0cy5zd2l0Y2hCcmVhayA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwg
NzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAy
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9
CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBAIC00OTY2
LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51
bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAi
QiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0o
cHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSks
IDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKIH0KIAogdGVzdHMuZW51
bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpAQCAtNTAyMSw5ICs0
NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlV2l0aERlZmF1
bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJv
Z3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIp
XSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwg
IkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkpOwog
fQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC01MDcyLDcg
KzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVyc0Jyb2tl
biA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpLAogICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5OCw3ICs0NDk3LDcgQEAgdGVzdHMubXV0dWFsbHlS
ZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAt
NTExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCkBAIC01MTE5
LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAz
KTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKQEAgLTUxNDIsNyAr
NDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3
NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigp
CkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3
NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5wb2ludGVyR2V0dGVyID0g
ZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0NSw2IEBAIHRlc3RzLnNldHRlcldpdGhNYXRjaGVk
VHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKIH0KIAotdGVzdHMub3BlcmF0b3JXaXRoVW5pbmZl
cnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAg
ICAgIGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgRm9vIG9wZXJhdG9yKzxUPihG
b28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsK
LSAgICAgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yV2l0aG91dFVuaW5m
ZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAg
IH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9vIGIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAgICAgYS54ID0gNjQ1OwotICAg
ICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAgICBiLnggPSAtMzU7Ci0gICAgICAgICAgICByZXR1
cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA2NDUgLSAzNSk7Ci19Ci0KLXRl
c3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlvbigp
Ci17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAg
c3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IHg7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVyYXRvckNh
c3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRGcm9tUmV0dXJuVHlwZSA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyYWJsZSB7Ci0gICAg
ICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyYWJsZSosIGludCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiByZXN1bHQsIGludCB2YWx1ZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0KHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICBv
cGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgVCBy
ZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJlc3VsdCwgZm9vLngpOwotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby54ID0gNzU7Ci0gICAgICAgICAgICBm
bG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCAqIDEuNSk7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7Ci19Ci0KIHRlc3RzLmluY1dyb25nQXJndW1lbnRM
ZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNTgyMyw3ICs1MTM0LDcg
QEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHguZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVz
dHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAgLTU4OTcs
NyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsK
IH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNjA4Myw3ICs1
Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4geFs2NjZdOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEz
KTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRzID0gZnVu
Y3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQHgpW2Zsb2F0KC0xKV07CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5kZXZpY2VQdHJQdHIgPSBm
dW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUxOCw2IEBAIHRlc3RzLmNvbnN0YW50UHRyUHRyID0g
ZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVz
c2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiBpbnQz
MiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0gLTEpOwogfQogCi10ZXN0cy5wb2ludGVySW5kZXhH
ZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGZvciAobGV0IGFkZHJlc3NTcGFj
ZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgIGNoZWNrRmFpbCgKLSAgICAgICAgICAgICgp
ID0+IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAg
ICAgICAgICAgaW50IG9wZXJhdG9yW10oJHthZGRyZXNzU3BhY2V9IEZvbyosIHVpbnQpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAg
ICAgIGApLAotICAgICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1l
c3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgZ2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAt
MSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywg
dWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0g
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAg
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0dGVy
IikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RMb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVu
Y3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9y
W109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBg
KTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGVJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgb3BlcmF0b3Jb
XShGb28sIHVpbnQpOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQs
IGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0eXBlIikg
IT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aEluUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAg
ICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGlu
IHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVy
YXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCBpbnQsIGludCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAg
ICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5j
b3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9w
ZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17
Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJv
dG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90
b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAh
PSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIg
b3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGAp
LAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRl
eE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltd
KEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShC
YXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVj
dCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdPShGb28sIGludCwgaW50LCBpbnQpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJh
ciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIs
IHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBu
dW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVzdHMubG9uZUluZGV4U2V0dGVy
UG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAg
ICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltdPSh0aHJlYWQgRm9vKiBwdHIsIHVpbnQsIGludCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAg
aW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFy
IG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBg
KSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5k
ZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci19Ci0K
LXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRJblByb3RvY29sID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oaW50LCBG
b28pOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9w
ZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwK
LSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkIG9wZXJhdG9yW109IHdpdGggYXJndW1lbnRz
IEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVy
T3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgZG9QcmVwKGAKLSAg
ICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbywgdWlu
dCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAg
ICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVyYXRvcltdKEJhciwg
dWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwg
aW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0
aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGlu
dCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgfQotICAgICAg
ICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzQy
XTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICB0aHJlYWQgaW50
KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgewotICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAg
fQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhcihC
YXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwotfQotCi10ZXN0cy5pbmRleEFu
ZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHNJblByb3RvY29sID0gZnVuY3Rpb24oKQotewot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3Rv
Y29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJl
YWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4g
JnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2
YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBj
aGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBG
b28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28q
IGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJl
Y3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltdIikgIT0gLTEpOwotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZv
byB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyog
Zm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWlu
dCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBmb3Igb3BlcmF0b3ImW10iKSAhPSAt
MSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRSZXR1cm5Qb2ludGVySW5Qcm90b2NvbCA9
IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvciZb
XSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Ry
dWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBC
YXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAx
MjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2YgYW5kZXIgaXMgbm90IGEgcG9pbnRlciIpICE9IC0x
KTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRvZXNudFRha2VSZWZlcmVuY2VJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3Bl
cmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJh
ciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEy
MzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5kZXIgaXMgbm90IGEgcmVmZXJlbmNlIikgIT0gLTEp
OwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmSW5Qcm90b2NvbCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7
Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vW10gYXJyYXks
IGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPih0aHJlYWQg
VFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzEuNV07Ci0gICAgICAgIH0K
LSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10o
dGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9
IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBp
bnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIHg7Ci0gICAgICAgICAgICByZXR1
cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KIHRlc3RzLmFu
ZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAgdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJlZiA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAqcHRyOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCAzNTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4NzkxODk1M2E1YjFkNWUzNWU4NTBlMzMwZjM4OWRmNmU3
NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNiZGE4MWZjY2NjMWVmYjQ0YzZkIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTI1LDcgKzI1LDYgQEAKICJ1c2Ugc3RyaWN0
IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewotICAgIGdldCB0eXBlUGFyYW1ldGVycygp
IHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtpbmQoKSB7IHJldHVybiBUeXBlOyB9CiAgICAgZ2V0
IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNBcnJheSgpIHsgcmV0dXJuIGZh
bHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBjbGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7CiAgICAg
Z2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBpbmhlcml0cyhwcm90b2NvbCkKLSAgICB7Ci0gICAg
ICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0g
ICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNIZWlyKHRoaXMpOwotICAgIH0KLSAgICAKLSAgICBn
ZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0dXJuIHRoaXMudmlzaXQobmV3IEluc3RhbnRpYXRl
SW1tZWRpYXRlcygpKTsgfQotICAgIAogICAgIC8vIEhhdmUgdG8gY2FsbCB0aGVzZSBvbiB0aGUg
dW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1ZSkKICAg
ICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwppbmRleCA2YzBmOWMx
NzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFiMjdjMTQzLi5kN2IwMGNkMmM3M2ViM2E1YTg4MjM0
YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBlRGVm
IGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1l
dGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCiAgICAgewog
ICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAg
IHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IHR5cGVQ
YXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB9CiAgICAgCiAgICAg
Z2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRo
aXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBl
OyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJ0eXBlZGVm
ICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gPSAiICsgdGhp
cy50eXBlOworICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSArICIgPSAiICsg
dGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4IGE4MWVhYjQyZDk0OGZjYTNlOTMwYzY4NTdhOTY0
ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1OTFkZmYyMmQwYTY1YTM1NDliOGNjZTAxZTIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2ZXIuanMK
QEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fdmlzaXRpbmcu
ZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKTsKICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgaW5zdGFuY2VvZiBUeXBlRGVmKSB7
Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlv
bkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICBpZiAo
bm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBub2RlLnR5cGUudHlwZVBhcmFtZXRlcnMubGVu
Z3RoKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFyZ3VtZW50L3BhcmFt
ZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgZWFybGllcikiKTsKLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGg7
ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVu
aWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzW2ldKTsKLSAgICAgICAg
ICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlm
eSgpOwotICAgICAgICAgICAgICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkKLSAg
ICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8gYSB0eXBlIGRlZmluaXRpb24gdmlvbGF0ZXMgcHJv
dG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IG5vZGUudHlwZS50eXBl
LnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywgdW5pZmlj
YXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBuZXdUeXBlLnZpc2l0KHRoaXMpOwotICAg
ICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFuZEFyZ3VtZW50cyhuZXdUeXBlLCBbXSk7CisgICAg
ICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICAgICAgICAgIG5vZGUu
c2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAg
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0
ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0
ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JkMDM3YzkyNzI3
NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFy
YW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1l
dGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0
ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigp
KSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2Rl
LnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQxZTU2ZDY5M2VmY2UxYzM1MWRhZmMuLjRm
NzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYwOWIwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUsNjkgKzI1LDU4IEBACiAidXNlIHN0cmlj
dCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQog
ICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwog
ICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAgdGhpcy50eXBlID0gbnVsbDsKLSAg
ICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQogICAgIAog
ICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9m
IFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgaWYgKHR5cGUgaW5zdGFu
Y2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgIGxldCBuYW1l
ID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSwgdHlwZUFy
Z3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSkKICAgICB7Ci0gICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCB0eXBlQXJndW1l
bnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0K
ICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZUFyZ3Vt
ZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICAKICAgICBnZXQgdW5p
ZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5pZnlOb2RlOwotICAgICAgICByZXR1cm4g
dGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51bmlmeU5vZGU7CiAgICAgfQogICAgIAog
ICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKLSAgICAgICAg
aWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMu
dHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7Ci0gICAgICAgIHRocm93
IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZhbHVlIG9mIGEgdHlwZSBpbnN0YW50aWF0
aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVm
ZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBnZXQgc2l6ZSgpCiAgICAgewotICAgICAg
ICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhp
cy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBzaXplIG9m
IGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZTsK
ICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkKICAgICB7Ci0gICAgICAgIGlmICgh
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
aXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRldGVybWluZSBp
ZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1pdGl2ZTogIiArIHRoaXMpOworICAgICAg
ICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwogICAgIH0KICAgICAKLSAgICBzZXRUeXBl
QW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCisgICAgc2V0VHlwZSh0eXBlKQogICAg
IHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7
Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAgIH0KICAg
ICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKQEAgLTk2LDEyICs4
NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBv
dGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMu
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50
eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMudHlwZUFy
Z3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGVBcmd1bWVudHNb
aV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksOSArOTIsNyBAQCBjbGFzcyBUeXBlUmVm
IGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBpZiAoIXRoaXMubmFtZSkKICAgICAgICAg
ICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVB
cmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAgICAgICAg
cmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKKyAgICAg
ICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3MmZhMGI3ZS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwot
Ci1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAg
dGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigp
IHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5f
bmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJuIHRoaXMuX3Byb3RvY29sOyB9Ci0g
ICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9w
cm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci0gICAgCi0gICAg
Z2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIGluaGVyaXRzKHBy
b3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbCkKLSAgICAgICAgICAgIHJldHVy
biB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKQotICAgICAgICAg
ICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlICIgKyB0aGlz
ICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJv
dG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0KLSAgICAKLSAgICB0eXBlVmFyaWFibGVV
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCEob3Ro
ZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5p
ZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFz
QXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IHJlYWxUaGlz
ID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICAvLyBU
aGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0IGJlIGEgdHlwZSB2YXJpYWJsZSB0aGF0
IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAgICAvLyB0aGluZ3MgdGhhbiB3ZSBkby4K
LSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUpKQotICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlIGFyZ3Vt
ZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIG5vbi10eXBlLXZhcmlhYmxlIHBh
cmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIAotICAgICAgICBpZiAoIXRoaXMu
cHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcy5wcm90b2NvbCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgd2l0
aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90IGJlIHBhc3NlZCB0byBwYXJhbWV0ZXIg
dHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyByZWFsVGhpcy5wcm90b2NvbH07Ci0gICAg
ICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmluaGVyaXRzKHJlYWxUaGlzLnByb3RvY29s
KTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5wcm90b2NvbCArICIgZG9lcyBu
b3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5
cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxUaGlzICsgIik6ICIgKyByZXN1bHQucmVh
c29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2
ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICBpZiAo
IXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAg
ICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAg
ICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHModGhpcy5wcm90b2NvbCk7Ci0gICAgICAg
IGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwg
cmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRvZXMgbm90IGluaGVyaXQgcHJvdG9jb2wg
IiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHJlYWxUaGlzICsgIiB0byB0
eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHty
ZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9jb2wgPyAiOiIgKyB0aGlzLnByb3RvY29s
Lm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4NTIzOTFmODM1ZjdjNy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVUcmFja2VyIGV4dGVuZHMgVmlzaXRvciB7
Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhp
cy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2V0KCkgeyByZXR1cm4g
dGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVyKHRoaW5nKQotICAgIHsKLSAgICAgICAg
aWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgdGhpcy5fc2V0LmFkZCh0aGluZyk7
Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYg
KG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVB
cmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3Vt
ZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAg
IHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VmFyaWFi
bGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudmFyaWFibGUp
OwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5p
ZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBhMTNkZTQzZDUzMjZlMTM1N2M4N2Y4ODU5ZDlkNjAx
NWUwY2FkNDcuLmZlYzUzNTE0NTk2Mzg2MmM1YmUwNDJjOGRmYmU0M2Y0OTVlNDJiODEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQu
anMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVW5pZmljYXRpb25D
b250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3Rv
cigpCiAgICAgewotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IG5ldyBTZXQodHlwZVBh
cmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9uZXh0TWFwID0gbmV3IE1hcCgpOwogICAgICAgICB0
aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgpOwogICAgIH0KQEAgLTQ1LDEwICs0NCw2IEBAIGNs
YXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJsZSB0aGluZ3MgIiArIGEgKyAiIGFuZCAiICsgYik7
CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHR5cGUgcGFy
YW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcgcm9vdHMuCi0gICAgICAgIGlmIChhLmlzVW5pZmlh
YmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKGIpKQotICAg
ICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwotICAgICAgICAKICAgICAgICAgdGhpcy5fbmV4dE1h
cC5zZXQoYSwgYik7CiAgICAgfQogICAgIApAQCAtODUsMTggKzgwLDYgQEAgY2xhc3MgVW5pZmlj
YXRpb25Db250ZXh0IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAg
dHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQotICAgICp0
eXBlQXJndW1lbnRzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0
aGlzLm5vZGVzKSB7Ci0gICAgICAgICAgICBpZiAoIXR5cGVBcmd1bWVudC5pc1VuaWZpYWJsZSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICh0aGlzLl90eXBlUGFy
YW1ldGVycy5oYXModHlwZUFyZ3VtZW50KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIHlpZWxkIHR5cGVBcmd1bWVudDsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAg
ICB2ZXJpZnkoKQogICAgIHsKICAgICAgICAgLy8gV2UgZG8gYSB0d28tcGhhc2UgcHJlLXZlcmlm
aWNhdGlvbi4gVGhpcyBnaXZlcyBsaXRlcmFscyBhIGNoYW5jZSB0byBzZWxlY3QgYSBtb3JlIHNw
ZWNpZmljIHR5cGUuCkBAIC0xMTEsNDAgKzk0LDcgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0
IHsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCB0eXBlUGFy
YW1ldGVyIG9mIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0
ID0gdHlwZVBhcmFtZXRlci52ZXJpZnlBc1BhcmFtZXRlcih0aGlzKTsKLSAgICAgICAgICAgIGlm
ICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
ICB9Ci0gICAgICAgIGxldCBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMgPSAwOwotICAgICAgICBs
ZXQgYXJndW1lbnRTZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVu
dCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5
cGVBcmd1bWVudC52ZXJpZnlBc0FyZ3VtZW50KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1
bHQucmVzdWx0KQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICBp
ZiAodHlwZUFyZ3VtZW50LmlzTGl0ZXJhbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgICAgIGFyZ3VtZW50U2V0LmFkZCh0aGlzLmZpbmQodHlwZUFyZ3VtZW50KSk7Ci0gICAg
ICAgICAgICBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMrKzsKLSAgICAgICAgfQotICAgICAgICBp
ZiAoYXJndW1lbnRTZXQuc2l6ZSA9PSBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMpCi0gICAgICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxz
ZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZXMgdXNlZCBhcyBhcmd1bWVudHMgZ290IHVuaWZpZWQg
d2l0aCBlYWNoIG90aGVyIn07Ci0gICAgfQotICAgIAotICAgIGdldCBjb252ZXJzaW9uQ29zdCgp
Ci0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gMDsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIHRoaXMudHlwZUFyZ3VtZW50cygpKQotICAgICAgICAgICAgcmVzdWx0ICs9IHR5
cGVBcmd1bWVudC5jb252ZXJzaW9uQ29zdCh0aGlzKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0gICAgCi0gICAgY29tbWl0KCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVB
cmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkKLSAgICAgICAgICAgIHR5cGVBcmd1bWVu
dC5jb21taXRVbmlmaWNhdGlvbih0aGlzKTsKKyAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKaW5k
ZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBkZWY1MzM2ZC4uOGFhNjA0ZTdjNWMz
ZDYzODgwYTczZDg3M2MwN2Y0ZTMzM2Y1MjM2YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAg
dmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhp
cyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVy
cykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAo
bGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIu
dmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xGdW5jRGVjbChub2Rl
KQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0
KHRoaXMpOwpAQCAtNzksMTggKzcyLDYgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICBl
eHByZXNzaW9uLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVm
KG5vZGUpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQot
ICAgIHsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAg
ICAgICAgcHJvdG9jb2wudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBv
ZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICBzaWduYXR1cmUudmlzaXQodGhpcyk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgZm9yIChs
ZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKQEAgLTk5LDggKzgwLDggQEAg
Y2xhc3MgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewot
ICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0g
ICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOworICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQorICAgICAgICAgICAgdHlwZUFyZ3Vt
ZW50LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKICAgICB2aXNpdE5hdGl2ZVR5cGVJbnN0YW5j
ZShub2RlKQpAQCAtMTEyLDI5ICs5MywxNSBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAKICAgICB2
aXNpdFR5cGVEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIg
b2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQo
dGhpcyk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAg
dmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1l
dGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZp
c2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKICAgICAg
ICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFR5cGVWYXJp
YWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnByb3RvY29sLCB0aGlz
KTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0g
ICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZp
c2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKQEAg
LTM0MCwxNCArMzA3LDYgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICB0eXBlQXJndW1l
bnQudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1l
bnRMaXN0KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAg
IGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0gICAg
ICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZvciAo
bGV0IGFyZ3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAg
IGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAg
ICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAg
IGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRz
KTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwgdGhpcyk7CiAg
ICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXR1cm5UeXBlLCB0aGlzKTsKICAgICAgICAgTm9kZS52
aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvV1NMLm1kIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NM
Lm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2I2NjU2NzgyNmE1MWRkNmM3NTRk
NGU5YjI0ZDc1Nzg5NzJiYjNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZAorKysgL2Rldi9u
dWxsCkBAIC0xLDQ3OSArMCwwIEBACi0jIFdlYkdQVSBTaGFkaW5nIExhbmd1YWdlCi0KLVdlYkdQ
VSBTaGFkaW5nIExhbmd1YWdlLCBvciBXU0wgZm9yIHNob3J0LCBpcyBhIHR5cGUtc2FmZSBsb3ct
b3ZlcmhlYWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZm9yIEdQVXMgKGdyYXBoaWNzIHByb2Nlc3Np
bmcgdW5pdHMpLiBUaGlzIGRvY3VtZW50IGV4cGxhaW5zIGhvdyBXU0wgd29ya3MuCi0KLSMgR29h
bHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZyBnb2FsczoKLQot
LSBXU0wgc2hvdWxkIGZlZWwgKmZhbWlsaWFyKiB0byBDKysgcHJvZ3JhbW1lcnMuCi0tIFdTTCBz
aG91bGQgYmUgaGF2ZSBhICpzb3VuZCogYW5kICpkZWNpZGFibGUqIHR5cGUgc3lzdGVtLgotLSBX
U0wgc2hvdWxkIG5vdCBwZXJtaXQgKm91dC1vZi1ib3VuZHMqIG1lbW9yeSBhY2Nlc3Nlcy4KLS0g
V1NMIHNob3VsZCBiZSBoYXZlICpsb3cgb3ZlcmhlYWQqLgotCi1UaGUgY29tYmluYXRpb24gb2Yg
YSBzb3VuZCB0eXBlIHN5c3RlbSBhbmQgYm91bmRzIGNoZWNraW5nIG1ha2VzIFdTTCBhIHNlY3Vy
ZSBzaGFkZXIgbGFuZ3VhZ2U6IHRoZSBsYW5ndWFnZSBpdHNlbGYgaXMgcmVzcG9uc2libGUgZm9y
IGlzb2xhdGluZyB0aGUgc2hhZGVyIGZyb20gdGhlIHJlc3Qgb2YgdGhlIEdQVS4KLQotIyBGYW1p
bGlhciBTeW50YXgKLQotV1NMIGlzIGJhc2VkIG9uIEMgc3ludGF4LCBidXQgZXhjbHVkZXMgZmVh
dHVyZXMgdGhhdCBhcmUgZWl0aGVyIHVubmVjZXNzYXJ5LCBpbnNlY3VyZSwgb3IgcmVwbGFjZWQg
Ynkgb3RoZXIgV1NMIGZlYXR1cmVzOgotCi0tIE5vIHN0cmluZ3MuCi0tIE5vIGByZWdpc3RlcmAs
IGB2b2xhdGlsZWAsIGBjb25zdGAsIGByZXN0cmljdGAsIG9yIGBleHRlcm5gIGtleXdvcmRzLgot
LSBObyB1bmlvbnMuIGB1bmlvbmAgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gZ290byBvciBsYWJl
bHMuIGBnb3RvYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBgKmAgcG9pbnRlcnMuCi0tIEVmZmVj
dGxlc3MgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdGF0ZW1lbnRzIChgYSArIGI7YCBpcyBhIHBhcnNl
IGVycm9yKS4KLS0gTm8gdW5kZWZpbmVkIHZhbHVlcyAoYGludCB4O2AgaW5pdGlhbGl6ZXMgeCB0
byAwKS4KLS0gTm8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbnMgKGBpbnQgeDsgdWludCB5ID0g
eDtgIGlzIGEgdHlwZSBlcnJvcikuCi0tIE5vIHJlY3Vyc2lvbi4KLS0gTm8gZHluYW1pYyBtZW1v
cnkgYWxsb2NhdGlvbi4KLS0gTm8gbW9kdWxhcml0eS4gVGhlIHdob2xlIHByb2dyYW0gaXMgb25l
IGZpbGUuCi0KLU9uIHRvcCBvZiB0aGlzIGJhcmUgQy1saWtlIGZvdW5kYXRpb24sIFdTTCBhZGRz
IHNlY3VyZSB2ZXJzaW9ucyBvZiBmYW1pbGlhciBDKysgZmVhdHVyZXM6Ci0KLS0gVHlwZS1zYWZl
IHBvaW50ZXJzIChgXmApIGFuZCBhcnJheSByZWZlcmVuY2VzIChgW11gKS4KLS0gR2VuZXJpY3Mg
dG8gcmVwbGFjZSB0ZW1wbGF0ZXMuCi0tIE9wZXJhdG9yIG92ZXJsb2FkaW5nLiBCdWlsdC1pbiBv
cGVyYXRpb25zIGxpa2UgYGludCBvcGVyYXRvcisoaW50LCBpbnQpYCBhcmUganVzdCBuYXRpdmUg
ZnVuY3Rpb25zLgotLSBDYXN0IG92ZXJsb2FkaW5nLiBCdWlsdC1pbiBjYXN0cyBsaWtlIGBvcGVy
YXRvciBpbnQoZG91YmxlKWAgYXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0gR2V0dGVycyBh
bmQgc2V0dGVycy4gUHJvcGVydHkgYWNjZXNzZXMgbGlrZSBgdmVjLnhgIHJlc29sdmUgdG8gb3Zl
cmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yLmZpZWxkKGZsb2F0NClgLgotLSBBcnJheSBhY2Nl
c3Mgb3ZlcmxvYWRpbmcuIEFycmF5IGFjY2Vzc2VzIGxpa2UgYHZlY1swXWAgcmVzb2x2ZSB0byB2
ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCwgdWludClgLgotCi1JbiB0aGUg
Zm9sbG93aW5nIHNlY3Rpb25zLCBXU0wgaXMgc2hvd24gYnkgZXhhbXBsZSBzdGFydGluZyB3aXRo
IGl0cyBDLWxpa2UgZm91bmRhdGlvbiBhbmQgdGhlbiBidWlsZGluZyB1cCB0byBpbmNsdWRlIG1v
cmUgc29waGlzdGljYXRlZCBmZWF0dXJlcyBsaWtlIGdlbmVyaWNzLgotCi0jIyBDb21tb24gc3Vi
c2V0IG9mIEMgYW5kIFdTTAotCi1UaGUgZm9sbG93aW5nIGlzIGEgdmFsaWQgV1NMIGZ1bmN0aW9u
IGRlZmluaXRpb246Ci0KLSAgICBpbnQgZm9vKGludCB4LCBpbnQgeSwgYm9vbCBwKQotICAgIHsK
LSAgICAgICAgaWYgKHApCi0gICAgICAgICAgICByZXR1cm4geCAtIHk7Ci0gICAgICAgIHJldHVy
biB4ICsgeTsKLSAgICB9Ci0KLVdTTCBzb3VyY2UgZmlsZXMgYmVoYXZlIHNpbWlsYXJseSB0byBD
IHNvdXJjZSBmaWxlczoKLQotLSBUb3AtbGV2ZWwgc3RhdGVtZW50cyBtdXN0IGJlIHR5cGUgb3Ig
ZnVuY3Rpb24gZGVmaW5pdGlvbnMuCi0tIFdTTCB1c2VzIHN0cnVjdHVyZWQgQyBjb250cm9sIGZs
b3cgY29uc3RydWN0cywgbGlrZSBgaWZgLCBgd2hpbGVgLCBgZm9yYCwgYGRvYCwgYGJyZWFrYCwg
YW5kIGBjb250aW51ZWAuCi0tIFdTTCB1c2VzIEMtbGlrZSBgc3dpdGNoYCBzdGF0ZW1lbnRzLCBi
dXQgZG9lcyBub3QgYWxsb3cgdGhlbSB0byBvdmVybGFwIG90aGVyIGNvbnRyb2wgZmxvdyAoaS5l
LiBubyBbRHVmZidzIGRldmljZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRHVmZiUy
N3NfZGV2aWNlKSkuCi0tIFdTTCBhbGxvd3MgdmFyaWFibGUgZGVjbGFyYXRpb25zIGFueXdoZXJl
IEMrKyB3b3VsZC4KLQotV1NMIHR5cGVzIGRpZmZlciBmcm9tIEMgdHlwZXMuIEZvciBleGFtcGxl
LCB0aGlzIGlzIGFuIGFycmF5IG9mIDQyIGludGVnZXJzIGluIFdTTDoKLQotICAgIGludFs0Ml0g
YXJyYXk7Ci0KLVRoZSB0eXBlIG5ldmVyIHN1cnJvdW5kcyB0aGUgdmFyaWFibGUsIGxpa2UgaXQg
d291bGQgaW4gQyAoYGludCBhcnJheVs0Ml1gKS4KLQotIyMgVHlwZS1zYWZlIHBvaW50ZXJzCi0K
LVdTTCBpbmNsdWRlcyBhIHNlY3VyZSBwb2ludGVyIHR5cGUuIFRvIGVtcGhhc2l6ZSB0aGF0IGl0
IGlzIG5vdCBsaWtlIHRoZSBDIHBvaW50ZXIsIFdTTCB1c2VzIGBeYCBmb3IgdGhlIHBvaW50ZXIg
dHlwZSBhbmQgZm9yIGRlcmVmZXJlbmNlLiBMaWtlIGluIEMsIGAmYCBpcyB1c2VkIHRvIHRha2Ug
dGhlIGFkZHJlc3Mgb2YgYSB2YWx1ZS4gIEJlY2F1c2UgR1BVcyBoYXZlIGRpZmZlcmVudCBraW5k
cyBvZiBtZW1vcmllcywgcG9pbnRlcnMgbXVzdCBiZSBhbm5vdGF0ZWQgd2l0aCBhbiBhZGRyZXNz
IHNwYWNlIChvbmUgb2YgYHRocmVhZGAsIGB0aHJlYWRncm91cGAsIGBkZXZpY2VgLCBvciBgY29u
c3RhbnRgKS4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGJhcih0aHJlYWQgaW50XiBwKQotICAg
IHsKLSAgICAgICAgXnAgKz0gNDI7Ci0gICAgfQotICAgIGludCBmb28oKQotICAgIHsKLSAgICAg
ICAgaW50IHggPSAyNDsKLSAgICAgICAgYmFyKCZ4KTsKLSAgICAgICAgcmV0dXJuIHg7IC8vIFJl
dHVybnMgNjYuCi0gICAgfQotCi1Qb2ludGVycyBjYW4gYmUgYG51bGxgLiBFYWNoIHBvaW50ZXIg
YWNjZXNzIGlzIG51bGwtY2hlY2tlZCwgdGhvdWdoIG1vc3QgcG9pbnRlciBhY2Nlc3NlcyAobGlr
ZSB0aGlzIG9uZSkgd2lsbCBub3QgaGF2ZSBhIG51bGwgY2hlY2suIFdTTCBwbGFjZXMgZW5vdWdo
IGNvbnN0cmFpbnRzIG9uIHRoZSBwcm9ncmFtbWVyIHRoYXQgcHJvZ3JhbXMgYXJlIGVhc3kgZm9y
IHRoZSBjb21waWxlciB0byBhbmFseXplLiBUaGUgY29tcGlsZXIgd2lsbCBhbHdheXMga25vdyB0
aGF0IGBecCArPSA0MmAgYWRkcyBgNDJgIHRvIGB4YCBpbiB0aGlzIGNhc2UuCi0KLVdTTCBwb2lu
dGVycyBkbyBub3Qgc3VwcG9ydCBjYXN0aW5nIG9yIHBvaW50ZXIgYXJpdGhtZXRpYy4gQWxsIG1l
bW9yeSBhY2Nlc3NpYmxlIHRvIGEgc2hhZGVyIG91dGxpdmVzIHRoZSBzaGFkZXIuIFRoaXMgaXMg
ZXZlbiB0cnVlIG9mIGxvY2FsIHZhcmlhYmxlcy4gVGhpcyBpcyBwb3NzaWJsZSBiZWNhdXNlIFdT
TCBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2lvbi4gVGhlcmVmb3JlLCBsb2NhbCB2YXJpYWJsZXMg
c2ltcGx5IGdldCBnbG9iYWwgc3RvcmFnZS4gTG9jYWwgdmFyaWFibGVzIGFyZSBpbml0aWFsaXpl
ZCBhdCB0aGUgcG9pbnQgb2YgdGhlaXIgZGVjbGFyYXRpb24uIEhlbmNlLCB0aGUgZm9sbG93aW5n
IGlzIGEgdmFsaWQgcHJvZ3JhbSwgd2hpY2ggd2lsbCBleGhpYml0IHRoZSBzYW1lIGJlaGF2aW9y
IG9uIGV2ZXJ5IFdTTCBpbXBsZW1lbnRhdGlvbjoKLQotICAgIHRocmVhZCBpbnReIGZvbygpCi0g
ICAgewotICAgICAgICBpbnQgeCA9IDQyOwotICAgICAgICByZXR1cm4gJng7Ci0gICAgfQotICAg
IGludCBiYXIoKQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygpOwotICAgICAg
ICB0aHJlYWQgaW50XiBxID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAgICAgIHJldHVy
biBecTsgLy8gUmV0dXJucyA1My4KLSAgICB9Ci0gICAgaW50IGJheigpCi0gICAgewotICAgICAg
ICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAgICAgIGZvbygp
OwotICAgICAgICByZXR1cm4gXnA7IC8vIFJldHVybnMgNDIuCi0gICAgfQotCi1JdCdzIHBvc3Np
YmxlIHRvIHBvaW50IHRvIGFueSBraW5kIG9mIGRhdGEgdHlwZS4gRm9yIGV4YW1wbGUsIGB0aHJl
YWQgZG91YmxlWzQyXV5gIGlzIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA0MiBkb3VibGVzLgot
Ci0jIyBUeXBlLXNhZmUgYXJyYXkgcmVmZXJlbmNlcwotCi1XU0wgc3VwcG9ydHMgYXJyYXkgcmVm
ZXJlbmNlcyB0aGF0IGNhcnJ5IGEgcG9pbnRlciB0byB0aGUgYmFzZSBvZiB0aGUgYXJyYXkgYW5k
IHRoZSBhcnJheSdzIGxlbmd0aC4gVGhpcyBhbGxvd3MgYWNjZXNzZXMgdG8gdGhlIGFycmF5IHRv
IGJlIGJvdW5kcy1jaGVja2VkLgotCi1BbiBhcnJheSByZWZlcmVuY2UgY2FuIGJlIGNyZWF0ZWQg
dXNpbmcgdGhlIGBAYCBvcGVyYXRvcjoKLQotICAgIGludFs0Ml0gYXJyYXk7Ci0gICAgdGhyZWFk
IGludFtdIGFycmF5UmVmID0gQGFycmF5OwotCi1Cb3RoIGFycmF5cyBhbmQgYXJyYXkgcmVmZXJl
bmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gYW5kIHN0b3JlZCB0byB1c2luZyBgb3BlcmF0b3JbXWA6
Ci0KLSAgICBpbnQgeCA9IGFycmF5W2ldOwotICAgIGludCB5ID0gYXJyYXlSZWZbaV07Ci0KLUJv
dGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2VzIGtub3cgdGhlaXIgbGVuZ3RoOgotCi0gICAg
dWludCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKLSAgICB1aW50IGFycmF5UmVmTGVuZ3Ro
ID0gYXJyYXlSZWYubGVuZ3RoOwotCi1HaXZlbiBhbiBhcnJheSBvciBhcnJheSByZWZlcmVuY2Us
IGl0J3MgcG9zc2libGUgdG8gZ2V0IGEgcG9pbnRlciB0byBvbmUgb2YgaXRzIGVsZW1lbnRzOgot
Ci0gICAgdGhyZWFkIGludF4gcHRyMSA9ICZhcnJheVtpXTsKLSAgICB0aHJlYWQgaW50XiBwdHIy
ID0gJmFycmF5UmVmW2ldOwotCi1BIHBvaW50ZXIgaXMgbGlrZSBhbiBhcnJheSByZWZlcmVuY2Ug
d2l0aCBvbmUgZWxlbWVudC4gSXQncyBwb3NzaWJsZSB0byBwZXJmb3JtIHRoaXMgY29udmVyc2lv
bjoKLQotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAcHRyMTsKLSAgICByZWZbMF0gLy8gRXF1aXZh
bGVudCB0byBecHRyMS4KLSAgICByZWYubGVuZ3RoIC8vIDAgaWYgcHRyMSB3YXMgbnVsbCwgMSBp
ZiBwdHIxIHdhcyBub3QgbnVsbC4KLQotU2ltaWxhcmx5LCB1c2luZyBgQGAgb24gYSBub24tcG9p
bnRlciB2YWx1ZSByZXN1bHRzIGluIGEgcmVmZXJlbmNlIG9mIGxlbmd0aCAxOgotCi0gICAgaW50
IHg7Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEB4OwotICAgIHJlZlswXSAvLyBBbGlhc2VzIHgu
Ci0gICAgcmVmLmxlbmd0aCAvLyBSZXR1cm5zIDEuCi0KLUl0J3Mgbm90IGxlZ2FsIHRvIHVzZSBg
QGAgb24gYW4gYXJyYXkgcmVmZXJlbmNlOgotCi0gICAgdGhyZWFkIGludFtdIHJlZjsKLSAgICB0
aHJlYWQgaW50W11bXSByZWZlcmVmID0gQHJlZjsgLy8gRXJyb3IhCi0KLSMjIEdlbmVyaWNzCi0K
LVdTTCBzdXBwb3J0cyBnZW5lcmljIHR5cGVzIHVzaW5nIGEgc2ltcGxlIHN5bnRheC4gV1NMJ3Mg
Z2VuZXJpYyBhcmUgZGVzaWduZWQgdG8gaW50ZWdyYXRlIGNsZWFubHkgaW50byB0aGUgY29tcGls
ZXIgcGlwZWxpbmU6Ci0KLS0gR2VuZXJpY3MgaGF2ZSB1bmFtYmlndW91cyBzeW50YXguCi0tIEdl
bmVyaWMgZnVuY3Rpb25zIGNhbiBiZSB0eXBlIGNoZWNrZWQgYmVmb3JlIHRoZXkgYXJlIGluc3Rh
bnRpYXRlZC4KLQotU2VtYW50aWMgZXJyb3JzIGluc2lkZSBnZW5lcmljIGZ1bmN0aW9ucyBzaG93
IHVwIG9uY2UgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBnZW5lcmljIGZ1
bmN0aW9uIGlzIGluc3RhbnRpYXRlZC4KLQotVGhpcyBpcyBhIHNpbXBsZSBnZW5lcmljIGZ1bmN0
aW9uOgotCi0gICAgVCBpZGVudGl0eTxUPihUIHZhbHVlKQotICAgIHsKLSAgICAgICAgVCB0bXAg
PSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci0KLVdTTCBhbHNvIHN1cHBvcnRz
IHN0cnVjdHMsIHdoaWNoIGFyZSBhbHNvIGFsbG93ZWQgdG8gYmUgZ2VuZXJpYzoKLQotICAgIC8v
IE5vdCBnZW5lcmljLgotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgeDsKLSAgICAgICAg
ZG91YmxlIHk7Ci0gICAgfQotICAgIC8vIEdlbmVyaWMuCi0gICAgc3RydWN0IEJhcjxULCBVPiB7
Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLQotVHlwZSBwYXJhbWV0ZXJzIGNh
biBhbHNvIGJlIGNvbnN0YW50IGV4cHJlc3Npb25zLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQg
aW5pdGlhbGl6ZUFycmF5PFQsIHVpbnQgbGVuZ3RoPih0aHJlYWQgVFtsZW5ndGhdXiBhcnJheSwg
VCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGZvciAodWludCBpID0gbGVuZ3RoOyBpLS07KQotICAg
ICAgICAgICAgKF5hcnJheSlbaV0gPSB2YWx1ZTsKLSAgICB9Ci0KLUNvbnN0YW50IGV4cHJlc3Np
b25zIHBhc3NlZCBhcyB0eXBlIGFyZ3VtZW50cyBtdXN0IG9iZXkgYSB2ZXJ5IG5hcnJvdyBkZWZp
bml0aW9uIG9mIGNvbnN0YW50bmVzcy4gT25seSBsaXRlcmFscyBhbmQgcmVmZXJlbmNlcyB0byBv
dGhlciBjb25zdGFudCBwYXJhbWV0ZXJzIHF1YWxpZnkuCi0KLVdTTCBpcyBndWFyYW50ZWVkIHRv
IGNvbXBpbGUgZ2VuZXJpY3MgYnkgaW5zdGFudGlhdGlvbi4gVGhpcyBpcyBvYnNlcnZhYmxlLCBz
aW5jZSBmdW5jdGlvbnMgY2FuIHJldHVybiBwb2ludGVycyB0byB0aGVpciBsb2NhbHMuIEhlcmUg
aXMgYW4gZXhhbXBsZSBvZiB0aGlzIHBoZW5vbWVub246Ci0KLSAgICB0aHJlYWQgaW50XiBhbGxv
Y2F0ZTx1aW50PigpCi0gICAgewotICAgICAgICBpbnQgeDsKLSAgICAgICAgcmV0dXJuICZ4Owot
ICAgIH0KLQotVGhlIGBhbGxvY2F0ZWAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBkaWZmZXJlbnQg
cG9pbnRlciBmb3IgZWFjaCB1bnNpZ25lZCBpbnRlZ2VyIGNvbnN0YW50IHBhc3NlZCBhcyBhIHR5
cGUgcGFyYW1ldGVyLiBUaGlzIGFsbG9jYXRpb24gaXMgY29tcGxldGVseSBzdGF0aWMsIHNpbmNl
IHRoZSBgdWludGAgcGFyYW1ldGVyIG11c3QgYmUgZ2l2ZW4gYSBjb21waWxlLXRpbWUgY29uc3Rh
bnQuCi0KLVdTTCdzIGB0eXBlZGVmYCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHN5bnRheCB0
aGFuIEMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewotICAgICAgICBU
IHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgdHlwZWRlZiBGQ29tcGxleCA9IENv
bXBsZXg8ZmxvYXQ+OwotCi1gdHlwZWRlZmAgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGdlbmVyaWMg
dHlwZXM6Ci0KLSAgICBzdHJ1Y3QgRm9vPFQsIFU+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBV
IHk7Ci0gICAgfQotICAgIHR5cGVkZWYgQmFyPFQ+ID0gRm9vPFQsIFQ+OwotCi0jIyBQcm90b2Nv
bHMKLQotUHJvdG9jb2xzIGVuYWJsZSBnZW5lcmljIGZ1bmN0aW9ucyB0byB3b3JrIHdpdGggZGF0
YSBvZiBnZW5lcmljIHR5cGUuIEJlY2F1c2UgYSBmdW5jdGlvbiBtdXN0IGJlIHR5cGUtY2hlY2th
YmxlIGJlZm9yZSBpbnN0YW50aWF0aW9uLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5vdCBiZSBsZWdh
bDoKLQotICAgIGludCBiYXIoaW50KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihkb3VibGUpIHsg
Li4uIH0KLSAgICAKLSAgICBUIGZvbzxUPihUIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IGJhcih2YWx1ZSk7IC8vIEVycm9yIQotICAgIH0KLQotVGhlIGNhbGwgdG8gYGJhcmAgZG9lc24n
dCB0eXBlIGNoZWNrIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbm5vdCBrbm93IHRoYXQgYGZvbzxU
PmAgd2lsbCBiZSBpbnN0YW50aWF0ZWQgd2l0aCBgVCA9IGludGAgb3IgYFQgPSBkb3VibGVgLiBQ
cm90b2NvbHMgZW5hYmxlIHRoZSBwcm9ncmFtbWVyIHRvIHRlbGwgdGhlIGNvbXBpbGVyIHdoYXQg
dG8gZXhwZWN0IG9mIGEgdHlwZSB2YXJpYWJsZToKLQotICAgIGludCBiYXIoaW50KSB7IC4uLiB9
Ci0gICAgZG91YmxlIGJhcihkb3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBwcm90b2NvbCBTdXBw
b3J0c0JhciB7Ci0gICAgICAgIFN1cHBvcnRzQmFyIGJhcihTdXBwb3J0c0Jhcik7Ci0gICAgfQot
ICAgIAotICAgIFQgZm9vPFQ6U3VwcG9ydHNCYXI+KFQgdmFsdWUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gYmFyKHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgaW50IHggPSBmb28oNDIpOwotICAg
IGRvdWJsZSB5ID0gZm9vKDQuMik7Ci0KLVByb3RvY29scyBoYXZlIGF1dG9tYXRpYyByZWxhdGlv
bnNoaXBzIHRvIG9uZSBhbm90aGVyIGJhc2VkIG9uIHdoYXQgZnVuY3Rpb25zIHRoZXkgY29udGFp
bjoKLQotICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7Ci0gICAgfQot
ICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgIHZvaWQgZm9vKEJhcik7Ci0gICAgICAgIHZvaWQg
YmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4uLiB9Ci0gICAg
dm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewotICAgICAgICBmdXp6KHgpOyAvLyBPSywgYmVj
YXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIEZvby4gICAgCi0gICAgfQotCi1Qcm90b2Nv
bHMgY2FuIGFsc28gbWl4IG90aGVyIHByb3RvY29scyBpbiBleHBsaWNpdGx5LiBMaWtlIGluIHRo
ZSBleGFtcGxlIGFib3ZlLCB0aGUgZXhhbXBsZSBiZWxvdyByZWxpZXMgb24gdGhlIGZhY3QgdGhh
dCBgQmFyYCBpcyBhIG1vcmUgc3BlY2lmaWMgcHJvdG9jb2wgdGhhbiBgRm9vYC4gSG93ZXZlciwg
dGhpcyBleGFtcGxlIGRlY2xhcmVzIHRoaXMgZXhwbGljaXRseSAoYHByb3RvY29sIEJhciA6IEZv
b2ApIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgbGFuZ3VhZ2UgdG8gaW5mZXIgaXQ6Ci0KLSAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0KLSAgICBwcm90
b2NvbCBCYXIgOiBGb28gewotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0KLSAgICB2b2lk
IGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4oVCB4KQotICAg
IHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUgc3BlY2lmaWMg
dGhhbiBGb28uICAgIAotICAgIH0KLQotIyMgT3ZlcmxvYWRpbmcKLQotV1NMIHN1cHBvcnRzIG92
ZXJsb2FkaW5nIHZlcnkgc2ltaWxhcmx5IHRvIGhvdyBDKysgZG9lcyBpdC4gRm9yIGV4YW1wbGU6
Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91YmxlKTsgLy8g
MgotICAgIAotICAgIGludCB4OwotICAgIGZvbyh4KTsgLy8gY2FsbHMgMQotICAgIAotICAgIGRv
dWJsZSB5OwotICAgIGZvbyh5KTsgLy8gY2FsbHMgMgotCi1XU0wgYXV0b21hdGljYWxseSBzZWxl
Y3RzIHRoZSBtb3N0IHNwZWNpZmljIG92ZXJsb2FkIGlmIGdpdmVuIG11bHRpcGxlIGNob2ljZXMu
IEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAgIHZvaWQgZm9v
KGRvdWJsZSk7IC8vIDIKLSAgICB2b2lkIGZvbzxUPihUKTsgICAvLyAzCi0KLSAgICBmb28oMSk7
IC8vIGNhbGxzIDEKLSAgICBmb28oMS4pOyAvLyBjYWxscyAyCi0gICAgZm9vKDF1KTsgLy8gY2Fs
bHMgMwotCi1HZW5lcmljIGZ1bmN0aW9ucyBsaWtlIGBmb288VD5gIGNhbiBiZSBjYWxsZWQgd2l0
aCBvciB3aXRob3V0IGFsbCBvZiB0aGVpciB0eXBlIGFyZ3VtZW50cyBzdXBwbGllZC4gSWYgdGhl
eSBhcmUgbm90IHN1cHBsaWVkLCB0aGUgZnVuY3Rpb24gcGFydGljaXBhdGVzIGluIG92ZXJsb2Fk
IHJlc29sdXRpb24gbGlrZSBhbnkgb3RoZXIgZnVuY3Rpb24gd291bGQuIEZ1bmN0aW9ucyBhcmUg
cmFua2VkIGJ5IGhvdyBzcGVjaWZpYyB0aGV5IGFyZTsgZnVuY3Rpb24gQSBpcyBtb3JlIHNwZWNp
ZmljIHRoYW4gZnVuY3Rpb24gQiBpZiBBJ3MgcGFyYW1ldGVyIHR5cGVzIGNhbiBiZSB1c2VkIGFz
IGFyZ3VtZW50IHR5cGVzIGZvciBhIGNhbGwgdG8gQiBidXQgbm90IHZpY2UtdmVyc2EuIElmIG9u
ZSBmdW5jdGlvbnMgbW9yZSBzcGVjaWZpYyB0aGFuIGFsbCBvdGhlcnMgdGhlbiB0aGlzIGZ1bmN0
aW9uIGlzIHNlbGVjdGVkLCBvdGhlcndpc2UgYSB0eXBlIGVycm9yIGlzIGlzc3VlZC4KLQotIyMg
T3BlcmF0b3IgT3ZlcmxvYWRpbmcKLQotTWFueSBXU0wgb3BlcmF0aW9ucyBkZXN1Z2FyIHRvIGNh
bGxzIHRvIGZ1bmN0aW9ucy4gVGhvc2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgKm9wZXJhdG9yIG92
ZXJsb2FkcyogYW5kIGFyZSBkZWNsYXJlZCB1c2luZyBzeW50YXggdGhhdCBpbnZvbHZlcyB0aGUg
a2V5d29yZCBgb3BlcmF0b3JgLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgcmVzdWx0IGluIGNh
bGxzIHRvIG9wZXJhdG9yIG92ZXJsb2FkczoKLQotLSBOdW1lcmljYWwgb3BlcmF0b3JzIChgK2As
IGAtYCwgYCpgLCBgL2AsIGV0Yy4pLgotLSBJbmNyZW1lbnQgYW5kIGRlY3JlbWVudCAoYCsrYCwg
YC0tYCkuCi0tIENhc3RpbmcgKGB0eXBlKHZhbHVlKWApLgotLSBBY2Nlc3NpbmcgdmFsdWVzIGlu
IGFycmF5cyAoYFtdYCwgYFtdPWAsIGAmW11gKS4KLS0gQWNjZXNzaW5nIGZpZWxkcyAoYC5maWVs
ZGAsIGAuZmllbGQ9YCwgYCYuZmllbGRgKS4KLQotV1NMJ3Mgb3BlcmF0b3Igb3ZlcmxvYWRpbmcg
aXMgZGVzaWduZWQgdG8gc3ludGhlc2l6ZSBtYW55IG9wZXJhdG9ycyBmb3IgeW91OgotCi0tIFJl
YWQtbW9kaWZ5LXdyaXRlIG9wZXJhdG9ycyBsaWtlIGArPWAgYXJlIGRlc3VnYXJlZCB0byBhIGxv
YWQgb2YgdGhlIGxvYWQgdmFsdWUsIHRoZSB1bmRlcmx5aW5nIG9wZXJhdG9yIChsaWtlIGArYCks
IGFuZCBhIHN0b3JlIG9mIHRoZSBuZXcgdmFsdWUuIEl0J3Mgbm90IHBvc3NpYmxlIHRvIG92ZXJy
aWRlIGArPWAsIGAtPWAsIGV0Yy4KLS0gYHgrK2AgYW5kIGArK3hgIGJvdGggY2FsbCB0aGUgc2Ft
ZSBvcGVyYXRvciBvdmVybG9hZC4gYG9wZXJhdG9yKytgIHRha2VzIHRoZSBvbGQgdmFsdWUgYW5k
IHJldHVybnMgYSBuZXcgb25lOyBmb3IgZXhhbXBsZSB0aGUgYnVpbHQtaW4gYCsrYCBmb3IgYGlu
dGAgY291bGQgYmUgd3JpdHRlbiBhczogYGludCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUgKyAxOyB9YC4KLS0gYG9wZXJhdG9yPT1gIGNhbiBiZSBvdmVybG9hZGVkLCBidXQg
YCE9YCBpcyBhdXRvbWF0aWNhbGx5IHN5bnRoZXNpemVkIGFuZCBjYW5ub3QgYmUgb3ZlcmxvYWRl
ZC4KLQotU29tZSBvcGVyYXRvcnMgYW5kIG92ZXJsb2FkcyBhcmUgcmVzdHJpY3RlZDoKLQotLSBg
IWAsIGAmJmAsIGFuZCBgfHxgIGFyZSBidWlsdC1pbiBvcGVyYXRpb25zIG9uIHRoZSBgYm9vbGAg
dHlwZS4KLS0gU2VsZi1jYXN0cyAoYFQoVClgKSBhcmUgYWx3YXlzIHRoZSBpZGVudGl0eSBmdW5j
dGlvbi4KLS0gQ2FzdHMgd2l0aCBubyBhcmd1bWVudHMgKGBUKClgKSBhbHdheXMgcmV0dXJuIHRo
ZSBkZWZhdWx0IHZhbHVlIGZvciB0aGF0IHR5cGUuIEV2ZXJ5IHR5cGUgaGFzIGEgZGVmYXVsdCB2
YWx1ZSAoYDBgLCBgbnVsbGAsIG9yIHRoZSBlcXVpdmFsZW50IGZvciBlYWNoIGZpZWxkKS4KLQot
Q2FzdCBvdmVybG9hZGluZyBhbGxvd3MgZm9yIHN1cHBvcnRpbmcgY29udmVyc2lvbnMgYmV0d2Vl
biB0eXBlcyBhbmQgZm9yIGNyZWF0aW5nIGNvbnN0cnVjdG9ycyBmb3IgY3VzdG9tIHR5cGVzLiBI
ZXJlIGlzIGFuIGV4YW1wbGUgb2YgY2FzdCBvdmVybG9hZGluZyBiZWluZyB1c2VkIHRvIGNyZWF0
ZSBhIGNvbnN0cnVjdG9yOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewotICAgICAgICBUIHJl
YWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgb3BlcmF0b3I8VD4gQ29tcGxleDxUPihU
IHJlYWwsIFQgaW1hZykKLSAgICB7Ci0gICAgICAgIENvbXBsZXg8VD4gcmVzdWx0OwotICAgICAg
ICByZXN1bHQucmVhbCA9IHJlYWw7Ci0gICAgICAgIHJlc3VsdC5pbWFnID0gaW1hZzsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgQ29tcGxleDxmbG9hdD4gaSA9IENv
bXBsZXg8ZmxvYXQ+KDAsIDEpOwotCi1XU0wgc3VwcG9ydHMgYWNjZXNzb3Igb3ZlcmxvYWRpbmcg
YXMgcGFydCBvZiB0aGUgb3BlcmF0b3Igb3ZlcmxvYWRpbmcgc3ludGF4LiBUaGlzIGdpdmVzIHRo
ZSBwcm9ncmFtbWVyIGJyb2FkIHBvd2Vycy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgRm9v
IHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIGludCB5OwotICAgIH0KLSAgICBpbnQgb3BlcmF0
b3Iuc3VtKEZvbyBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gZm9vLnggKyBmb28ueTsKLSAg
ICB9Ci0KLUl0J3MgcG9zc2libGUgdG8gc2F5IGBmb28uc3VtYCB0byBjYWxsIHRoZSBgb3BlcmF0
b3Iuc3VtYCBmdW5jdGlvbi4gQm90aCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGNhbiBiZSBwcm92aWRl
ZDoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgdmFsdWU7Ci0gICAgfQotICAgIGRv
dWJsZSBvcGVyYXRvci5kb3VibGVWYWx1ZShGb28gdmFsdWUpCi0gICAgewotICAgICAgICByZXR1
cm4gZG91YmxlKHZhbHVlLnZhbHVlKTsKLSAgICB9Ci0gICAgRm9vIG9wZXJhdG9yLmRvdWJsZVZh
bHVlPShGb28gdmFsdWUsIGRvdWJsZSBkb3VibGVWYWx1ZSkKLSAgICB7Ci0gICAgICAgIHZhbHVl
LnZhbHVlID0gaW50KGRvdWJsZVZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHZhbHVlOwotICAgIH0K
LQotUHJvdmlkaW5nIGJvdGggZ2V0dGVyIGFuZCBzZXR0ZXIgb3ZlcmxvYWRzIG1ha2VzIGBkb3Vi
bGVWYWx1ZWAgYmVoYXZlIGFsbW9zdCBhcyBpZiBpdCB3YXMgYSBmaWVsZCBvZiBgRm9vYC4gRm9y
IGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdG8gc2F5OgotCi0gICAgRm9vIGZvbzsKLSAgICBmb28u
dmFsdWUgPSA0MjsKLSAgICBmb28uZG91YmxlVmFsdWUgKj0gMjsgLy8gTm93IGZvby52YWx1ZSBp
cyA4NAotCi1JdCdzIGFsc28gcG9zc2libGUgdG8gcHJvdmlkZSBhbiBhZGRyZXNzLWdldHRpbmcg
b3ZlcmxvYWQgY2FsbGVkIGFuICphbmRlcio6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAg
aW50IHZhbHVlOwotICAgIH0KLSAgICB0aHJlYWQgaW50XiBvcGVyYXRvciYudmFsdWVBbGlhcyh0
aHJlYWQgRm9vXiBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gJmZvby0+dmFsdWU7Ci0gICAg
fQotCi1Qcm92aWRpbmcganVzdCB0aGlzIG92ZXJsb2FkIGZvciBhIHBvaW50ZXIgdHlwZSBpbiBl
dmVyeSBhZGRyZXNzIHNwYWNlIGdpdmVzIHRoZSBzYW1lIHBvd2VyIGFzIG92ZXJsb2FkaW5nIGdl
dHRlcnMgYW5kIHNldHRlcnMuIEFkZGl0aW9uYWxseSwgaXQgbWFrZXMgaXQgcG9zc2libGUgdG8g
YCZmb28udmFsdWVBbGlhc2AuCi0KLVRoZSBzYW1lIG92ZXJsb2FkaW5nIHBvd2VyIGlzIHByb3Zp
ZGVkIGZvciBhcnJheSBhY2Nlc3Nlcy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgVmVjdG9y
PFQ+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBUIHk7Ci0gICAgfQotICAgIHRocmVhZCBUXiBv
cGVyYXRvciZbXSh0aHJlYWQgVF4gcHRyLCB1aW50IGluZGV4KQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGluZGV4ID8gJnB0ci0+eSA6ICZwdHItPng7Ci0gICAgfQotCi1BbHRlcm5hdGl2ZWx5LCBp
dCdzIHBvc3NpYmxlIHRvIG92ZXJsb2FkIGdldHRlcnMgYW5kIHNldHRlcnMgKGBvcGVyYXRvcltd
YCBhbmQgYG9wZXJhdG9yW109YCkuCi0KLSMgTWFwcGluZyBvZiBBUEkgY29uY2VwdHMKLQotV1NM
IGlzIGRlc2lnbmVkIHRvIGJlIHVzZWZ1bCBhcyBib3RoIGEgZ3JhcGhpY3Mgc2hhZGluZyBsYW5n
dWFnZSBhbmQgYXMgYSBjb21wdXRhdGlvbiBsYW5ndWFnZS4gSG93ZXZlciwgdGhlc2UgdHdvIGVu
dmlyb25tZW50cyBoYXZlCi1zbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzLgotCi1XaGVuIHVz
aW5nIFdTTCBhcyBhIGdyYXBoaWNzIHNoYWRpbmcgbGFuZ3VhZ2UsIHRoZXJlIGlzIGEgZGlzdGlu
Y3Rpb24gYmV0d2VlbiAqZW50cnktcG9pbnRzKiBhbmQgKm5vbi1lbnRyeS1wb2ludHMqLiBFbnRy
eSBwb2ludHMgYXJlIHRvcC1sZXZlbCBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBlaXRoZXIgdGhlIGB2
ZXJ0ZXhgIG9yIGBmcmFnbWVudGAga2V5d29yZCBpbiBmcm9udCBvZiB0aGVpciBkZWNsYXJhdGlv
bi4gRW50cnkgcG9pbnRzIG1heSBub3QgYmUgZm9yd2FyZCBkZWNsYXJlZC4gQW4gZW50cnkgcG9p
bnQgYW5ub3RhdGVkIHdpdGggdGhlIGB2ZXJ0ZXhgIGtleXdvcmQgbWF5IG5vdCBiZSB1c2VkIGFz
IGEgZnJhZ21lbnQgc2hhZGVyLCBhbmQgYW4gZW50cnkgcG9pbnQgYW5ub3RhdGVkIHdpdGggdGhl
IGBmcmFnbWVudGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSB2ZXJ0ZXggc2hhZGVyLiBO
byBhcmd1bWVudCBub3IgcmV0dXJuIHZhbHVlIG9mIGFuIGVudHJ5IHBvaW50IG1heSBiZSBhIHBv
aW50ZXIuIEVudHJ5IHBvaW50cyBtdXN0IG5vdCBhY2NlcHQgdHlwZSBhcmd1bWVudHMgKGFsc28g
a25vd24gYXMgImdlbmVyaWNzIikuCi0KLSMjIFZlcnRleCBlbnRyeSBwb2ludHMKLQotV2ViR1BV
J3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgV1NMIHZlcnRleCBzaGFkZXIgaW4gZm91ciB3YXlzOgot
Ci0tIEF0dHJpYnV0ZXMKLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEKLS0gU2FtcGxl
cnMKLQotRWFjaCBvZiB0aGVzZSBBUEkgb2JqZWN0cyBpcyByZWZlcnJlZCB0byBieSBuYW1lIGZy
b20gdGhlIEFQSS4gVmFyaWFibGVzIGluIFdTTCBhcmUgbm90IGFubm90YXRlZCB3aXRoIGV4dHJh
IEFQSS12aXNpYmxlIG5hbWVzIChsaWtlIHRoZXkgYXJlIGluIHNvbWUgb3RoZXIgZ3JhcGhpY3Mg
QVBJcykuCi0KLVZhcmlhYmxlcyBhcmUgcGFzc2VkIHRvIHZlcnRleCBzaGFkZXJzIGFzIGFyZ3Vt
ZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludC4gRWFjaCBidWZmZXIgaXMgcmVwcmVzZW50ZWQg
YXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAodXNpbmcgdGhlIGBb
XWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNlbnRlZCBieSBhcmd1
bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMsIHJlc3BlY3RpdmVs
eS4gQWxsIG90aGVyIG5vbi1idWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2lu
dCBhcmUgaW1wbGllZCB0byBiZSBhdHRyaWJ1dGVzLgotCi1Tb21lIGFyZ3VtZW50cyBhcmUgcmVj
b2duaXplZCBieSB0aGUgY29tcGlsZXIgZnJvbSB0aGVpciBuYW1lIGFuZCB0eXBlLiBUaGVzZSBh
cmd1bWVudHMgcHJvdmlkZSBidWlsdC1pbiBmdW5jdGlvbmFsaXR5IGluaGVyZW50IGluIHRoZSBn
cmFwaGljcyBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIGFuIGFyZ3VtZW50IG9mIHRoZSBmb3JtIGBp
bnQgd3NsX3ZlcnRleElEYCByZWZlcnMgdG8gdGhlIElEIG9mIHRoZSBjdXJyZW50IHZlcnRleCwg
YW5kIGlzIG5vdCByZWNvZ25pemVkIGFzIGFuIGF0dHJpYnV0ZS4gQWxsIG5vbi1idWlsdGluIGFy
Z3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludCBtdXN0IGJlIGFzc29jaWF0ZWQgd2l0aCBh
biBBUEkgb2JqZWN0IHdoZW5ldmVyIGFueSBkcmF3IGNhbGwgdXNpbmcgdGhlIHZlcnRleCBlbnRy
eSBwb2ludCBpcyBpbnZva2VkLiBPdGhlcndpc2UsIHRoZSBkcmF3IGNhbGwgd2lsbCBmYWlsLgot
Ci1UaGUgb25seSB3YXkgdG8gcGFzcyBkYXRhIGJldHdlZW4gc3VjY2Vzc2l2ZSBzaGFkZXIgc3Rh
Z2VzIHdpdGhpbiBhIHNpbmdsZSBkcmF3IGNhbGwgaXMgYnkgcmV0dXJuIHZhbHVlLiBBbiBlbnRy
eSBwb2ludCBtdXN0IGluZGljYXRlIHRoYXQgaXQgcmV0dXJucyBhIGNvbGxlY3Rpb24gb2YgdmFs
dWVzIGNvbnRhaW5lZCB3aXRoaW4gYSBzdHJ1Y3R1cmUuIEV2ZXJ5IHZhcmlhYmxlIGluc2lkZSB0
aGlzIHN0cnVjdHVyZSwgcmVjdXJzaXZlbHksIGlzIHBhc3NlZCB0byB0aGUgbmV4dCBzdGFnZSBp
biB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIE1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgbWF5IGFsc28g
YmUgb3V0cHV0IGJ1aWx0LWluIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIGEgdmVydGV4IGVudHJ5
IHBvaW50IG1heSByZXR1cm4gYSBzdHJ1Y3Qgd2hpY2ggY29udGFpbnMgYSBtZW1iZXIgYGZsb2F0
NCB3c2xfUG9zaXRpb25gLCBhbmQgdGhpcyB2YXJpYWJsZSB3aWxsIHJlcHJlc2VudCB0aGUgcmFz
dGVyaXplZCBwb3NpdGlvbiBvZiB0aGUgdmVydGV4LiBCdWZmZXJzIChhcyBkZXNjcmliZWQgYnkg
V1NMIGFycmF5IHJlZmVyZW5jZXMpLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIG11c3Qgbm90IGJl
IHByZXNlbnQgaW4gdGhpcyByZXR1cm5lZCBzdHJ1Y3QuIEJ1aWx0LWluIHZhcmlhYmxlcyBtdXN0
IG5ldmVyIGFwcGVhciB0d2ljZSBpbnNpZGUgdGhlIHJldHVybmVkIHN0cnVjdHVyZS4KLQotIyMg
RnJhZ21lbnQgZW50cnkgcG9pbnRzCi0KLUZyYWdtZW50IGVudHJ5IHBvaW50cyBtYXkgYWNjZXB0
IG9uZSBhcmd1bWVudCB3aXRoIHRoZSB0eXBlIHRoYXQgdGhlIHByZXZpb3VzIHNoYWRlciBzdGFn
ZSByZXR1cm5lZC4gVGhlIGFyZ3VtZW50IG5hbWUgZm9yIHRoaXMgYXJndW1lbnQgbXVzdCBiZSBg
c3RhZ2VJbmAuIEluIGFkZGl0aW9uIHRvIHRoaXMgYXJndW1lbnQsIGZyYWdtZW50IGVudHJ5IHBv
aW50cyBtYXkgYWNjZXB0IGJ1ZmZlcnMsIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMgYXMgYXJndW1l
bnRzIGluIHRoZSBzYW1lIHdheSB0aGF0IHZlcnRleCBlbnRyeSBwb2ludHMgYWNjZXB0IHRoZW0u
IEZyYWdtZW50IGVudHJ5IHBvaW50cyBhbHNvIG11c3QgcmV0dXJuIGEgc3RydWN0LCBhbmQgYWxs
IG1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgbXVzdCBiZSBidWlsdC1pbiB2YXJpYWJsZXMuIFRoZSBz
ZXQgb2YgcmVjb2duaXplZCBidWlsdC1pbiB2YXJpYWJsZXMgd2hpY2ggbWF5IGJlIGFjY2VwdGVk
IG9yIHJldHVybmVkIGZyb20gYW4gZW50cnkgcG9pbnQgaXMgZGlmZmVyZW50IGJldHdlZW4gYWxs
IHR5cGVzIG9mIGVudHJ5IHBvaW50cy4KLQotRm9yIGV4YW1wbGUsIHRoaXMgd291bGQgYmUgYSB2
YWxpZCBncmFwaGljcyBwcm9ncmFtOgotCi0gICAgc3RydWN0IFZlcnRleElucHV0IHsKLSAgICAg
ICAgZmxvYXQyIHBvc2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAgfQotICAgIAot
ICAgIHN0cnVjdCBWZXJ0ZXhPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX1Bvc2l0aW9uOwot
ICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAgfQotICAgIAotICAgIHN0cnVjdCBGcmFnbWVudE91
dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfQ29sb3I7Ci0gICAgfQotICAgIAotICAgIHZlcnRl
eCBWZXJ0ZXhPdXRwdXQgdmVydGV4U2hhZGVyKFZlcnRleElucHV0IHZlcnRleElucHV0KSB7Ci0g
ICAgICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC53c2xfUG9zaXRpb24g
PSBmbG9hdDQodmVydGV4SW5wdXQucG9zaXRpb24sIDAuLCAxLik7Ci0gICAgICAgIHJlc3VsdC5j
b2xvciA9IHZlcnRleElucHV0LmNvbG9yOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LSAgICAKLSAgICBmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFnbWVudFNoYWRlcihWZXJ0ZXhP
dXRwdXQgc3RhZ2VJbikgewotICAgICAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7Ci0gICAgICAg
IHJlc3VsdC53c2xfQ29sb3IgPSBmbG9hdDQoc3RhZ2VJbi5jb2xvciwgMS4pOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLQotIyMgQ29tcHV0ZSBlbnRyeSBwb2ludHMKLQotV2ViR1BV
J3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgY29tcHV0ZSBzaGFkZXIgaW4gdGhyZWUgd2F5czoKLQot
LSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwotCi1Db21wdXRlIGVu
dHJ5IHBvaW50cyBzdGFydCB3aXRoIHRoZSBrZXl3b3JkIGBjb21wdXRlYC4gVGhlIHJldHVybiB0
eXBlIGZvciBhIGNvbXB1dGUgZW50cnkgcG9pbnQgbXVzdCBiZSBgdm9pZGAuIEVhY2ggYnVmZmVy
IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVmZXJlbmNlIHR5
cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVycyBhcmUgcmVw
cmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNhbXBsZXJgIHR5
cGVzLCByZXNwZWN0aXZlbHkuIENvbXB1dGUgZW50cnkgcG9pbnRzIG1heSBhbHNvIGFjY2VwdCBi
dWlsdC1pbiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiBBcmd1bWVudHMgb2YgYW55IG90aGVyIHR5
cGUgYXJlIGRpc2FsbG93ZWQuIEFyZ3VtZW50cyBtYXkgbm90IHVzZSB0aGUgYHRocmVhZGdyb3Vw
YCBtZW1vcnkgc3BhY2UuCi0KLSMgRXJyb3IgaGFuZGxpbmcKLQotRXJyb3JzIG1heSBvY2N1ciBk
dXJpbmcgc2hhZGVyIHByb2Nlc3NpbmcuIEZvciBleGFtcGxlLCB0aGUgc2hhZGVyIG1heSBhdHRl
bXB0IHRvIGRlcmVmZXJlbmNlIGEgYG51bGxgIGFycmF5IHJlZmVyZW5jZS4gSWYgdGhpcyBvY2N1
cnMsIHRoZSBzaGFkZXIgc3RhZ2UgaW1tZWRpYXRlbHkgY29tcGxldGVzIHN1Y2Nlc3NmdWxseS4g
VGhlIGVudHJ5IHBvaW50IGltbWVkaWF0ZWx5IHJldHVybnMgYSBzdHJ1Y3Qgd2l0aCBhbGwgZmll
bGRzIHNldCB0byAwLiBBZnRlciB0aGlzIGV2ZW50LCBzdWJzZXF1ZW50IHNoYWRlciBzdGFnZXMg
d2lsbCBwcm9jZWVkIGFzIGlmIHRoZXJlIHdhcyBubyBwcm9ibGVtLgotCi1CdWZmZXIgYW5kIHRl
eHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBiZWZvcmUgdGhlIGVycm9yIGFsbCBjb21wbGV0ZSwgYW5k
IGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIGlmIG5vIGVycm9yIGhhZCBvY2N1cnJlZC4gQnVm
ZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYWZ0ZXIgdGhlIGVycm9yIGRvIG5vdCBv
Y2N1ci4KLQotIyBTdW1tYXJ5Ci0KLVdTTCBpcyBhIHR5cGUtc2FmZSBsYW5ndWFnZSBiYXNlZCBv
biBDIHN5bnRheC4gSXQgZWxpbWluYXRlcyBzb21lIEMgZmVhdHVyZXMsIGxpa2UgdW5pb25zIGFu
ZCBwb2ludGVyIGNhc3RzLCBidXQgYWRkcyBvdGhlciBtb2Rlcm4gZmVhdHVyZXMgaW4gdGhlaXIg
cGxhY2UsIGxpa2UgZ2VuZXJpY3MgYW5kIG92ZXJsb2FkaW5nLgotCi0jIEFkZGl0aW9uYWwgTGlt
aXRhdGlvbnMKLQotVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxpbWl0YXRpb25zIG1heSBiZSBw
bGFjZWQgb24gYSBXU0wgcHJvZ3JhbToKLQotLSBgZGV2aWNlYCwgYGNvbnN0YW50YCwgYW5kIGB0
aHJlYWRncm91cGAgcG9pbnRlcnMgY2Fubm90IHBvaW50IHRvIGRhdGEgdGhhdCBtYXkgaGF2ZSBw
b2ludGVycyBpbiBpdC4gVGhpcyBzYWZldHkgY2hlY2sgaXMgbm90IGRvbmUgYXMgcGFydCBvZiB0
aGUgbm9ybWFsIHR5cGUgc3lzdGVtIGNoZWNrcy4gSXQncyBwZXJmb3JtZWQgb25seSBhZnRlciBp
bnN0YW50aWF0aW9uLgotLSBQb2ludGVycyBhbmQgYXJyYXkgcmVmZXJlbmNlcyAoY29sbGVjdGl2
ZWx5LCAqcmVmZXJlbmNlcyopIG1heSBiZSByZXN0cmljdGVkIHRvIHN1cHBvcnQgY29tcGlsaW5n
IHRvIFNQSVItViAqbG9naWNhbCBtb2RlKi4gSW4gdGhpcyBtb2RlLCBhcnJheXMgbXVzdCBub3Qg
dHJhbnNpdGl2ZWx5IGhvbGQgcmVmZXJlbmNlcy4gUmVmZXJlbmNlcyBtdXN0IGJlIGluaXRpYWxp
emVkIHVwb24gZGVjbGFyYXRpb24gYW5kIG5ldmVyIHJlYXNzaWduZWQuIEZ1bmN0aW9ucyB0aGF0
IHJldHVybiByZWZlcmVuY2VzIG11c3QgaGF2ZSBvbmUgcmV0dXJuIHBvaW50LiBUZXJuYXJ5IGV4
cHJlc3Npb25zIG1heSBub3QgcmV0dXJuIHJlZmVyZW5jZXMuCi0tIEdyYXBoaWNzIGVudHJ5IHBv
aW50cyBtdXN0IHRyYW5zaXRpdmVseSBuZXZlciByZWZlciB0byB0aGUgYHRocmVhZGdyb3VwYCBt
ZW1vcnkgc3BhY2UuCi0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvV3JhcENoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hl
Y2tlci5qcwppbmRleCA0Y2FkYzdkMGQ5ZTZhNmRmZGE1NTVkYWI4OWQwMjcxNzcwZGJkOWE3Li5j
ZjZlOWZiMTllZjc1ZTc4OTBjZDU1YTllOWFiZmZjMThiNWM3M2M4IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcwpAQCAtNTIsMTEgKzUyLDYgQEAgY2xh
c3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJGb3VuZCB1bndyYXBwZWQgIiArIG5vZGUuY29uc3RydWN0b3IubmFtZSArICIgYXQgIiArIG9y
aWdpblN0cmluZyhub2RlKSArICI6ICIgKyBub2RlICsgIlxuV2hpbGUgdmlzaXRpbmcgIiArIHRo
aXMuX3N0YXJ0Tm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2luU3RyaW5nKHRo
aXMuX3N0YXJ0Tm9kZS5vcmlnaW4pICsgIjogIiArIHRoaXMuX3N0YXJ0Tm9kZSk7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAg
ICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVu
Y1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9k
ZSk7CkBAIC03NywxMSArNzIsNiBAQCBjbGFzcyBXcmFwQ2hlY2tlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9CiAgICAgCi0gICAg
dmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvdW5kVW53cmFw
cGVkKG5vZGUpOwotICAgIH0KLSAgICAKICAgICAvLyBOT1RFOiBUaGlzIGRvZXMgbm90IGtub3cg
aG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBpcyBuZXZlciBj
YWxsZWQgb24gaW5zdGFudGlhdGVkCiAgICAgLy8gY29kZS4gT25jZSBjb2RlIGlzIGluc3RhbnRp
YXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgogICAgIApkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5kZXggODA5NGIxOTM3ODFiNGFhOWIwYzM5
MDllOWE5MWQyODE1ZjJiMmFiYS4uNWFmMGY0ZmFkN2NhMTk0ZTNmZDcwMTE4ZGQ5ZDZkZTUxZjZl
YmJkYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRt
bAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCkBAIC0zNiw3
ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnN0
ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3RleHByVHlwZVBhcmFt
ZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNTUsNyArNTQsNiBA
QAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcxLDYgQEAKIDxzY3Jp
cHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5s
aW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAg
LTEwMywxMCArMTAwLDYgQEAKIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQ
cm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRGVjbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlB0
clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Np
b24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2Ny
aXB0PgpAQCAtMTMxLDEwICsxMjQsNyBAQAogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVQ
YXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJU
eXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTM0
NCw3ICszMzQsNyBAQCBmdW5jdGlvbiBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZyb21Db21waWxh
dGlvbiA9IGZhbHNlKSB7CiAgICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWlsYWJsZVZlcnRl
eFNoYWRlcnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAgIGN1cnJlbnRG
cmFnbWVudFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVudFNoYWRlclNl
bGVjdC5zZWxlY3RlZEluZGV4XTsKIAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIgPSBwcm9ncmFt
LmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIsIFtdKTsKKyAg
ICBpbmxpbmVkVmVydGV4U2hhZGVyID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAgICBfaW5saW5l
RnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGN1
cnJlbnRWZXJ0ZXhTaGFkZXIpKTsKIAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBbXTsKQEAgLTQy
Niw3ICs0MTYsNyBAQCBmdW5jdGlvbiBydW5TaGFkZXJzKCkgewogICAgICAgICBmdW5jLnBhcmFt
ZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFyZ3VtZW50RVB0
cnNbaV0uc2l6ZSk7CiAgICAgbGV0IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3JhbSkucnVu
RnVuYyhmdW5jKTsKIAotICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUoY3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7CisgICAgaW5s
aW5lZEZyYWdtZW50U2hhZGVyID0gY3VycmVudEZyYWdtZW50U2hhZGVyOwogICAgIF9pbmxpbmVG
dW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChj
dXJyZW50RnJhZ21lbnRTaGFkZXIpKTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdtZW50U2hhZGVy
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346839</attachid>
            <date>2018-08-09 10:13:38 -0700</date>
            <delta_ts>2018-08-09 14:40:59 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180809101337.patch</filename>
            <type>text/plain</type>
            <size>335367</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzE5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjJjM2NjNWU2MGY3YTI5OTg0MTVkZGUyM2FkYTllN2Iy
ZTQ0ODQ4MS4uMzQwNzlkOTliNDUzNjZhOWE4OTRhNzAzNTZmOGYyNDQ3NjI0MTc2YSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmZXJlbmNlIGluIFdlYkJhY2tGb3J3YXJkTGlzdDo6
cmVzdG9yZUZyb21TdGF0ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCmluZGV4IDE1
ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2NTguLjZhZDM5MWE5NGQ5MGQxOTBk
ZGEzODllMDU2MGEwMzMzNzU5Y2FkMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwu
anMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5qcyIpOwogbG9hZCgiQ2xvbmVQcm9n
cmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIkNvbnN0ZXhwckZv
bGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyIpOwogbG9hZCgiQ29u
dGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyIpOwog
bG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBAIC03Nyw3ICs3Niw2IEBAIGxvYWQo
IkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVybmFsT3JpZ2luLmpzIik7CiBsb2Fk
KCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVzLmpzIik7Ci1sb2FkKCJGbGF0dGVu
UHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJl
ci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBsb2FkKCJGbG9hdExpdGVyYWxUeXBl
LmpzIik7CkBAIC05NSw3ICs5Myw2IEBAIGxvYWQoIkluZGV4RXhwcmVzc2lvbi5qcyIpOwogbG9h
ZCgiSW5mZXJUeXBlc0ZvckNhbGwuanMiKTsKIGxvYWQoIklubGluZS5qcyIpOwogbG9hZCgiSW5s
aW5lci5qcyIpOwotbG9hZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIik7CiBsb2FkKCJJbnRM
aXRlcmFsLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiSW50cmluc2lj
cy5qcyIpOwpAQCAtMTEyLDkgKzEwOSw3IEBAIGxvYWQoIk5hbWVDb250ZXh0LmpzIik7CiBsb2Fk
KCJOYW1lRmluZGVyLmpzIik7CiBsb2FkKCJOYW1lUmVzb2x2ZXIuanMiKTsKIGxvYWQoIk5hdGl2
ZUZ1bmMuanMiKTsKLWxvYWQoIk5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyIpOwogbG9hZCgiTmF0aXZl
VHlwZS5qcyIpOwotbG9hZCgiTmF0aXZlVHlwZUluc3RhbmNlLmpzIik7CiBsb2FkKCJOb3JtYWxV
c2VQcm9wZXJ0eVJlc29sdmVyLmpzIik7CiBsb2FkKCJOdWxsTGl0ZXJhbC5qcyIpOwogbG9hZCgi
TnVsbFR5cGUuanMiKTsKQEAgLTEyNSwxMCArMTIwLDYgQEAgbG9hZCgiUHJlcGFyZS5qcyIpOwog
bG9hZCgiUHJvZ3JhbS5qcyIpOwogbG9hZCgiUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1Jl
bW92ZWQuanMiKTsKIGxvYWQoIlByb3BlcnR5UmVzb2x2ZXIuanMiKTsKLWxvYWQoIlByb3RvY29s
LmpzIik7Ci1sb2FkKCJQcm90b2NvbERlY2wuanMiKTsKLWxvYWQoIlByb3RvY29sRnVuY0RlY2wu
anMiKTsKLWxvYWQoIlByb3RvY29sUmVmLmpzIik7CiBsb2FkKCJQdHJUeXBlLmpzIik7CiBsb2Fk
KCJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJSZWN1cnNpb25DaGVja2Vy
LmpzIik7CkBAIC0xNTMsMTAgKzE0NCw3IEBAIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxv
YWQoIlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwogbG9hZCgiVHlw
ZU9yVmFyaWFibGVSZWYuanMiKTsKLWxvYWQoIlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyIpOwog
bG9hZCgiVHlwZVJlZi5qcyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlLmpzIik7Ci1sb2FkKCJUeXBl
VmFyaWFibGVUcmFja2VyLmpzIik7CiBsb2FkKCJUeXBlZFZhbHVlLmpzIik7CiBsb2FkKCJVaW50
TGl0ZXJhbC5qcyIpOwogbG9hZCgiVWludExpdGVyYWxUeXBlLmpzIik7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCmluZGV4IDgwYWU3ZDkyYTRmYTYyNjY2
ZGIyYTJmZjUyMjBkMTQ5YTdmMzhlOWMuLjIxNmE3ZTJlMzNkZTk5MWIwNmFiNjM2ZGI1Y2ZjYWI0
MDVkOGVlMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9X
cmFwcGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVy
LmpzCkBAIC0zNSwxMSArMzUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVy
IHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHBy
VHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndy
YXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAg
IHsKICAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7CkBAIC02MCwxMSArNTUs
NiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0dXJu
IFR5cGVSZWYud3JhcChub2RlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUo
bm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0gICAgfQot
ICAgIAogICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
bGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJl
c3Npb24uanMKaW5kZXggYjVhZTBmZTQ5ZmNlZGM4ZmE3NmE2Njc5M2NmZTBjYjFmMDhiNDU3MS4u
ZjA2NmFjMzIwYTlkY2U0MjFkNGY4ZWZkMzYzMzNhMjRlYTc2MmZiZSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKQEAgLTI1LDExICsyNSwx
MCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJl
c3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRMaXN0KQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRMaXN0KQog
ICAgIHsKICAgICAgICAgc3VwZXIob3JpZ2luKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7
Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAgICAgICB0
aGlzLl9hcmd1bWVudExpc3QgPSBhcmd1bWVudExpc3Q7CiAgICAgICAgIHRoaXMuZnVuYyA9IG51
bGw7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGZhbHNlOwpAQCAtMzcsNzEgKzM2LDQxIEBAIGNs
YXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgfQogICAgIAogICAg
IGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRz
KCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBhcmd1bWVudExpc3Qo
KSB7IHJldHVybiB0aGlzLl9hcmd1bWVudExpc3Q7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1
cm4gdGhpcy5faXNDYXN0OyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9y
ZXR1cm5UeXBlOyB9CiAgICAgCi0gICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJsZU92
ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1
bWVudExpc3QsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCisgICAgc3RhdGljIHJlc29sdmUo
b3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgbmFtZSwgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJl
c3Npb24ob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAg
ICBsZXQgY2FsbCA9IG5ldyBDYWxsRXhwcmVzc2lvbihvcmlnaW4sIG5hbWUsIGFyZ3VtZW50TGlz
dCk7CiAgICAgICAgIGNhbGwuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXMubWFwKGFyZ3Vt
ZW50ID0+IGFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7CiAgICAgICAgIGNhbGwu
cG9zc2libGVPdmVybG9hZHMgPSBwb3NzaWJsZU92ZXJsb2FkczsKICAgICAgICAgaWYgKHJldHVy
blR5cGUpCiAgICAgICAgICAgICBjYWxsLnNldENhc3REYXRhKHJldHVyblR5cGUpOwotICAgICAg
ICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJsZU92ZXJsb2Fk
cywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCB0eXBlQXJndW1lbnRzKX07CisgICAgICAgIHJldHVy
biB7Y2FsbCwgcmVzdWx0VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKX07CiAg
ICAgfQogICAgIAotICAgIHJlc29sdmUocG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJz
SW5TY29wZSwgdHlwZUFyZ3VtZW50cykKKyAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKQog
ICAgIHsKICAgICAgICAgaWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBh
bnkgZnVuY3Rpb25zIG5hbWVkICIgKyB0aGlzLm5hbWUpOwogICAgICAgICAKLSAgICAgICAgbGV0
IG92ZXJsb2FkID0gbnVsbDsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0gICAgICAgIGZv
ciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJblNjb3BlKSB7Ci0gICAgICAg
ICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlKSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFtZXRlci5wcm90
b2NvbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxldCBzaWduYXR1
cmVzID0KLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnByb3RvY29sLnByb3RvY29sRGVj
bC5zaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlzLm5hbWUsIHR5cGVQYXJhbWV0
ZXIpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVy
ZXMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5
cGUpOwotICAgICAgICAgICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCisgICAgICAg
ICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5
cGUpOworICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAgICAgICAgICAgIGZhaWx1cmVz
LnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSBudWxs
OwotICAgICAgICB9Ci0gICAgICAgIGlmICghb3ZlcmxvYWQpIHsKLSAgICAgICAgICAgIG92ZXJs
b2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBwb3NzaWJsZU92ZXJs
b2FkcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJu
VHlwZSk7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKLSAgICAgICAgICAgICAg
ICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAgICAgICBs
ZXQgbWVzc2FnZSA9ICJEaWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSAr
ICIgZm9yIGNhbGwgd2l0aCAiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVu
dHMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJ0eXBlIGFyZ3VtZW50
cyA8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IGFuZCAiOwotICAgICAgICAgICAgICAgIG1l
c3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOwot
ICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCi0gICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5UeXBlOwotICAgICAg
ICAgICAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywg
bWVzc2FnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgdHlw
ZUFyZ3VtZW50VHlwZSA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAgICBsZXQgdHlwZVBh
cmFtZXRlciA9IG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAgICAgICAgICBp
ZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgQ29uc3RleHByVHlwZVBhcmFtZXRlcikpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5cGVQYXJhbWV0ZXIu
dHlwZS5lcXVhbHNXaXRoQ29tbWl0KHR5cGVBcmd1bWVudFR5cGUpKQotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmluZyArICIgY29u
c3RleHByIHR5cGUgYXJndW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1YWw6IGFyZ3Vt
ZW50ID0gIiArIHR5cGVBcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgdHlwZVBhcmFt
ZXRlci50eXBlKTsKKyAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5j
dGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CisgICAgICAgICAg
ICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBlcyArICIp
IjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCisgICAgICAgICAgICAgICAgbWVz
c2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7CisgICAgICAgICAg
ICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0
IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQorICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsKICAgICAg
ICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJndW1lbnRUeXBlcy5sZW5n
dGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRU
eXBlc1tpXTsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5w
YXJhbWV0ZXJzW2ldLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAg
ICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250
ZXh0KTsKKyAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5wYXJh
bWV0ZXJzW2ldLnR5cGU7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXJndW1lbnRUeXBlLmVx
dWFsc1dpdGhDb21taXQocGFyYW1ldGVyVHlwZSk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdCkK
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmln
aW5TdHJpbmcgKyAiIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMgbm90IGVxdWFsIGFmdGVy
IHR5cGUgYXJndW1lbnQgc3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9ICIgKyBhcmd1bWVudFR5cGUg
KyAiLCBwYXJhbWV0ZXIgPSAiICsgcGFyYW1ldGVyVHlwZSk7CkBAIC0xMTIsMTAgKzgxLDcgQEAg
Y2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICByZXNvbHZlVG9P
dmVybG9hZChvdmVybG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9IG92ZXJsb2FkLmZ1
bmM7Ci0gICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2FkLnR5cGVBcmd1
bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBlID8g
dHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1bWVudCk7Ci0g
ICAgICAgIHRoaXMuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IHRoaXMuYWN0dWFs
VHlwZUFyZ3VtZW50czsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG92ZXJsb2FkLmZ1bmMucmV0dXJu
VHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMu
dHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgIGxl
dCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgIGlmICghcmVzdWx0
KQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJldHVybiB0eXBlIik7CiAgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CkBAIC0xMjUsMTEg
KzkxLDEwIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAg
CiAgICAgYmVjb21lQ2FzdChyZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmV0dXJu
VHlwZSA9IG5ldyBUeXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHRoaXMuX3R5cGVBcmd1
bWVudHMpOworICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhpcy5vcmln
aW4sIHRoaXMubmFtZSk7CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUudHlwZSA9IHJldHVyblR5
cGU7CiAgICAgICAgIHRoaXMuX25hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAgIHRoaXMu
X2lzQ2FzdCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBbXTsKICAgICB9
CiAgICAgCiAgICAgc2V0Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAgLTE0MSw4ICsxMDYsNiBAQCBj
bGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHRvU3RyaW5nKCkK
ICAgICB7CiAgICAgICAgIHJldHVybiAodGhpcy5pc0Nhc3QgPyAib3BlcmF0b3IgIiArIHRoaXMu
cmV0dXJuVHlwZSA6IHRoaXMubmFtZSkgKwotICAgICAgICAgICAgIjwiICsgdGhpcy50eXBlQXJn
dW1lbnRzICsgIj4iICsKLSAgICAgICAgICAgICh0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPyAi
PDwiICsgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6ICIiKSArCiAgICAgICAgICAg
ICAiKCIgKyB0aGlzLmFyZ3VtZW50TGlzdCArICIpIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKaW5kZXggZjBmMDM5ZjU0NjJkMDc4
MWQ4MmIzNDY0Yzg3NDc4NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVkODFkODM5NDU2Y2RlNGM0NTk3
NzBiY2MzMzBmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2Fs
bEZ1bmN0aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5j
dGlvbi5qcwpAQCAtMjUsMTcgKzI1LDE3IEBACiAidXNlIHN0cmljdCI7CiAKIC8vIFRoaXMgYWxs
b3dzIHlvdSB0byBwYXNzIHN0cnVjdHMgYW5kIGFycmF5cyBpbi1wbGFjZSwgYnV0IGl0J3MgYSBt
b3JlIGFubm95aW5nIEFQSS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0
eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpCitmdW5jdGlvbiBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgbmFtZSwgYXJndW1lbnRMaXN0KQogewogICAgIGxldCBhcmd1bWVudFR5cGVzID0gYXJndW1l
bnRMaXN0Lm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC50eXBlKTsKLSAgICBsZXQgZnVuY09yRmFp
bHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVu
dHMsIGFyZ3VtZW50VHlwZXMsIHRydWUpOworICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9IHJlc29s
dmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgdHJ1ZSk7CiAg
ICAgaWYgKCEoZnVuY09yRmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5jKSkgewogICAgICAgICBsZXQg
ZmFpbHVyZXMgPSBmdW5jT3JGYWlsdXJlczsKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
IjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUg
KyAiPCIgKyB0eXBlQXJndW1lbnRzICsgIj4oIiArIGFyZ3VtZW50TGlzdCArICIpIiArIChmYWls
dXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsK
KyAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCBy
ZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiKCIgKyBhcmd1bWVudExpc3QgKyAiKSIg
KyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKSA6
ICIiKSk7CiAgICAgfQogICAgIGxldCBmdW5jID0gZnVuY09yRmFpbHVyZXM7CiAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgbGV0
IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5cGU7CisgICAgICAgIGxldCB0
eXBlID0gYXJndW1lbnRUeXBlc1tpXTsKICAgICAgICAgdHlwZS52aXNpdChuZXcgU3RydWN0TGF5
b3V0QnVpbGRlcigpKTsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20o
YXJndW1lbnRMaXN0W2ldLmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4MzZjMTU0ODZmZDI1ODBjNThl
OTYwNmNhZDU5NmVjYi4uNWRjYTQ2MGZiOTZjMTQ4MzljYjg5ZjA1ZjE3MzRkNDM5Y2U5NWI1YiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC00Myw4ICs0Myw2
IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIGZv
ciAobGV0IHR5cGUgb2Ygbm9kZS50eXBlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGRvU3RhdGVt
ZW50KHR5cGUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLnByb3RvY29scy52
YWx1ZXMoKSkKLSAgICAgICAgICAgIGRvU3RhdGVtZW50KHByb3RvY29sKTsKICAgICAgICAgZm9y
IChsZXQgZnVuY3Mgb2Ygbm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGZv
ciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAgICB0aGlzLnZpc2l0RnVuYyhm
dW5jKTsKQEAgLTU5LDggKzU3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3Igewog
ICAgIF9jaGVja1NoYWRlclR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBSZWxh
eCB0aGVzZSBjaGVja3Mgb25jZSB3ZSBoYXZlIGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIHRleHR1
cmVzIGFuZCBzYW1wbGVycy4KLSAgICAgICAgaWYgKG5vZGUudHlwZVBhcmFtZXRlcnMubGVuZ3Ro
ICE9IDApCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJFbnRyeSBwb2ludCAiICsgbm9kZS5uYW1lICsgIiBtdXN0IG5vdCBoYXZlIHR5
cGUgYXJndW1lbnRzLiIpOwogICAgICAgICBsZXQgc2hhZGVyRnVuYyA9IG5vZGU7CiAgICAgICAg
IHN3aXRjaCAobm9kZS5zaGFkZXJUeXBlKSB7CiAgICAgICAgIGNhc2UgInZlcnRleCI6CkBAIC04
NCwxNSArODAsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlm
ICghZnVuYy5uYW1lLnN0YXJ0c1dpdGgoIm9wZXJhdG9yIikpCiAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCBvcGVyYXRvciBvdmVybG9hZCBuYW1lOiAiICsgZnVuYy5uYW1lKTsKICAg
ICAgICAgCi0gICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5cGVWYXJpYWJs
ZVRyYWNrZXIoKTsKLSAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBmdW5jLnBhcmFt
ZXRlclR5cGVzKQotICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFyaWFibGVU
cmFja2VyKTsKLSAgICAgICAgTm9kZS52aXNpdChmdW5jLnJldHVyblR5cGVGb3JPdmVybG9hZFJl
c29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFy
YW1ldGVyIG9mIGZ1bmMudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIGlmICghdHlwZVZh
cmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5
cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsgIiB0byBvcGVyYXRvciAiICsgZnVuYy50
b0RlY2xTdHJpbmcoKSArICIgaXMgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJz
Iik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGxldCBjaGVja0dldHRlciA9IChraW5k
KSA9PiB7CiAgICAgICAgICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzID0ga2luZCA9PSAi
aW5kZXgiID8gMiA6IDE7CiAgICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCAh
PSBudW1FeHBlY3RlZFBhcmFtZXRlcnMpCkBAIC0xMTUsMTEgKzEwMiwxMCBAQCBjbGFzcyBDaGVj
a2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICBpZiAoIWdldHRlckZ1bmNzKQogICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmlu
ZywgIkV2ZXJ5IHNldHRlciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIsIGJ1dCBkaWQgbm90
IGZpbmQgYW55IGZ1bmN0aW9uIG5hbWVkICIgKyBnZXR0ZXJOYW1lICsgIiB0byBtYXRjaCAiICsg
ZnVuYy5uYW1lKTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gZnVuYy5wYXJhbWV0
ZXJUeXBlcy5zbGljZSgwLCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgLSAxKTsKLSAgICAgICAgICAg
IGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIFtdLCBhcmd1
bWVudFR5cGVzLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVy
bG9hZEltcGwoZ2V0dGVyRnVuY3MsIGFyZ3VtZW50VHlwZXMsIG51bGwpOwogICAgICAgICAgICAg
aWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAi
ICsgZnVuYy5uYW1lICsgIiB3aXRoIGFyZ3VtZW50cyAiICsgYXJndW1lbnRUeXBlcyArIChvdmVy
bG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBvdmVybG9hZC5mYWlsdXJlcy5q
b2luKCJcbiIpIDogIiIpKTsKLSAgICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3ZlcmxvYWQu
ZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAg
IG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4
dCk7CisgICAgICAgICAgICBsZXQgcmVzdWx0VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlw
ZTsKICAgICAgICAgICAgIGlmICghcmVzdWx0VHlwZS5lcXVhbHModmFsdWVUeXBlKSkKICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJTZXR0ZXIgYW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUgKGdldHRlciBhdCAi
ICsgb3ZlcmxvYWQuZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBzYXlzICIgKyByZXN1bHRU
eXBlICsgIiB3aGlsZSB0aGlzIHNldHRlciBzYXlzICIgKyB2YWx1ZVR5cGUgKyAiKSIpOwogICAg
ICAgICB9OwpAQCAtMjExLDIzICsxOTcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgewogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAg
IHsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykgewotICAg
ICAgICAgICAgbGV0IHR5cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcgVHlwZVZhcmlhYmxlVHJhY2tl
cigpOwotICAgICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBzaWduYXR1cmUucGFy
YW1ldGVyVHlwZXMpCi0gICAgICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFy
aWFibGVUcmFja2VyKTsKLSAgICAgICAgICAgIE5vZGUudmlzaXQoc2lnbmF0dXJlLnJldHVyblR5
cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAg
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBzaWduYXR1cmUudHlwZVBhcmFtZXRlcnMpIHsK
LSAgICAgICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFy
YW1ldGVyKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgV1R5cGVFcnJvcih0eXBlUGFyYW1l
dGVyLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciB0byBwcm90b2NvbCBzaWdu
YXR1cmUgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyhub2RlLnR5
cGVWYXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Ioc2lnbmF0
dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKCIgKyBu
b2RlLm5hbWUgKyAiKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZTogIiArIHNpZ25hdHVyZSk7
Ci0gICAgICAgICAgICB0aGlzLl9jaGVja09wZXJhdG9yT3ZlcmxvYWQoc2lnbmF0dXJlLCBuYW1l
ID0+IG5vZGUuc2lnbmF0dXJlc0J5TmFtZShuYW1lKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
CiAgICAgdmlzaXRFbnVtVHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5iYXNlVHlwZS52
aXNpdCh0aGlzKTsKQEAgLTI3OCwyOSArMjQ3LDEyIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkVudW0gZG9lcyBub3QgaGF2ZSBhIG1lbWJlciB3aXRoIHRoZSB2YWx1ZSB6
ZXJvIik7CiAgICAgfQogICAgIAotICAgIF9jaGVja1R5cGVBcmd1bWVudHMob3JpZ2luLCB0eXBl
UGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDwgdHlwZVBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBhcmd1
bWVudElzVHlwZSA9IHR5cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAg
ICBpZiAoYXJndW1lbnRJc1R5cGUpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlw
ZUFyZ3VtZW50c1tpXS5pbmhlcml0cyh0eXBlUGFyYW1ldGVyc1tpXS5wcm90b2NvbCk7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBhcmd1bWVudCBkb2Vz
IG5vdCBpbmhlcml0IHByb3RvY29sOiAiICsgcmVzdWx0LnJlYXNvbik7Ci0gICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFsc1dpdGhDb21taXQodHlw
ZVBhcmFtZXRlcnNbaV0udHlwZSkpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyB0eXBlIGZvciBjb25zdGV4cHIiKTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKICAgICB7CiAgICAgICAgIGlmICghbm9kZS50eXBlKQogICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJUeXBlIHJlZmVyZW5jZSB3aXRob3V0IGEgdHlwZSBpbiBjaGVja2VyOiAiICsg
bm9kZSArICIgYXQgIiArIG5vZGUub3JpZ2luKTsKICAgICAgICAgaWYgKCEobm9kZS50eXBlIGlu
c3RhbmNlb2YgU3RydWN0VHlwZSkpCiAgICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7
Ci0gICAgICAgIHRoaXMuX2NoZWNrVHlwZUFyZ3VtZW50cyhub2RlLm9yaWdpbiwgbm9kZS50eXBl
LnR5cGVQYXJhbWV0ZXJzLCBub2RlLnR5cGVBcmd1bWVudHMpOwogICAgIH0KICAgICAKICAgICB2
aXNpdEFycmF5VHlwZShub2RlKQpAQCAtNDI2LDggKzM3OCw4IEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBsZXQg
cmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9y
aWdpbiwgbm9kZS5wb3NzaWJsZUdldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50
eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmdldEZ1bmNOYW1lLCBbXSwgW25v
ZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVs
bCk7CisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9h
ZHMsCisgICAgICAgICAgICAgICAgbm9kZS5nZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0
cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CiAgICAgICAgICAg
ICBub2RlLmNhbGxGb3JHZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIG5vZGUucmVzdWx0
VHlwZUZvckdldCA9IHJlc3VsdC5yZXN1bHRUeXBlOwogICAgICAgICB9IGNhdGNoIChlKSB7CkBA
IC00NDAsOCArMzkyLDggQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAg
ICAgICAgbGV0IGJhc2VGb3JBbmQgPSBiYXNlVHlwZS5hcmd1bWVudEZvckFuZE92ZXJsb2FkKG5v
ZGUub3JpZ2luLCBub2RlLmJhc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBsZXQgcmVz
dWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdp
biwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBl
UGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbXSwgW2Jhc2VG
b3JBbmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKKyAg
ICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywKKyAg
ICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbYmFzZUZvckFuZCwgLi4uZXh0cmFBcmdz
XSwgW3R5cGVGb3JBbmQsIC4uLmV4dHJhQXJnVHlwZXNdLAogICAgICAgICAgICAgICAgIG51bGwp
OwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yQW5kID0gcmVzdWx0LmNhbGw7CiAgICAgICAgICAg
ICBub2RlLnJlc3VsdFR5cGVGb3JBbmQgPSByZXN1bHQucmVzdWx0VHlwZS51bmlmeU5vZGUucmV0
dXJuVHlwZUZyb21BbmRPdmVybG9hZChub2RlLm9yaWdpbik7CkBAIC00NjUsOSArNDE3LDkgQEAg
Y2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVzdWx0IHR5cGUgcmVzb2x2ZWQg
YnktdmFsdWUgKCIgKyBub2RlLnJlc3VsdFR5cGVGb3JHZXQgKyAiKSBkb2VzIG5vdCBtYXRjaCBy
ZXN1bHQgdHlwZSByZXNvbHZlZCBieS1wb2ludGVyICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yQW5k
ICsgIikiKTsKICAgICAgICAgCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0
ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwg
bm9kZS5wb3NzaWJsZVNldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFy
YW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLnNldEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFz
ZSwgLi4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2Rl
LnJlc3VsdFR5cGVdLCBudWxsKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9u
LnJlc29sdmUoCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRP
dmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwg
Li4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2RlLnJl
c3VsdFR5cGVdLCBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvclNldCA9IHJlc3VsdC5j
YWxsOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0VHlwZS5lcXVhbHMoYmFzZVR5cGUp
KQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIlJlc3VsdCB0eXBlIG9mIHNldHRlciAiICsgcmVzdWx0LmNhbGwuZnVuYyArICIg
aXMgbm90IHRoZSBiYXNlIHR5cGUgIiArIGJhc2VUeXBlKTsKQEAgLTY3NSw3ICs2MjcsNiBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRDYWxsRXhwcmVz
c2lvbihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudHMgPSBub2RlLnR5cGVB
cmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpOwog
ICAgICAgICBsZXQgYXJndW1lbnRUeXBlcyA9IG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVu
dCA9PiB7CiAgICAgICAgICAgICBsZXQgbmV3QXJndW1lbnQgPSBhcmd1bWVudC52aXNpdCh0aGlz
KTsKICAgICAgICAgICAgIGlmICghbmV3QXJndW1lbnQpCkBAIC02ODcsNyArNjM4LDcgQEAgY2xh
c3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBpZiAobm9kZS5yZXR1cm5UeXBl
KQogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpOwogCi0gICAgICAgIGxl
dCByZXN1bHQgPSBub2RlLnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5fY3Vy
cmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxl
dCByZXN1bHQgPSBub2RlLnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2Fkcyk7CiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUzYzE4MjZlZDU1ZjNmZTU2ZjdlMGVkMmEwM2RmZGEwMjhkYTViMzkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQ29uc3RleHByVHlwZVBhcmFtZXRlciBleHRl
bmRzIFZhbHVlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCi0gICAgewot
ICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAg
IHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBu
YW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZTsgfQotICAgIGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBn
ZXQgaXNVbmlmaWFibGUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IHZhcklzTFZhbHVlKCkg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBW
YWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLnR5
cGUudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVV
bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVu
aWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAg
fQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlB
c1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnR5cGUgKyAiICIgKyB0aGlzLm5hbWU7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCmluZGV4
IDEyOTE0ZGEzMTM3ZmQ2YjkwZmVkYTcyNTg2MjdlZmZmZmJkNGU1NDEuLmE5ZDc0NTMzM2VkOGZm
NjFlYzZlZmNkMjgyN2UwODQ5M2U2YWU0YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0
aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAgICAgIHN1cGVyKCk7CiAgICAg
ICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9
IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRUeXBlID0gbmV3IFR5cGVSZWYob3Jp
Z2luLCBjb25maWcucHJlZmVycmVkVHlwZU5hbWUsIFtdKTsKKyAgICAgICAgICAgIHRoaXMucHJl
ZmVycmVkVHlwZSA9IG5ldyBUeXBlUmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1l
KTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlw
ZShjb25maWcpCiAgICAgICAgIHByZXBhcmVUb1ZlcmlmeSh1bmlmaWNhdGlvbkNvbnRleHQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5m
aW5kKHRoaXMpOwotICAgICAgICAgICAgaWYgKHJlYWxUaGlzIGluc3RhbmNlb2YgVHlwZVZhcmlh
YmxlIHx8IHJlYWxUaGlzLmlzTGl0ZXJhbCkgeworICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmlz
TGl0ZXJhbCkgewogICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChyZWFsVGhpcy51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHRoaXMucHJlZmVy
cmVkVHlwZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
CkBAIC03NywxNCArNzcsNiBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdlbmVyaWNMaXRlcmFsVHlwZSBzaG91bGQgbmV2
ZXIgYmUgdXNlZCBhcyBhIHR5cGUgcGFyYW1ldGVyIik7CiAgICAgICAgIH0KICAgICAgICAgCi0g
ICAgICAgIGNvbnZlcnNpb25Db3N0KHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICAgICAgewotICAg
ICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0g
ICAgICAgICAgICBpZiAocmVhbFRoaXMuZXF1YWxzKHRoaXMucHJlZmVycmVkVHlwZSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgY29tbWl0VW5pZmljYXRpb24odW5pZmljYXRpb25Db250ZXh0KQog
ICAgICAgICB7CiAgICAgICAgICAgICB0aGlzLnR5cGUgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmlu
ZCh0aGlzKS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwppbmRleCAzMGU2YjAzMWE2ZGQ2NjU5
NzQwN2YzZjZiN2ZlNzEzZWQ4ZmRjYzRhLi4wMjk0NzgyYzBlNzkzYWEzNzk1NzNmNTI4OGM2ZWU5
ZThmOTAwNjljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHBy
ZXNzaW9uRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJl
c3Npb25GaW5kZXIuanMKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsKICAgICAgICAgdGhp
cy5fY2FsbGJhY2sobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFt
ZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52
aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVy
cykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICB9CkBAIC00NiwxMSAr
NDQsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAg
IHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3Rl
eHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9k
ZS50eXBlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCiAgICAgewog
ICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NjE3MmQ5OGQxZTJjMDA4ZWRiNWQ4MTgzZjVlZWZkNjc4ZGM4ZWU5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZsYXR0ZW5Qcm90b2NvbEV4dGVu
ZHMocHJvZ3JhbSkKLXsKLSAgICBsZXQgdmlzaXRpbmcgPSBuZXcgVmlzaXRpbmdTZXQoKTsKLSAg
ICAKLSAgICBmdW5jdGlvbiBmbGF0dGVuKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFw
cm90b2NvbC5leHRlbmRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0g
ICAgICAgIHZpc2l0aW5nLmRvVmlzaXQocHJvdG9jb2wsICgpID0+IHsKLSAgICAgICAgICAgIGZv
ciAobGV0IHBhcmVudCBvZiBwcm90b2NvbC5leHRlbmRzKSB7Ci0gICAgICAgICAgICAgICAgcGFy
ZW50ID0gcGFyZW50LnByb3RvY29sRGVjbDsKLSAgICAgICAgICAgICAgICBmbGF0dGVuKHBhcmVu
dCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIHBhcmVudC5zaWduYXR1
cmVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBuZXdTaWduYXR1cmUgPSBzaWduYXR1cmUu
dmlzaXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3Vic3RpdHV0aW9uKFtwYXJlbnQu
dHlwZVZhcmlhYmxlXSwgW3Byb3RvY29sLnR5cGVWYXJpYWJsZV0pKTsKLSAgICAgICAgICAgICAg
ICAgICAgcHJvdG9jb2wuYWRkKG5ld1NpZ25hdHVyZSk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcHJvdG9jb2wuZXh0ZW5kcyA9IFtdOwotICAgICAgICB9
KTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5wcm90b2Nv
bHMudmFsdWVzKCkpCi0gICAgICAgIGZsYXR0ZW4ocHJvdG9jb2wpOwotfQotCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKaW5kZXggZTZjNTczN2RlMTZh
NGE2NDhkODVhZGNhMTY5MzQ1NGI2MTQwNzI3ZS4uZDVkMWIxNTIzMGYwOWMxMGEwYmMxMjVmMDNj
ZjVhZDRjZTNkZDJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
RmxvYXRMaXRlcmFsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0
TGl0ZXJhbC5qcwpAQCAtMzAsNyArMzAsNyBAQCBsZXQgRmxvYXRMaXRlcmFsID0gY3JlYXRlTGl0
ZXJhbCh7CiAgICAgCiAgICAgbmVnQ29uc3RleHByKG9yaWdpbikKICAgICB7Ci0gICAgICAgIHJl
dHVybiBuZXcgSW50TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IG5ldyBGbG9hdExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CiAgICAgfSwKICAgICAKICAg
ICBjcmVhdGVUeXBlKG9yaWdpbiwgdmFsdWUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVu
Yy5qcwppbmRleCA2ZmE3YzlkMWI2ZjRiOTU4MzM1OTgxYzI3MjhiZTg2NWE1NmU3M2FlLi42ZmM3
MzMyNzYxZDQ2M2MzNWE4YzQwYzJhNzZmMmY0YjM2YzIzMjIzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xh
c3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0
dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkK
KyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlz
Q2FzdCwgc2hhZGVyVHlwZSkKICAgICB7CiAgICAgICAgIGlmICghKG9yaWdpbiBpbnN0YW5jZW9m
IExleGVyVG9rZW4pKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3JpZ2luOiAi
ICsgb3JpZ2luKTsKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewog
ICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1l
OwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAgICAgICAgdGhpcy5f
dHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhpcy5fcGFyYW1ldGVy
cyA9IHBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2FzdDsKICAgICAgICAg
dGhpcy5fc2hhZGVyVHlwZSA9IHNoYWRlclR5cGU7CkBAIC00OCw4ICs0Nyw2IEBAIGNsYXNzIEZ1
bmMgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2lu
OyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAgICAgZ2V0IHJldHVy
blR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0
ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICBnZXQgdHlwZVBhcmFt
ZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnM7IH0K
ICAgICBnZXQgcGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRlcnM7IH0KICAgICBn
ZXQgcGFyYW1ldGVyVHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRl
ciA9PiBwYXJhbWV0ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5f
aXNDYXN0OyB9CkBAIC02NSw5ICs2Miw5IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAg
ICAgICAgaWYgKHRoaXMuc2hhZGVyVHlwZSkKICAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnNo
YWRlclR5cGUgKyAiICI7CiAgICAgICAgIGlmICh0aGlzLmlzQ2FzdCkKLSAgICAgICAgICAgIHJl
c3VsdCArPSAib3BlcmF0b3I8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiAiICsgdGhpcy5y
ZXR1cm5UeXBlOworICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvciAiICsgdGhpcy5yZXR1
cm5UeXBlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5U
eXBlICsgIiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsK
KyAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIgKyB0aGlzLm5hbWU7
CiAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKCIgKyB0aGlzLnBhcmFtZXRlcnMgKyAiKSI7CiAg
ICAgfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVu
Y0RlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKaW5kZXgg
MTFmYTA5MmUzYjIyNzhlMjE1YTBhNjdlOTUxZTE3ZGFiYTEzNmE4My4uY2EwNTk3ZmNkMjk0ZGZh
YjYwNDQyMTRlMDc1NGY3ZWY5NDRiODc4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRnVuY0RlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9GdW5jRGVmLmpzCkBAIC0yNSw5ICsyNSw5IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIEZ1
bmNEZWYgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5
cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJz
LCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBzdXBlcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNo
YWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSBib2R5Owog
ICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KQEAgLTM2LDggKzM2LDYg
QEAgY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMgewogICAgIAogICAgIHJld3JpdGUocmV3cml0
ZXIpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBhbiB1bmluc3RhbnRpYXRl
ZCBmdW5jdGlvbiIpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhpcy5fcmV0dXJuVHlw
ZS52aXNpdChyZXdyaXRlcik7CiAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMgPSB0aGlzLl9wYXJh
bWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3JpdGVyKSk7CiAgICAg
ICAgIHRoaXMuX2JvZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg5Mjg2MmE2ZGQ4NTY1ZWUzN2U0MjA2MzFkN2FmNzBkNTIyN2U1
ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcworKysgL2Rldi9udWxs
CkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEZ1bmNJbnN0YW50aWF0b3IgewotICAgIGNv
bnN0cnVjdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3Jh
bTsKLSAgICAgICAgdGhpcy5faW5zdGFuY2VzID0gbmV3IE1hcCgpOwotICAgIH0KLSAgICAKLSAg
ICBnZXQgaW5zdGFuY2VzKCkgeyByZXR1cm4gdGhpcy5faW5zdGFuY2VzOyB9Ci0gICAgCi0gICAg
Ly8gUmV0dXJucyBhIEZ1bmMgb2JqZWN0IHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHBhcnRp
Y3VsYXIgc3lzdGVtIG9mIHR5cGUgYXJndW1lbnRzLiBZb3UgbXVzdAotICAgIC8vIGludGFudGlh
dGUgdGhpbmdzIHdpdGggY29uY3JldGUgdHlwZXMsIGJlY2F1c2UgdGhpcyBjb2RlIGNhc3VhbGx5
IGFzc3VtZXMgdGhpcy4gTm90ZSB0aGF0IHRoaXMKLSAgICAvLyB3aWxsIHJldHVybiBhIGRpZmZl
cmVudCBmdW5jIGZyb20gYGZ1bmNgIG5vIG1hdHRlciB3aGF0LiBUaGlzIGVuc3VyZXMgdGhhdCB3
ZSBjYW4gdXNlIHRoZQotICAgIC8vIHJldHVybmVkIGZ1bmMgZm9yIHJld3JpdGVzIHRoYXQgaW5z
dGFudGlhdGUgdHlwZXMgd2l0aG91dCBkZXN0cm95aW5nIG91ciBhYmlsaXR5IHRvIGRvIG92ZXJs
b2FkCi0gICAgLy8gcmVzb2x1dGlvbnMgb24gdGhlIG9yaWdpbmFsIFByb2dyYW0uCi0gICAgZ2V0
VW5pcXVlKGZ1bmMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBjbGFzcyBGaW5kVHlw
ZVZhcmlhYmxlIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNpdFR5cGVSZWYobm9k
ZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQg
b2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnQu
dmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZp
c2l0VHlwZVZhcmlhYmxlKG5vZGUpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlVuZXhwZWN0ZWQgdHlwZSB2YXJpYWJsZTogIiArIG5vZGUgKyAiIHdoZW4gaW5zdGFudGlhdGlu
ZyAiICsgZnVuYyArICIgd2l0aCBhcmd1bWVudHMgIiArIHR5cGVBcmd1bWVudHMpOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0eXBl
QXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBGaW5kVHlwZVZh
cmlhYmxlKCkpOwotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbmNlcyA9IHRoaXMuX2luc3Rh
bmNlcy5nZXQoZnVuYyk7Ci0gICAgICAgIGlmICghaW5zdGFuY2VzKQotICAgICAgICAgICAgdGhp
cy5faW5zdGFuY2VzLnNldChmdW5jLCBpbnN0YW5jZXMgPSBbXSk7Ci0gICAgICAgIAotICAgICAg
ICBmb3IgKGxldCBpbnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAgICAgIGxldCBvayA9
IHRydWU7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5zdGFuY2UudHlwZUFyZ3VtZW50cy5s
ZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNlLnR5cGVBcmd1bWVu
dHNbaV0uZXF1YWxzKHR5cGVBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgIG9r
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZnVuYzsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgbGV0IHRoaXNJbnN0YW50aWF0b3IgPSB0aGlzOwotICAgICAgICAKLSAg
ICAgICAgY2xhc3MgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbiBleHRlbmRzIFN1YnN0aXR1dGlv
biB7Ci0gICAgICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24o
bm9kZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUg
dG8gcmUtcmVzb2x2ZSB0aGUgZnVuY3Rpb24gY2FsbCwgaWYgaXQgd2FzIGEgY2FsbCB0byBhIHBy
b3RvY29sCi0gICAgICAgICAgICAgICAgLy8gc2lnbmF0dXJlLgotICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQuZnVuYyBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpIHsKLSAgICAgICAgICAg
ICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChyZXN1bHQucG9zc2li
bGVPdmVybG9hZHMsIHJlc3VsdC50eXBlQXJndW1lbnRzLCByZXN1bHQuYXJndW1lbnRUeXBlcywg
cmVzdWx0LnJldHVyblR5cGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1
bmMpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCBy
ZXNvbHZlIHByb3RvY29sIHNpZ25hdHVyZSBmdW5jdGlvbiBjYWxsIGR1cmluZyBpbnN0YW50aWF0
aW9uOiAiICsgcmVzdWx0LmZ1bmMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJp
ZWQ6XG4iICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJlc3VsdC5yZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZnVu
Yy5pc05hdGl2ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5hdGl2ZUZ1bmNJbnN0YW5j
ZSA9IHRoaXNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5mdW5jLCByZXN1bHQuYWN0dWFs
VHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0
IHN1YnN0aXR1dGlvbiA9IG5ldyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9uKGZ1bmMudHlwZVBh
cmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25J
bnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMgewotICAg
ICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcHJlc2VydmUgY2VydGFpbiB0aGluZ3MgdGhhdCB3b3Vs
ZCBoYXZlIGluc3RhbnRpYXRlZCwgYnV0IHRoYXQgd2UgY2Fubm90Ci0gICAgICAgICAgICAgICAg
Ly8gaW5zdGFudGlhdGUgd2l0aG91dCBicmVha2luZyBjaGFpbi1pbnN0YW50aWF0aW9ucyAoZ2Vu
ZXJpYyBmdW5jdGlvbiBjYWxscyBnZW5lcmljCi0gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24g
c28gdGhlcmVmb3JlIHRoZSBpbnN0YW50aWF0ZWQgZ2VuZXJpYyBmdW5jdGlvbiBtdXN0IHN0aWxs
IGhhdmUgdGhlIG9yaWdpbmFsCi0gICAgICAgICAgICAgICAgLy8gKHVuaW5zdGFudGlhdGVkKSB0
eXBlcyB0byBpbnN0YW50aWF0ZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0IGl0IGNhbGxzKS4K
LSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAotICAgICAg
ICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMs
Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBO
b2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKSkpOwotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRo
aXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gQXJyYXkuZnJvbShub2Rl
LmFyZ3VtZW50VHlwZXMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmlzQ2FzdCkKLSAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAg
ICAgICAgICAgICAgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMgPSBBcnJheS5mcm9tKG5vZGUu
YWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGxldCBp
bnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGlvbkluc3RhbnRpYXRlSW1tZWRp
YXRlcygpOwotICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGUgewotICAgICAgICAg
ICAgdmlzaXRGdW5jRGVmKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGV0
IHJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm5UeXBlID0gcmV0dXJuVHlwZS52aXNpdChpbnN0YW50aWF0ZUltbWVk
aWF0ZXMpOwotICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZnVuYy5wYXJhbWV0ZXJz
Lm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlvbikpOwotICAgICAg
ICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1l
dGVyLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpOwotICAgICAgICAgICAgICAgIGxldCBi
b2R5ID0gZnVuYy5ib2R5LnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICAgICAgYm9k
eSA9IGJvZHkudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbmV3IEZ1bmNEZWYoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMub3JpZ2luLCBmdW5j
Lm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwKLSAg
ICAgICAgICAgICAgICAgICAgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFuY2UoCi0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMucmV0dXJuVHlwZS52
aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyksCi0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52
aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpLAotICAgICAg
ICAgICAgICAgICAgICBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5zaGFk
ZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRp
b24oc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbGV0
IHJlc3VsdGluZ0Z1bmMgPSBmdW5jLnZpc2l0KG5ldyBJbnN0YW50aWF0ZSgpKTsKLSAgICAgICAg
cmVzdWx0aW5nRnVuYy51bmluc3RhbnRpYXRlZFJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUu
dmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgbGV0IGluc3RhbmNlID0ge2Z1bmM6IHJlc3Vs
dGluZ0Z1bmMsIHR5cGVBcmd1bWVudHN9OwotICAgICAgICBpbnN0YW5jZXMucHVzaChpbnN0YW5j
ZSk7Ci0gICAgICAgIHJldHVybiByZXN1bHRpbmdGdW5jOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwppbmRleCA0
NDZiMzUxZGE1NzE1YzY4YTM1ZDc2OTc5NjlkNjk4ZWM3M2U3NGY4Li42MDQ5MTUzNjI1MWQwOWJj
ZTAzYTE0ZWQ2Nzc1MjJhMDJkMTNhNjQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwpAQCAtMjQsMTkgKzI0LDExIEBACiAgKi8K
ICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFy
Z3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKK2Z1bmN0aW9uIGluZmVyVHlwZXNG
b3JDYWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiB7Ci0gICAgaWYgKHR5cGVB
cmd1bWVudHMubGVuZ3RoICYmIHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IGZ1bmMudHlwZVBhcmFt
ZXRlcnMubGVuZ3RoKQotICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29s
dXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgKHBhc3Nl
ZCAiICsgdHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBmdW5jLnR5cGVQYXJh
bWV0ZXJzLmxlbmd0aCArICIpIil9OwogICAgIGlmIChhcmd1bWVudFR5cGVzLmxlbmd0aCAhPSBm
dW5jLnBhcmFtZXRlcnMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVy
bG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIChw
YXNzZWQgIiArIGFyZ3VtZW50VHlwZXMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVuYy5wYXJh
bWV0ZXJzLmxlbmd0aCArICIpIil9OwotICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcg
VW5pZmljYXRpb25Db250ZXh0KGZ1bmMudHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbik7
Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgIGxldCBhcmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgIGxldCBwYXJh
bWV0ZXIgPSBmdW5jLnR5cGVQYXJhbWV0ZXJzW2ldOwotICAgICAgICBpZiAoIWFyZ3VtZW50LnVu
aWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcGFyYW1ldGVyKSkKLSAgICAgICAgICAgIHJldHVybiB7
ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5cGUgYXJndW1l
bnQgIyIgKyAoaSArIDEpICsgIiBmb3IgcGFyYW1ldGVyICIgKyBwYXJhbWV0ZXIubmFtZSArICIg
ZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgYXJndW1lbnQgKyAiLCByZXF1aXJlICIgKyBwYXJh
bWV0ZXIgKyAiKSIpfTsKLSAgICB9CisgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBV
bmlmaWNhdGlvbkNvbnRleHQoKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50VHlw
ZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCFhcmd1bWVudFR5cGVzW2ldKQogICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGFyZ3VtZW50IHR5cGUgYXQgaSA9ICIgKyBpKTsK
QEAgLTQ4LDE2ICs0MCw2IEBAIGZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5cGVB
cmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiAgICAgbGV0IHZlcmlmaWNhdGlv
blJlc3VsdCA9IHVuaWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICBpZiAoIXZlcmlmaWNh
dGlvblJlc3VsdC5yZXN1bHQpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2Fk
UmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgdmVyaWZpY2F0aW9uUmVzdWx0LnJlYXNvbil9OwotICAg
IGxldCBzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMgPSAhdHlwZUFyZ3VtZW50cy5sZW5ndGg7Ci0g
ICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgdHlwZUFyZ3VtZW50cyA9
IFtdOwotICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBlUGFyYW1ldGVycykg
ewotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodHlw
ZVBhcmFtZXRlcik7Ci0gICAgICAgIGlmICh0eXBlQXJndW1lbnQgPT0gdHlwZVBhcmFtZXRlcikK
LSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1
cmUoZnVuYywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsgIiBkaWQgbm90IGdl
dCBhc3NpZ25lZCBhIHR5cGUiKX07Ci0gICAgICAgIGlmIChzaG91bGRCdWlsZFR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnRzLnB1c2godHlwZUFyZ3VtZW50KTsKLSAgICB9
Ci0gICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHQsIHR5cGVBcmd1bWVudHN9Owor
ICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0fTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCmluZGV4IGYwMjg3M2JkMjczZDkxMGIzZGYwNGZkMmE1
MWEzYzdjMGE0NjdjZWYuLjA5MDc0Njk5MjZmOGMwN2Q1MzM0YmIwMzA3ZGQzNTE4NWI4ZTUyM2Mg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKQEAgLTI4LDE4ICsyOCwx
MyBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKIHsKICAgICBmb3IgKGxldCBmdW5jTGlzdCBv
ZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3IgKGxldCBmdW5jIG9m
IGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3Ro
KSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRV
bmlxdWUoZnVuYywgW10pCi0gICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0s
IGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KGZ1bmMpKTsK
ICAgICAgICAgfQogICAgIH0KIH0KIAogZnVuY3Rpb24gX2lubGluZUZ1bmN0aW9uKHByb2dyYW0s
IGZ1bmMsIHZpc2l0aW5nKQogewotICAgIGlmIChmdW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkK
LSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5saW5lIGZ1bmN0aW9uIHRoYXQgaGFz
IHR5cGUgcGFyYW1ldGVycyIpOwogICAgIGlmIChmdW5jLmlubGluZWQgfHwgZnVuYy5pc05hdGl2
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtNTUsMTQgKzUwLDEwIEBAIGZ1bmN0aW9uIF9p
bmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKICAgICBmdW5jLmlubGluZWQg
PSB0cnVlOwogfQogCi1mdW5jdGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5h
bWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQorZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVu
dFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKLSAgICBsZXQgb3ZlcmxvYWQgPSBw
cm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgdHlwZUFy
Z3VtZW50cywgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5UG9pbnQpOworICAg
IGxldCBvdmVybG9hZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQucmVzb2x2ZUZ1bmNPdmVy
bG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50cnlQb2ludCk7CiAg
ICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICByZXR1cm4gb3ZlcmxvYWQuZmFpbHVyZXM7
Ci0gICAgaWYgKCFvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICByZXR1cm4g
b3ZlcmxvYWQuZnVuYzsKLSAgICBsZXQgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5n
ZXRVbmlxdWUob3ZlcmxvYWQuZnVuYywgb3ZlcmxvYWQudHlwZUFyZ3VtZW50cyk7Ci0gICAgX2lu
bGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChvdmVybG9hZC5mdW5j
KSk7Ci0gICAgcmV0dXJuIGZ1bmM7CisgICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7CiB9CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwppbmRleCA0OTFlZjNlMjIxZmMwNjMx
OGVlMDM2N2EzODE2OTllNTcyM2JmZTVhLi5kOTA2Zjc2ZGQ1MzNlNmRlNmUzNWNhZGY0MGIzNDFj
MDE5MzVmODYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKQEAg
LTM4LDcgKzM4LDcgQEAgY2xhc3MgSW5saW5lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAg
aWYgKHJlc3VsdC5uYXRpdmVGdW5jSW5zdGFuY2UpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICByZXR1cm4gdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLmZ1bmMsICgpID0+
IHsKLSAgICAgICAgICAgIGxldCBmdW5jID0gdGhpcy5fcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9y
LmdldFVuaXF1ZShyZXN1bHQuZnVuYywgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMpOworICAg
ICAgICAgICAgbGV0IGZ1bmMgPSByZXN1bHQuZnVuYzsKICAgICAgICAgICAgIGlmIChmdW5jLmlz
TmF0aXZlKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBuYXRp
dmUgZnVuYzogIiArIGZ1bmMpOwogICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHRoaXMuX3By
b2dyYW0sIGZ1bmMsIHRoaXMuX3Zpc2l0aW5nKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMmIzOWVkNjYzODE0MTM0OGFiYzEyNzY5NmI2ZWUzMWUwYjBjNThiNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEluc3RhbnRpYXRlSW1tZWRpYXRlcyBleHRl
bmRzIFJld3JpdGVyIHsKLSAgICB2aXNpdFR5cGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIG5v
ZGUgPSBzdXBlci52aXNpdFR5cGVSZWYobm9kZSk7Ci0gICAgICAgIGlmICghbm9kZS50eXBlLmlu
c3RhbnRpYXRlKSB7Ci0gICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgZG9lcyBub3Qgc3VwcG9ydCBp
bnN0YW50aWF0aW9uOiAiICsgdHlwZSArICIgKCIgKyB0eXBlLmNvbnN0cnVjdG9yLm5hbWUgKyAi
KSIpOwotICAgICAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IG5vZGUudHlwZS5pbnN0YW50aWF0ZShub2RlLnR5cGVBcmd1bWVudHMpLnZpc2l0KG5ldyBBdXRv
V3JhcHBlcigpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCi0g
ICAgewotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCmluZGV4IDkzM2RmZTAxMTMwMmIwZmJjODM0NDk5
NGExYTVjMWY3N2MwNTJhNmYuLjA5MzI4M2NjZTAzMWUxZDRlMWZmNmFhNTRiZDkwNWVjMjk5M2M4
OTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3Mu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAt
NDk5LDMzICs0OTksNiBAQCBjbGFzcyBJbnRyaW5zaWNzIHsKICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CiAgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2Ugb2YgYWRk
cmVzc1NwYWNlcykgewotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAg
ICBgbmF0aXZlIFQqICR7YWRkcmVzc1NwYWNlfSBvcGVyYXRvciZbXTxUPihUW10gJHthZGRyZXNz
U3BhY2V9LHVpbnQpYCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbcmVmLCBpbmRleF0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIk51bGwgZGVyZWZlcmVu
Y2UiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gaW5kZXgubG9hZFZhbHVlKCk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiByZWYubGVuZ3RoKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHJhcEVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkFycmF5IGluZGV4ICIgKyBpbmRleCArICIgaXMgb3V0IG9mIGJvdW5kcyBv
ZiAiICsgcmVmKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYu
cHRyLnBsdXMoaW5kZXggKiBub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHNbMF0u
c2l6ZSkpOwotICAgICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIH0pOwotCi0g
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgdWludCBv
cGVyYXRvci5sZW5ndGg8VD4oVFtdICR7YWRkcmVzc1NwYWNlfSlgLAotICAgICAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFty
ZWZdLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZh
bHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goMCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRVB0ci5ib3gocmVmLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KIAogICAgICAgICBmb3IgKGxldCBzd2l6emxl
IG9mIFN3aXp6bGVPcC5hbGxTd2l6emxlT3BlcmF0b3JzKCkpIHsKICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoc3dpenpsZS50b1N0cmluZygpLCAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmFtZUNvbnRleHQuanMKaW5kZXggYzMxYmM0MjgyOTQ0MzBiZDQ1Mjc3OTZmNGQ3YTk5
NjA1MzlmNjE4OC4uYWZjY2U3MTIzNGY1YWFjZGVmM2UzYWVkZDIxN2Q2OGQzNWY3YjEwNyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKQEAgLTEwNCwx
MyArMTA0LDEzIEBAIGNsYXNzIE5hbWVDb250ZXh0IHsKICAgICAgICAgeWllbGQgdGhpbmc7CiAg
ICAgfQogICAgIAotICAgIHJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCisgICAg
cmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxv
d0VudHJ5UG9pbnQgPSBmYWxzZSkKICAgICB7CiAgICAgICAgIGxldCBmdW5jdGlvbnMgPSB0aGlz
LmdldChGdW5jLCBuYW1lKTsKICAgICAgICAgaWYgKCFmdW5jdGlvbnMpCiAgICAgICAgICAgICBy
ZXR1cm4ge2ZhaWx1cmVzOiBbXX07CiAgICAgICAgIAotICAgICAgICByZXR1cm4gcmVzb2x2ZU92
ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVy
blR5cGUsIGFsbG93RW50cnlQb2ludCk7CisgICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJ
bXBsKGZ1bmN0aW9ucywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50
KTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGN1cnJlbnRTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKaW5kZXggZmMyZmRiZDAzMjUyN2NjYzU0
Y2FkNzFiYTU3NmI5OTIyMWVlOWM3ZC4uNDNlNDcxYWFjNjFhZGE0M2Y3NGM3ZjA4MzJmNzNlODBj
YWEzYjRlNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZp
bmRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpz
CkBAIC00MywxMiArNDMsNiBAQCBjbGFzcyBOYW1lRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgIHRoaXMuX3dvcmtsaXN0LnB1c2gobmFtZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0
UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuYWRkKG5vZGUubmFtZSk7Ci0g
ICAgICAgIHN1cGVyLnZpc2l0UHJvdG9jb2xSZWYobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZp
c2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwppbmRleCA3MzE5
NjRmYzc4MjIxYWU3MzExODk4MTI1MjIzMjUwM2JjZmFiYzMwLi5jYWYyNjdjZTUyYTFhNTA0NjM1
NmQ4M2EwM2UwMTZjOWViYjM2YmIzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZVJlc29sdmVyLmpzCkBAIC00MSwxOSArNDEsMTQgQEAgY2xhc3MgTmFtZVJlc29sdmVy
IGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX25hbWVDb250ZXh0LmRvU3RhdGVtZW50
KHN0YXRlbWVudCwgKCkgPT4gc3RhdGVtZW50LnZpc2l0KHRoaXMpKTsKICAgICB9CiAgICAgCi0g
ICAgX3Zpc2l0VHlwZVBhcmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpCisgICAgX2J1
aWxkTmFtZUNvbnRleHQoKQogICAgIHsKLSAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5h
bWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFt
ZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5h
ZGQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMp
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBuYW1lQ29udGV4dDsKKyAgICAgICAgcmV0dXJu
IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7CiAgICAgfQogICAgIAogICAgIHZp
c2l0RnVuYyhub2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29s
dmVyKHRoaXMuX3Zpc2l0VHlwZVBhcmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpKTsK
KyAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKHRoaXMuX2J1aWxkTmFtZUNv
bnRleHQobm9kZSkpOwogICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoY2hlY2tlcik7CiAg
ICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAg
ICBwYXJhbWV0ZXIudmlzaXQoY2hlY2tlcik7CkBAIC02MSwxNiArNTYsMTQgQEAgY2xhc3MgTmFt
ZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRGdW5jRGVmKG5vZGUp
CiAgICAgewotICAgICAgICBsZXQgY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyA9IHRoaXMuX3Zp
c2l0VHlwZVBhcmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpOwotICAgICAgICBsZXQg
Y2hlY2tlcldpdGhUeXBlUGFyYW1ldGVycyA9IG5ldyBOYW1lUmVzb2x2ZXIoY29udGV4dFdpdGhU
eXBlUGFyYW1ldGVycyk7Ci0gICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyV2l0
aFR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgbGV0IGNvbnRleHRXaXRoUGFyYW1ldGVycyA9IG5l
dyBOYW1lQ29udGV4dChjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0IGlu
bmVyQ29udGV4dCA9IHRoaXMuX2J1aWxkTmFtZUNvbnRleHQoKTsKKyAgICAgICAgbGV0IGlubmVy
Q2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIoaW5uZXJDb250ZXh0KTsKKyAgICAgICAgbm9kZS5y
ZXR1cm5UeXBlLnZpc2l0KGlubmVyQ2hlY2tlcik7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRl
ciBvZiBub2RlLnBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChjaGVj
a2VyV2l0aFR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgIGNvbnRleHRXaXRoUGFyYW1ldGVy
cy5hZGQocGFyYW1ldGVyKTsKKyAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChpbm5lckNoZWNr
ZXIpOworICAgICAgICAgICAgbmV3Q29udGV4dC5hZGQocGFyYW1ldGVyKTsKICAgICAgICAgfQot
ICAgICAgICBsZXQgY2hlY2tlcldpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNvbHZlcihjb250
ZXh0V2l0aFBhcmFtZXRlcnMpOwotICAgICAgICBub2RlLmJvZHkudmlzaXQoY2hlY2tlcldpdGhQ
YXJhbWV0ZXJzKTsKKyAgICAgICAgbm9kZS5ib2R5LnZpc2l0KGlubmVyQ2hlY2tlcik7CiAgICAg
fQogICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkKQEAgLTExNSw0MSArMTA4LDkgQEAgY2xhc3Mg
TmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIG5vZGUuYm9keS52aXNpdChu
ZXdSZXNvbHZlcik7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0g
ICAgewotICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAg
ICAgcGFyZW50LnZpc2l0KHRoaXMpOwotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFt
ZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBuYW1lQ29udGV4dC5hZGQobm9k
ZS50eXBlVmFyaWFibGUpOwotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIo
bmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1
cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZpc2l0KGNoZWNrZXIpOwotICAgIH0KLSAgICAK
LSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0g
dGhpcy5fbmFtZUNvbnRleHQuZ2V0KFByb3RvY29sLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAo
IXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHByb3RvY29sIG5hbWVkICIgKyBub2RlLm5hbWUp
OwotICAgICAgICBub2RlLnByb3RvY29sRGVjbCA9IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAg
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLnZpc2l0RnVu
Yyhub2RlKTsKLSAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMs
IG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghZnVuY3MpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgZmluZCBhbnkgZnVu
Y3Rpb25zIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnBvc3NpYmxlT3Zlcmxv
YWRzID0gZnVuY3M7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZURlZihub2RlKQogICAgIHsK
ICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250
ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0
ZXJzKSB7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAg
ICAgbmFtZUNvbnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxl
dCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIG5vZGUu
dHlwZS52aXNpdChjaGVja2VyKTsKICAgICB9CkBAIC0xNTcsNDEgKzExOCwxMyBAQCBjbGFzcyBO
YW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkK
ICAgICB7CiAgICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9u
YW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBl
UGFyYW1ldGVycykgewotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKLSAg
ICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgfQogICAg
ICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpOwogICAgICAg
ICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0
KGNoZWNrZXIpOwogICAgIH0KICAgICAKLSAgICBfcmVzb2x2ZVR5cGVBcmd1bWVudHModHlwZUFy
Z3VtZW50cykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgbGV0IHR5cGVBcmd1bWVudCA9IHR5cGVBcmd1
bWVudHNbaV07Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50IGluc3RhbmNlb2YgVHlwZU9y
VmFyaWFibGVSZWYpIHsKLSAgICAgICAgICAgICAgICBsZXQgdGhpbmcgPSB0aGlzLl9uYW1lQ29u
dGV4dC5nZXQoQW55dGhpbmcsIHR5cGVBcmd1bWVudC5uYW1lKTsKLSAgICAgICAgICAgICAgICBp
ZiAoIXRoaW5nKQotICAgICAgICAgICAgICAgICAgICBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1l
bnQub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgb3IgdmFyaWFibGUg
bmFtZWQgIiArIHR5cGVBcmd1bWVudC5uYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAodGhpbmcg
aW5zdGFuY2VvZiBWYWx1ZSkKLSAgICAgICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50c1tpXSA9
IG5ldyBWYXJpYWJsZVJlZih0eXBlQXJndW1lbnQub3JpZ2luLCB0eXBlQXJndW1lbnQubmFtZSk7
Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAodGhpbmcgaW5zdGFuY2VvZiBUeXBlKQotICAgICAg
ICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzW2ldID0gbmV3IFR5cGVSZWYodHlwZUFyZ3VtZW50
Lm9yaWdpbiwgdHlwZUFyZ3VtZW50Lm5hbWUsIFtdKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9m
IHRoaW5nOiAiICsgdGhpbmcua2luZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmICh0eXBlQXJndW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZQotICAgICAgICAg
ICAgICAgICYmICF0eXBlQXJndW1lbnRbaV0uaXNDb25zdGV4cHIpCi0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFyZ3VtZW50W2ldLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJFeHBlY3RlZCBjb25zdGV4cHIiKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNp
dFR5cGVSZWYobm9kZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRz
KG5vZGUudHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIAogICAgICAgICBsZXQgdHlwZSA9IG5vZGUu
dHlwZTsKICAgICAgICAgaWYgKCF0eXBlKSB7CiAgICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFt
ZUNvbnRleHQuZ2V0KFR5cGUsIG5vZGUubmFtZSk7CkBAIC0xOTksMTggKzEzMiw2IEBAIGNsYXNz
IE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5
cGUgbmFtZWQgIiArIG5vZGUubmFtZSk7CiAgICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOwog
ICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5sZW5n
dGggIT0gbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBl
IGFyZ3VtZW50cyAocGFzc2VkICIgKyBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgZXhw
ZWN0ZWQgIiArIHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoICsgIikiKTsKLSAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCB0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBsZXQgcGFyYW1ldGVySXNUeXBlID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBpbnN0
YW5jZW9mIFR5cGVWYXJpYWJsZTsKLSAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IG5v
ZGUudHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5jZW9mIFR5cGU7Ci0gICAgICAgICAgICBub2RlLnR5
cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVySXNU
eXBlICYmICFhcmd1bWVudElzVHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVF
cnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290IHZh
bHVlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklzVHlw
ZSAmJiBhcmd1bWVudElzVHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBl
IGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0gICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgdmlzaXRS
ZWZlcmVuY2VUeXBlKG5vZGUpCkBAIC0yNzksOCArMjAwLDYgQEAgY2xhc3MgTmFtZVJlc29sdmVy
IGV4dGVuZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQog
ICAgIHsKLSAgICAgICAgdGhpcy5fcmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1l
bnRzKTsKLSAgICAgICAgCiAgICAgICAgIGxldCBmdW5jcyA9IHRoaXMuX25hbWVDb250ZXh0Lmdl
dChGdW5jLCBub2RlLm5hbWUpOwogICAgICAgICBpZiAoZnVuY3MpCiAgICAgICAgICAgICBub2Rl
LnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVuY3M7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlRnVuYy5qcwppbmRleCBhNTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1
MTgyNDg3Li5kYzBmZjc4MWI2OTJlMTg0NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwx
MiBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0g
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywg
cGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwg
bmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsK
LSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywg
cGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAg
ICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9u
ID0gbnVsbDsKICAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAg
ICAgdGhpcy5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307
CiAgICAgICAgIHRoaXMudmlzaXRJbXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25E
YXRhLCB2aXNpdG9yKSA9PiBudWxsOwogICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbklt
cGxlbWVudGF0aW9uRGF0YSA9IGltcGxlbWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5j
ZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk5Yjc4MjYzNTM1YTcwZDkzMDk2MjZk
NTg1MDM1OTAwMTA1ZDQxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2Uu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2ZUZ1bmNJ
bnN0YW5jZSBleHRlbmRzIEZ1bmMgewotICAgIGNvbnN0cnVjdG9yKGZ1bmMsIHJldHVyblR5cGUs
IHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSwgaW1wbGVtZW50YXRpb25EYXRhKQotICAg
IHsKLSAgICAgICAgc3VwZXIoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwgW10s
IHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBm
dW5jOwotICAgICAgICB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRh
dGE7Ci0gICAgfQotICAgIAotICAgIGdldCBmdW5jKCkgeyByZXR1cm4gdGhpcy5fZnVuYzsgfQot
ICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgaW1wbGVtZW50YXRp
b25EYXRhKCkgeyByZXR1cm4gdGhpcy5faW1wbGVtZW50YXRpb25EYXRhOyB9Ci0KLSAgICB0b0Rl
Y2xTdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJuYXRpdmUgIiArIHN1cGVyLnRvRGVj
bFN0cmluZygpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZVR5cGUuanMKaW5kZXggYjhiMWE0NzMzMGI1ZmQ1MWZmMDIxYWYwNjU4Njg0NGMyYWNiYThl
YS4uZDgzM2Y1ZjhhYmM5YjA0NWFmY2EyNDM1YjVhYjI5MjVmNGM2OGFmMiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCkBAIC0yNSwxNCArMjUsMTQgQEAK
ICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3Io
b3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQogICAgIHsKLSAgICAgICAgaWYgKCEodHlwZVBh
cmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJheSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
InR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0eXBlUGFyYW1ldGVycyk7CisgICAgICAg
IGlmICghKHR5cGVBcmd1bWVudHMgaW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJyYXk6ICIgKyB0eXBlQXJndW1lbnRz
KTsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAg
ICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0
eXBlUGFyYW1ldGVyczsKKyAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVu
dHM7CiAgICAgICAgIHRoaXMuX2lzTnVtYmVyID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzSW50
ID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzRmxvYXRpbmcgPSBmYWxzZTsKQEAgLTQxLDcgKzQx
LDcgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBvcmln
aW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRo
aXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBl
UGFyYW1ldGVyczsgfQorICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlw
ZUFyZ3VtZW50czsgfQogICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAK
ICAgICAvLyBXZSBsZXQgSW50cmluc2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQgbGlrZXMuCkBAIC01
NCwxOCArNTQsOSBAQCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgZ2V0IGlz
UHJpbWl0aXZlKCkgeyByZXR1cm4gdGhpcy5faXNQcmltaXRpdmU7IH0KICAgICBzZXQgaXNQcmlt
aXRpdmUodmFsdWUpIHsgdGhpcy5faXNQcmltaXRpdmUgPSB2YWx1ZTsgfQogICAgIAotICAgIGlu
c3RhbnRpYXRlKHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBpZiAodHlwZUFyZ3VtZW50
cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyB0byBpbnN0YW50aWF0
aW9uIik7Ci0gICAgICAgIGlmICghdHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICBy
ZXR1cm4gdGhpczsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5zdGFuY2UodGhpcywg
dHlwZUFyZ3VtZW50cyk7Ci0gICAgfQotICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlw
ZVBhcmFtZXRlcnMgKyAiPiI7CisgICAgICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRo
aXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0YW5j
ZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0YW5jZS5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EzOWU3Nzc4NzAwNDllZDIyZDcwNDFh
NTIwMTRjYzhlNjljYmM0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlSW5zdGFuY2Uu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2ZVR5cGVJ
bnN0YW5jZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKHR5cGUsIHR5cGVBcmd1bWVu
dHMpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsK
LSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7Ci0gICAgfQotICAg
IAotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCB0eXBlQXJn
dW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQotICAgIGdldCBpc1ByaW1p
dGl2ZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGUuaXNQcmltaXRpdmU7IH0KLSAgICBnZXQgaXNOYXRp
dmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29u
dGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcy50eXBlICE9IG90aGVyLnR5cGUp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IG90aGVyLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHlwZUFyZ3VtZW50
cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHNbaV0u
dW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlQXJndW1lbnRzW2ldKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
LnR5cGUgKyAiPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiI7Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwppbmRleCA4ODEwMzAxMzA3NzNlNzBlYTg4ZTBh
YjU5Nzk3NGNmNTYxZjlkNWU0Li42ZDIxMWI3NjJiMGEyNThkMzU1NTE5MzRkNjA4YTUzOGNlMzAz
NzlkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKQEAgLTg5LDggKzg5LDYg
QEAgY2xhc3MgTm9kZSB7CiAgICAgCiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gZmFsc2U7
IH0KICAgICAKLSAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQpIHsgcmV0dXJu
IDA7IH0KLSAgICAKICAgICBlcXVhbHMob3RoZXIpCiAgICAgewogICAgICAgICBsZXQgdW5pZmlj
YXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dCgpOwpAQCAtMTA0LDcgKzEwMiw2
IEBAIGNsYXNzIE5vZGUgewogICAgICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gdGhpcy5l
cXVhbHMob3RoZXIpOwogICAgICAgICBpZiAoIXVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdW5pZmljYXRpb25Db250ZXh0LmNvbW1pdCgpOwog
ICAgICAgICByZXR1cm4gdW5pZmljYXRpb25Db250ZXh0OwogICAgIH0KICAgICAKQEAgLTExNSw3
ICsxMTIsNiBAQCBjbGFzcyBOb2RlIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IHVuaWZpY2F0aW9u
Q29udGV4dC52ZXJpZnkoKTsKICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQogICAgICAgICAg
ICAgdGhyb3cgbmV3IFdFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3Qg
aW5mZXIgdHlwZTogIiArIHJlc3VsdC5yZWFzb24pOwotICAgICAgICB1bmlmaWNhdGlvbkNvbnRl
eHQuY29tbWl0KCk7CiAgICAgICAgIHJldHVybiB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlz
KTsKICAgICB9CiAgICAgCkBAIC0xMjMsMTEgKzExOSw0IEBAIGNsYXNzIE5vZGUgewogICAgIHsK
ICAgICAgICAgcmV0dXJuIHRoaXMudmlzaXQobmV3IFN1YnN0aXR1dGlvbihwYXJhbWV0ZXJzLCBh
cmd1bWVudExpc3QpKTsKICAgICB9Ci0gICAgCi0gICAgc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24o
cGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMuc3Vic3RpdHV0ZSgKLSAgICAgICAgICAgIHBhcmFtZXRlcnMsCi0gICAgICAgICAgICBwYXJh
bWV0ZXJzLm1hcCh0eXBlID0+IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHR5cGUpKSk7Ci0gICAg
fQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwppbmRleCA2ZDJiNDMxNjE1
NjAxYWI5ZGQzZDA5MzhmYmZiMzg1ZWUyYTRkYWYxLi5mYmVlMWQ3MWE5NGI3ZmU4MzRmMDYxODBl
MGJkNTE3MDc2MTNhMmI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9QYXJzZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwpA
QCAtMTIxLDEyICsxMjEsNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xSZWYoKQotICAgIHsKLSAgICAg
ICAgbGV0IHByb3RvY29sVG9rZW4gPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAg
ICByZXR1cm4gbmV3IFByb3RvY29sUmVmKHByb3RvY29sVG9rZW4sIHByb3RvY29sVG9rZW4udGV4
dCk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9uIGNvbnN1bWVFbmRPZlR5cGVBcmdzKCkKICAg
ICB7CiAgICAgICAgIGxldCByaWdodFNoaWZ0ID0gdHJ5Q29uc3VtZSgiPj4iKTsKQEAgLTEzNiwz
NCArMTMwLDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgY29uc3VtZSgiPiIpOwogICAgIH0K
ICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICB7Ci0gICAgICAg
IGlmICghdGVzdCgiPCIpKQotICAgICAgICAgICAgcmV0dXJuIFtdOwotICAgICAgICAKLSAgICAg
ICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAgICBjb25zdW1lKCI8Iik7Ci0gICAgICAgIHdoaWxl
ICghdGVzdCgiPiIpKSB7Ci0gICAgICAgICAgICBsZXQgY29uc3RleHByID0gbGV4ZXIuYmFja3Ry
YWNraW5nU2NvcGUoKCkgPT4gewotICAgICAgICAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBl
KCk7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIp
OwotICAgICAgICAgICAgICAgIGFzc2VydE5leHQoIiwiLCAiPiIsICI+PiIpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcih0eXBlLm9yaWdpbiwgbmFt
ZS50ZXh0LCB0eXBlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKGNvbnN0ZXhw
cikKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb25zdGV4cHIpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmll
ciIpOwotICAgICAgICAgICAgICAgIGxldCBwcm90b2NvbCA9IHRyeUNvbnN1bWUoIjoiKSA/IHBh
cnNlUHJvdG9jb2xSZWYoKSA6IG51bGw7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3
IFR5cGVWYXJpYWJsZShuYW1lLCBuYW1lLnRleHQsIHByb3RvY29sKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjb25zdW1lRW5kT2ZUeXBlQXJncygpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZVRlcm0oKQogICAg
IHsKICAgICAgICAgbGV0IHRva2VuOwpAQCAtMjIyLDcgKzE4OCw3IEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICB7CiAgICAgICAgIGxldCB0b2tlbjsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
LSIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJh
dG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VUZXJtKCldKTsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbcGFy
c2VUZXJtKCldKTsKICAgICAgICAgbGV0IGxlZnQgPSBwYXJzZVRlcm0oKTsKICAgICAgICAgaWYg
KHRva2VuID0gdHJ5Q29uc3VtZSgiLiIpKQogICAgICAgICAgICAgbGVmdCA9IG5ldyBEb3RFeHBy
ZXNzaW9uKHRva2VuLCBsZWZ0LCBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQpOwpAQCAt
MjgyLDggKzI0OCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIGFkZHJlc3NTcGFjZSA9IHRv
a2VuLnRleHQ7CiAgICAgICAgIAogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVu
dGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRz
KCk7Ci0gICAgICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0LCB0eXBl
QXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBuYW1lLnRl
eHQpOwogICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gZ2V0QWRkcmVzc1NwYWNlKCkKICAgICAg
ICAgewpAQCAtMzE4LDExICsyODMsMTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0
IG9yaWdpbiA9IGNvbnN1bWUoInR5cGVkZWYiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1l
S2luZCgiaWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBh
cnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgY29uc3VtZSgiPSIpOwogICAgICAgICBsZXQg
dHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVy
biBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBUeXBlRGVmKG9yaWdpbiwgbmFtZSwgdHlwZSk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIGdlbmVyaWNQYXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNvbnN0cnVj
dG9yKQpAQCAtMzM5LDEzICszMDMsMTIgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2Vu
ZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAogICAgICAgICAg
ICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4KLSAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJl
c3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW2xlZnQsIHJpZ2h0XSkp
OworICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiAr
IHRva2VuLnRleHQsIFtsZWZ0LCByaWdodF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
cGFyc2VDYWxsRXhwcmVzc2lvbigpCiAgICAgewogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBl
QXJndW1lbnRzKCk7CiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGFyZ3VtZW50
TGlzdCA9IFtdOwogICAgICAgICB3aGlsZSAoIXRlc3QoIikiKSkgewpAQCAtMzU1LDcgKzMxOCw3
IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJl
ck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjb25zdW1lKCIpIik7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24o
bmFtZSwgbmFtZS50ZXh0LCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgYXJndW1lbnRM
aXN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zNjMsNyArMzI2
LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGxleGVyLnRlc3RTY29wZSgo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAg
ICAgcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCIoIik7CiAgICAg
ICAgIH0pOwogICAgIH0KQEAgLTM4MSw3ICszNDMsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFt
LCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlm
IChuYW1lID09ICJvcGVyYXRvciIpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFs
aWQgbmFtZTogIiArIG5hbWUpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhw
cmVzc2lvbih0b2tlbiwgbmFtZSwgW10sIGFyZ3MpOworICAgICAgICByZXR1cm4gbmV3IENhbGxF
eHByZXNzaW9uKHRva2VuLCBuYW1lLCBhcmdzKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
ZmluaXNoUGFyc2luZ1Bvc3RJbmNyZW1lbnQodG9rZW4sIGxlZnQpCkBAIC00NTQsNyArNDE2LDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAodGVzdCgiKysiLCAiLS0iKSkKICAgICAgICAgICAg
IHJldHVybiBwYXJzZVByZUluY3JlbWVudCgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25z
dW1lKCIrIiwgIi0iLCAifiIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VQb3NzaWJsZVByZWZp
eCgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3Bl
cmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOwogICAgICAgICBp
ZiAodG9rZW4gPSB0cnlDb25zdW1lKCIqIikpCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlcmVm
ZXJlbmNlRXhwcmVzc2lvbih0b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAg
aWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiJiIpKQpAQCAtNDYzLDcgKzQyNSw3IEBAIGZ1bmN0aW9u
IHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKICAgICAgICAgICAgIHJldHVybiBuZXcgTWFrZUFycmF5UmVmRXhwcmVzc2lvbih0b2tlbiwg
cGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
ISIpKSB7CiAgICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVByZWZpeCgp
OwotICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJl
c3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJvb2wiLCBbXSwgW3JlbWFpbmRlcl0pKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJl
bWFpbmRlci5vcmlnaW4sICJib29sIiwgW3JlbWFpbmRlcl0pKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gcGFyc2VQb3NzaWJsZVN1ZmZpeCgpOwogICAgIH0KQEAgLTQ5Myw3ICs0NTUsNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAg
ICAgWyI9PSIsICIhPSJdLCBwYXJzZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHksCiAgICAg
ICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbXSwgW2xlZnQs
IHJpZ2h0XSk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbbGVmdCwgcmlnaHRdKTsKICAgICAgICAgICAgICAgICBp
ZiAodG9rZW4udGV4dCA9PSAiIT0iKQogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcg
TG9naWNhbE5vdCh0b2tlbiwgcmVzdWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNTE5LDcgKzQ4MSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBn
ZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0gICAgICAg
ICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4s
IHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbXSwg
W2xlZnRdKSwgbmV3IENhbGxFeHByZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW3Jp
Z2h0XSkpKTsKKyAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5ldyBMb2dpY2Fs
RXhwcmVzc2lvbih0b2tlbiwgdG9rZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9uKGxlZnQub3Jp
Z2luLCAiYm9vbCIsIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJi
b29sIiwgW3JpZ2h0XSkpKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VQb3NzaWJs
ZUxvZ2ljYWxBbmQoKQpAQCAtNjU2LDcgKzYxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0s
IG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0
IGVsc2VCb2R5OwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiZWxzZSIpKQogICAgICAgICAgICAg
ZWxzZUJvZHkgPSBwYXJzZVN0YXRlbWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IElmU3RhdGVt
ZW50KG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wi
LCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5KTsKKyAgICAgICAgcmV0dXJuIG5l
dyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmln
aW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5KTsKICAgICB9CiAKICAg
ICBmdW5jdGlvbiBwYXJzZVdoaWxlKCkKQEAgLTY2Niw3ICs2MjgsNyBAQCBmdW5jdGlvbiBwYXJz
ZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAg
ICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25z
dW1lKCIpIik7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAg
cmV0dXJuIG5ldyBXaGlsZUxvb3Aob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9u
YWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CisgICAgICAgIHJl
dHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFs
Lm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gcGFyc2VGb3IoKQpAQCAtNjg3LDcgKzY0OSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dy
YW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICBjb25kaXRpb24gPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAg
ICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBDYWxsRXhw
cmVzc2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uXSk7CisgICAg
ICAgICAgICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwg
ImJvb2wiLCBbY29uZGl0aW9uXSk7CiAgICAgICAgIH0KICAgICAgICAgbGV0IGluY3JlbWVudDsK
ICAgICAgICAgaWYgKHRyeUNvbnN1bWUoIikiKSkKQEAgLTcwOCw3ICs2NzAsNyBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGNvbmRpdGlvbmFsID0gcGFy
c2VFeHByZXNzaW9uKCk7CiAgICAgICAgIGNvbnN1bWUoIikiKTsKLSAgICAgICAgcmV0dXJuIG5l
dyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25h
bC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25h
bC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSkpOwogICAgIH0KICAgICAKICAgICBmdW5j
dGlvbiBwYXJzZVZhcmlhYmxlRGVjbHMoKQpAQCAtODU4LDEzICs4MjAsMTEgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICBsZXQgb3JpZ2luOwogICAgICAgICBsZXQgcmV0dXJuVHlwZTsKICAgICAgICAg
bGV0IG5hbWU7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgbGV0IGlzQ2Fz
dDsKICAgICAgICAgbGV0IHNoYWRlclR5cGU7CiAgICAgICAgIGxldCBvcGVyYXRvclRva2VuID0g
dHJ5Q29uc3VtZSgib3BlcmF0b3IiKTsKICAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4pIHsKICAg
ICAgICAgICAgIG9yaWdpbiA9IG9wZXJhdG9yVG9rZW47Ci0gICAgICAgICAgICB0eXBlUGFyYW1l
dGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgIHJldHVyblR5cGUgPSBw
YXJzZVR5cGUoKTsKICAgICAgICAgICAgIG5hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAg
ICAgICBpc0Nhc3QgPSB0cnVlOwpAQCAtODc3LDQ0ICs4MzcsMTcgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgb3JpZ2luID0gcmV0dXJuVHlwZS5vcmln
aW47CiAgICAgICAgICAgICBuYW1lID0gcGFyc2VGdW5jTmFtZSgpOwotICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBpc0Nhc3Qg
PSBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1l
dGVycygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmMob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywg
aXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29s
RnVuY0RlY2woKQotICAgIHsKLSAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7Ci0g
ICAgICAgIHJldHVybiBuZXcgUHJvdG9jb2xGdW5jRGVjbChmdW5jLm9yaWdpbiwgZnVuYy5uYW1l
LCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywg
ZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9u
IHBhcnNlRnVuY0RlZigpCiAgICAgewogICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVuY0RlY2wo
KTsKICAgICAgICAgbGV0IGJvZHkgPSBwYXJzZUJsb2NrKCk7Ci0gICAgICAgIHJldHVybiBuZXcg
RnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlw
ZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hh
ZGVyVHlwZSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xEZWNsKCkK
LSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJwcm90b2NvbCIpOwotICAgICAg
ICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBQcm90b2NvbERlY2wob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgaWYgKHRy
eUNvbnN1bWUoIjoiKSkgewotICAgICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ7IikpIHsKLSAgICAg
ICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwYXJzZVByb3RvY29sUmVmKCkpOwotICAgICAg
ICAgICAgICAgIGlmICghdHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb25zdW1lKCJ7Iik7Ci0gICAg
ICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAgICByZXN1bHQuYWRkKHBh
cnNlUHJvdG9jb2xGdW5jRGVjbCgpKTsKLSAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYo
ZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFtZXRlcnMs
IGJvZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwogICAgIH0KICAgICAKICAgICBm
dW5jdGlvbiBwYXJzZUZpZWxkKCkKQEAgLTkyOSw4ICs4NjIsNyBAQCBmdW5jdGlvbiBwYXJzZShw
cm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAg
ewogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3RydWN0Iik7CiAgICAgICAgIGxldCBu
YW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBh
cmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgU3RydWN0VHlwZShvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAgIGNvbnN1bWUo
InsiKTsKICAgICAgICAgd2hpbGUgKCF0cnlDb25zdW1lKCJ9IikpCiAgICAgICAgICAgICByZXN1
bHQuYWRkKHBhcnNlRmllbGQoKSk7CkBAIC05NDEsNyArODczLDcgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
IHsKICAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGNvbnN1bWUo
IjsiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5h
bWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJhbWV0ZXJz
LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBOYXRp
dmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJh
bWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAgCiAgICAg
ZnVuY3Rpb24gcGFyc2VOYXRpdmUoKQpAQCAtOTQ5LDkgKzg4MSw5IEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoIm5hdGl2ZSIpOwogICAgICAgICBpZiAodHJ5Q29u
c3VtZSgidHlwZWRlZiIpKSB7CiAgICAgICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJp
ZGVudGlmaWVyIik7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFt
ZXRlcnMoKTsKKyAgICAgICAgICAgIGxldCBhcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMo
KTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTmF0
aXZlVHlwZShvcmlnaW4sIG5hbWUudGV4dCwgcGFyYW1ldGVycyk7CisgICAgICAgICAgICByZXR1
cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIGFyZ3VtZW50cyk7CiAgICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHBhcnNlTmF0aXZlRnVuYygpOwogICAgIH0KQEAgLTk4NSw3ICs5
MTcsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVO
dW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpCiAgICAgICAg
ICAgICBiYXNlVHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBi
YXNlVHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiLCBbXSk7CisgICAgICAgICAgICBiYXNl
VHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiKTsKICAgICAgICAgY29uc3VtZSgieyIpOwog
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVudW1UeXBlKG5hbWUsIG5hbWUudGV4dCwgYmFzZVR5
cGUpOwogICAgICAgICB3aGlsZSAoIXRlc3QoIn0iKSkgewpAQCAtMTAxMyw4ICs5NDUsNiBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZVN0cnVjdFR5cGUoKSk7CiAg
ICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQgPT0gImVudW0iKQogICAgICAgICAgICAgcHJvZ3Jh
bS5hZGQocGFyc2VFbnVtVHlwZSgpKTsKLSAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAi
cHJvdG9jb2wiKQotICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VQcm90b2NvbERlY2woKSk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRnVuY0RlZigpKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwppbmRleCBhMjA0
OGE5YWQzZTgzYmQxOGI3NjQ0NGNhNTU0NmU0OGZlMDExOWEwLi5lN2MzZjIzNjYwNGY4YmEwODdh
YzFlNjZmNThkNjc4NjAxYzU3NmM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
ZXBhcmUuanMKQEAgLTQyLDE2ICs0MiwxMyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAg
ICAgIGZvbGRDb25zdGV4cHJzKHByb2dyYW0pOwogICAgICAgICBsZXQgbmFtZVJlc29sdmVyID0g
Y3JlYXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFtZXNJblR5cGVz
KHByb2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAgIHJlc29sdmVOYW1lc0luUHJvdG9jb2xz
KHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBlRGVmc0luVHlwZXMo
cHJvZ3JhbSk7Ci0gICAgICAgIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0pOwog
ICAgICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplRW51bUZ1bmN0aW9u
cyhwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFt
ZVJlc29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5GdW5jdGlvbnMocHJvZ3JhbSk7
Ci0gICAgICAgIAotICAgICAgICBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0pOworCiAg
ICAgICAgIGNoZWNrKHByb2dyYW0pOwogICAgICAgICBjaGVja0xpdGVyYWxUeXBlcyhwcm9ncmFt
KTsKICAgICAgICAgcmVzb2x2ZVByb3BlcnRpZXMocHJvZ3JhbSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUHJvZ3JhbS5qcwppbmRleCBiYmM0YjI0YTYyMjdiMWNlNWIwNmQ3MzNhYzIw
ZDkyYjU5NmE0YzczLi44ZmM2Zjc5M2VlNmU3M2VlY2E1YTZhYTc0YTQ0MGE2N2I4NmJlNmZhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKQEAgLTMxLDggKzMxLDYg
QEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgICAgICB0aGlzLl90b3BMZXZlbFN0
YXRlbWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gbmV3IE1hcCgpOwogICAg
ICAgICB0aGlzLl90eXBlcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2xzID0g
bmV3IE1hcCgpOwotICAgICAgICB0aGlzLl9mdW5jSW5zdGFudGlhdG9yID0gbmV3IEZ1bmNJbnN0
YW50aWF0b3IodGhpcyk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0ID0gbmV3IE5h
bWVDb250ZXh0KCk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0LnByb2dyYW0gPSB0
aGlzOwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dC5yZWNvZ25pemVJbnRyaW5zaWNz
KCk7CkBAIC00Miw4ICs0MCw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICBn
ZXQgdG9wTGV2ZWxTdGF0ZW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRz
OyB9CiAgICAgZ2V0IGZ1bmN0aW9ucygpIHsgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsgfQogICAg
IGdldCB0eXBlcygpIHsgcmV0dXJuIHRoaXMuX3R5cGVzOyB9Ci0gICAgZ2V0IHByb3RvY29scygp
IHsgcmV0dXJuIHRoaXMuX3Byb3RvY29sczsgfQotICAgIGdldCBmdW5jSW5zdGFudGlhdG9yKCkg
eyByZXR1cm4gdGhpcy5fZnVuY0luc3RhbnRpYXRvcjsgfQogICAgIGdldCBnbG9iYWxOYW1lQ29u
dGV4dCgpIHsgcmV0dXJuIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0OyB9CiAgICAgCiAgICAgYWRk
KHN0YXRlbWVudCkKQEAgLTU2LDggKzUyLDYgQEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUg
ewogICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwogICAgICAgICB9IGVsc2UgaWYg
KHN0YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpCiAgICAgICAgICAgICB0aGlzLl90eXBlcy5zZXQo
c3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0YXRlbWVudCBp
bnN0YW5jZW9mIFByb3RvY29sKQotICAgICAgICAgICAgdGhpcy5fcHJvdG9jb2xzLnNldChzdGF0
ZW1lbnQubmFtZSwgc3RhdGVtZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJTdGF0ZW1lbnQgaXMgbm90IGEgZnVuY3Rpb24gb3IgdHlwZTogIiArIHN0YXRl
bWVudCk7CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3RhdGVtZW50cy5wdXNoKHN0YXRlbWVudCk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzM2Y4NDU2NDc3ZWNhMmU4ZGNmNjZjZjQ1YzJkNDczY2EwODU3ZDg4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDMg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVz
ZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVj
dG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMu
X29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgfQotICAg
IAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFt
ZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQga2luZCgpIHsgcmV0dXJuIFByb3Rv
Y29sOyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
bmFtZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Qcm90b2NvbERlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2Nv
bERlY2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MGJjZmNmMzNiYTczOTVj
NTZkOTUyYTU3OWQwOTkyN2IwYmU3NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNs
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xE
ZWNsIGV4dGVuZHMgUHJvdG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAg
ICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMuZXh0ZW5kcyA9
IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzID0gW107Ci0gICAgICAgIHRoaXMuX3NpZ25h
dHVyZU1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fdHlwZVZhcmlhYmxlID0gbmV3IFR5
cGVWYXJpYWJsZShvcmlnaW4sIG5hbWUsIG51bGwpOwotICAgIH0KLSAgICAKLSAgICBhZGRFeHRl
bmRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgdGhpcy5leHRlbmRzLnB1c2gocHJvdG9jb2wp
OwotICAgIH0KLSAgICAKLSAgICBhZGQoc2lnbmF0dXJlKQotICAgIHsKLSAgICAgICAgaWYgKCEo
c2lnbmF0dXJlIGluc3RhbmNlb2YgUHJvdG9jb2xGdW5jRGVjbCkpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlNpZ25hdHVyZSBpc24ndCBhIFByb3RvY29sRnVuY0RlY2wgYnV0IGEgIiAr
IHNpZ25hdHVyZS5jb25zdHJ1Y3Rvci5uYW1lKTsKLSAgICAgICAgCi0gICAgICAgIHNpZ25hdHVy
ZS5wcm90b2NvbERlY2wgPSB0aGlzOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2ln
bmF0dXJlKTsKLSAgICAgICAgbGV0IG92ZXJsb2FkcyA9IHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQo
c2lnbmF0dXJlLm5hbWUpOwotICAgICAgICBpZiAoIW92ZXJsb2FkcykKLSAgICAgICAgICAgIHRo
aXMuX3NpZ25hdHVyZU1hcC5zZXQoc2lnbmF0dXJlLm5hbWUsIG92ZXJsb2FkcyA9IFtdKTsKLSAg
ICAgICAgb3ZlcmxvYWRzLnB1c2goc2lnbmF0dXJlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHNp
Z25hdHVyZXMoKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVzOyB9Ci0gICAgc2lnbmF0dXJlc0J5
TmFtZShuYW1lKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KG5hbWUpOyB9Ci0gICAg
Z2V0IHR5cGVWYXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZTsgfQotICAgIAot
ICAgIHNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKG5hbWUsIHR5cGVWYXJpYWJsZSkK
LSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKFt0aGlz
LnR5cGVWYXJpYWJsZV0sIFt0eXBlVmFyaWFibGVdKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRo
aXMuc2lnbmF0dXJlc0J5TmFtZShuYW1lKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAg
ICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoc2lnbmF0dXJlID0+
IHNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pKTsKLSAgICB9Ci0gICAgCi0gICAgaW5oZXJp
dHMob3RoZXJQcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghb3RoZXJQcm90b2NvbCkKLSAg
ICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgCi0gICAgICAgIGlmIChv
dGhlclByb3RvY29sIGluc3RhbmNlb2YgUHJvdG9jb2xSZWYpCi0gICAgICAgICAgICBvdGhlclBy
b3RvY29sID0gb3RoZXJQcm90b2NvbC5wcm90b2NvbERlY2w7Ci0gICAgICAgIAotICAgICAgICBm
b3IgKGxldCBvdGhlclNpZ25hdHVyZSBvZiBvdGhlclByb3RvY29sLnNpZ25hdHVyZXMpIHsKLSAg
ICAgICAgICAgIGxldCBzaWduYXR1cmVzID0gdGhpcy5zaWduYXR1cmVzQnlOYW1lKG90aGVyU2ln
bmF0dXJlLm5hbWUpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAg
ICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiUHJvdG9jb2wgIiArIHRoaXMubmFt
ZSArICIgZG9lcyBub3QgaGF2ZSBhIGZ1bmN0aW9uIG5hbWVkICIgKyBvdGhlclNpZ25hdHVyZS5u
YW1lICsgIiAobG9va2luZyBhdCBzaWduYXR1cmUgIiArIG90aGVyU2lnbmF0dXJlICsgIikifTsK
LSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAg
ICAgICAgICAgc2lnbmF0dXJlcywgW10sCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUu
cGFyYW1ldGVyVHlwZXMsCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUucmV0dXJuVHlw
ZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90
IGZpbmQgbWF0Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsgb3RoZXJTaWduYXR1cmUgKyAiIGluICIg
KyB0aGlzLm5hbWUgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6ICIgKyBv
dmVybG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAgICAgIGxl
dCBzdWJzdGl0dXRlZFJldHVyblR5cGUgPQotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMu
cmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
b3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0
KTsKLSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhvdGhlclNp
Z25hdHVyZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFs
c2UsIHJlYXNvbjogIlJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIG90aGVyU2lnbmF0
dXJlLnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlfTsKLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIGhh
c0hlaXIodHlwZSkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3Rp
dHV0aW9uKFt0aGlzLl90eXBlVmFyaWFibGVdLCBbdHlwZV0pOwotICAgICAgICBsZXQgc2lnbmF0
dXJlcyA9IHRoaXMuc2lnbmF0dXJlczsKLSAgICAgICAgZm9yIChsZXQgb3JpZ2luYWxTaWduYXR1
cmUgb2Ygc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHNpZ25hdHVyZSA9IG9yaWdpbmFs
U2lnbmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQg
PSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZS5wb3NzaWJsZU92ZXJsb2Fkcywgc2lnbmF0
dXJlLnR5cGVQYXJhbWV0ZXJzLCBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMsIHNpZ25hdHVyZS5y
ZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAgICAgICAgIGlmICghb3Zlcmxv
YWQuZnVuYykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjog
IkRpZCBub3QgZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIgKyBvcmlnaW5hbFNpZ25hdHVy
ZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIikg
d2l0aCB0eXBlICIgKyB0eXBlICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVk
OiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIpIiA6ICIiKX07Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlZFJldHVyblR5cGUgPSBvdmVybG9hZC5m
dW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAg
b3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0
KTsKLSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhzaWduYXR1
cmUucmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCBy
ZWFzb246ICJBdCBzaWduYXR1cmUgIiArIG9yaWdpbmFsU2lnbmF0dXJlICsgIiAoYXQgIiArIG9y
aWdpbmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKTogcmV0dXJuIHR5cGUgbWlz
bWF0Y2ggYmV0d2VlbiAiICsgc2lnbmF0dXJlLnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3Rp
dHV0ZWRSZXR1cm5UeXBlICsgIiBpbiBmb3VuZCBmdW5jdGlvbiAiICsgb3ZlcmxvYWQuZnVuYy50
b0RlY2xTdHJpbmcoKX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gInBy
b3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIHRoaXMuc2lnbmF0dXJlcy5qb2luKCI7ICIp
ICsgIjsgfSI7Ci0gICAgfQotfQotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4
OWI1YzliOGU3MTYxODY4YTFjZTQ1ZDU4ODY2MzkyYzAyMjI0NGQzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Byb3RvY29sRnVuY0RlY2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIFByb3RvY29sRnVuY0RlY2wgZXh0ZW5kcyBGdW5jIHsKLSAgICBnZXQgdHlwZVBh
cmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50
eXBlUGFyYW1ldGVycy5jb25jYXQodGhpcy5wcm90b2NvbERlY2wudHlwZVZhcmlhYmxlKTsKLSAg
ICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3Rv
Y29sUmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYzBlYTMwZDc0OGQ4YjllMTYxMDdhOWY4
MDhjMjNiMzI4NjVlNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sUmVmIGV4dGVuZHMg
UHJvdG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMucHJvdG9jb2xEZWNsID0gbnVsbDsK
LSAgICB9Ci0gICAgCi0gICAgaW5oZXJpdHMob3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5wcm90b2NvbERlY2wuaW5oZXJpdHMob3RoZXIpOwotICAgIH0KLSAgICAKLSAgICBoYXNI
ZWlyKHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaGFzSGVp
cih0eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci19CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKaW5kZXggMTkyMmU4
ZWMyN2ZjMzlkOTViNGFhOGJmYTlhNTZjOTEwZjZlNjhiMi4uNDlkYzg2MzdkNGUxNDNhOWIwN2Q1
OWNmM2ZiOTc1Y2Y4NGE2NWUxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Jlc29sdmVOYW1lcy5qcwpAQCAtMzUsMTIgKzM1LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU5hbWVz
SW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCiAgICAgICAgIG5hbWVSZXNvbHZlci5kb1N0
YXRlbWVudCh0eXBlKTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5Qcm90b2NvbHMocHJv
Z3JhbSwgbmFtZVJlc29sdmVyKQotewotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0u
cHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQocHJv
dG9jb2wpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlTmFtZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBu
YW1lUmVzb2x2ZXIpCiB7CiAgICAgZm9yIChsZXQgZnVuY3Mgb2YgcHJvZ3JhbS5mdW5jdGlvbnMu
dmFsdWVzKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVPdmVybG9hZEltcGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNv
bHZlT3ZlcmxvYWRJbXBsLmpzCmluZGV4IDdlMjIxNTZkZTFhYzVlMmE2YzcyNGFkMzQ2OWRjOTFl
NzQ2ZjI1NjYuLmFjNzI0OTRlZTIwYjg0NzJiNTg4NzMyOTA0YmE4MjAwMzQwNTQ3NDEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1w
bC5qcwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIHJl
c29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVz
LCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVP
dmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0Vu
dHJ5UG9pbnQgPSBmYWxzZSkKIHsKICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJOdWxsIGZ1bmN0aW9uczsgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGNhdWdodCBi
eSB0aGUgY2FsbGVyLiIpOwpAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiByZXNvbHZlT3Zlcmxv
YWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlw
ZQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaChuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVy
ZShmdW5jLCAiRnVuY3Rpb24gaXMgYSAiICsgZnVuYy5zaGFkZXJUeXBlICsgIiBzaGFkZXIsIHNv
IGl0IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYW4gZXhpc3Rpbmcgc2hhZGVyLiIpKQog
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgbGV0IG92ZXJsb2FkID0g
aW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0
dXJuVHlwZSk7CisgICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMs
IGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOwogICAgICAgICBpZiAob3ZlcmxvYWQuZmFpbHVy
ZSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gob3ZlcmxvYWQuZmFpbHVyZSk7CiAgICAgICAg
IGVsc2UKQEAgLTQ2LDEyICs0Niw2IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9hZEltcGwoZnVu
Y3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlCiAgICAgaWYg
KCFzdWNjZXNzZXMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1cmVzOiBmYWlsdXJlc307
CiAgICAgCi0gICAgbGV0IG1pbmltdW1Db252ZXJzaW9uQ29zdCA9IHN1Y2Nlc3Nlcy5yZWR1Y2Uo
Ci0gICAgICAgIChyZXN1bHQsIG92ZXJsb2FkKSA9PiBNYXRoLm1pbihyZXN1bHQsIG92ZXJsb2Fk
LnVuaWZpY2F0aW9uQ29udGV4dC5jb252ZXJzaW9uQ29zdCksCi0gICAgICAgIEluZmluaXR5KTsK
LSAgICBzdWNjZXNzZXMgPSBzdWNjZXNzZXMuZmlsdGVyKAotICAgICAgICBvdmVybG9hZCA9PiBv
dmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQuY29udmVyc2lvbkNvc3QgPT0gbWluaW11bUNvbnZl
cnNpb25Db3N0KTsKLSAgICAKICAgICAvLyBJZiBhbnkgb2YgdGhlIHNpZ25hdHVyZXMgYXJlIHJl
c3RyaWN0ZWQgdGhlbiB3ZSBjb25zaWRlciB0aG9zZSBmaXJzdC4gVGhpcyBpcyBhbiBlc2NhcGUg
bWVjaGFuaXNtIGZvcgogICAgIC8vIGJ1aWx0LWluIHRoaW5ncy4KICAgICAvLyBGSVhNRTogSXQg
c2hvdWxkIGJlIGFuIGVycm9yIHRvIGRlY2xhcmUgYSBmdW5jdGlvbiB0aGF0IGlzIGF0IGxlYXN0
IGFzIHNwZWNpZmljIGFzIGEgcmVzdHJpY3RlZCBmdW5jdGlvbi4KQEAgLTc0LDcgKzY4LDYgQEAg
ZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFy
Z3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJGdW5jID0g
c3VjY2Vzc2VzW2pdLmZ1bmM7CiAgICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSBpbmZlclR5cGVz
Rm9yQ2FsbCgKICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJGdW5jLAotICAgICAgICAgICAgICAg
IHR5cGVBcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRGdW5jLnR5cGVQYXJhbWV0ZXJzIDogW10s
CiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnBhcmFtZXRlclR5cGVzLAogICAgICAgICAg
ICAgICAgIGFyZ3VtZW50RnVuYy5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKICAg
ICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCmluZGV4IDNiZDJhNGQ2NWY1NjRmNzA4YjBl
ZjQ3NTllNDNiMmM4OGQ0OGMyMzQuLmU4N2JkYzNjMzQ4MzE5OTUyZmY5ZDhmMDM5OWYzNDhlYTk1
MGQ2MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlw
ZURlZnMuanMKQEAgLTMxLDEzICszMSw2IEBAIGZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luVHlw
ZXMocHJvZ3JhbSkKICAgICAgICAgdHlwZS52aXNpdChyZXNvbHZlcik7CiB9CiAKLWZ1bmN0aW9u
IHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0pCi17Ci0gICAgbGV0IHJlc29sdmVy
ID0gbmV3IFR5cGVEZWZSZXNvbHZlcigpOwotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dy
YW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBwcm90b2NvbC52aXNpdChyZXNvbHZlcik7
Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luRnVuY3Rpb25zKHByb2dyYW0pCiB7CiAg
ICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZlcigpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCBmNDBkNmI4OGIyNmVlZGNiZjgyOWYxYmFi
YjEwYTIwNDViN2E4ZTgzLi4xNzE1YWQwZmFiNzk5OWI5NjViYjAzOTAyMjU0MDE3ZDE3YjM5YjFl
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwpAQCAtNTMsNDEg
KzUzLDExIEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAvLyB0aGF0LgogICAgIHZpc2l0RnVuY0Rl
Zihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXROYXRpdmVGdW5jKG5vZGUpIHsgcmV0
dXJuIG5vZGU7IH0KLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKSB7IHJldHVybiBu
b2RlOyB9CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2
aXNpdFR5cGVEZWYobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0U3RydWN0VHlwZShu
b2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5v
ZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKSB7IHJldHVy
biBub2RlOyB9CiAgICAgdmlzaXRFbnVtVHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAKLSAg
ICAvLyBUaGlzIGlzIGFsbW9zdCB3cm9uZy4gV2UgaW5zdGFudGlhdGUgRnVuYyBpbiBTdWJzdGl0
dXRpb24gaW4gUHJvdG9jb2xEZWNsLiBUaGVuLCB3ZSBlbmQgdXAKLSAgICAvLyBub3QgcmV3cml0
aW5nIHR5cGUgdmFyaWFibGVzLiBJIHRoaW5rIHRoYXQganVzdCB3b3JrcyBiZWNhdXNlIG5vdCBy
ZXdyaXRpbmcgdGhlbSB0aGVyZSBpcyBPSy4KLSAgICAvLyBFdmVyeXdoZXJlIGVsc2UsIGl0J3Mg
bWFuZGF0b3J5IHRoYXQgd2UgZG9uJ3QgcmV3cml0ZSB0aGVzZSBiZWNhdXNlIHdlIGFsd2F5cyBh
c3N1bWUgdGhhdAotICAgIC8vIHR5cGUgdmFyaWFibGVzIGFyZSBvdXRzaWRlIHRoZSBzY29wZSBv
ZiByZXdyaXRpbmcuCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkgeyByZXR1cm4gbm9kZTsg
fQotCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFByb3RvY29sRnVuY0RlY2woCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAotICAg
ICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52
aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9
PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAgICAgICAgbm9kZS5pc0Nhc3QsCi0gICAg
ICAgICAgICBub2RlLnNoYWRlclR5cGUpOwotICAgICAgICByZXN1bHQucHJvdG9jb2xEZWNsID0g
bm9kZS5wcm90b2NvbERlY2w7Ci0gICAgICAgIHJlc3VsdC5wb3NzaWJsZU92ZXJsb2FkcyA9IG5v
ZGUucG9zc2libGVPdmVybG9hZHM7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0TmF0aXZlVHlwZUluc3RhbmNlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1
cm4gbmV3IE5hdGl2ZVR5cGVJbnN0YW5jZSgKLSAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAoYXJndW1lbnQgPT4gYXJn
dW1lbnQudmlzaXQodGhpcykpKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFyYW1ldGVy
KG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNQYXJhbWV0ZXIobm9k
ZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKQEAgLTEyNSwxNCAr
OTUsOSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0pKTsKICAgICB9CiAgICAgCi0gICAg
dmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkpOworICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFtZSk7CiAgICAg
ICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5cGUsIHRoaXMpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjgyLDYgQEAgY2xhc3MgUmV3cml0ZXIg
ewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpCiAgICAgewotICAg
ICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewot
ICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1bWVudCA9PiBhY3R1YWxU
eXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJn
dW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwot
ICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5
cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAg
ICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50VHlwZXM7CiAgICAgICAgIGlmIChh
cmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVu
dFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRUeXBlLnZpc2l0KHRoaXMpKTsKQEAg
LTM0Miw3ICsyOTksNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQgcmVz
dWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUu
bmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+
IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlz
dC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKICAgICAgICAg
cmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCmluZGV4IDkzZjZiOWI5MzJk
MjcyZDc3YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLjAzMTRhZDk1ZmJmZmYxY2NiNTJlYzYyZjEx
ZmM2OWMyOWVhMmQ4ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRt
bApAQCAtNDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnZl
cnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcgKzYwLDYgQEAgdGQgewogICAgIDxz
Y3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkZpZWxkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVy
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC03
OSw3ICs3Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iSW5zdGFu
dGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50TGl0ZXJh
bC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC05Niw5
ICs5Myw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVG
dW5jSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTA5LDEwICsxMDQsNiBAQCB0
ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJv
Z3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29s
RGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJS
ZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
UmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNDEsMTAgKzEzMiw3IEBAIHRkIHsK
ICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVPclZh
cmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJl
d3JpdGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9IlR5cGVWYXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVy
YWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZD
b2RlZ2VuLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpz
CmluZGV4IGI0ZjUwODU5YTg3YWZiNjBlNTRiMzYwYzYwNTljNGFhYzhjMjNiY2EuLmE5ZmRlZWNl
NDc1ODY2ODY2M2VkMTAzMmY3MmIyMDNlODIwNTJhYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24g
Z2VuZXJhdGVTUElSVihzcGlydiwgcHJvZ3JhbSkKICAgICB0eXBlTWFwLnNldChwcm9ncmFtLmlu
dHJpbnNpY3MudWludDMyLCBjdXJyZW50SWQrKyk7CiAKICAgICBmb3IgKGxldCBlbnRyeVBvaW50
IG9mIGZpbmRFbnRyeVBvaW50cygpKSB7Ci0gICAgICAgIGxldCBpbmxpbmVkU2hhZGVyID0gcHJv
Z3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShlbnRyeVBvaW50LCBbXSk7CisgICAgICAg
IGxldCBpbmxpbmVkU2hhZGVyID0gZW50cnlQb2ludDsKICAgICAgICAgX2lubGluZUZ1bmN0aW9u
KHByb2dyYW0sIGlubGluZWRTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChlbnRyeVBvaW50KSk7CiAK
ICAgICAgICAgbGV0IHR5cGVBbmFseXplciA9IG5ldyBTUElSVlR5cGVBbmFseXplcihwcm9ncmFt
LCB0eXBlTWFwLCBjdXJyZW50SWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RhbmRhcmRMaWJyYXJ5LmpzCmluZGV4IDE5ODg3MjNjMzU0ODA4MWM2NjdmYWM3ODYyZjQw
MjY3ZjlmOGI4NTcuLmRlNmM0YTE2MzY4Zjc2YWVhMDIxN2NhNzIxN2Q1MWI2MTAwMDczN2MgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMK
QEAgLTE0NSwxNCArMTQ1LDYgQEAgYm9vbCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkKICAgICByZXR1
cm4gIXZhbHVlOwogfQogCi1wcm90b2NvbCBBZGRhYmxlIHsKLSAgICBBZGRhYmxlIG9wZXJhdG9y
KyhBZGRhYmxlLCBBZGRhYmxlKTsKLX0KLQotcHJvdG9jb2wgRXF1YXRhYmxlIHsKLSAgICBib29s
IG9wZXJhdG9yPT0oRXF1YXRhYmxlLCBFcXVhdGFibGUpOwotfQotCiByZXN0cmljdGVkIG9wZXJh
dG9yPFQ+IFQoKQogewogICAgIFQgZGVmYXVsdFZhbHVlOwpAQCAtMTY0LDExICsxNTYsNiBAQCBy
ZXN0cmljdGVkIG9wZXJhdG9yPFQ+IFQoVCB4KQogICAgIHJldHVybiB4OwogfQogCi1vcGVyYXRv
cjxUOkVxdWF0YWJsZT4gYm9vbChUIHgpCi17Ci0gICAgcmV0dXJuIHggIT0gVCgpOwotfQotCiBz
dHJ1Y3QgdmVjMjxUPiB7CiAgICAgVCB4OwogICAgIFQgeTsKQEAgLTE4NiwxMSArMTczLDYgQEAg
b3BlcmF0b3I8VD4gdmVjMjxUPihUIHgsIFQgeSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1i
b29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzI8VD4gYSwgdmVjMjxUPiBiKQotewotICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Ci19Ci0KIHRocmVhZCBUKiBvcGVyYXRv
ciZbXTxUPih0aHJlYWQgdmVjMjxUPiogZm9vLCB1aW50IGluZGV4KQogewogICAgIGlmIChpbmRl
eCA9PSAwKQpAQCAtMjM3LDExICsyMTksNiBAQCBvcGVyYXRvcjxUPiB2ZWMzPFQ+KFQgeCwgdmVj
MjxUPiB2MikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIG9wZXJhdG9yPT08VDpFcXVh
dGFibGU+KHZlYzM8VD4gYSwgdmVjMzxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKLX0KLQogdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+
KHRocmVhZCB2ZWMzPFQ+KiBmb28sIHVpbnQgaW5kZXgpCiB7CiAgICAgaWYgKGluZGV4ID09IDAp
CkBAIC0zMzQsMTEgKzMxMSw2IEBAIG9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCB2ZWMzPFQ+IHYz
KQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4o
dmVjNDxUPiBhLCB2ZWM0PFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Ci19Ci0KIHRocmVhZCBUKiBvcGVyYXRv
ciZbXTxUPih0aHJlYWQgdmVjNDxUPiogZm9vLCB1aW50IGluZGV4KQogewogICAgIGlmIChpbmRl
eCA9PSAwKQpAQCAtMzg2LDQgKzM1OCw0IEBAIGZ1bmN0aW9uIGludFRvU3RyaW5nKHgpCiAKIC8v
IFRoZXJlIGFyZSA0ODEgc3dpenpsZSBvcGVyYXRvcnMsIHNvIHdlIGNvbXBpbGUgdGhlbSBhcyBu
YXRpdmUgZnVuY3Rpb25zCiBzdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmFsbFN3aXp6bGVP
cGVyYXRvcnMoKS5qb2luKCI7XG4iKSArICI7IjsKLWNvbnNvbGUubG9nKHN0YW5kYXJkTGlicmFy
eSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorY29uc29sZS5sb2coc3RhbmRhcmRMaWJy
YXJ5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVu
dENsb25lci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25l
ci5qcwppbmRleCBjOTQ3OWEyODViYTBlMTM1MzVkZWEzN2Y3ZmMxYTYzYmM3MWNmMzE2Li43MWNj
Y2I2MDE3YTE0MDM4YTk4NmFiNTQ2ZDAzMjgyZjM0ODU1Y2EzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCkBAIC0yNywxMSArMjcsOSBA
QAogY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgIHZpc2l0RnVu
Y0RlZihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gbm9kZS50eXBl
UGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMp
KTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jRGVmKAogICAgICAgICAgICAgbm9kZS5v
cmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlz
KSwKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzLAogICAgICAgICAgICAgbm9kZS5wYXJhbWV0
ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAg
IG5vZGUuYm9keS52aXNpdCh0aGlzKSwKICAgICAgICAgICAgIG5vZGUuaXNDYXN0LCBub2RlLnNo
YWRlclR5cGUpOwpAQCAtNDQsNyArNDIsNiBAQCBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5k
cyBSZXdyaXRlciB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgTmF0aXZlRnVuYygKICAgICAg
ICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCiAgICAgICAgICAgICBub2RlLnJldHVyblR5
cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBl
UGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9k
ZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAg
ICAgICAgICAgIG5vZGUuaXNDYXN0LCBub2RlLnNoYWRlclR5cGUpOwogICAgICAgICByZXN1bHQu
aXNSZXN0cmljdGVkID0gbm9kZS5pc1Jlc3RyaWN0ZWQ7CkBAIC01NCw1MiArNTEsMjQgQEAgY2xh
c3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgIHZpc2l0TmF0aXZlVHlw
ZShub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKAotICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBh
cmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAgICAgICAgICBub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9
PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRUeXBl
RGVmKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYoCiAgICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVy
cy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAg
ICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0U3Ry
dWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBl
KAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUu
dHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0
aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUobm9kZS5vcmlnaW4s
IG5vZGUubmFtZSk7CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQogICAg
ICAgICAgICAgcmVzdWx0LmFkZChmaWVsZC52aXNpdCh0aGlzKSk7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2Rl
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUu
b3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IFByb3RvY29sRGVjbChub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICAgICAgZm9yIChs
ZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcmVzdWx0LmFkZEV4dGVu
ZHMocHJvdG9jb2wudmlzaXQodGhpcykpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Yg
bm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgcmVzdWx0LmFkZChzaWduYXR1cmUudmlzaXQo
dGhpcykpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VHlwZVZh
cmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBOb2RlLnZpc2l0KG5vZGUucHJvdG9jb2wsIHRoaXMpKTsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG5ldyBQcm90b2NvbFJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICB9Ci0gICAg
CiAgICAgdmlzaXRCb29sTGl0ZXJhbChub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBC
b29sTGl0ZXJhbChub2RlLm9yaWdpbiwgbm9kZS52YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwppbmRleCA0Zjk4YzU3
M2ExYTM4MjM3ZTE2NDUwYWUxMGI4NmNiMmU2MWQxMjMwLi43NDQxZGVlZWQ0M2QwNjJkYjEzMDM2
NzY0OTBmMzY4Y2ViNmQ4M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKQEAgLTM5LDggKzM5LDYgQEAgY2xhc3MgU3Ry
dWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgaWYgKG5v
ZGUuc2l6ZSAhPSBudWxsKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobm9kZS50
eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5v
dCBkbyBsYXlvdXQgZm9yIGdlbmVyaWMgdHlwZTogIiArIG5vZGUpOwogICAgICAgICBsZXQgb2xk
T2Zmc2V0ID0gdGhpcy5fb2Zmc2V0OwogICAgICAgICB0aGlzLl9vZmZzZXQgPSAwOwogICAgICAg
ICBzdXBlci52aXNpdFN0cnVjdFR5cGUobm9kZSk7CkBAIC02MCwxMiArNTgsNiBAQCBjbGFzcyBT
dHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX29mZnNl
dCArPSBzaXplOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2Rl
KQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSk7Ci0g
ICAgICAgIG5vZGUuZnVuYy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBsZW1lbnRhdGlvbkRhdGEobm9k
ZS5pbXBsZW1lbnRhdGlvbkRhdGEpOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9k
ZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKQEAgLTc2LDEzICs2
OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB7
CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0KQogICAgICAg
ICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIGxldCBoYW5kbGVUeXBl
QXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0gICAgICAgICAgICBpZiAoYWN0
dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9m
IGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50LnZpc2l0
KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBoYW5kbGVUeXBlQXJn
dW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIE5v
ZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwogICAgICAgICBOb2RlLnZp
c2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKaW5kZXggZjlkOGM3ZGE0ODU4MzIxNjFlNTVkMjJhNDM4
NzYyOTkzMzdjYjkzNi4uMzk0N2ZkYmFjMDcwMDBkZTgwZmZmNjVmZDY2YzZlMDA1OGEyN2VjMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCkBAIC0yNSwx
MiArMjUsMTEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5
cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpCisgICAg
Y29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAg
ICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAg
ICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhp
cy5fZmllbGRzID0gbmV3IE1hcCgpOwogICAgIH0KICAgICAKQEAgLTQ0LDcgKzQzLDYgQEAgY2xh
c3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBuYW1lKCkgeyByZXR1
cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47
IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVy
czsgfQogICAgIAogICAgIGdldCBmaWVsZE5hbWVzKCkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmtl
eXMoKTsgfQogICAgIGZpZWxkQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkcy5nZXQo
bmFtZSk7IH0KQEAgLTU4LDMyICs1Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBl
IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgaW5zdGFudGlhdGUo
dHlwZUFyZ3VtZW50cyA9IG51bGwpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9uID0g
bnVsbDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy50eXBlUGFyYW1ldGVyczsK
LSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICBpZiAo
dHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5n
LCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRvIGluc3RhbnRpYXRpb24iKTsKLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbih0
aGlzLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXJzID0gW107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW50aWF0
ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgU3RydWN0VHlwZSh0aGlzLm9yaWdpbiwgdGhpcy5uYW1lLCB0eXBlUGFyYW1l
dGVycyk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7Ci0gICAgICAg
ICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZDsKLSAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb24p
Ci0gICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChzdWJzdGl0dXRpb24p
OwotICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChpbnN0YW50aWF0ZUltbWVk
aWF0ZXMpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChuZXdGaWVsZCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAgIHBvcHVsYXRl
RGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuc2l6
ZSA9PSBudWxsKQpAQCAtOTQsNiArNjYsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlw
ZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3Qg
IiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiB7ICIgKyBBcnJh
eS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CisgICAgICAgIHJldHVybiAi
c3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIEFycmF5LmZyb20odGhpcy5maWVsZHMpLmpv
aW4oIjsgIikgKyAiOyB9IjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCmluZGV4IDVhZjJiZGY5
M2E4MDVmYzA4YzI5ZjFlYTA1MTBjZTI5ZTI4MGE1NmYuLjE3YjYxODQ4YWI1ZDhiYzkyYTc0NTlk
ZThkNjQwMzE0NDAwMTc5YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCkBAIC0zNSwzMSArMzUsMzEgQEAg
ZnVuY3Rpb24gc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSkKICAgICAgICAgbGV0IHNo
YWRlclR5cGU7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMo
Ci0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBl
Lm9yaWdpbiwgImJvb2wiLCBbXSksIFtdLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVy
YXRvcj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sICJib29sIiksCiAgICAgICAgICAgICBb
Ci0gICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5l
dyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSksCi0gICAgICAgICAgICAgICAg
bmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCB0eXBlLm5hbWUsIFtdKSkKKyAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0
eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpLAor
ICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcg
VHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSkKICAgICAgICAgICAgIF0sCiAgICAgICAg
ICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+IEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmln
aHQubG9hZFZhbHVlKCkpOwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAg
ICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5
cGUub3JpZ2luLCAib3BlcmF0b3IudmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdy
aXRlcigpKSwgW10sCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4s
IG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSldLAorICAgICAg
ICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQo
bmV3IFJld3JpdGVyKCkpLAorICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3Jp
Z2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSldLAogICAgICAg
ICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVu
Yyk7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAg
ICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0
KG5ldyBSZXdyaXRlcigpKSwgW10sCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlw
ZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSld
LAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlwZS5iYXNlVHlw
ZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIo
dHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0s
CiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9ncmFtLmFkZChu
YXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVu
YygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBlUmVm
KHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSwgW10sCisgICAgICAgICAgICB0eXBlLm9yaWdp
biwgIm9wZXJhdG9yIGNhc3QiLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSwK
ICAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgdHlwZS5i
YXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hh
ZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gdmFsdWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50
aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwppbmRleCBmNzgxNmYyYjI1MmU5YmE0ZGE5ZWM4
NGRlZjYxMWM1NWU0YmZlM2E5Li4wYWE3NTYwZWE1M2ZlYWJjOTc3OWQyMDhiYzRhZGU2OWIxOWM4
ODQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXpl
U3RydWN0QWNjZXNzb3JzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5
bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKQEAgLTMxLDI4ICszMSw4IEBAIGZ1bmN0aW9uIHN5
bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2YgdHlwZS5maWVsZHMpIHsKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gdHlwZS50eXBlUGFyYW1ldGVycy5tYXAoCi0gICAgICAgICAg
ICAgICAgICAgIHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgVHlwZVBh
cmFtZXRlclJld3JpdGVyKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAg
ICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZUFyZ3VtZW50cygpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5
cGVQYXJhbWV0ZXIudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24gc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEo
bmF0aXZlRnVuYywgaW1wbGVtZW50YXRpb24pCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgbmF0aXZlRnVuYy5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uID0gc3Vic3RpdHV0aW9uID0+
IHsKLSAgICAgICAgICAgICAgICAgICAgbGV0IG5ld1R5cGUgPSB0eXBlLmluc3RhbnRpYXRlKG5h
dGl2ZUZ1bmMudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gewotICAgICAgICAg
ICAgICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGUgPSBzdWJzdGl0dXRpb24ubWFwLmdldCh0eXBl
UGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgc3Vic3RpdHV0
ZSBmb3IgdHlwZSBwYXJhbWV0ZXIgIiArIHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHN1YnN0aXR1dGU7Ci0gICAgICAgICAgICAgICAgICAgIH0pKTsKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHt0eXBlOiBuZXdUeXBlLCBmaWVsZE5hbWU6IGZpZWxk
Lm5hbWV9OwotICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgbmF0aXZlRnVuYy52
aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZpc2l0b3IpID0+
IHsKICAgICAgICAgICAgICAgICAgICAgLy8gVmlzaXRpbmcgdGhlIHR5cGUgZmlyc3QgZW5zdXJl
cyB0aGF0IHRoZSBzdHJ1Y3QgbGF5b3V0IGJ1aWxkZXIgZmlndXJlcyBvdXQgdGhlIGZpZWxkJ3MK
ICAgICAgICAgICAgICAgICAgICAgLy8gb2Zmc2V0LgpAQCAtODksMjMgKzY5LDIxIEBAIGZ1bmN0
aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgZnVuY3Rpb24gY3JlYXRlRmllbGRUeXBlKCkKICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgU3Vic3RpdHV0aW9uKHR5cGUu
dHlwZVBhcmFtZXRlcnMsIHR5cGVQYXJhbWV0ZXJzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGZpZWxkLnR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlUmVmKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0eXBlLCBjcmVh
dGVUeXBlQXJndW1lbnRzKCkpOworICAgICAgICAgICAgICAgIHJldHVybiBUeXBlUmVmLmluc3Rh
bnRpYXRlKHR5cGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBs
ZXQgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAgICAgICBsZXQgc2hhZGVyVHlwZTsKLSAgICAgICAg
ICAgIGxldCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgICAgIGxldCBuYXRpdmVGdW5jOwogCiAg
ICAgICAgICAgICAvLyBUaGUgZ2V0dGVyOiBvcGVyYXRvci5maWVsZAotICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgbmF0aXZl
RnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9w
ZXJhdG9yLiIgKyBmaWVsZC5uYW1lLCBjcmVhdGVGaWVsZFR5cGUoKSwgdHlwZVBhcmFtZXRlcnMs
CisgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUs
IGNyZWF0ZUZpZWxkVHlwZSgpLAogICAgICAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcihm
aWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZVR5cGVSZWYoKSldLCBpc0Nhc3QsIHNoYWRlclR5cGUp
OwogICAgICAgICAgICAgc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEobmF0aXZlRnVuYywgKFtiYXNl
XSwgb2Zmc2V0LCBzdHJ1Y3RTaXplLCBmaWVsZFNpemUpID0+IHsKICAgICAgICAgICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEVQdHIobmV3IEVCdWZmZXIoZmllbGRTaXplKSwgMCk7CkBAIC0xMTUs
OSArOTMsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAg
ICAgICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgICAgIAogICAgICAg
ICAgICAgLy8gVGhlIHNldHRlcjogb3BlcmF0b3IuZmllbGQ9Ci0gICAgICAgICAgICB0eXBlUGFy
YW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5j
ID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0
b3IuIiArIGZpZWxkLm5hbWUgKyAiPSIsIGNyZWF0ZVR5cGVSZWYoKSwgdHlwZVBhcmFtZXRlcnMs
CisgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUg
KyAiPSIsIGNyZWF0ZVR5cGVSZWYoKSwKICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAg
ICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlVHlwZVJl
ZigpKSwKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2lu
LCBudWxsLCBjcmVhdGVGaWVsZFR5cGUoKSkKQEAgLTEzNCwxMCArMTExLDggQEAgZnVuY3Rpb24g
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAgLy8gVGhlIGFu
ZGVyOiBvcGVyYXRvciYuZmllbGQKICAgICAgICAgICAgIGZ1bmN0aW9uIHNldHVwQW5kZXIoYWRk
cmVzc1NwYWNlKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJz
ID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jID0g
bmV3IE5hdGl2ZUZ1bmMoCiAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJh
dG9yJi4iICsgZmllbGQubmFtZSwgbmV3IFB0clR5cGUoZmllbGQub3JpZ2luLCBhZGRyZXNzU3Bh
Y2UsIGNyZWF0ZUZpZWxkVHlwZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRl
cnMsCiAgICAgICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBG
dW5jUGFyYW1ldGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwg
bnVsbCwKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCBhNjQxZDMw
NDY0OTNkYWJjMmQ3NDVlN2QwZWM5NmQwYmRkNDQxYmJjLi40MzdmNDNkZThiNDBjNDBhZjhhMzc3
MjM0MTY2MTZiM2VlNzFiMTZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3Rl
eHByVHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAt
NTUsNyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2ha
b21iaWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRz
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcx
LDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Iklu
dExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48
L3NjcmlwdD4KQEAgLTkwLDkgKzg3LDcgQEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJ
bnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMi
Pjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5OCw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQ
cm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVj
a2VyLmpzIj48L3NjcmlwdD4KQEAgLTEzMSwxMCArMTIyLDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBl
RGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExp
dGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCAyYjA1NjkwMmE2
NmNjMzJkMDRhMWVhNzIwZDI1MWUzZjcwY2Y5NjQ4Li43NmNjYTg3OWFiMmZhZmIxMDU1OWZlY2Y4
ZTg0MzMxNTc2MWUxNzU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAg
LTE4Nyw3ICsxODcsNyBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAg
ICAgICBydW5zIG92ZXIgbXVsdGlwbGUgbGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFp
bCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKQEAgLTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNv
bW1lbnRQYXJzaW5nID0gZnVuY3Rpb24oKSB7CiAKIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rp
b24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1
ZTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1
bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsg
cmV0dXJuIHg7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBs
ZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhp
bnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5
KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDUpXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSks
IC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1By
ZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCAtNSldKSwgLTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01
KV0pLCAtMzUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7
IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDIpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAt
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1w
bGVNYXRoID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9v
KHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1
aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCA3KV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgNDI5NDk2NzI5NCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWlu
dCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgMzUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQg
eCwgdWludCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJv
Z3JhbSwgMildKSwgMyk7CiB9CiAKIHRlc3RzLnVpbnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkg
ewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkg
eyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChw
cm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFt
LCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVp
bnQ4IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtl
VWludDgocHJvZ3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNyldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHBy
b2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwg
NyldKSwgMjU0KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWlu
dDggeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VV
aW50OChwcm9ncmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChw
cm9ncmFtLCA1KV0pLCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4
IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcp
LCBtYWtlVWludDgocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VV
aW50OChwcm9ncmFtLCAyKV0pLCAzKTsKIH0KIAogdGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigp
IHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsg
cmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFt
LCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0
dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNyldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUp
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwg
dHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJl
dHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwg
NSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsg
fSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1
bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7
IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBm
YWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1
YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28o
dWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgZmFsc2UpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4
IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcp
LCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyks
IG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50
OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28o
aW50IHgsIGludCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCA1KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0p
LCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkp
IHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSks
IG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0s
IHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVx
dWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5jdGlvbigpCkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0
cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0gZnVuY3Rpb24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9u
ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQg
eCkgeyByZXR1cm4gIXg7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAwKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsK
ICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7
IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQz
KTsKIH0KIAogdGVzdHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMx
Miw3IEBAIHRlc3RzLnNpbXBsZUdlbmVyaWMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxU
PihUIHgpIHsgcmV0dXJuIHg7IH0KICAgICAgICAgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQo
eCkgKyAxOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRlc3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0
aW9uKCkKQEAgLTMzMSw3ICszMzEsNyBAQCB0ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVz
dHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1bmN0aW9uKCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0
cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA0MildKSwgNDIpOwogfQogCiB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24o
KQpAQCAtMzU2LDcgKzM1Niw3IEBAIHRlc3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7
CiB9CiAKIHRlc3RzLnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2
OSw3IEBAIHRlc3RzLnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAg
IGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlw
ZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVm
ZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigpCkBAIC0zODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZl
cmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVC
dWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAw
KSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChu
ZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5p
bnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0g
NTIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4g
NTIgYnV0IGl0IGNvbnRhaW5zOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2
LDcgQEAgdGVzdHMuc2ltcGxlTWFrZVB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biAmeDsKICAgICAgICAgfQogICAgIGApOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3Vs
dC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpKQpAQCAtNDE4LDcgKzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5
TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIo
MSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4
dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVB
cnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlw
ZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5l
dyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJv
Z3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRB
cnJheUxvYWRJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0
ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBB
cnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxl
dCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChu
ZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAg
ICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBA
IHRlc3RzLmRldmljZUFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVm
ZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChu
ZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAg
ICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7
CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYz
LDEwIEBAIHRlc3RzLnRocmVhZEFycmF5U3RvcmUgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5
UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxP
cmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcg
RUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwg
NjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVm
ZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5
UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVm
ZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBz
dG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9
CkBAIC00ODQsMTAgKzQ4NCwxMCBAQCB0ZXN0cy5kZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24o
KQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlS
ZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dy
YW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBt
YWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVj
dGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEp
XSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1
ZmZlci5nZXQoMCkpOwogfQpAQCAtNTA1LDMyICs1MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlT
dG9yZUludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1
ZS5ib3goCiAgICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2Ui
LCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBF
UHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYg
KGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVl
IHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0g
ICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHBy
b2dyYW0sIC0xMTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlS
ZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAt
MTExKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZm
ZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBs
ZVByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgcHJvdG9jb2wgTXlBZGRhYmxlIHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRv
cisoTXlBZGRhYmxlLCBNeUFkZGFibGUpOwotICAgICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlB
ZGRhYmxlPihUIGEsIFQgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwot
ICAgICAgICB9Ci0gICAgICAgIGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBhZGQoeCwgNzMpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NDUpXSksIDQ1ICsgNzMpOwotfQotCiB0ZXN0cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlv
bigpCiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNjY2LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0
cnVjdCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAg
YnVmZmVyLnNldCgwLCA2Mik7CiAgICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3Vs
dCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1
Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0
cihidWZmZXIsIDApKV0pOwogICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUp
KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0
LnR5cGUpOwogICAgIGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTks
NiBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsgeSArICIgKHggKyAiICsgeCArICIpIik7CiB9
CiAKLXRlc3RzLmdlbmVyaWNTdHJ1Y3RJbnN0YW5jZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAg
VCB4OwotICAgICAgICAgICAgVCB5OwotICAgICAgICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhG
b288aW50PiBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAg
ICAgICAgICAgIHJlc3VsdC54ID0gZm9vLnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxl
dCBzdHJ1Y3RUeXBlID0gVHlwZVJlZi5pbnN0YW50aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9v
IiksIFtwcm9ncmFtLmludHJpbnNpY3MuaW50MzJdKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVC
dWZmZXIoMik7Ci0gICAgYnVmZmVyLnNldCgwLCA2Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7
Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcg
VHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4
ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwotICAgIGxldCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwot
ICAgIGlmICh4ICE9IDI0KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBm
b3IgeDogIiArIHggKyAiICh5ID0gIiArIHkgKyAiKSIpOwotICAgIGlmICh5ICE9IDYyKQotICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsg
IiArIHggKyAiKSIpOwotfQotCiB0ZXN0cy5kb3VibGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmlj
ID0gZnVuY3Rpb24oKQogewogICAgIGRvUHJlcChgCkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMu
cmV0dXJuTnVsbCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAg
ICAgIHRocmVhZCBpbnQqIGZvbygpIHsgcmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQg
cmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCBy
ZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3Vs
dC50eXBlLmlzUHRyKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5v
dCBhIHBvaW50ZXI6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVt
ZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAs
NyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9
CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwog
fQogCkBAIC03ODAsNyArNzM0LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNzk3LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxs
VG9QdHJNb25vbW9ycGhpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwg
W10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAg
ICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgx
MSw3IEBAIHRlc3RzLnJldHVybk51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVhZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxs
OyB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc0FycmF5UmVmKQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1
bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSkKQEAgLTg3Niw3ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5j
ZURlZmF1bHROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
CiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3
ICs4NDQsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlv
bigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2Yg
V1RyYXBFcnJvcik7CiB9CiAKQEAgLTkwNCw3ICs4NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlh
bGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAg
YCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBA
IC05MjEsNyArODc1LDcgQEAgdGVzdHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYg
PSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGlu
c3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBh
c3NOdWxsVG9QdHJQb2x5bW9ycGhpY0FycmF5UmVmID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJu
SW50TGl0ZXJhbFVpbnQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
InVpbnQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsKLSAgICBjaGVja051bWJlcihwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja051bWJl
cihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0
ZXN0cy5yZXR1cm5JbnRMaXRlcmFsRmxvYXQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoImZsb2F0IGZvbygpIHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1i
ZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7Cisg
ICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDQyKTsKIH0KIAogdGVzdHMuYmFkSW50TGl0ZXJhbEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4
OCw3ICs5NDIsNyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAg
YCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwg
MTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIs
IHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBl
ZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVz
dHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1
OSw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAg
IGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAs
IDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2Ui
LCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlw
ZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRl
c3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEw
MjIsNjUgKzk3Niw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9
IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAg
ICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVm
ZmVyLCAwKSldKSwgMTMpOwotfQotCi10ZXN0cy5udWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5j
dGlvbigpCi17Ci0gICAgbGV0IGxlZnQgPSBuZXcgTnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwot
ICAgIGxldCByaWdodCA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVs
bCk7Ci0gICAgaWYgKGxlZnQuZXF1YWxzKHJpZ2h0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0
KTsKLSAgICBpZiAocmlnaHQuZXF1YWxzKGxlZnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlNob3VsZCBub3QgYmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQp
OwotICAgIAotICAgIGZ1bmN0aW9uIGV2ZXJ5T3JkZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsK
LSAgICAgICAgZnVuY3Rpb24gcmVjdXJzZShhcnJheSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBpZiAoIWFycmF5Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2suY2FsbChudWxsLCBvcmRlcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAg
ICBsZXQgbmV4dEFycmF5ID0gYXJyYXkuY29uY2F0KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFy
cmF5LnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgICAgICByZWN1cnNlKG5leHRBcnJheSwgY2Fs
bGJhY2ssIG9yZGVyLmNvbmNhdChbYXJyYXlbaV1dKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIHJlY3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAg
fQotICAgIAotICAgIGZ1bmN0aW9uIGV2ZXJ5UGFpcih0aGluZ3MpCi0gICAgewotICAgICAgICBs
ZXQgcmVzdWx0ID0gW107Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7
ICsraikgewotICAgICAgICAgICAgICAgIGlmIChpICE9IGopCi0gICAgICAgICAgICAgICAgICAg
IHJlc3VsdC5wdXNoKFt0aGluZ3NbaV0sIHRoaW5nc1tqXV0pOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3Jk
ZXIoCi0gICAgICAgIGV2ZXJ5UGFpcihbIm51bGxUeXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJU
eXBlIl0pLAotICAgICAgICBvcmRlciA9PiB7Ci0gICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsK
LSAgICAgICAgICAgIHR5cGVzLm51bGxUeXBlID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2lu
KTsKLSAgICAgICAgICAgIHR5cGVzLnZhcmlhYmxlVHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0
ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAgICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJjb25zdGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZm9vX3QiLCBbXSkpOwotICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoW3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAg
ICAgICAgICAgZm9yIChsZXQgW2xlZnROYW1lLCByaWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAg
ICAgICAgICAgICAgbGV0IGxlZnQgPSB0eXBlc1tsZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAg
bGV0IHJpZ2h0ID0gdHlwZXNbcmlnaHROYW1lXTsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0
ID0gbGVmdC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAg
ICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBv
cmRlciAiICsgb3JkZXIgKyAiIGNhbm5vdCB1bmlmeSAiICsgbGVmdCArICIgd2l0aCAiICsgcmln
aHQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQu
dmVyaWZ5KCkucmVzdWx0KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3Jk
ZXIgIiArIG9yZGVyLm1hcCh2YWx1ZSA9PiAiKCIgKyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2
ZXJpZnkiKTsKLSAgICAgICAgfSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmln
aW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEs
OCArOTg3LDggQEAgdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuICEheDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAog
dGVzdHMuc2ltcGxlUmVjdXJzaW9uID0gZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBA
QCB0ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIChlKSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9CiAKLXRlc3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYg
PSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1
Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vj
b25kOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBU
IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAg
ICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9
IHNlY29uZDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAg
cHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50
QW5kYWJsZSwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4o
VCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4g
cmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5w
cm90b2NvbFBvbHlTaWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmly
c3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4g
aW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIElu
dEFuZDxUPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAg
ICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAg
SW50QW5kPFQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBUKTsKLSAgICAgICAgfQotICAgICAgICBp
bnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0
ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0
IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNl
Y29uZDsKLSAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQs
IFU+IGludEFuZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnRBbmQ8VCwgVT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZp
cnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAg
ICAgICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50
QW5kPFQsIFU+IGludEFuZDxULCBVPihJbnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJk
KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFu
ZChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0
ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwg
MzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0Rv
dWJsZVBvbHlEZWZFeHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZp
cnN0OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAg
ICB9Ci0gICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29u
ZCwgVSB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsK
LSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNl
Y29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRh
YmxlIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwg
VCwgVSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3Qs
IGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGlu
dCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsK
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0
LnRoaXJkOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50
KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0K
LQogdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYApAQCAtMTIyOSw3ICsxMDE3LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dp
bmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSksIDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkK
ICAgICAgICAgewpAQCAtMTI0Miw3ICsxMDMwLDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDcpOwogfQogCiB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcs
MTMgKzEwNDUsMTMgQEAgdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDgpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxz
ZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZF
bHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDkpXSksIDkpOwogfQogCiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0
aW9uKCkKQEAgLTEzMDMsMTMgKzEwOTEsMTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwg
Nik7CiB9CiAKIHRlc3RzLmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEz
MjgsMTMgKzExMTYsMTMgQEAgdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
OSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSks
IDEwKTsKIH0KIAogdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1
LDEzIEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAx
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAg
ICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyAr
MTIwNywxMyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAz
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA2KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
OCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAg
ICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsx
MjM3LDcgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNyldKSwgNik7CiB9CiAKIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAt
MTQ2MiwzOSArMTI1MCw3IEBAIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxNik7Ci19Ci0KLXRlc3RzLnByb3RvY29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGlj
aXQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAg
ICAgICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgc3RydWN0IElu
dEFuZDxULCBVPiB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAg
ICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50
IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3Vs
dC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vj
b25kOwotICAgICAgICAgICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxU
LCBpbnQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBULCBpbnQpOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29u
ZCwgaW50IHRoaXJkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW50
QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25k
ICsgcmVzdWx0LnRoaXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGApOwotICAg
ICAgICAgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAg
ICAgICAgfSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE2KTsKIH0KIAogdGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBm
dW5jdGlvbigpCkBAIC0xNTM3LDcgKzEyOTMsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRp
b24gPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAg
ICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsK
IH0KIAogdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24o
KQpAQCAtMTU0OCw3ICsxMzA0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJz
ZU9yZGVyID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQog
ICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEp
OwogfQogCiB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpA
QCAtMTU1OCw3ICsxMzE0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9
IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUKSB7IHJldHVybiAyOyB9CiAgICAgICAg
IGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAK
IHRlc3RzLmludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3
IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9v
PFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9v
KDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmlj
V2l0aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVy
YXRvciBpbnQoTXlDb252ZXJ0aWJsZVRvSW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9v
PFQ6TXlDb252ZXJ0aWJsZVRvSW50PihUIHgpIHsgcmV0dXJuIGludCh4KTsgfQotICAgICAgICBp
bnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0K
IAogdGVzdHMudWludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMz
Miw3IEBAIHRlc3RzLnVpbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50
IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJu
IGZvbyg0MnUpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxH
ZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb1VpbnQgewotICAgICAgICAg
ICAgb3BlcmF0b3IgdWludChNeUNvbnZlcnRpYmxlVG9VaW50KTsKLSAgICAgICAgfQotICAgICAg
ICB1aW50IGZvbzxUOk15Q29udmVydGlibGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsg
fQotICAgICAgICB1aW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwg
NDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwg
W10pLCAzNDc4KTsKIH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0
aW9uKCkKQEAgLTE2MDksNyArMTM0MSw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lm
aWMgPSBmdW5jdGlvbigpCiAgICAgICAgIFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAg
ICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKGludCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSks
IDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3
ICsxMzU2LDcgQEAgdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZvbzw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRl
c3RzLmJyZWFrID0gZnVuY3Rpb24oKQpAQCAtMTY0MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgs
OCArMTM5MCw4IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgCiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAxMCldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwg
MTkpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAg
IGludCBmb28oaW50IHgpCkBAIC0xNjk1LDcgKzE0MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHBy
b2dyYW0gPSBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgICAg
IHsKQEAgLTE3MDUsNyArMTQzNyw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0
Niw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgp
ID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1
LDcgQEAgdGVzdHMuY29udGludWUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDE4KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAg
ICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9X
aGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3
ODIsNyArMTUxNCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGlu
dCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hp
bGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwog
fQogCiB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVz
dHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAz
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHBy
b2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0x
ODI3LDkgKzE1NTksOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50
IHgpCiAgICAgICAgIHsKQEAgLTE4NDEsOSArMTU3Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAK
ICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBA
QCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3
MiwxMSArMTYwNCwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEw
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTg4OSwxMSArMTYyMSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhp
bnQgeCkKICAgICAgICAgewpAQCAtMTkwNywxMSArMTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAg
ICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0
cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAg
ICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5
NTAsMTEgKzE2ODIsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0Zh
aWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpA
QCAtMTk3MywxMSArMTcwNSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0
ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRl
c3RzLmNoYWluQ29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0
Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBb
bWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJp
YyA9IGZ1bmN0aW9uKCkKQEAgLTIwMTUsNyArMTc0Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJngpOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMzcpXSksIDM3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7
CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcg
QEAgdGVzdHMuY2hhaW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9v
KCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21h
a2VJbnQocHJvZ3JhbSwgNDY1NyldKSwgNDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3
bHlWYWxpZCA9IGZ1bmN0aW9uKCkKQEAgLTIwNjMsNyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3Ry
dWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3
IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5l
dyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJU
eXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwg
bmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERl
dmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIwODgsNyArMTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0
RGV2aWNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0
ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0
cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZp
Y2UgPSBmdW5jdGlvbigpCkBAIC0yMTEzLDg5ICsxODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0
cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVC
dWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQ
dHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90
b2NvbEV4dGVuZHMgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyop
OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2
b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9v
Pih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHApOwotICAgICAgICB9
Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAg
dm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCAr
IDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAg
ICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRo
aW5neShpbnQgYSkKLSAgICAgICAgewotICAgICAgICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAg
ICByZXR1cm4gYTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGhpbmd5IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0Mild
KSwgNjQyICsgNzQzICsgOTEpOwotfQotCi10ZXN0cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5j
dGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBG
b28gewotICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAg
ICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmF6IDogRm9vLCBCYXIgewotICAgICAgICAgICAg
dm9pZCBiYXoodGhyZWFkIEJheiopOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZv
bz4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAg
fQotICAgICAgICB2b2lkIGJ1eno8VDpCYXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJl
YWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1
enoocCk7Ci0gICAgICAgICAgICBiYXoocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28o
dGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAg
ICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAg
ICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFk
IGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9
Ci0gICAgICAgIGludCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHh1enoo
JmEpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NDIpXSksIDY0MiArIDc0MyArIDkxICsgMzkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQ
dHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVz
UGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIyMDcsNyArMTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQ
bHVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsK
IH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcg
KzE4NjgsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiArK3g7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBs
dXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtMjIzMCw3ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBs
dXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1
KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0
MSw3ICsxODkxLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHgrKzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY0KV0pLCA2NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVm
aXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQpAQCAtMjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJl
Zml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0
KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigp
CkBAIC0yMjY0LDcgKzE5MTQsNyBAQCB0ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIC0teDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0
ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBA
IHRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQg
PSBmdW5jdGlvbigpCkBAIC0yMjg3LDcgKzE5MzcsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51
c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LS07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSks
IDY0KTsKIH0KIAogdGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0
OSw3IEBAIHRlc3RzLnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNS
ZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzEwLDcgKzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxz
UmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDM4NSldKSwgMzg1ICsgNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9u
KCkKQEAgLTIzMjIsNyArMTk3Miw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQog
CiB0ZXN0cy5taW51c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3
IEBAIHRlc3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHggLT0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSks
IDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50
aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzNDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVz
RXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4
NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9u
KCkKQEAgLTIzNTYsNyArMjAwNiw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHggKj0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1
ICogNDIpOwogfQogCiB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcg
KzIwMTgsNyBAQCB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4
NSAvIDQyKSB8IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAK
IHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3
IEBAIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiB4IC89IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0p
LCAoMzg1IC8gNDIpIHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsK
IH0KIAogdGVzdHMudHdvSW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAs
NyBAQCB0ZXN0cy50d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biA0MiA9PSA0MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAK
IHRlc3RzLnVuaWZ5RGlmZmVyZW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIx
MjksNyBAQCB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0
MSAvIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVu
U3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcg
QEAgdGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEBhcnJheSk7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDQyICogNSArIDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0
ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3
Niw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXSAqIDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDQ5OCArIDE5ICogMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDQ5OCArIDE5ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2Ny
aXB0U3RydWN0QW5kRG9TdG9yZXMgPSBmdW5jdGlvbigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0
ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5
OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFu
ZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24oKQpAQCAtMjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3Zl
cnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBiYXIoJmZvbyk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
NDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50
ZXJzSW5jb3JyZWN0bHkgPSBmdW5jdGlvbigpCkBAIC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5t
YWtlQXJyYXlSZWZGcm9tTG9jYWwgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFy
KEB4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VB
cnJheVJlZkZyb21Qb2ludGVyID0gZnVuY3Rpb24oKQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVz
dHMubWFrZUFycmF5UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gYmF6KCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3Rz
Lm1ha2VBcnJheVJlZkZyb21BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3
IEBAIHRlc3RzLnNpbXBsZUxlbmd0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAo
QGFycmF5KS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0K
IAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0y
Njk0LDcgKzIzNDQsNyBAQCB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0
aEZhaWwgPSBmdW5jdGlvbigpCkBAIC0yNzkzLDcgKzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0
ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksIDc4MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA3ODA0KTsKIH0KIAogdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rp
b24oKQpAQCAtMjgxOCw3ICsyNDY4LDcgQEAgdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGZvby54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgNzgwNCk7CiB9CiAKIHRlc3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0y
OTAzLDM1NCArMjU1MywxMDMgQEAgdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBmb28uc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtd
LCBbXSksIDEgKyAyICsgMyArIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtd
KSwgNTMgKyA5MzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFpHZXR0ZXIiLCBbXSwgW10pLCAxICsgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSAr
IDIgKyAzICogNSArIDQpOwotfQotCi10ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15
Qml0bWFza2FibGUgOiBFcXVhdGFibGUgewotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVy
YXRvciYoTXlCaXRtYXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1h
c2thYmxlIG9wZXJhdG9yfChNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAg
ICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3J+KE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAg
TXlCaXRtYXNrYWJsZSBvcGVyYXRvcjw8KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAg
ICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcj4+KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAg
ICAgICAgb3BlcmF0b3IgTXlCaXRtYXNrYWJsZShpbnQpOwotICAgICAgICB9Ci0gICAgICAgIFQg
bWFza0ZvckJpdEluZGV4PFQ6TXlCaXRtYXNrYWJsZT4odWludCBpbmRleCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIFQoMSkgPDwgaW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9v
bCBvcGVyYXRvcltdPFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGJvb2wodmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4o
aW5kZXgpKTsKLSAgICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJs
ZT4oVCB2YWx1ZSwgdWludCBpbmRleCwgYm9vbCBiaXQpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IFQgbWFzayA9IG1hc2tGb3JCaXRJbmRleDxUPihpbmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0
KQotICAgICAgICAgICAgICAgIHZhbHVlIHw9IG1hc2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgdmFsdWUgJj0gfm1hc2s7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0g
ICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gMzI7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgodWludCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9
Ci0gICAgICAgIGludCB0ZXN0SW50U2V0Qml0MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dCBmb287Ci0gICAgICAgICAgICBmb29bM10gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZv
bzsKLSAgICAgICAgfQotICAgICAgICBib29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAg
ewotICAgICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vWzVdOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdl
dEJpdDEoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0
dXJuIGZvb1sxXTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAgaW50IHJlc3Vs
dDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgICAgIGlmIChmb29baV0pCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCsr
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgdGVzdFVpbnRTd2FwQml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlu
dCBmb28gPSA0MjsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGgg
LyAyOyArK2kpIHsKLSAgICAgICAgICAgICAgICBib29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAg
ICAgICAgICBmb29baV0gPSBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAg
ICBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXSA9IHRtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAg
ICAgICB1aW50IGY7Ci0gICAgICAgICAgICB1aW50IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3Bl
cmF0b3IgRm9vKHVpbnQgZiwgdWludCBnKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVz
dWx0OwotICAgICAgICAgICAgcmVzdWx0LmYgPSBmOwotICAgICAgICAgICAgcmVzdWx0LmcgPSBn
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3Bl
cmF0b3IuaChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaW50KChmb28u
ZiAmIDB4ZmZmZikgfCAoKGZvby5nICYgMHhmZmZmKSA8PCAxNikpOwotICAgICAgICB9Ci0gICAg
ICAgIEZvbyBvcGVyYXRvci5oPShGb28gZm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGZvby5mICY9IH4weGZmZmZ1OwotICAgICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1
ZSkgJiAweGZmZmY7Ci0gICAgICAgICAgICBmb28uZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAg
IGZvby5nIHw9ICh1aW50KHZhbHVlKSA+PiAxNikgJiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1
cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAg
ICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0g
ICAgICAgICAgICBmb28uZyA9IDM3OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwg
Zm9vLmgubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAg
ICAgICAgICAgIHJldHVybiBpbnQoZm9vLmYgKyBmb28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAg
c3RydWN0IEJhciB7Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIEZvbyBiOwotICAg
ICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5jKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBGb28odWludChiYXIuYS5oKSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAg
IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yLmM9KEJhciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGJhci5hLmggPSBpbnQoZm9vLmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9
IGludChmb28uZyk7Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAg
IGludCB0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBC
YXIgYmFyOwotICAgICAgICAgICAgYmFyLmEuZiA9IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0g
MjsKLSAgICAgICAgICAgIGJhci5iLmYgPSAzOwotICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0g
ICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQot
ICAgICAgICAgICAgICAgIGJhci5jLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBp
bnQoYmFyLmEuZiArIGJhci5hLmcgKyBiYXIuYi5mICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJ
bnRTZXRCaXQzIiwgW10sIFtdKSwgOCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdEludFNldEdldEJpdDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIs
IFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RVaW50U3VtQml0cyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0
MDkyODYxNDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBb
XSwgW10pLCA0MzY5Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdKSwgMSArIDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSks
IDkzMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
WlNldHRlciIsIFtdKSwgNTMgKyA5MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSks
IDEgKyAyICsgMyAqIDUgKyA0KTsKIH0KIAogdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11
bGF0aW9uU2ltcGxlID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
ICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAg
IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBpbmRleCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAg
ICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAg
cmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28g
Zm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgc3VtKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGludCByZXN1bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBp
LS07KQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmb29baV07Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAg
Rm9vWzZdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJh
ciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwot
ICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9
Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAg
ICAgICAgIHJldHVybiBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXIgYmFyKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAo
dWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3Vt
KGJhcltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAg
IHN0cnVjdCBCYXogewotICAgICAgICAgICAgQmFyWzVdIGFycmF5OwotICAgICAgICB9Ci0gICAg
ICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJheiBv
cGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBi
YXo7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHN1bShCYXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7Ci0gICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJh
eikKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0t
OykgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0t
OykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5n
dGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQo
aSArIGogKyBrKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBCYXogYmF6OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgcmV0
dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRl
VmFsdWVzQW5kU3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAg
ICAgIHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0
aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsg
ai0tOykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5n
dGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAgICAgICBiYXpbaV1bal1ba10gKj0gaW50KGsp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBz
dW0oYmF6KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVl
c011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRT
dWJzY3JpcHRMVmFsdWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBU
WzddIGFycmF5OworICAgICAgICAgICAgaW50WzddIGFycmF5OwogICAgICAgICB9Ci0gICAgICAg
IFQgb3BlcmF0b3JbXTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4KQorICAgICAgICBpbnQgb3Bl
cmF0b3JbXShGb28gZm9vLCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gZm9vLmFycmF5W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3Jb
XT08VD4oRm9vPFQ+IGZvbywgdWludCBpbmRleCwgVCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJh
dG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKICAgICAgICAgewogICAgICAg
ICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGZvbzsK
ICAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQor
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBwcm90b2Nv
bCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUs
IE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxU
PiBmb28pCisgICAgICAgIGludCBzdW0oRm9vIGZvbykKICAgICAgICAgewotICAgICAgICAgICAg
VCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAo
dWludCBpID0gZm9vLmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9v
W2ldOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1
Y3QgQmFyPFQ+IHsKLSAgICAgICAgICAgIEZvbzxUPls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0
IEJhciB7CisgICAgICAgICAgICBGb29bNl0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oQmFyPFQ+IGJhcikKKyAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgoQmFyIGJhcikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5s
ZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJh
ciwgdWludCBpbmRleCkKKyAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRl
eCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAg
ICAgIH0KLSAgICAgICAgQmFyPFQ+IG9wZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5k
ZXgsIEZvbzxUPiB2YWx1ZSkKKyAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQg
aW5kZXgsIEZvbyB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4
XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGJhcjsKICAgICAgICAgfQotICAgICAgICBU
IHN1bTxUOk15QWRkYWJsZT4oQmFyPFQ+IGJhcikKKyAgICAgICAgaW50IHN1bShCYXIgYmFyKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQg
PSAwOwogICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAg
ICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmFyW2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8
VD5bNV0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBCYXogeworICAgICAgICAgICAgQmFyWzVdIGFy
cmF5OwogICAgICAgICB9Ci0gICAgICAgIEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXos
IHVpbnQgaW5kZXgpCisgICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwogICAgICAg
ICB9Ci0gICAgICAgIEJhejxUPiBvcGVyYXRvcltdPTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4
LCBCYXI8VD4gdmFsdWUpCisgICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGlu
ZGV4LCBCYXIgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0g
PSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBiYXo7CiAgICAgICAgIH0KLSAgICAgICAgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oQmF6PFQ+IGJheikKKyAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGgoQmF6IGJheikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5s
ZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXop
CisgICAgICAgIGludCBzdW0oQmF6IGJheikKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1
bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBp
ID0gYmF6Lmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltp
XSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIE15Q29udmVydGlibGVGcm9tVWludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZl
cnRpYmxlRnJvbVVpbnQodWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFs
dWFibGUgOiBNeUFkZGFibGUsIE15Q29udmVydGlibGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9p
ZCBzZXRWYWx1ZXM8VDpTZXRWYWx1YWJsZT4odGhyZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2
b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIGZv
ciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVp
bnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTspIHsKICAgICAgICAgICAgICAgICAgICAgZm9y
ICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAg
ICAgICAgKCpiYXopW2ldW2pdW2tdID0gVChpICsgaiArIGspOworICAgICAgICAgICAgICAgICAg
ICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5k
U3VtKCkKICAgICAgICAgewotICAgICAgICAgICAgQmF6PGludD4gYmF6OworICAgICAgICAgICAg
QmF6IGJhejsKICAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKICAgICAgICAgICAgIHJldHVy
biBzdW0oYmF6KTsKICAgICAgICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZh
bHVlc0FuZFN1bSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAg
ICAgICAgIEJheiBiYXo7CiAgICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAg
ICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3Ig
KHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGotLTspIHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRl
c3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0i
LCBbXSwgW10pLCAxNTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1
ZXNBbmRTdW0iLCBbXSksIDE1NzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7
CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEw
IEBAIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAm
IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFt
LCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0s
IGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3Rz
LmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMyODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9v
bEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChw
cm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5j
dGlvbigpCkBAIC0zMzAxLDEwICsyNzAwLDEwIEBAIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRy
dWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMx
NSw4ICsyNzE0LDggQEAgdGVzdHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0K
IAogdGVzdHMuaW50Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0
ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3
KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSks
IDQyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1
KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIC03KV0pLCAtNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4
NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwx
MCArMjc0MCwxMCBAQCB0ZXN0cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChw
cm9ncmFtLCA0MildKSwgNjU1MzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9n
cmFtLCAtNyldKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1
NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRC
aXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzU1LDEwICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhv
ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJv
Z3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIp
XSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwx
MCArMjc2OCwxMCBAQCB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpXSksIC02NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEp
XSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0y
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDY1NTM1KV0pLCAtNjU1MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOwogfQogCiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlv
bigpCkBAIC0zMzgzLDEwICsyNzgyLDEwIEBAIHRlc3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChw
cm9ncmFtLCA3KV0pLCAxMjgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFt
LCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCAtMzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQog
CiB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRl
c3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0p
LCAxNjM4Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAt
MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1
MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0
MTEsMTAgKzI4MTAsMTAgQEAgdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCAtNyldKSwgNDI5NDk2NzI4OSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0
MjUsMTAgKzI4MjQsMTAgQEAgdGVzdHMudWludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSks
IG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVu
Y3Rpb24oKQpAQCAtMzQzOSwxMCArMjgzOCwxMCBAQCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rp
b24oKQpAQCAtMzQ1MywxMCArMjg1MiwxMCBAQCB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0
Mjk0OTAxNzYwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDApXSksIDQyOTQ5NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNjU1MzUpXSksIDQyOTQ5MDE3NjApOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSld
KSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50
TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzQ2NywxMCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNo
aWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEy
OCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2
MjE0MCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQy
OTQ5NjcyNjQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSks
IDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVp
bnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNDgxLDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRS
U2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
MCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2
MzgzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0
MjE3NzI3KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAw
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0
QW5kID0gZnVuY3Rpb24oKQpAQCAtMzQ5NSwxMCArMjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFu
ZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEp
OwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwg
NDIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwg
MjQ5KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMild
KSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwor
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0
ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0
cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dy
YW0sIDQyKV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9n
cmFtLCAtNyldKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9n
cmFtLCA4NTczMildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dy
YW0sIDcpXSksIDcpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDQyKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03
KV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIp
XSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywx
MCArMjkyMiwxMCBAQCB0ZXN0cy51aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
LTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEp
LCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDIxMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtl
VWludDgocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgo
cHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rp
b24oKQpAQCAtMzUzNywxMCArMjkzNiwxMCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAxKV0pLCAyNTQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7
Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCld
KSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1
NTM1KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
MCldKSwgMjU1KTsKIH0KIAogdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUx
LDEwICsyOTUwLDEwIEBAIHRlc3RzLnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIpOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VV
aW50KHByb2dyYW0sIDIpXSksIDI1Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChw
cm9ncmFtLCA1KV0pLCAyMjQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1
LDEwICsyOTY0LDEwIEBAIHRlc3RzLnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1
NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
LTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMildKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMp
XSksIDApOwogfQogCiB0ZXN0cy5mbG9hdE1hdGggPSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICsz
MDIzLDE3IEBAIHRlc3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBmbG9hdCh4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10p
LCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTAiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcu
NSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtd
KSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vOSIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTAiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tG
YWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGJhcihpbnQgeCkK
QEAgLTM3MjksNyArMzEyOCw3IEBAIHRlc3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4geC5yZWFsICsgeC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2
OCwxNCArMzE2NywxNCBAQCB0ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZSB8fCBmYWxzZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
XSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbXSwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtd
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7
CiB9CiAKIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2
LDEwICszMjE1LDEwIEBAIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigp
CiAgICAgICAgIH0KICAgICBgKTsKIAotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kRmFsc2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIs
IFtdLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYW5kVHJ1ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJhbmRGYWxzZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJvclRydWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3Rz
LnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKQEAgLTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5
cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZb
MF07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlw
ZXMgPSBmdW5jdGlvbigpCkBAIC00MDg0LDI0ICszNDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0
b3JzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28yIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwg
W10pLCBmYWxzZSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vdSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvb3UyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdLCBbXSksIDUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vdTYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10p
LCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
ZjQiLCBbXSwgW10pLCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb29mNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y2IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwg
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTIiLCBbXSksIDQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSks
IHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b3U2IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2YiLCBbXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mMiIsIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIs
IFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVu
Y3Rpb24oKQpAQCAtNDEyMSw3ICszNTIwLDcgQEAgdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0
cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1
Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKQEAgLTQxMzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3Rh
bnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3Rz
LnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCkBAIC00MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNp
bXBsZUVudW0gPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKGludERlYXRoKCkp
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwg
W10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RO
b3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJO
b3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSks
IDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFt
aW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10p
LCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwg
W10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJh
Y2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJk
cyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwg
W10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1
YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdh
ciIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIs
IFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRl
cmFsIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3
YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAy
KTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0
aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0g
ZnVuY3Rpb24oKQpAQCAtNDMxNywxMCArMzcxNiwxMCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZh
bHVlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSks
IC00Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2Fy
IiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVu
dW1XaXRob3V0WmVybyA9IGZ1bmN0aW9uKCkKQEAgLTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMu
ZW51bVdpdGhTb21lTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IEZvby5EZWF0aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImRlYXRoIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEp
OwogfQogCiB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpA
QCAtNDM5MSw4ICszNzkwLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9
IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsg
fQogICAgICAgICBpbnQgdGVzdFkoKSB7IHJldHVybiBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhw
ckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5l
bnVtQ29uc3RleHByR2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBmb28oZik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSks
IDEpOwogfQogCiB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBA
QCB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
CisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAg
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMi
LCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBb
XSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcw
LDkgKzM4NjksOSBAQCB0ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHF1aXguejsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtd
KSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW10pLCA0KTsKIH0KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdElu
dEJhc2UgPSBmdW5jdGlvbigpCkBAIC00NTk3LDMyICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRo
RXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnRE
ZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwg
W10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJk
ZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwg
W10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RB
bm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBb
XSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwg
W10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtd
KSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10p
LCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRG
YW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhC
YWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVF
cXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBs
ZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIs
IFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSks
IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
VmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10p
LCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRX
YXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIs
IFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNl
ID0gZnVuY3Rpb24oKQpAQCAtNDc0NywzMiArNDE0NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRC
YXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwg
W10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVx
dWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVx
dWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFt
aW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
clZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1
ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBb
XSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ1aW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwg
W10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1
aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBb
XSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RO
b3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidWludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0
aCIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBb
XSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
clZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFs
IiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJk
cyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7
CiB9CiAKIHRlc3RzLmVudW1GbG9hdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcs
NyBAQCB0ZXN0cy5lbXB0eVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0
NjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1
Y3RCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDg1Nyw5ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dp
dGNoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNjkpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0
cy5leGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBA
QCB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAi
fSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IDB4ZmY7ICsraSkKLSAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUp
OworICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKIH0KIAogdGVzdHMubm90UXVp
dGVFeGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBA
QCB0ZXN0cy5ub3RRdWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rp
b24oKQogICAgIHRleHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7
CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9n
cmFtLCBpKV0pLCBpICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7
CiB9CiAKIHRlc3RzLnN3aXRjaEZhbGxUaHJvdWdoID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0
MzEyLDkgQEAgdGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3
KV0pLCAyNyArIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2
MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDAp
XSksIDQ5KTsKIH0KIAogdGVzdHMuc3dpdGNoQnJlYWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkg
KzQzMzcsOSBAQCB0ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSks
IDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCld
KSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYy
NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4
aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBAIC00OTY2LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dp
dGNoQnJlYWtFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAy
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9n
cmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28i
LCAiQyIpXSksIDQ5KTsKIH0KIAogdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0
aXZlID0gZnVuY3Rpb24oKQpAQCAtNTAyMSw5ICs0NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJy
ZWFrTm90UXVpdGVFeGhhdXN0aXZlV2l0aERlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJG
b28iLCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9v
IiwgIkEiKV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0o
cHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVT
dHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC01MDcyLDcgKzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJl
Y3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVyc0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQog
ICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkg
PT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01
MTEpLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5
OCw3ICs0NDk3LDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+
Zm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxp
bmtlZExpc3QgPSBmdW5jdGlvbigpCkBAIC01MTE5LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRM
aXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9p
bnRlciA9IGZ1bmN0aW9uKCkKQEAgLTUxNDIsNyArNDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1Bv
aW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5h
cnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigpCkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0
cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMp
OwogfQogCiB0ZXN0cy5wb2ludGVyR2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0
NSw2IEBAIHRlc3RzLnNldHRlcldpdGhNYXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsK
IH0KIAotdGVzdHMub3BlcmF0b3JXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgRm9vIG9wZXJhdG9yKzxUPihGb28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9
IGEueCArIGIueDsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19
Ci0KLXRlc3RzLm9wZXJhdG9yV2l0aG91dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0
aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28g
ewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhG
b28gYSwgRm9vIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAg
ICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBh
OwotICAgICAgICAgICAgYS54ID0gNjQ1OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAg
ICBiLnggPSAtMzU7Ci0gICAgICAgICAgICByZXR1cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCA2NDUgLSAzNSk7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVy
cmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAg
ICAgaW50IHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50
IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAg
ICAgICAgICByZXN1bHQueCA9IHg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IpOwotfQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRG
cm9tUmV0dXJuVHlwZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAg
ICAgICAgcHJvdG9jb2wgQmFyYWJsZSB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFy
YWJsZSosIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiBy
ZXN1bHQsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0
KHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICBvcGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZv
bykKLSAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJl
c3VsdCwgZm9vLngpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAg
ICAgIGZvby54ID0gNzU7Ci0gICAgICAgICAgICBmbG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAg
ICAgICAgIHJldHVybiBpbnQoeCAqIDEuNSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7
Ci19Ci0KIHRlc3RzLmluY1dyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAg
Y2hlY2tGYWlsKApAQCAtNTgyMyw3ICs1MTM0LDcgQEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dy
b25nID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHguZm9vOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFy
Z3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAgLTU4OTcsNyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0
aEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0
dGVyID0gZnVuY3Rpb24oKQpAQCAtNjA4Myw3ICs1Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldp
dGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geFs2NjZdOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldp
dGhXcm9uZ051bWJlck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcg
QEAgdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiAoQHgpW2Zsb2F0KC0xKV07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMp
OwogfQogCiB0ZXN0cy5kZXZpY2VQdHJQdHIgPSBmdW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUx
OCw2IEBAIHRlc3RzLmNvbnN0YW50UHRyUHRyID0gZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50
ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiBpbnQzMiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0g
LTEpOwogfQogCi10ZXN0cy5wb2ludGVySW5kZXhHZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24o
KQotewotICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oJHth
ZGRyZXNzU3BhY2V9IEZvbyosIHVpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwg
dWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIGApLAotICAgICAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUg
Z2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25l
SW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAg
ICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShC
YXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFy
LCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0
ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0dGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RM
b25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChgCi0g
ICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVp
bnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAg
ICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQs
IGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJX
aXRoTWlzbWF0Y2hlZFR5cGVJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0g
ICAgICAgICAgICAgICAgZmxvYXQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAg
ICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1
aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWlu
dCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0
ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9w
ZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXSgpOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJh
ciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2
YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBj
aGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBG
b28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10o
QmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJl
ciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
ZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oRm9vLCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJl
dHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJz
IikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExl
bmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAg
ICBpbnQgb3BlcmF0b3JbXT0oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBC
YXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQy
OyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJu
IEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykg
bm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAg
ICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsg
cmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQp
IHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBh
cmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXT0oRm9vLCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7
IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0K
LSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFy
KCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ig
JiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9
IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28sIGlu
dCwgaW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0K
LSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAg
ICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYg
ZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0x
KTsKLX0KLQotdGVzdHMubG9uZUluZGV4U2V0dGVyUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlv
bigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltd
PSh0aHJlYWQgRm9vKiBwdHIsIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7
IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50
KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZv
ciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0
dGVyT3ZlcmxvYWRJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAg
ICAgICAgICAgaW50IG9wZXJhdG9yW10oaW50LCBGb28pOwotICAgICAgICAgICAgICAgIEZvbyBv
cGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJl
dHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7
IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5h
bWVkIG9wZXJhdG9yW109IHdpdGggYXJndW1lbnRzIEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0K
LXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBm
dW5jdGlvbigpCi17Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKEZvbywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0
b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9
Ci0gICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
IGApOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBm
dW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2Nv
bCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyog
Zm9vLCB1aW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzQyXTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwg
dWludCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAg
ICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGJhcihCYXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDEyMzQpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVu
dHNJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
dGhyZWFkIGludCogb3BlcmF0b3ImW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0
cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQg
QmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0g
MTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNz
YWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVk
IGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVh
ZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3Im
W10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50
IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
ICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9y
IG9wZXJhdG9yJltdIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFk
IGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50
KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3Vs
dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFy
YW1ldGVycyBmb3Igb3BlcmF0b3ImW10iKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJE
b2VzbnRSZXR1cm5Qb2ludGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgICAgIGludCBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVy
biAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2Yg
YW5kZXIgaXMgbm90IGEgcG9pbnRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRv
ZXNudFRha2VSZWZlcmVuY2VJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0g
ICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
ICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5k
ZXIgaXMgbm90IGEgcmVmZXJlbmNlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0
aEFycmF5UmVmSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBv
cGVyYXRvciZbXSh0aHJlYWQgRm9vW10gYXJyYXksIGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgYmFyPFQ6Rm9vPih0aHJlYWQgVFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiB4WzEuNV07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4g
JnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgQmFyIHg7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgMTIzNCk7Ci19Ci0KIHRlc3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlv
bigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAg
dGVzdHMuYW5kUmV0dXJuZWRBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biAqcHRyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzNTQpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVz
dCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4Nzkx
ODk1M2E1YjFkNWUzNWU4NTBlMzMwZjM4OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNi
ZGE4MWZjY2NjMWVmYjQ0YzZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMK
QEAgLTI1LDcgKzI1LDYgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5v
ZGUgewotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtp
bmQoKSB7IHJldHVybiBUeXBlOyB9CiAgICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBnZXQgaXNBcnJheSgpIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBj
bGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBp
bmhlcml0cyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNI
ZWlyKHRoaXMpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0
dXJuIHRoaXMudmlzaXQobmV3IEluc3RhbnRpYXRlSW1tZWRpYXRlcygpKTsgfQotICAgIAogICAg
IC8vIEhhdmUgdG8gY2FsbCB0aGVzZSBvbiB0aGUgdW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9y
QW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVHlwZURlZi5qcwppbmRleCA2YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFi
MjdjMTQzLi5kN2IwMGNkMmM3M2ViM2E1YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAog
InVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3Ry
dWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHR5cGUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0
aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAg
ICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90
eXBlID0gdHlwZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMu
X29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdl
dCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAg
Z2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlz
LnR5cGVQYXJhbWV0ZXJzICsgIj4gPSAiICsgdGhpcy50eXBlOworICAgICAgICByZXR1cm4gInR5
cGVkZWYgIiArIHRoaXMubmFtZSArICIgPSAiICsgdGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4
IGE4MWVhYjQyZDk0OGZjYTNlOTMwYzY4NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1
OTFkZmYyMmQwYTY1YTM1NDliOGNjZTAxZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2ZXIuanMKQEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5
cGVEZWZSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQog
ICAgIHsKICAgICAgICAgdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAg
ICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmIChu
b2RlLnR5cGUgaW5zdGFuY2VvZiBUeXBlRGVmKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZp
Y2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJh
bWV0ZXJzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAh
PSBub2RlLnR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoImFyZ3VtZW50L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUg
YmVlbiBjYXVnaHQgZWFybGllcikiKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8IG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAg
bm9kZS50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBl
LnR5cGVQYXJhbWV0ZXJzW2ldKTsKLSAgICAgICAgICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVz
dWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwotICAgICAgICAgICAgICAgIGlmICgh
dmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8g
YSB0eXBlIGRlZmluaXRpb24gdmlvbGF0ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJp
ZmljYXRpb25SZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBsZXQgbmV3VHlwZSA9IG5vZGUudHlwZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5v
ZGUudHlwZS50eXBlUGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAg
ICAgICBuZXdUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFu
ZEFyZ3VtZW50cyhuZXdUeXBlLCBbXSk7CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0
KHRoaXMpOworICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJh
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7
Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwg
bm9kZS50eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0
VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJs
ZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTcz
MDg2MTQxZTU2ZDY5M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2Vm
N2JiOGYwOWIwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5
cGVSZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpA
QCAtMjUsNjkgKzI1LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5k
cyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisg
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
ICAgICAgICAgdGhpcy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9
IHR5cGVBcmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAg
ewotICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3Vt
ZW50cykKKyAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAg
cmV0dXJuIHR5cGU7CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0
LnR5cGUgPSB0eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBz
dGF0aWMgaW5zdGFudGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFu
dGlhdGUodHlwZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBl
Lm9yaWdpbiwgdHlwZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlw
ZSA9IHR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmln
aW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRo
aXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVB
cmd1bWVudHM7IH0KICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5
cGUudW5pZnlOb2RlOwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMu
dHlwZS51bmlmeU5vZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1
ZmZlciwgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShi
dWZmZXIsIG9mZnNldCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZh
dWx0IHZhbHVlIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlz
LnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAK
ICAgICBnZXQgc2l6ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5s
ZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93
IG5ldyBFcnJvcigiQ2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7Cisg
ICAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJp
bWl0aXZlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93
IG5ldyBFcnJvcigiQ2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlz
IHByaW1pdGl2ZTogIiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0
aXZlOwogICAgIH0KICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1
bWVudHMpCisgICAgc2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51
bGw7CiAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVu
dHMgPSB0eXBlQXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRp
b25Db250ZXh0LCBvdGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5k
cyBUeXBlIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5
cGUudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3Ro
ZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBA
IC0xMDksOSArOTIsNyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAg
ICAgICBpZiAoIXRoaXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJp
bmcoKTsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuIHRoaXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRo
aXMudHlwZUFyZ3VtZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJp
YWJsZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUw
ZGVjOTY3MmZhMGI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5k
cyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsK
LSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAg
ICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsK
LSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQot
ICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgp
IHsgcmV0dXJuIHRoaXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5p
c1ByaW1pdGl2ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYg
KCFwcm90b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAg
aWYgKCF0aGlzLnByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCBy
ZWFzb246ICJUeXBlIHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9j
b2wifTsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwot
ICAgIH0KLSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90
aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBl
VmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAg
IAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhl
cik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0
KQotICAgIHsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQo
dGhpcyk7Ci0gICAgICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0
aCBtdXN0IGJlIGEgdHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgot
ICAgICAgICAvLyB0aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5z
dGFuY2VvZiBUeXBlVmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNl
LCByZWFzb246ICJUeXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUg
cGFzc2VkIHRvIG5vbi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307
Ci0gICAgICAgIAotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlm
IChyZWFsVGhpcy5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFs
c2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIg
Y2Fubm90IGJlIHBhc3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29s
ICIgKyByZWFsVGhpcy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1
ZX07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3Rv
Y29sLmluaGVyaXRzKHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVz
dWx0KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2Nv
bCAiICsgdGhpcy5wcm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVh
bFRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiAr
IHJlYWxUaGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlv
bkNvbnRleHQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAg
ICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0
aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5o
ZXJpdHModGhpcy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAg
ICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMg
KyAiIGRvZXMgbm90IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNz
aW5nIHR5cGUgIiArIHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1
bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAK
LSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMu
cHJvdG9jb2wgPyAiOiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFj
a2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tl
ci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1
MTM5YzA4NTIzOTFmODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFj
a2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFy
aWFibGVUcmFja2VyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsK
LSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0K
LSAgICAKLSAgICBnZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2Nv
bnNpZGVyKHRoaW5nKQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAg
ICAgICAgICAgdGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlw
ZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgp
IHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7
Ci0gICAgfQotICAgIAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAg
IHRoaXMuX2NvbnNpZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBh
MTNkZTQzZDUzMjZlMTM1N2M4N2Y4ODU5ZDlkNjAxNWUwY2FkNDcuLmZlYzUzNTE0NTk2Mzg2MmM1
YmUwNDJjOGRmYmU0M2Y0OTVlNDJiODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQuanMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ug
c3RyaWN0IjsKIAogY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0
eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3RvcigpCiAgICAgewotICAgICAgICB0aGlzLl90
eXBlUGFyYW1ldGVycyA9IG5ldyBTZXQodHlwZVBhcmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9u
ZXh0TWFwID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgp
OwogICAgIH0KQEAgLTQ1LDEwICs0NCw2IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAg
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJs
ZSB0aGluZ3MgIiArIGEgKyAiIGFuZCAiICsgYik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHR5cGUgcGFyYW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcg
cm9vdHMuCi0gICAgICAgIGlmIChhLmlzVW5pZmlhYmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhp
cy5fdHlwZVBhcmFtZXRlcnMuaGFzKGIpKQotICAgICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwot
ICAgICAgICAKICAgICAgICAgdGhpcy5fbmV4dE1hcC5zZXQoYSwgYik7CiAgICAgfQogICAgIApA
QCAtODUsMTggKzgwLDYgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0
aGlzLl90eXBlUGFyYW1ldGVyczsgfQotICAgICp0eXBlQXJndW1lbnRzKCkKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLm5vZGVzKSB7Ci0gICAgICAgICAgICBp
ZiAoIXR5cGVBcmd1bWVudC5pc1VuaWZpYWJsZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5oYXModHlwZUFyZ3VtZW50KSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHlpZWxkIHR5cGVBcmd1bWVu
dDsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2ZXJpZnkoKQogICAgIHsKICAgICAgICAg
Ly8gV2UgZG8gYSB0d28tcGhhc2UgcHJlLXZlcmlmaWNhdGlvbi4gVGhpcyBnaXZlcyBsaXRlcmFs
cyBhIGNoYW5jZSB0byBzZWxlY3QgYSBtb3JlIHNwZWNpZmljIHR5cGUuCkBAIC0xMTEsNDAgKzk0
LDcgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgICAgIGlmICghcmVzdWx0
LnJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHRoaXMuX3R5cGVQYXJhbWV0
ZXJzKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZVBhcmFtZXRlci52ZXJpZnlBc1Bh
cmFtZXRlcih0aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGxldCBudW1UeXBlVmFy
aWFibGVBcmd1bWVudHMgPSAwOwotICAgICAgICBsZXQgYXJndW1lbnRTZXQgPSBuZXcgU2V0KCk7
Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkg
ewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudC52ZXJpZnlBc0FyZ3VtZW50
KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50LmlzTGl0ZXJhbCkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGFyZ3VtZW50U2V0LmFkZCh0
aGlzLmZpbmQodHlwZUFyZ3VtZW50KSk7Ci0gICAgICAgICAgICBudW1UeXBlVmFyaWFibGVBcmd1
bWVudHMrKzsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXJndW1lbnRTZXQuc2l6ZSA9PSBudW1U
eXBlVmFyaWFibGVBcmd1bWVudHMpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZXMg
dXNlZCBhcyBhcmd1bWVudHMgZ290IHVuaWZpZWQgd2l0aCBlYWNoIG90aGVyIn07Ci0gICAgfQot
ICAgIAotICAgIGdldCBjb252ZXJzaW9uQ29zdCgpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gMDsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRoaXMudHlwZUFyZ3VtZW50
cygpKQotICAgICAgICAgICAgcmVzdWx0ICs9IHR5cGVBcmd1bWVudC5jb252ZXJzaW9uQ29zdCh0
aGlzKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgY29tbWl0KCkK
LSAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVu
dHMoKSkKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC5jb21taXRVbmlmaWNhdGlvbih0aGlzKTsK
KyAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2Vl
MWUzNWYwNTBkZWY1MzM2ZC4uZDdkMGQ4M2ZhMGNjZmNkNGExY2M0NjgyNzg1NjRkYzBmNDY1YTNm
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyAr
MzQsMTAgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAg
ICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQ
YXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0
ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFt
ZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAot
ICAgIHZpc2l0UHJvdG9jb2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNp
dEZ1bmMobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQog
ICAgIHsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAg
Y2xhc3MgVmlzaXRvciB7CiAgICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAg
ICAKLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhp
cy52aXNpdEZ1bmMobm9kZSk7Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9u
RGF0YShub2RlLmltcGxlbWVudGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZp
c2l0QmxvY2sobm9kZSkKICAgICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2Rl
LnN0YXRlbWVudHMpCkBAIC03OSwxOCArNjYsNiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIGV4cHJlc3Npb24udmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9j
b2xSZWYobm9kZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5v
ZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0g
ICAgICAgICAgICBwcm90b2NvbC52aXNpdCh0aGlzKTsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0
dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52aXNpdCh0aGlz
KTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBm
b3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQpAQCAtOTksNDIgKzc0
LDIxIEBAIGNsYXNzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQog
ICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0
ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAg
Ci0gICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUu
dHlwZS52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUu
dHlwZUFyZ3VtZW50cykKICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxl
dCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAg
ICAgfQogICAgIAogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgZm9y
IChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAg
dHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9k
ZS5maWVsZHMpCiAgICAgICAgICAgICBmaWVsZC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCi0g
ICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUudmlzaXQobm9k
ZS5wcm90b2NvbCwgdGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBh
cmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAg
IH0KLSAgICAKICAgICB2aXNpdEZpZWxkKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUu
dmlzaXQodGhpcyk7CkBAIC0zNDAsMTQgKzI5NCw2IEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAg
ICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBhcmd1bWVu
dCBvZiBub2RlLmFyZ3VtZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUudmlzaXQoYXJndW1lbnQs
IHRoaXMpOwotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1
bWVudHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpIHsKLSAgICAg
ICAgICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBlQXJndW1lbnRzKQotICAg
ICAgICAgICAgICAgICAgICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfTsKLSAgICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1
bWVudHMpOwotICAgICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0
dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5z
dGFuY2UsIHRoaXMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmV0dXJuVHlwZSwgdGhpcyk7
CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZCBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1dTTC5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiNjY1
Njc4MjZhNTFkZDZjNzU0ZDRlOWIyNGQ3NTc4OTcyYmIzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9X
U0wubWQKKysrIC9kZXYvbnVsbApAQCAtMSw0NzkgKzAsMCBAQAotIyBXZWJHUFUgU2hhZGluZyBM
YW5ndWFnZQotCi1XZWJHUFUgU2hhZGluZyBMYW5ndWFnZSwgb3IgV1NMIGZvciBzaG9ydCwgaXMg
YSB0eXBlLXNhZmUgbG93LW92ZXJoZWFkIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBHUFVzIChn
cmFwaGljcyBwcm9jZXNzaW5nIHVuaXRzKS4gVGhpcyBkb2N1bWVudCBleHBsYWlucyBob3cgV1NM
IHdvcmtzLgotCi0jIEdvYWxzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBhY2hpZXZlIHRoZSBmb2xs
b3dpbmcgZ29hbHM6Ci0KLS0gV1NMIHNob3VsZCBmZWVsICpmYW1pbGlhciogdG8gQysrIHByb2dy
YW1tZXJzLgotLSBXU0wgc2hvdWxkIGJlIGhhdmUgYSAqc291bmQqIGFuZCAqZGVjaWRhYmxlKiB0
eXBlIHN5c3RlbS4KLS0gV1NMIHNob3VsZCBub3QgcGVybWl0ICpvdXQtb2YtYm91bmRzKiBtZW1v
cnkgYWNjZXNzZXMuCi0tIFdTTCBzaG91bGQgYmUgaGF2ZSAqbG93IG92ZXJoZWFkKi4KLQotVGhl
IGNvbWJpbmF0aW9uIG9mIGEgc291bmQgdHlwZSBzeXN0ZW0gYW5kIGJvdW5kcyBjaGVja2luZyBt
YWtlcyBXU0wgYSBzZWN1cmUgc2hhZGVyIGxhbmd1YWdlOiB0aGUgbGFuZ3VhZ2UgaXRzZWxmIGlz
IHJlc3BvbnNpYmxlIGZvciBpc29sYXRpbmcgdGhlIHNoYWRlciBmcm9tIHRoZSByZXN0IG9mIHRo
ZSBHUFUuCi0KLSMgRmFtaWxpYXIgU3ludGF4Ci0KLVdTTCBpcyBiYXNlZCBvbiBDIHN5bnRheCwg
YnV0IGV4Y2x1ZGVzIGZlYXR1cmVzIHRoYXQgYXJlIGVpdGhlciB1bm5lY2Vzc2FyeSwgaW5zZWN1
cmUsIG9yIHJlcGxhY2VkIGJ5IG90aGVyIFdTTCBmZWF0dXJlczoKLQotLSBObyBzdHJpbmdzLgot
LSBObyBgcmVnaXN0ZXJgLCBgdm9sYXRpbGVgLCBgY29uc3RgLCBgcmVzdHJpY3RgLCBvciBgZXh0
ZXJuYCBrZXl3b3Jkcy4KLS0gTm8gdW5pb25zLiBgdW5pb25gIGlzIG5vdCBhIGtleXdvcmQuCi0t
IE5vIGdvdG8gb3IgbGFiZWxzLiBgZ290b2AgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gYCpgIHBv
aW50ZXJzLgotLSBFZmZlY3RsZXNzIGV4cHJlc3Npb25zIGFyZSBub3Qgc3RhdGVtZW50cyAoYGEg
KyBiO2AgaXMgYSBwYXJzZSBlcnJvcikuCi0tIE5vIHVuZGVmaW5lZCB2YWx1ZXMgKGBpbnQgeDtg
IGluaXRpYWxpemVzIHggdG8gMCkuCi0tIE5vIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb25zIChg
aW50IHg7IHVpbnQgeSA9IHg7YCBpcyBhIHR5cGUgZXJyb3IpLgotLSBObyByZWN1cnNpb24uCi0t
IE5vIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24uCi0tIE5vIG1vZHVsYXJpdHkuIFRoZSB3aG9s
ZSBwcm9ncmFtIGlzIG9uZSBmaWxlLgotCi1PbiB0b3Agb2YgdGhpcyBiYXJlIEMtbGlrZSBmb3Vu
ZGF0aW9uLCBXU0wgYWRkcyBzZWN1cmUgdmVyc2lvbnMgb2YgZmFtaWxpYXIgQysrIGZlYXR1cmVz
OgotCi0tIFR5cGUtc2FmZSBwb2ludGVycyAoYF5gKSBhbmQgYXJyYXkgcmVmZXJlbmNlcyAoYFtd
YCkuCi0tIEdlbmVyaWNzIHRvIHJlcGxhY2UgdGVtcGxhdGVzLgotLSBPcGVyYXRvciBvdmVybG9h
ZGluZy4gQnVpbHQtaW4gb3BlcmF0aW9ucyBsaWtlIGBpbnQgb3BlcmF0b3IrKGludCwgaW50KWAg
YXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0gQ2FzdCBvdmVybG9hZGluZy4gQnVpbHQtaW4g
Y2FzdHMgbGlrZSBgb3BlcmF0b3IgaW50KGRvdWJsZSlgIGFyZSBqdXN0IG5hdGl2ZSBmdW5jdGlv
bnMuCi0tIEdldHRlcnMgYW5kIHNldHRlcnMuIFByb3BlcnR5IGFjY2Vzc2VzIGxpa2UgYHZlYy54
YCByZXNvbHZlIHRvIG92ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvci5maWVsZChmbG9hdDQp
YC4KLS0gQXJyYXkgYWNjZXNzIG92ZXJsb2FkaW5nLiBBcnJheSBhY2Nlc3NlcyBsaWtlIGB2ZWNb
MF1gIHJlc29sdmUgdG8gdmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3JbXShmbG9hdDQsIHVp
bnQpYC4KLQotSW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucywgV1NMIGlzIHNob3duIGJ5IGV4YW1w
bGUgc3RhcnRpbmcgd2l0aCBpdHMgQy1saWtlIGZvdW5kYXRpb24gYW5kIHRoZW4gYnVpbGRpbmcg
dXAgdG8gaW5jbHVkZSBtb3JlIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMgbGlrZSBnZW5lcmljcy4K
LQotIyMgQ29tbW9uIHN1YnNldCBvZiBDIGFuZCBXU0wKLQotVGhlIGZvbGxvd2luZyBpcyBhIHZh
bGlkIFdTTCBmdW5jdGlvbiBkZWZpbml0aW9uOgotCi0gICAgaW50IGZvbyhpbnQgeCwgaW50IHks
IGJvb2wgcCkKLSAgICB7Ci0gICAgICAgIGlmIChwKQotICAgICAgICAgICAgcmV0dXJuIHggLSB5
OwotICAgICAgICByZXR1cm4geCArIHk7Ci0gICAgfQotCi1XU0wgc291cmNlIGZpbGVzIGJlaGF2
ZSBzaW1pbGFybHkgdG8gQyBzb3VyY2UgZmlsZXM6Ci0KLS0gVG9wLWxldmVsIHN0YXRlbWVudHMg
bXVzdCBiZSB0eXBlIG9yIGZ1bmN0aW9uIGRlZmluaXRpb25zLgotLSBXU0wgdXNlcyBzdHJ1Y3R1
cmVkIEMgY29udHJvbCBmbG93IGNvbnN0cnVjdHMsIGxpa2UgYGlmYCwgYHdoaWxlYCwgYGZvcmAs
IGBkb2AsIGBicmVha2AsIGFuZCBgY29udGludWVgLgotLSBXU0wgdXNlcyBDLWxpa2UgYHN3aXRj
aGAgc3RhdGVtZW50cywgYnV0IGRvZXMgbm90IGFsbG93IHRoZW0gdG8gb3ZlcmxhcCBvdGhlciBj
b250cm9sIGZsb3cgKGkuZS4gbm8gW0R1ZmYncyBkZXZpY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlh
Lm9yZy93aWtpL0R1ZmYlMjdzX2RldmljZSkpLgotLSBXU0wgYWxsb3dzIHZhcmlhYmxlIGRlY2xh
cmF0aW9ucyBhbnl3aGVyZSBDKysgd291bGQuCi0KLVdTTCB0eXBlcyBkaWZmZXIgZnJvbSBDIHR5
cGVzLiBGb3IgZXhhbXBsZSwgdGhpcyBpcyBhbiBhcnJheSBvZiA0MiBpbnRlZ2VycyBpbiBXU0w6
Ci0KLSAgICBpbnRbNDJdIGFycmF5OwotCi1UaGUgdHlwZSBuZXZlciBzdXJyb3VuZHMgdGhlIHZh
cmlhYmxlLCBsaWtlIGl0IHdvdWxkIGluIEMgKGBpbnQgYXJyYXlbNDJdYCkuCi0KLSMjIFR5cGUt
c2FmZSBwb2ludGVycwotCi1XU0wgaW5jbHVkZXMgYSBzZWN1cmUgcG9pbnRlciB0eXBlLiBUbyBl
bXBoYXNpemUgdGhhdCBpdCBpcyBub3QgbGlrZSB0aGUgQyBwb2ludGVyLCBXU0wgdXNlcyBgXmAg
Zm9yIHRoZSBwb2ludGVyIHR5cGUgYW5kIGZvciBkZXJlZmVyZW5jZS4gTGlrZSBpbiBDLCBgJmAg
aXMgdXNlZCB0byB0YWtlIHRoZSBhZGRyZXNzIG9mIGEgdmFsdWUuICBCZWNhdXNlIEdQVXMgaGF2
ZSBkaWZmZXJlbnQga2luZHMgb2YgbWVtb3JpZXMsIHBvaW50ZXJzIG11c3QgYmUgYW5ub3RhdGVk
IHdpdGggYW4gYWRkcmVzcyBzcGFjZSAob25lIG9mIGB0aHJlYWRgLCBgdGhyZWFkZ3JvdXBgLCBg
ZGV2aWNlYCwgb3IgYGNvbnN0YW50YCkuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBiYXIodGhy
ZWFkIGludF4gcCkKLSAgICB7Ci0gICAgICAgIF5wICs9IDQyOwotICAgIH0KLSAgICBpbnQgZm9v
KCkKLSAgICB7Ci0gICAgICAgIGludCB4ID0gMjQ7Ci0gICAgICAgIGJhcigmeCk7Ci0gICAgICAg
IHJldHVybiB4OyAvLyBSZXR1cm5zIDY2LgotICAgIH0KLQotUG9pbnRlcnMgY2FuIGJlIGBudWxs
YC4gRWFjaCBwb2ludGVyIGFjY2VzcyBpcyBudWxsLWNoZWNrZWQsIHRob3VnaCBtb3N0IHBvaW50
ZXIgYWNjZXNzZXMgKGxpa2UgdGhpcyBvbmUpIHdpbGwgbm90IGhhdmUgYSBudWxsIGNoZWNrLiBX
U0wgcGxhY2VzIGVub3VnaCBjb25zdHJhaW50cyBvbiB0aGUgcHJvZ3JhbW1lciB0aGF0IHByb2dy
YW1zIGFyZSBlYXN5IGZvciB0aGUgY29tcGlsZXIgdG8gYW5hbHl6ZS4gVGhlIGNvbXBpbGVyIHdp
bGwgYWx3YXlzIGtub3cgdGhhdCBgXnAgKz0gNDJgIGFkZHMgYDQyYCB0byBgeGAgaW4gdGhpcyBj
YXNlLgotCi1XU0wgcG9pbnRlcnMgZG8gbm90IHN1cHBvcnQgY2FzdGluZyBvciBwb2ludGVyIGFy
aXRobWV0aWMuIEFsbCBtZW1vcnkgYWNjZXNzaWJsZSB0byBhIHNoYWRlciBvdXRsaXZlcyB0aGUg
c2hhZGVyLiBUaGlzIGlzIGV2ZW4gdHJ1ZSBvZiBsb2NhbCB2YXJpYWJsZXMuIFRoaXMgaXMgcG9z
c2libGUgYmVjYXVzZSBXU0wgZG9lcyBub3Qgc3VwcG9ydCByZWN1cnNpb24uIFRoZXJlZm9yZSwg
bG9jYWwgdmFyaWFibGVzIHNpbXBseSBnZXQgZ2xvYmFsIHN0b3JhZ2UuIExvY2FsIHZhcmlhYmxl
cyBhcmUgaW5pdGlhbGl6ZWQgYXQgdGhlIHBvaW50IG9mIHRoZWlyIGRlY2xhcmF0aW9uLiBIZW5j
ZSwgdGhlIGZvbGxvd2luZyBpcyBhIHZhbGlkIHByb2dyYW0sIHdoaWNoIHdpbGwgZXhoaWJpdCB0
aGUgc2FtZSBiZWhhdmlvciBvbiBldmVyeSBXU0wgaW1wbGVtZW50YXRpb246Ci0KLSAgICB0aHJl
YWQgaW50XiBmb28oKQotICAgIHsKLSAgICAgICAgaW50IHggPSA0MjsKLSAgICAgICAgcmV0dXJu
ICZ4OwotICAgIH0KLSAgICBpbnQgYmFyKCkKLSAgICB7Ci0gICAgICAgIHRocmVhZCBpbnReIHAg
PSBmb28oKTsKLSAgICAgICAgdGhyZWFkIGludF4gcSA9IGZvbygpOwotICAgICAgICBecCA9IDUz
OwotICAgICAgICByZXR1cm4gXnE7IC8vIFJldHVybnMgNTMuCi0gICAgfQotICAgIGludCBiYXoo
KQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygpOwotICAgICAgICBecCA9IDUz
OwotICAgICAgICBmb28oKTsKLSAgICAgICAgcmV0dXJuIF5wOyAvLyBSZXR1cm5zIDQyLgotICAg
IH0KLQotSXQncyBwb3NzaWJsZSB0byBwb2ludCB0byBhbnkga2luZCBvZiBkYXRhIHR5cGUuIEZv
ciBleGFtcGxlLCBgdGhyZWFkIGRvdWJsZVs0Ml1eYCBpcyBhIHBvaW50ZXIgdG8gYW4gYXJyYXkg
b2YgNDIgZG91Ymxlcy4KLQotIyMgVHlwZS1zYWZlIGFycmF5IHJlZmVyZW5jZXMKLQotV1NMIHN1
cHBvcnRzIGFycmF5IHJlZmVyZW5jZXMgdGhhdCBjYXJyeSBhIHBvaW50ZXIgdG8gdGhlIGJhc2Ug
b2YgdGhlIGFycmF5IGFuZCB0aGUgYXJyYXkncyBsZW5ndGguIFRoaXMgYWxsb3dzIGFjY2Vzc2Vz
IHRvIHRoZSBhcnJheSB0byBiZSBib3VuZHMtY2hlY2tlZC4KLQotQW4gYXJyYXkgcmVmZXJlbmNl
IGNhbiBiZSBjcmVhdGVkIHVzaW5nIHRoZSBgQGAgb3BlcmF0b3I6Ci0KLSAgICBpbnRbNDJdIGFy
cmF5OwotICAgIHRocmVhZCBpbnRbXSBhcnJheVJlZiA9IEBhcnJheTsKLQotQm90aCBhcnJheXMg
YW5kIGFycmF5IHJlZmVyZW5jZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFuZCBzdG9yZWQgdG8gdXNp
bmcgYG9wZXJhdG9yW11gOgotCi0gICAgaW50IHggPSBhcnJheVtpXTsKLSAgICBpbnQgeSA9IGFy
cmF5UmVmW2ldOwotCi1Cb3RoIGFycmF5cyBhbmQgYXJyYXkgcmVmZXJlbmNlcyBrbm93IHRoZWly
IGxlbmd0aDoKLQotICAgIHVpbnQgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7Ci0gICAgdWlu
dCBhcnJheVJlZkxlbmd0aCA9IGFycmF5UmVmLmxlbmd0aDsKLQotR2l2ZW4gYW4gYXJyYXkgb3Ig
YXJyYXkgcmVmZXJlbmNlLCBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIHBvaW50ZXIgdG8gb25lIG9m
IGl0cyBlbGVtZW50czoKLQotICAgIHRocmVhZCBpbnReIHB0cjEgPSAmYXJyYXlbaV07Ci0gICAg
dGhyZWFkIGludF4gcHRyMiA9ICZhcnJheVJlZltpXTsKLQotQSBwb2ludGVyIGlzIGxpa2UgYW4g
YXJyYXkgcmVmZXJlbmNlIHdpdGggb25lIGVsZW1lbnQuIEl0J3MgcG9zc2libGUgdG8gcGVyZm9y
bSB0aGlzIGNvbnZlcnNpb246Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmID0gQHB0cjE7Ci0gICAg
cmVmWzBdIC8vIEVxdWl2YWxlbnQgdG8gXnB0cjEuCi0gICAgcmVmLmxlbmd0aCAvLyAwIGlmIHB0
cjEgd2FzIG51bGwsIDEgaWYgcHRyMSB3YXMgbm90IG51bGwuCi0KLVNpbWlsYXJseSwgdXNpbmcg
YEBgIG9uIGEgbm9uLXBvaW50ZXIgdmFsdWUgcmVzdWx0cyBpbiBhIHJlZmVyZW5jZSBvZiBsZW5n
dGggMToKLQotICAgIGludCB4OwotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAeDsKLSAgICByZWZb
MF0gLy8gQWxpYXNlcyB4LgotICAgIHJlZi5sZW5ndGggLy8gUmV0dXJucyAxLgotCi1JdCdzIG5v
dCBsZWdhbCB0byB1c2UgYEBgIG9uIGFuIGFycmF5IHJlZmVyZW5jZToKLQotICAgIHRocmVhZCBp
bnRbXSByZWY7Ci0gICAgdGhyZWFkIGludFtdW10gcmVmZXJlZiA9IEByZWY7IC8vIEVycm9yIQot
Ci0jIyBHZW5lcmljcwotCi1XU0wgc3VwcG9ydHMgZ2VuZXJpYyB0eXBlcyB1c2luZyBhIHNpbXBs
ZSBzeW50YXguIFdTTCdzIGdlbmVyaWMgYXJlIGRlc2lnbmVkIHRvIGludGVncmF0ZSBjbGVhbmx5
IGludG8gdGhlIGNvbXBpbGVyIHBpcGVsaW5lOgotCi0tIEdlbmVyaWNzIGhhdmUgdW5hbWJpZ3Vv
dXMgc3ludGF4LgotLSBHZW5lcmljIGZ1bmN0aW9ucyBjYW4gYmUgdHlwZSBjaGVja2VkIGJlZm9y
ZSB0aGV5IGFyZSBpbnN0YW50aWF0ZWQuCi0KLVNlbWFudGljIGVycm9ycyBpbnNpZGUgZ2VuZXJp
YyBmdW5jdGlvbnMgc2hvdyB1cCBvbmNlIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiB0aW1l
cyB0aGUgZ2VuZXJpYyBmdW5jdGlvbiBpcyBpbnN0YW50aWF0ZWQuCi0KLVRoaXMgaXMgYSBzaW1w
bGUgZ2VuZXJpYyBmdW5jdGlvbjoKLQotICAgIFQgaWRlbnRpdHk8VD4oVCB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIFQgdG1wID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0bXA7Ci0gICAgfQotCi1X
U0wgYWxzbyBzdXBwb3J0cyBzdHJ1Y3RzLCB3aGljaCBhcmUgYWxzbyBhbGxvd2VkIHRvIGJlIGdl
bmVyaWM6Ci0KLSAgICAvLyBOb3QgZ2VuZXJpYy4KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAg
aW50IHg7Ci0gICAgICAgIGRvdWJsZSB5OwotICAgIH0KLSAgICAvLyBHZW5lcmljLgotICAgIHN0
cnVjdCBCYXI8VCwgVT4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFUgeTsKLSAgICB9Ci0KLVR5
cGUgcGFyYW1ldGVycyBjYW4gYWxzbyBiZSBjb25zdGFudCBleHByZXNzaW9ucy4gRm9yIGV4YW1w
bGU6Ci0KLSAgICB2b2lkIGluaXRpYWxpemVBcnJheTxULCB1aW50IGxlbmd0aD4odGhyZWFkIFRb
bGVuZ3RoXV4gYXJyYXksIFQgdmFsdWUpCi0gICAgewotICAgICAgICBmb3IgKHVpbnQgaSA9IGxl
bmd0aDsgaS0tOykKLSAgICAgICAgICAgICheYXJyYXkpW2ldID0gdmFsdWU7Ci0gICAgfQotCi1D
b25zdGFudCBleHByZXNzaW9ucyBwYXNzZWQgYXMgdHlwZSBhcmd1bWVudHMgbXVzdCBvYmV5IGEg
dmVyeSBuYXJyb3cgZGVmaW5pdGlvbiBvZiBjb25zdGFudG5lc3MuIE9ubHkgbGl0ZXJhbHMgYW5k
IHJlZmVyZW5jZXMgdG8gb3RoZXIgY29uc3RhbnQgcGFyYW1ldGVycyBxdWFsaWZ5LgotCi1XU0wg
aXMgZ3VhcmFudGVlZCB0byBjb21waWxlIGdlbmVyaWNzIGJ5IGluc3RhbnRpYXRpb24uIFRoaXMg
aXMgb2JzZXJ2YWJsZSwgc2luY2UgZnVuY3Rpb25zIGNhbiByZXR1cm4gcG9pbnRlcnMgdG8gdGhl
aXIgbG9jYWxzLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhpcyBwaGVub21lbm9uOgotCi0gICAg
dGhyZWFkIGludF4gYWxsb2NhdGU8dWludD4oKQotICAgIHsKLSAgICAgICAgaW50IHg7Ci0gICAg
ICAgIHJldHVybiAmeDsKLSAgICB9Ci0KLVRoZSBgYWxsb2NhdGVgIGZ1bmN0aW9uIHdpbGwgcmV0
dXJuIGEgZGlmZmVyZW50IHBvaW50ZXIgZm9yIGVhY2ggdW5zaWduZWQgaW50ZWdlciBjb25zdGFu
dCBwYXNzZWQgYXMgYSB0eXBlIHBhcmFtZXRlci4gVGhpcyBhbGxvY2F0aW9uIGlzIGNvbXBsZXRl
bHkgc3RhdGljLCBzaW5jZSB0aGUgYHVpbnRgIHBhcmFtZXRlciBtdXN0IGJlIGdpdmVuIGEgY29t
cGlsZS10aW1lIGNvbnN0YW50LgotCi1XU0wncyBgdHlwZWRlZmAgdXNlcyBhIHNsaWdodGx5IGRp
ZmZlcmVudCBzeW50YXggdGhhbiBDLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBDb21wbGV4
PFQ+IHsKLSAgICAgICAgVCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIHR5cGVk
ZWYgRkNvbXBsZXggPSBDb21wbGV4PGZsb2F0PjsKLQotYHR5cGVkZWZgIGNhbiBiZSB1c2VkIHRv
IGNyZWF0ZSBnZW5lcmljIHR5cGVzOgotCi0gICAgc3RydWN0IEZvbzxULCBVPiB7Ci0gICAgICAg
IFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLSAgICB0eXBlZGVmIEJhcjxUPiA9IEZvbzxULCBU
PjsKLQotIyMgUHJvdG9jb2xzCi0KLVByb3RvY29scyBlbmFibGUgZ2VuZXJpYyBmdW5jdGlvbnMg
dG8gd29yayB3aXRoIGRhdGEgb2YgZ2VuZXJpYyB0eXBlLiBCZWNhdXNlIGEgZnVuY3Rpb24gbXVz
dCBiZSB0eXBlLWNoZWNrYWJsZSBiZWZvcmUgaW5zdGFudGlhdGlvbiwgdGhlIGZvbGxvd2luZyB3
b3VsZCBub3QgYmUgbGVnYWw6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAuLi4gfQotICAgIGRvdWJs
ZSBiYXIoZG91YmxlKSB7IC4uLiB9Ci0gICAgCi0gICAgVCBmb288VD4oVCB2YWx1ZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBiYXIodmFsdWUpOyAvLyBFcnJvciEKLSAgICB9Ci0KLVRoZSBjYWxs
IHRvIGBiYXJgIGRvZXNuJ3QgdHlwZSBjaGVjayBiZWNhdXNlIHRoZSBjb21waWxlciBjYW5ub3Qg
a25vdyB0aGF0IGBmb288VD5gIHdpbGwgYmUgaW5zdGFudGlhdGVkIHdpdGggYFQgPSBpbnRgIG9y
IGBUID0gZG91YmxlYC4gUHJvdG9jb2xzIGVuYWJsZSB0aGUgcHJvZ3JhbW1lciB0byB0ZWxsIHRo
ZSBjb21waWxlciB3aGF0IHRvIGV4cGVjdCBvZiBhIHR5cGUgdmFyaWFibGU6Ci0KLSAgICBpbnQg
YmFyKGludCkgeyAuLi4gfQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7IC4uLiB9Ci0gICAgCi0g
ICAgcHJvdG9jb2wgU3VwcG9ydHNCYXIgewotICAgICAgICBTdXBwb3J0c0JhciBiYXIoU3VwcG9y
dHNCYXIpOwotICAgIH0KLSAgICAKLSAgICBUIGZvbzxUOlN1cHBvcnRzQmFyPihUIHZhbHVlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGJhcih2YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIGludCB4
ID0gZm9vKDQyKTsKLSAgICBkb3VibGUgeSA9IGZvbyg0LjIpOwotCi1Qcm90b2NvbHMgaGF2ZSBh
dXRvbWF0aWMgcmVsYXRpb25zaGlwcyB0byBvbmUgYW5vdGhlciBiYXNlZCBvbiB3aGF0IGZ1bmN0
aW9ucyB0aGV5IGNvbnRhaW46Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZv
byhGb28pOwotICAgIH0KLSAgICBwcm90b2NvbCBCYXIgewotICAgICAgICB2b2lkIGZvbyhCYXIp
OwotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0KLSAgICB2b2lkIGZ1eno8VDpGb28+KFQg
eCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4oVCB4KQotICAgIHsKLSAgICAgICAgZnV6
eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiBGb28uICAgIAot
ICAgIH0KLQotUHJvdG9jb2xzIGNhbiBhbHNvIG1peCBvdGhlciBwcm90b2NvbHMgaW4gZXhwbGlj
aXRseS4gTGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGV4YW1wbGUgYmVsb3cgcmVsaWVz
IG9uIHRoZSBmYWN0IHRoYXQgYEJhcmAgaXMgYSBtb3JlIHNwZWNpZmljIHByb3RvY29sIHRoYW4g
YEZvb2AuIEhvd2V2ZXIsIHRoaXMgZXhhbXBsZSBkZWNsYXJlcyB0aGlzIGV4cGxpY2l0bHkgKGBw
cm90b2NvbCBCYXIgOiBGb29gKSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGxhbmd1YWdlIHRv
IGluZmVyIGl0OgotCi0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsK
LSAgICB9Ci0gICAgcHJvdG9jb2wgQmFyIDogRm9vIHsKLSAgICAgICAgdm9pZCBiYXIoQmFyKTsK
LSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAgICB2b2lkIGJ1eno8
VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBiZWNhdXNlIEJhciBp
cyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLSMjIE92ZXJsb2FkaW5nCi0K
LVdTTCBzdXBwb3J0cyBvdmVybG9hZGluZyB2ZXJ5IHNpbWlsYXJseSB0byBob3cgQysrIGRvZXMg
aXQuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAgIHZvaWQg
Zm9vKGRvdWJsZSk7IC8vIDIKLSAgICAKLSAgICBpbnQgeDsKLSAgICBmb28oeCk7IC8vIGNhbGxz
IDEKLSAgICAKLSAgICBkb3VibGUgeTsKLSAgICBmb28oeSk7IC8vIGNhbGxzIDIKLQotV1NMIGF1
dG9tYXRpY2FsbHkgc2VsZWN0cyB0aGUgbW9zdCBzcGVjaWZpYyBvdmVybG9hZCBpZiBnaXZlbiBt
dWx0aXBsZSBjaG9pY2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgZm9vKGludCk7ICAgIC8v
IDEKLSAgICB2b2lkIGZvbyhkb3VibGUpOyAvLyAyCi0gICAgdm9pZCBmb288VD4oVCk7ICAgLy8g
MwotCi0gICAgZm9vKDEpOyAvLyBjYWxscyAxCi0gICAgZm9vKDEuKTsgLy8gY2FsbHMgMgotICAg
IGZvbygxdSk7IC8vIGNhbGxzIDMKLQotR2VuZXJpYyBmdW5jdGlvbnMgbGlrZSBgZm9vPFQ+YCBj
YW4gYmUgY2FsbGVkIHdpdGggb3Igd2l0aG91dCBhbGwgb2YgdGhlaXIgdHlwZSBhcmd1bWVudHMg
c3VwcGxpZWQuIElmIHRoZXkgYXJlIG5vdCBzdXBwbGllZCwgdGhlIGZ1bmN0aW9uIHBhcnRpY2lw
YXRlcyBpbiBvdmVybG9hZCByZXNvbHV0aW9uIGxpa2UgYW55IG90aGVyIGZ1bmN0aW9uIHdvdWxk
LiBGdW5jdGlvbnMgYXJlIHJhbmtlZCBieSBob3cgc3BlY2lmaWMgdGhleSBhcmU7IGZ1bmN0aW9u
IEEgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIGZ1bmN0aW9uIEIgaWYgQSdzIHBhcmFtZXRlciB0eXBl
cyBjYW4gYmUgdXNlZCBhcyBhcmd1bWVudCB0eXBlcyBmb3IgYSBjYWxsIHRvIEIgYnV0IG5vdCB2
aWNlLXZlcnNhLiBJZiBvbmUgZnVuY3Rpb25zIG1vcmUgc3BlY2lmaWMgdGhhbiBhbGwgb3RoZXJz
IHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBzZWxlY3RlZCwgb3RoZXJ3aXNlIGEgdHlwZSBlcnJvciBp
cyBpc3N1ZWQuCi0KLSMjIE9wZXJhdG9yIE92ZXJsb2FkaW5nCi0KLU1hbnkgV1NMIG9wZXJhdGlv
bnMgZGVzdWdhciB0byBjYWxscyB0byBmdW5jdGlvbnMuIFRob3NlIGZ1bmN0aW9ucyBhcmUgY2Fs
bGVkICpvcGVyYXRvciBvdmVybG9hZHMqIGFuZCBhcmUgZGVjbGFyZWQgdXNpbmcgc3ludGF4IHRo
YXQgaW52b2x2ZXMgdGhlIGtleXdvcmQgYG9wZXJhdG9yYC4gVGhlIGZvbGxvd2luZyBvcGVyYXRp
b25zIHJlc3VsdCBpbiBjYWxscyB0byBvcGVyYXRvciBvdmVybG9hZHM6Ci0KLS0gTnVtZXJpY2Fs
IG9wZXJhdG9ycyAoYCtgLCBgLWAsIGAqYCwgYC9gLCBldGMuKS4KLS0gSW5jcmVtZW50IGFuZCBk
ZWNyZW1lbnQgKGArK2AsIGAtLWApLgotLSBDYXN0aW5nIChgdHlwZSh2YWx1ZSlgKS4KLS0gQWNj
ZXNzaW5nIHZhbHVlcyBpbiBhcnJheXMgKGBbXWAsIGBbXT1gLCBgJltdYCkuCi0tIEFjY2Vzc2lu
ZyBmaWVsZHMgKGAuZmllbGRgLCBgLmZpZWxkPWAsIGAmLmZpZWxkYCkuCi0KLVdTTCdzIG9wZXJh
dG9yIG92ZXJsb2FkaW5nIGlzIGRlc2lnbmVkIHRvIHN5bnRoZXNpemUgbWFueSBvcGVyYXRvcnMg
Zm9yIHlvdToKLQotLSBSZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRvcnMgbGlrZSBgKz1gIGFyZSBk
ZXN1Z2FyZWQgdG8gYSBsb2FkIG9mIHRoZSBsb2FkIHZhbHVlLCB0aGUgdW5kZXJseWluZyBvcGVy
YXRvciAobGlrZSBgK2ApLCBhbmQgYSBzdG9yZSBvZiB0aGUgbmV3IHZhbHVlLiBJdCdzIG5vdCBw
b3NzaWJsZSB0byBvdmVycmlkZSBgKz1gLCBgLT1gLCBldGMuCi0tIGB4KytgIGFuZCBgKyt4YCBi
b3RoIGNhbGwgdGhlIHNhbWUgb3BlcmF0b3Igb3ZlcmxvYWQuIGBvcGVyYXRvcisrYCB0YWtlcyB0
aGUgb2xkIHZhbHVlIGFuZCByZXR1cm5zIGEgbmV3IG9uZTsgZm9yIGV4YW1wbGUgdGhlIGJ1aWx0
LWluIGArK2AgZm9yIGBpbnRgIGNvdWxkIGJlIHdyaXR0ZW4gYXM6IGBpbnQgb3BlcmF0b3IrKyhp
bnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfWAuCi0tIGBvcGVyYXRvcj09YCBjYW4gYmUg
b3ZlcmxvYWRlZCwgYnV0IGAhPWAgaXMgYXV0b21hdGljYWxseSBzeW50aGVzaXplZCBhbmQgY2Fu
bm90IGJlIG92ZXJsb2FkZWQuCi0KLVNvbWUgb3BlcmF0b3JzIGFuZCBvdmVybG9hZHMgYXJlIHJl
c3RyaWN0ZWQ6Ci0KLS0gYCFgLCBgJiZgLCBhbmQgYHx8YCBhcmUgYnVpbHQtaW4gb3BlcmF0aW9u
cyBvbiB0aGUgYGJvb2xgIHR5cGUuCi0tIFNlbGYtY2FzdHMgKGBUKFQpYCkgYXJlIGFsd2F5cyB0
aGUgaWRlbnRpdHkgZnVuY3Rpb24uCi0tIENhc3RzIHdpdGggbm8gYXJndW1lbnRzIChgVCgpYCkg
YWx3YXlzIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhhdCB0eXBlLiBFdmVyeSB0eXBl
IGhhcyBhIGRlZmF1bHQgdmFsdWUgKGAwYCwgYG51bGxgLCBvciB0aGUgZXF1aXZhbGVudCBmb3Ig
ZWFjaCBmaWVsZCkuCi0KLUNhc3Qgb3ZlcmxvYWRpbmcgYWxsb3dzIGZvciBzdXBwb3J0aW5nIGNv
bnZlcnNpb25zIGJldHdlZW4gdHlwZXMgYW5kIGZvciBjcmVhdGluZyBjb25zdHJ1Y3RvcnMgZm9y
IGN1c3RvbSB0eXBlcy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGNhc3Qgb3ZlcmxvYWRpbmcgYmVp
bmcgdXNlZCB0byBjcmVhdGUgYSBjb25zdHJ1Y3RvcjoKLQotICAgIHN0cnVjdCBDb21wbGV4PFQ+
IHsKLSAgICAgICAgVCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIG9wZXJhdG9y
PFQ+IENvbXBsZXg8VD4oVCByZWFsLCBUIGltYWcpCi0gICAgewotICAgICAgICBDb21wbGV4PFQ+
IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LnJlYWwgPSByZWFsOwotICAgICAgICByZXN1bHQuaW1h
ZyA9IGltYWc7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIENvbXBs
ZXg8ZmxvYXQ+IGkgPSBDb21wbGV4PGZsb2F0PigwLCAxKTsKLQotV1NMIHN1cHBvcnRzIGFjY2Vz
c29yIG92ZXJsb2FkaW5nIGFzIHBhcnQgb2YgdGhlIG9wZXJhdG9yIG92ZXJsb2FkaW5nIHN5bnRh
eC4gVGhpcyBnaXZlcyB0aGUgcHJvZ3JhbW1lciBicm9hZCBwb3dlcnMuIEZvciBleGFtcGxlOgot
Ci0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAgICBpbnQgeTsKLSAgICB9
Ci0gICAgaW50IG9wZXJhdG9yLnN1bShGb28gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZv
by54ICsgZm9vLnk7Ci0gICAgfQotCi1JdCdzIHBvc3NpYmxlIHRvIHNheSBgZm9vLnN1bWAgdG8g
Y2FsbCB0aGUgYG9wZXJhdG9yLnN1bWAgZnVuY3Rpb24uIEJvdGggZ2V0dGVycyBhbmQgc2V0dGVy
cyBjYW4gYmUgcHJvdmlkZWQ6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHZhbHVl
OwotICAgIH0KLSAgICBkb3VibGUgb3BlcmF0b3IuZG91YmxlVmFsdWUoRm9vIHZhbHVlKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIGRvdWJsZSh2YWx1ZS52YWx1ZSk7Ci0gICAgfQotICAgIEZvbyBv
cGVyYXRvci5kb3VibGVWYWx1ZT0oRm9vIHZhbHVlLCBkb3VibGUgZG91YmxlVmFsdWUpCi0gICAg
ewotICAgICAgICB2YWx1ZS52YWx1ZSA9IGludChkb3VibGVWYWx1ZSk7Ci0gICAgICAgIHJldHVy
biB2YWx1ZTsKLSAgICB9Ci0KLVByb3ZpZGluZyBib3RoIGdldHRlciBhbmQgc2V0dGVyIG92ZXJs
b2FkcyBtYWtlcyBgZG91YmxlVmFsdWVgIGJlaGF2ZSBhbG1vc3QgYXMgaWYgaXQgd2FzIGEgZmll
bGQgb2YgYEZvb2AuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRvIHNheToKLQotICAgIEZv
byBmb287Ci0gICAgZm9vLnZhbHVlID0gNDI7Ci0gICAgZm9vLmRvdWJsZVZhbHVlICo9IDI7IC8v
IE5vdyBmb28udmFsdWUgaXMgODQKLQotSXQncyBhbHNvIHBvc3NpYmxlIHRvIHByb3ZpZGUgYW4g
YWRkcmVzcy1nZXR0aW5nIG92ZXJsb2FkIGNhbGxlZCBhbiAqYW5kZXIqOgotCi0gICAgc3RydWN0
IEZvbyB7Ci0gICAgICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAgdGhyZWFkIGludF4gb3BlcmF0
b3ImLnZhbHVlQWxpYXModGhyZWFkIEZvb14gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZm
b28tPnZhbHVlOwotICAgIH0KLQotUHJvdmlkaW5nIGp1c3QgdGhpcyBvdmVybG9hZCBmb3IgYSBw
b2ludGVyIHR5cGUgaW4gZXZlcnkgYWRkcmVzcyBzcGFjZSBnaXZlcyB0aGUgc2FtZSBwb3dlciBh
cyBvdmVybG9hZGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLiBBZGRpdGlvbmFsbHksIGl0IG1ha2Vz
IGl0IHBvc3NpYmxlIHRvIGAmZm9vLnZhbHVlQWxpYXNgLgotCi1UaGUgc2FtZSBvdmVybG9hZGlu
ZyBwb3dlciBpcyBwcm92aWRlZCBmb3IgYXJyYXkgYWNjZXNzZXMuIEZvciBleGFtcGxlOgotCi0g
ICAgc3RydWN0IFZlY3RvcjxUPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVCB5OwotICAgIH0K
LSAgICB0aHJlYWQgVF4gb3BlcmF0b3ImW10odGhyZWFkIFReIHB0ciwgdWludCBpbmRleCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBpbmRleCA/ICZwdHItPnkgOiAmcHRyLT54OwotICAgIH0KLQot
QWx0ZXJuYXRpdmVseSwgaXQncyBwb3NzaWJsZSB0byBvdmVybG9hZCBnZXR0ZXJzIGFuZCBzZXR0
ZXJzIChgb3BlcmF0b3JbXWAgYW5kIGBvcGVyYXRvcltdPWApLgotCi0jIE1hcHBpbmcgb2YgQVBJ
IGNvbmNlcHRzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBiZSB1c2VmdWwgYXMgYm90aCBhIGdyYXBo
aWNzIHNoYWRpbmcgbGFuZ3VhZ2UgYW5kIGFzIGEgY29tcHV0YXRpb24gbGFuZ3VhZ2UuIEhvd2V2
ZXIsIHRoZXNlIHR3byBlbnZpcm9ubWVudHMgaGF2ZQotc2xpZ2h0bHkgZGlmZmVyZW50IHNlbWFu
dGljcy4KLQotV2hlbiB1c2luZyBXU0wgYXMgYSBncmFwaGljcyBzaGFkaW5nIGxhbmd1YWdlLCB0
aGVyZSBpcyBhIGRpc3RpbmN0aW9uIGJldHdlZW4gKmVudHJ5LXBvaW50cyogYW5kICpub24tZW50
cnktcG9pbnRzKi4gRW50cnkgcG9pbnRzIGFyZSB0b3AtbGV2ZWwgZnVuY3Rpb25zIHdoaWNoIGhh
dmUgZWl0aGVyIHRoZSBgdmVydGV4YCBvciBgZnJhZ21lbnRgIGtleXdvcmQgaW4gZnJvbnQgb2Yg
dGhlaXIgZGVjbGFyYXRpb24uIEVudHJ5IHBvaW50cyBtYXkgbm90IGJlIGZvcndhcmQgZGVjbGFy
ZWQuIEFuIGVudHJ5IHBvaW50IGFubm90YXRlZCB3aXRoIHRoZSBgdmVydGV4YCBrZXl3b3JkIG1h
eSBub3QgYmUgdXNlZCBhcyBhIGZyYWdtZW50IHNoYWRlciwgYW5kIGFuIGVudHJ5IHBvaW50IGFu
bm90YXRlZCB3aXRoIHRoZSBgZnJhZ21lbnRgIGtleXdvcmQgbWF5IG5vdCBiZSB1c2VkIGFzIGEg
dmVydGV4IHNoYWRlci4gTm8gYXJndW1lbnQgbm9yIHJldHVybiB2YWx1ZSBvZiBhbiBlbnRyeSBw
b2ludCBtYXkgYmUgYSBwb2ludGVyLiBFbnRyeSBwb2ludHMgbXVzdCBub3QgYWNjZXB0IHR5cGUg
YXJndW1lbnRzIChhbHNvIGtub3duIGFzICJnZW5lcmljcyIpLgotCi0jIyBWZXJ0ZXggZW50cnkg
cG9pbnRzCi0KLVdlYkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIFdTTCB2ZXJ0ZXggc2hhZGVy
IGluIGZvdXIgd2F5czoKLQotLSBBdHRyaWJ1dGVzCi0tIEJ1ZmZlcmVkIGRhdGEKLS0gVGV4dHVy
ZSBkYXRhCi0tIFNhbXBsZXJzCi0KLUVhY2ggb2YgdGhlc2UgQVBJIG9iamVjdHMgaXMgcmVmZXJy
ZWQgdG8gYnkgbmFtZSBmcm9tIHRoZSBBUEkuIFZhcmlhYmxlcyBpbiBXU0wgYXJlIG5vdCBhbm5v
dGF0ZWQgd2l0aCBleHRyYSBBUEktdmlzaWJsZSBuYW1lcyAobGlrZSB0aGV5IGFyZSBpbiBzb21l
IG90aGVyIGdyYXBoaWNzIEFQSXMpLgotCi1WYXJpYWJsZXMgYXJlIHBhc3NlZCB0byB2ZXJ0ZXgg
c2hhZGVycyBhcyBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQuIEVhY2ggYnVmZmVy
IGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVmZXJlbmNlIHR5
cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVycyBhcmUgcmVw
cmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNhbXBsZXJgIHR5
cGVzLCByZXNwZWN0aXZlbHkuIEFsbCBvdGhlciBub24tYnVpbHRpbiBhcmd1bWVudHMgdG8gYSB2
ZXJ0ZXggZW50cnkgcG9pbnQgYXJlIGltcGxpZWQgdG8gYmUgYXR0cmlidXRlcy4KLQotU29tZSBh
cmd1bWVudHMgYXJlIHJlY29nbml6ZWQgYnkgdGhlIGNvbXBpbGVyIGZyb20gdGhlaXIgbmFtZSBh
bmQgdHlwZS4gVGhlc2UgYXJndW1lbnRzIHByb3ZpZGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eSBp
bmhlcmVudCBpbiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIEZvciBleGFtcGxlLCBhbiBhcmd1bWVu
dCBvZiB0aGUgZm9ybSBgaW50IHdzbF92ZXJ0ZXhJRGAgcmVmZXJzIHRvIHRoZSBJRCBvZiB0aGUg
Y3VycmVudCB2ZXJ0ZXgsIGFuZCBpcyBub3QgcmVjb2duaXplZCBhcyBhbiBhdHRyaWJ1dGUuIEFs
bCBub24tYnVpbHRpbiBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQgbXVzdCBiZSBh
c3NvY2lhdGVkIHdpdGggYW4gQVBJIG9iamVjdCB3aGVuZXZlciBhbnkgZHJhdyBjYWxsIHVzaW5n
IHRoZSB2ZXJ0ZXggZW50cnkgcG9pbnQgaXMgaW52b2tlZC4gT3RoZXJ3aXNlLCB0aGUgZHJhdyBj
YWxsIHdpbGwgZmFpbC4KLQotVGhlIG9ubHkgd2F5IHRvIHBhc3MgZGF0YSBiZXR3ZWVuIHN1Y2Nl
c3NpdmUgc2hhZGVyIHN0YWdlcyB3aXRoaW4gYSBzaW5nbGUgZHJhdyBjYWxsIGlzIGJ5IHJldHVy
biB2YWx1ZS4gQW4gZW50cnkgcG9pbnQgbXVzdCBpbmRpY2F0ZSB0aGF0IGl0IHJldHVybnMgYSBj
b2xsZWN0aW9uIG9mIHZhbHVlcyBjb250YWluZWQgd2l0aGluIGEgc3RydWN0dXJlLiBFdmVyeSB2
YXJpYWJsZSBpbnNpZGUgdGhpcyBzdHJ1Y3R1cmUsIHJlY3Vyc2l2ZWx5LCBpcyBwYXNzZWQgdG8g
dGhlIG5leHQgc3RhZ2UgaW4gdGhlIGdyYXBoaWNzIHBpcGVsaW5lLiBNZW1iZXJzIG9mIHRoaXMg
c3RydWN0IG1heSBhbHNvIGJlIG91dHB1dCBidWlsdC1pbiB2YXJpYWJsZXMuIEZvciBleGFtcGxl
LCBhIHZlcnRleCBlbnRyeSBwb2ludCBtYXkgcmV0dXJuIGEgc3RydWN0IHdoaWNoIGNvbnRhaW5z
IGEgbWVtYmVyIGBmbG9hdDQgd3NsX1Bvc2l0aW9uYCwgYW5kIHRoaXMgdmFyaWFibGUgd2lsbCBy
ZXByZXNlbnQgdGhlIHJhc3Rlcml6ZWQgcG9zaXRpb24gb2YgdGhlIHZlcnRleC4gQnVmZmVycyAo
YXMgZGVzY3JpYmVkIGJ5IFdTTCBhcnJheSByZWZlcmVuY2VzKSwgdGV4dHVyZXMsIGFuZCBzYW1w
bGVycyBtdXN0IG5vdCBiZSBwcmVzZW50IGluIHRoaXMgcmV0dXJuZWQgc3RydWN0LiBCdWlsdC1p
biB2YXJpYWJsZXMgbXVzdCBuZXZlciBhcHBlYXIgdHdpY2UgaW5zaWRlIHRoZSByZXR1cm5lZCBz
dHJ1Y3R1cmUuCi0KLSMjIEZyYWdtZW50IGVudHJ5IHBvaW50cwotCi1GcmFnbWVudCBlbnRyeSBw
b2ludHMgbWF5IGFjY2VwdCBvbmUgYXJndW1lbnQgd2l0aCB0aGUgdHlwZSB0aGF0IHRoZSBwcmV2
aW91cyBzaGFkZXIgc3RhZ2UgcmV0dXJuZWQuIFRoZSBhcmd1bWVudCBuYW1lIGZvciB0aGlzIGFy
Z3VtZW50IG11c3QgYmUgYHN0YWdlSW5gLiBJbiBhZGRpdGlvbiB0byB0aGlzIGFyZ3VtZW50LCBm
cmFnbWVudCBlbnRyeSBwb2ludHMgbWF5IGFjY2VwdCBidWZmZXJzLCB0ZXh0dXJlcywgYW5kIHNh
bXBsZXJzIGFzIGFyZ3VtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB2ZXJ0ZXggZW50cnkgcG9p
bnRzIGFjY2VwdCB0aGVtLiBGcmFnbWVudCBlbnRyeSBwb2ludHMgYWxzbyBtdXN0IHJldHVybiBh
IHN0cnVjdCwgYW5kIGFsbCBtZW1iZXJzIG9mIHRoaXMgc3RydWN0IG11c3QgYmUgYnVpbHQtaW4g
dmFyaWFibGVzLiBUaGUgc2V0IG9mIHJlY29nbml6ZWQgYnVpbHQtaW4gdmFyaWFibGVzIHdoaWNo
IG1heSBiZSBhY2NlcHRlZCBvciByZXR1cm5lZCBmcm9tIGFuIGVudHJ5IHBvaW50IGlzIGRpZmZl
cmVudCBiZXR3ZWVuIGFsbCB0eXBlcyBvZiBlbnRyeSBwb2ludHMuCi0KLUZvciBleGFtcGxlLCB0
aGlzIHdvdWxkIGJlIGEgdmFsaWQgZ3JhcGhpY3MgcHJvZ3JhbToKLQotICAgIHN0cnVjdCBWZXJ0
ZXhJbnB1dCB7Ci0gICAgICAgIGZsb2F0MiBwb3NpdGlvbjsKLSAgICAgICAgZmxvYXQzIGNvbG9y
OwotICAgIH0KLSAgICAKLSAgICBzdHJ1Y3QgVmVydGV4T3V0cHV0IHsKLSAgICAgICAgZmxvYXQ0
IHdzbF9Qb3NpdGlvbjsKLSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAgICAKLSAgICBz
dHJ1Y3QgRnJhZ21lbnRPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX0NvbG9yOwotICAgIH0K
LSAgICAKLSAgICB2ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2
ZXJ0ZXhJbnB1dCkgewotICAgICAgICBWZXJ0ZXhPdXRwdXQgcmVzdWx0OwotICAgICAgICByZXN1
bHQud3NsX1Bvc2l0aW9uID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAwLiwgMS4pOwot
ICAgICAgICByZXN1bHQuY29sb3IgPSB2ZXJ0ZXhJbnB1dC5jb2xvcjsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgZnJhZ21lbnQgRnJhZ21lbnRPdXRwdXQgZnJhZ21l
bnRTaGFkZXIoVmVydGV4T3V0cHV0IHN0YWdlSW4pIHsKLSAgICAgICAgRnJhZ21lbnRPdXRwdXQg
cmVzdWx0OwotICAgICAgICByZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0KHN0YWdlSW4uY29sb3Is
IDEuKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSMjIENvbXB1dGUgZW50cnkg
cG9pbnRzCi0KLVdlYkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIGNvbXB1dGUgc2hhZGVyIGlu
IHRocmVlIHdheXM6Ci0KLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEKLS0gU2FtcGxl
cnMKLQotQ29tcHV0ZSBlbnRyeSBwb2ludHMgc3RhcnQgd2l0aCB0aGUga2V5d29yZCBgY29tcHV0
ZWAuIFRoZSByZXR1cm4gdHlwZSBmb3IgYSBjb21wdXRlIGVudHJ5IHBvaW50IG11c3QgYmUgYHZv
aWRgLiBFYWNoIGJ1ZmZlciBpcyByZXByZXNlbnRlZCBhcyBhbiBhcmd1bWVudCB3aXRoIGFuIGFy
cmF5IHJlZmVyZW5jZSB0eXBlICh1c2luZyB0aGUgYFtdYCBzeW50YXgpLiBUZXh0dXJlcyBhbmQg
c2FtcGxlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFyZ3VtZW50cyB3aXRoIHRoZSBgdGV4dHVyZWAg
YW5kIGBzYW1wbGVyYCB0eXBlcywgcmVzcGVjdGl2ZWx5LiBDb21wdXRlIGVudHJ5IHBvaW50cyBt
YXkgYWxzbyBhY2NlcHQgYnVpbHQtaW4gdmFyaWFibGVzIGFzIGFyZ3VtZW50cy4gQXJndW1lbnRz
IG9mIGFueSBvdGhlciB0eXBlIGFyZSBkaXNhbGxvd2VkLiBBcmd1bWVudHMgbWF5IG5vdCB1c2Ug
dGhlIGB0aHJlYWRncm91cGAgbWVtb3J5IHNwYWNlLgotCi0jIEVycm9yIGhhbmRsaW5nCi0KLUVy
cm9ycyBtYXkgb2NjdXIgZHVyaW5nIHNoYWRlciBwcm9jZXNzaW5nLiBGb3IgZXhhbXBsZSwgdGhl
IHNoYWRlciBtYXkgYXR0ZW1wdCB0byBkZXJlZmVyZW5jZSBhIGBudWxsYCBhcnJheSByZWZlcmVu
Y2UuIElmIHRoaXMgb2NjdXJzLCB0aGUgc2hhZGVyIHN0YWdlIGltbWVkaWF0ZWx5IGNvbXBsZXRl
cyBzdWNjZXNzZnVsbHkuIFRoZSBlbnRyeSBwb2ludCBpbW1lZGlhdGVseSByZXR1cm5zIGEgc3Ry
dWN0IHdpdGggYWxsIGZpZWxkcyBzZXQgdG8gMC4gQWZ0ZXIgdGhpcyBldmVudCwgc3Vic2VxdWVu
dCBzaGFkZXIgc3RhZ2VzIHdpbGwgcHJvY2VlZCBhcyBpZiB0aGVyZSB3YXMgbm8gcHJvYmxlbS4K
LQotQnVmZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYmVmb3JlIHRoZSBlcnJvciBh
bGwgY29tcGxldGUsIGFuZCBoYXZlIHRoZSBzYW1lIHNlbWFudGljcyBhcyBpZiBubyBlcnJvciBo
YWQgb2NjdXJyZWQuIEJ1ZmZlciBhbmQgdGV4dHVyZSByZWFkcyBhbmQgd3JpdGVzIGFmdGVyIHRo
ZSBlcnJvciBkbyBub3Qgb2NjdXIuCi0KLSMgU3VtbWFyeQotCi1XU0wgaXMgYSB0eXBlLXNhZmUg
bGFuZ3VhZ2UgYmFzZWQgb24gQyBzeW50YXguIEl0IGVsaW1pbmF0ZXMgc29tZSBDIGZlYXR1cmVz
LCBsaWtlIHVuaW9ucyBhbmQgcG9pbnRlciBjYXN0cywgYnV0IGFkZHMgb3RoZXIgbW9kZXJuIGZl
YXR1cmVzIGluIHRoZWlyIHBsYWNlLCBsaWtlIGdlbmVyaWNzIGFuZCBvdmVybG9hZGluZy4KLQot
IyBBZGRpdGlvbmFsIExpbWl0YXRpb25zCi0KLVRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBsaW1p
dGF0aW9ucyBtYXkgYmUgcGxhY2VkIG9uIGEgV1NMIHByb2dyYW06Ci0KLS0gYGRldmljZWAsIGBj
b25zdGFudGAsIGFuZCBgdGhyZWFkZ3JvdXBgIHBvaW50ZXJzIGNhbm5vdCBwb2ludCB0byBkYXRh
IHRoYXQgbWF5IGhhdmUgcG9pbnRlcnMgaW4gaXQuIFRoaXMgc2FmZXR5IGNoZWNrIGlzIG5vdCBk
b25lIGFzIHBhcnQgb2YgdGhlIG5vcm1hbCB0eXBlIHN5c3RlbSBjaGVja3MuIEl0J3MgcGVyZm9y
bWVkIG9ubHkgYWZ0ZXIgaW5zdGFudGlhdGlvbi4KLS0gUG9pbnRlcnMgYW5kIGFycmF5IHJlZmVy
ZW5jZXMgKGNvbGxlY3RpdmVseSwgKnJlZmVyZW5jZXMqKSBtYXkgYmUgcmVzdHJpY3RlZCB0byBz
dXBwb3J0IGNvbXBpbGluZyB0byBTUElSLVYgKmxvZ2ljYWwgbW9kZSouIEluIHRoaXMgbW9kZSwg
YXJyYXlzIG11c3Qgbm90IHRyYW5zaXRpdmVseSBob2xkIHJlZmVyZW5jZXMuIFJlZmVyZW5jZXMg
bXVzdCBiZSBpbml0aWFsaXplZCB1cG9uIGRlY2xhcmF0aW9uIGFuZCBuZXZlciByZWFzc2lnbmVk
LiBGdW5jdGlvbnMgdGhhdCByZXR1cm4gcmVmZXJlbmNlcyBtdXN0IGhhdmUgb25lIHJldHVybiBw
b2ludC4gVGVybmFyeSBleHByZXNzaW9ucyBtYXkgbm90IHJldHVybiByZWZlcmVuY2VzLgotLSBH
cmFwaGljcyBlbnRyeSBwb2ludHMgbXVzdCB0cmFuc2l0aXZlbHkgbmV2ZXIgcmVmZXIgdG8gdGhl
IGB0aHJlYWRncm91cGAgbWVtb3J5IHNwYWNlLgotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvV3JhcENoZWNrZXIuanMKaW5kZXggNGNhZGM3ZDBkOWU2YTZkZmRhNTU1ZGFiODlk
MDI3MTc3MGRiZDlhNy4uMGViNGU4MWVjMmZjMzYzOTk3MGQ5YzYzYTNmYmNjZTk5NmNiNDEwYSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKQEAgLTUy
LDExICs1Miw2IEBAIGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRm91bmQgdW53cmFwcGVkICIgKyBub2RlLmNvbnN0cnVjdG9yLm5h
bWUgKyAiIGF0ICIgKyBvcmlnaW5TdHJpbmcobm9kZSkgKyAiOiAiICsgbm9kZSArICJcbldoaWxl
IHZpc2l0aW5nICIgKyB0aGlzLl9zdGFydE5vZGUuY29uc3RydWN0b3IubmFtZSArICIgYXQgIiAr
IG9yaWdpblN0cmluZyh0aGlzLl9zdGFydE5vZGUub3JpZ2luKSArICI6ICIgKyB0aGlzLl9zdGFy
dE5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAg
ICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2Zv
dW5kVW53cmFwcGVkKG5vZGUpOwpAQCAtNzYsMTQgKzcxLDQgQEAgY2xhc3MgV3JhcENoZWNrZXIg
ZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB7CiAgICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5v
ZGUpOwogICAgIH0KLSAgICAKLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAg
ICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAotICAgIC8vIE5P
VEU6IFRoaXMgZG9lcyBub3Qga25vdyBob3cgdG8gaGFuZGxlIE5hdGl2ZVR5cGVJbnN0YW5jZSwg
YmVjYXVzZSB0aGlzIGlzIG5ldmVyIGNhbGxlZCBvbiBpbnN0YW50aWF0ZWQKLSAgICAvLyBjb2Rl
LiBPbmNlIGNvZGUgaXMgaW5zdGFudGlhdGVkLCB5b3UgY2Fubm90IGluc3RhbnRpYXRlIGl0IGZ1
cnRoZXIuCi0gICAgCi0gICAgLy8gTk9URTogVGhpcyBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMg
d2l0aCBBdXRvV3JhcHBlci4KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5o
dG1sCmluZGV4IDgwOTRiMTkzNzgxYjRhYTliMGMzOTA5ZTlhOTFkMjgxNWYyYjJhYmEuLmNkYjY5
ZjkyYjI2ZDc5NmY1YTM4N2ExNzNmMDczNzFlMDFhOGM1N2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMzYsNyArMzYsNiBAQAogPHNjcmlwdCBzcmM9IkNs
b25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9B
cnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29w
LmpzIj48L3NjcmlwdD4KQEAgLTU1LDcgKzU0LDYgQEAKIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9y
aWdpbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmxh
dHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxhdHRlbmVk
U3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0
ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9z
Y3JpcHQ+CkBAIC03Myw3ICs3MSw2IEBACiA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJbW1l
ZGlhdGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC05MCw5ICs4Nyw3IEBACiA8c2NyaXB0IHNy
Yz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJOYXRpdmVGdW5jSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5h
dGl2ZVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJbnN0YW5jZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTEwMywxMCArOTgsNiBAQAogPHNjcmlw
dCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dy
YW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGlu
Z3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJQcm90b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbFJl
Zi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzEsMTAgKzEyMiw3IEBA
CiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURl
ZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJU
eXBlVmFyaWFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZVRyYWNr
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50
TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMzQ0LDcgKzMzMiw3IEBAIGZ1bmN0aW9uIHNl
bGVjdGVkU2hhZGVyc0NoYW5nZWQoZnJvbUNvbXBpbGF0aW9uID0gZmFsc2UpIHsKICAgICBjdXJy
ZW50VmVydGV4U2hhZGVyID0gYXZhaWxhYmxlVmVydGV4U2hhZGVyc1t2ZXJ0ZXhTaGFkZXJTZWxl
Y3Quc2VsZWN0ZWRJbmRleF07CiAgICAgY3VycmVudEZyYWdtZW50U2hhZGVyID0gYXZhaWxhYmxl
RnJhZ21lbnRTaGFkZXJzW2ZyYWdtZW50U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogCi0g
ICAgaW5saW5lZFZlcnRleFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlx
dWUoY3VycmVudFZlcnRleFNoYWRlciwgW10pOworICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIgPSBj
dXJyZW50VmVydGV4U2hhZGVyOwogICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVk
VmVydGV4U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudFZlcnRleFNoYWRlcikpOwogCiAg
ICAgYWxsQXJndW1lbnRJbmZvcyA9IFtdOwpAQCAtNDI2LDcgKzQxNCw3IEBAIGZ1bmN0aW9uIHJ1
blNoYWRlcnMoKSB7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tpXS5lUHRyLmNvcHlGcm9tKGFy
Z3VtZW50RVB0cnNbaV0uZVB0ciwgYXJndW1lbnRFUHRyc1tpXS5zaXplKTsKICAgICBsZXQgcmVz
dWx0ID0gbmV3IEV2YWx1YXRvcihwcm9ncmFtKS5ydW5GdW5jKGZ1bmMpOwogCi0gICAgaW5saW5l
ZEZyYWdtZW50U2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShjdXJy
ZW50RnJhZ21lbnRTaGFkZXIsIFtdKTsKKyAgICBpbmxpbmVkRnJhZ21lbnRTaGFkZXIgPSBjdXJy
ZW50RnJhZ21lbnRTaGFkZXI7CiAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGlubGluZWRG
cmFnbWVudFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGN1cnJlbnRGcmFnbWVudFNoYWRlcikpOwog
ICAgIGZ1bmMgPSBpbmxpbmVkRnJhZ21lbnRTaGFkZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346861</attachid>
            <date>2018-08-09 14:41:01 -0700</date>
            <delta_ts>2018-08-09 16:21:47 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180809144100.patch</filename>
            <type>text/plain</type>
            <size>378634</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzI4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWJlODg0MjNhMjhjN2RlMDNiNWZiNzMzZDBlOTQwYThj
M2I4YmViNS4uNTA5OTQ1NDFhYzQ3OWVkYWJjMTc2ZDkyODczN2UwNzRiZDFiMWFlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjM0NzIwLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzCmluZGV4IDE1ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2
NTguLjQ5YTVmYjY4NjI2YzkwMjQ0ZTg0NjJhZDcxOGZmMWU4NTlmZDYyM2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5q
cyIpOwogbG9hZCgiQ2xvbmVQcm9ncmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMi
KTsKIGxvYWQoIkNvbnN0ZXhwckZvbGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFt
ZXRlci5qcyIpOwogbG9hZCgiQ29udGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5
UmVmRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBA
IC03Nyw3ICs3Niw2IEBAIGxvYWQoIkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVy
bmFsT3JpZ2luLmpzIik7CiBsb2FkKCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVz
LmpzIik7Ci1sb2FkKCJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVu
ZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWxUeXBlLmpzIik7CkBAIC04NSw3ICs4Myw2IEBAIGxvYWQoIkZvbGRD
b25zdGV4cHJzLmpzIik7CiBsb2FkKCJGb3JMb29wLmpzIik7CiBsb2FkKCJGdW5jLmpzIik7CiBs
b2FkKCJGdW5jRGVmLmpzIik7Ci1sb2FkKCJGdW5jSW5zdGFudGlhdG9yLmpzIik7CiBsb2FkKCJG
dW5jUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJGdW5jdGlvbkxpa2VCbG9jay5qcyIpOwogbG9hZCgi
SGlnaFpvbWJpZUZpbmRlci5qcyIpOwpAQCAtOTUsNyArOTIsNiBAQCBsb2FkKCJJbmRleEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkluZmVyVHlwZXNGb3JDYWxsLmpzIik7CiBsb2FkKCJJbmxpbmUu
anMiKTsKIGxvYWQoIklubGluZXIuanMiKTsKLWxvYWQoIkluc3RhbnRpYXRlSW1tZWRpYXRlcy5q
cyIpOwogbG9hZCgiSW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsK
IGxvYWQoIkludHJpbnNpY3MuanMiKTsKQEAgLTExMiw5ICsxMDgsNyBAQCBsb2FkKCJOYW1lQ29u
dGV4dC5qcyIpOwogbG9hZCgiTmFtZUZpbmRlci5qcyIpOwogbG9hZCgiTmFtZVJlc29sdmVyLmpz
Iik7CiBsb2FkKCJOYXRpdmVGdW5jLmpzIik7Ci1sb2FkKCJOYXRpdmVGdW5jSW5zdGFuY2UuanMi
KTsKIGxvYWQoIk5hdGl2ZVR5cGUuanMiKTsKLWxvYWQoIk5hdGl2ZVR5cGVJbnN0YW5jZS5qcyIp
OwogbG9hZCgiTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyIpOwogbG9hZCgiTnVsbExpdGVy
YWwuanMiKTsKIGxvYWQoIk51bGxUeXBlLmpzIik7CkBAIC0xMjUsMTAgKzExOSw2IEBAIGxvYWQo
IlByZXBhcmUuanMiKTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5u
ZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7
Ci1sb2FkKCJQcm90b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbEZ1bmNEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRy
VHlwZS5qcyIpOwogbG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
UmVjdXJzaW9uQ2hlY2tlci5qcyIpOwpAQCAtMTUzLDEwICsxNDMsNyBAQCBsb2FkKCJUcmFwU3Rh
dGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIu
anMiKTsKIGxvYWQoIlR5cGVPclZhcmlhYmxlUmVmLmpzIik7Ci1sb2FkKCJUeXBlUGFyYW1ldGVy
UmV3cml0ZXIuanMiKTsKIGxvYWQoIlR5cGVSZWYuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJsZS5q
cyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlVHJhY2tlci5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5q
cyIpOwogbG9hZCgiVWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFsVHlwZS5qcyIp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwppbmRleCA4
MGFlN2Q5MmE0ZmE2MjY2NmRiMmEyZmY1MjIwZDE0OWE3ZjM4ZTljLi4yMTZhN2UyZTMzZGU5OTFi
MDZhYjYzNmRiNWNmY2FiNDA1ZDhlZTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BdXRvV3JhcHBlci5qcwpAQCAtMzUsMTEgKzM1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIg
ZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBWYXJpYWJsZVJlZi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJh
bWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBWYXJpYWJsZVJlZi53cmFwKG5vZGUp
OwpAQCAtNjAsMTEgKzU1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZp
c2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFw
KG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCmluZGV4IGI1YWUwZmU0OWZjZWRjOGZhNzZhNjY3OTNj
ZmUwY2IxZjA4YjQ1NzEuLmYwNjZhYzMyMGE5ZGNlNDIxZDRmOGVmZDM2MzMzYTI0ZWE3NjJmYmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9u
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
CkBAIC0yNSwxMSArMjUsMTAgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgQ2FsbEV4cHJlc3Np
b24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUs
IGFyZ3VtZW50TGlzdCkKICAgICB7CiAgICAgICAgIHN1cGVyKG9yaWdpbik7CiAgICAgICAgIHRo
aXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlwZUFyZ3Vt
ZW50czsKICAgICAgICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gYXJndW1lbnRMaXN0OwogICAgICAg
ICB0aGlzLmZ1bmMgPSBudWxsOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBmYWxzZTsKQEAgLTM3
LDcxICszNiw0MSBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewog
ICAgIH0KICAgICAKICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBn
ZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICBn
ZXQgYXJndW1lbnRMaXN0KCkgeyByZXR1cm4gdGhpcy5fYXJndW1lbnRMaXN0OyB9CiAgICAgZ2V0
IGlzQ2FzdCgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQogICAgIGdldCByZXR1cm5UeXBlKCkg
eyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQogICAgIAotICAgIHN0YXRpYyByZXNvbHZlKG9y
aWdpbiwgcG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgbmFtZSwgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQorICAg
IHN0YXRpYyByZXNvbHZlKG9yaWdpbiwgcG9zc2libGVPdmVybG9hZHMsIG5hbWUsIGFyZ3VtZW50
TGlzdCwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICB7Ci0gICAgICAgIGxldCBjYWxs
ID0gbmV3IENhbGxFeHByZXNzaW9uKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1l
bnRMaXN0KTsKKyAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBu
YW1lLCBhcmd1bWVudExpc3QpOwogICAgICAgICBjYWxsLmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVu
dFR5cGVzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkp
OwogICAgICAgICBjYWxsLnBvc3NpYmxlT3ZlcmxvYWRzID0gcG9zc2libGVPdmVybG9hZHM7CiAg
ICAgICAgIGlmIChyZXR1cm5UeXBlKQogICAgICAgICAgICAgY2FsbC5zZXRDYXN0RGF0YShyZXR1
cm5UeXBlKTsKLSAgICAgICAgcmV0dXJuIHtjYWxsLCByZXN1bHRUeXBlOiBjYWxsLnJlc29sdmUo
cG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFyZ3VtZW50cyl9
OworICAgICAgICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJs
ZU92ZXJsb2Fkcyl9OwogICAgIH0KICAgICAKLSAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRz
LCB0eXBlUGFyYW1ldGVyc0luU2NvcGUsIHR5cGVBcmd1bWVudHMpCisgICAgcmVzb2x2ZShwb3Nz
aWJsZU92ZXJsb2FkcykKICAgICB7CiAgICAgICAgIGlmICghcG9zc2libGVPdmVybG9hZHMpCiAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJEaWQgbm90IGZpbmQgYW55IGZ1bmN0aW9ucyBuYW1lZCAiICsgdGhpcy5uYW1lKTsKICAgICAg
ICAgCi0gICAgICAgIGxldCBvdmVybG9hZCA9IG51bGw7CiAgICAgICAgIGxldCBmYWlsdXJlcyA9
IFtdOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHR5cGVQYXJhbWV0ZXJzSW5T
Y29wZSkgewotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIFR5cGVW
YXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5
cGVQYXJhbWV0ZXIucHJvdG9jb2wpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBsZXQgc2lnbmF0dXJlcyA9Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlci5wcm90
b2NvbC5wcm90b2NvbERlY2wuc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFyaWFibGUodGhpcy5u
YW1lLCB0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgIGlmICghc2lnbmF0dXJlcykKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJs
b2FkSW1wbChzaWduYXR1cmVzLCB0aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgIGlmIChvdmVybG9hZC5mdW5jKQotICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3Zlcmxv
YWRJbXBsKAorICAgICAgICAgICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKKyAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7CiAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAg
IG92ZXJsb2FkID0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW92ZXJsb2FkKSB7Ci0g
ICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAgICAgICAg
ICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7
Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0g
ICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVk
ICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKLSAgICAgICAgICAgICAgICBpZiAo
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAr
PSAidHlwZSBhcmd1bWVudHMgPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiBhbmQgIjsKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1l
bnRUeXBlcyArICIpIjsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQotICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlICs9IiBhbmQgcmV0dXJuIHR5cGUgIiArIHRoaXMucmV0
dXJuVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpv
aW4oIlxuIikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdp
bi5vcmlnaW5TdHJpbmcsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgbGV0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAg
ICAgICAgbGV0IHR5cGVQYXJhbWV0ZXIgPSBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzW2ld
OwotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIENvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYg
KCF0eXBlUGFyYW1ldGVyLnR5cGUuZXF1YWxzV2l0aENvbW1pdCh0eXBlQXJndW1lbnRUeXBlKSkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmln
aW5TdHJpbmcgKyAiIGNvbnN0ZXhwciB0eXBlIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMg
bm90IGVxdWFsOiBhcmd1bWVudCA9ICIgKyB0eXBlQXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVy
ID0gIiArIHR5cGVQYXJhbWV0ZXIudHlwZSk7CisgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJE
aWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0
aCAiOworICAgICAgICAgICAgbWVzc2FnZSArPSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFy
Z3VtZW50VHlwZXMgKyAiKSI7CisgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQorICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5U
eXBlOworICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpvaW4oIlxuIikKKyAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywg
bWVzc2FnZSk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFy
Z3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5cGUg
PSB0aGlzLmFyZ3VtZW50VHlwZXNbaV07Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9
IG92ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9u
KAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2Fk
LnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9IG92
ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlOwogICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGFyZ3VtZW50VHlwZS5lcXVhbHNXaXRoQ29tbWl0KHBhcmFtZXRlclR5cGUpOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdCAiICsg
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVz
IG5vdCBlcXVhbCBhZnRlciB0eXBlIGFyZ3VtZW50IHN1YnN0aXR1dGlvbjogYXJndW1lbnQgPSAi
ICsgYXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVyID0gIiArIHBhcmFtZXRlclR5cGUpOwpAQCAt
MTEyLDEwICs4MSw3IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgcmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpCiAgICAgewogICAgICAgICB0aGlzLmZ1
bmMgPSBvdmVybG9hZC5mdW5jOwotICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBv
dmVybG9hZC50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGlu
c3RhbmNlb2YgVHlwZSA/IHR5cGVBcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0
eXBlQXJndW1lbnQpOwotICAgICAgICB0aGlzLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVu
dHMgPSB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHM7Ci0gICAgICAgIGxldCByZXN1bHQgPSBvdmVy
bG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAg
ICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRl
eHQpOworICAgICAgICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlOwogICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCByZXR1
cm4gdHlwZSIpOwogICAgICAgICByZXN1bHQgPSByZXN1bHQudmlzaXQobmV3IEF1dG9XcmFwcGVy
KCkpOwpAQCAtMTI1LDExICs5MSwxMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4
cHJlc3Npb24gewogICAgIAogICAgIGJlY29tZUNhc3QocmV0dXJuVHlwZSkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcgVHlwZVJlZih0aGlzLm9yaWdpbiwgdGhpcy5uYW1l
LCB0aGlzLl90eXBlQXJndW1lbnRzKTsKKyAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBU
eXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBl
LnR5cGUgPSByZXR1cm5UeXBlOwogICAgICAgICB0aGlzLl9uYW1lID0gIm9wZXJhdG9yIGNhc3Qi
OwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSB0cnVlOwotICAgICAgICB0aGlzLl90eXBlQXJndW1l
bnRzID0gW107CiAgICAgfQogICAgIAogICAgIHNldENhc3REYXRhKHJldHVyblR5cGUpCkBAIC0x
NDEsOCArMTA2LDYgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsK
ICAgICB0b1N0cmluZygpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMuaXNDYXN0ID8gIm9w
ZXJhdG9yICIgKyB0aGlzLnJldHVyblR5cGUgOiB0aGlzLm5hbWUpICsKLSAgICAgICAgICAgICI8
IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IiArCi0gICAgICAgICAgICAodGhpcy5hY3R1YWxU
eXBlQXJndW1lbnRzID8gIjw8IiArIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyArICI+PiIgOiAi
IikgKwogICAgICAgICAgICAgIigiICsgdGhpcy5hcmd1bWVudExpc3QgKyAiKSI7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9u
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCmluZGV4
IGYwZjAzOWY1NDYyZDA3ODFkODJiMzQ2NGM4NzQ3ODcxNGMwYTE3MzcuLjc0OTU3NjBmMmM1ZDgx
ZDgzOTQ1NmNkZTRjNDU5NzcwYmNjMzMwZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKQEAgLTI1LDE3ICsyNSwxNyBAQAogInVzZSBzdHJpY3Qi
OwogCiAvLyBUaGlzIGFsbG93cyB5b3UgdG8gcGFzcyBzdHJ1Y3RzIGFuZCBhcnJheXMgaW4tcGxh
Y2UsIGJ1dCBpdCdzIGEgbW9yZSBhbm5veWluZyBBUEkuCi1mdW5jdGlvbiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorZnVuY3Rpb24gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50TGlzdCkKIHsKICAgICBsZXQgYXJndW1l
bnRUeXBlcyA9IGFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudHlwZSk7Ci0g
ICAgbGV0IGZ1bmNPckZhaWx1cmVzID0gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCB0cnVlKTsKKyAgICBsZXQgZnVuY09y
RmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50
VHlwZXMsIHRydWUpOwogICAgIGlmICghKGZ1bmNPckZhaWx1cmVzIGluc3RhbmNlb2YgRnVuYykp
IHsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gZnVuY09yRmFpbHVyZXM7Ci0gICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlv
biBjYWxsICIgKyBuYW1lICsgIjwiICsgdHlwZUFyZ3VtZW50cyArICI+KCIgKyBhcmd1bWVudExp
c3QgKyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9p
bigiXG4iKSA6ICIiKSk7CisgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0
aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlvbiBjYWxsICIgKyBuYW1lICsgIigiICsgYXJn
dW1lbnRMaXN0ICsgIikiICsgKGZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1
cmVzLmpvaW4oIlxuIikgOiAiIikpOwogICAgIH0KICAgICBsZXQgZnVuYyA9IGZ1bmNPckZhaWx1
cmVzOwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXS5pbnN0YW50aWF0ZWRUeXBl
OworICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNbaV07CiAgICAgICAgIHR5cGUudmlz
aXQobmV3IFN0cnVjdExheW91dEJ1aWxkZXIoKSk7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tp
XS5lUHRyLmNvcHlGcm9tKGFyZ3VtZW50TGlzdFtpXS5lUHRyLCB0eXBlLnNpemUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCmluZGV4IDhkNTVjNTBkODM2
YzE1NDg2ZmQyNTgwYzU4ZTk2MDZjYWQ1OTZlY2IuLjVkY2E0NjBmYjk2YzE0ODM5Y2I4OWYwNWYx
NzM0ZDQzOWNlOTViNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5q
cwpAQCAtNDMsOCArNDMsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
ICAgIAogICAgICAgICBmb3IgKGxldCB0eXBlIG9mIG5vZGUudHlwZXMudmFsdWVzKCkpCiAgICAg
ICAgICAgICBkb1N0YXRlbWVudCh0eXBlKTsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Yg
bm9kZS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgICAgICBkb1N0YXRlbWVudChwcm90b2Nv
bCk7CiAgICAgICAgIGZvciAobGV0IGZ1bmNzIG9mIG5vZGUuZnVuY3Rpb25zLnZhbHVlcygpKSB7
CiAgICAgICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmNzKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy52aXNpdEZ1bmMoZnVuYyk7CkBAIC01OSw4ICs1Nyw2IEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICBfY2hlY2tTaGFkZXJUeXBlKG5vZGUpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogUmVsYXggdGhlc2UgY2hlY2tzIG9uY2Ugd2UgaGF2ZSBpbXBsZW1lbnRlZCBz
dXBwb3J0IGZvciB0ZXh0dXJlcyBhbmQgc2FtcGxlcnMuCi0gICAgICAgIGlmIChub2RlLnR5cGVQ
YXJhbWV0ZXJzLmxlbmd0aCAhPSAwKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRW50cnkgcG9pbnQgIiArIG5vZGUubmFtZSArICIg
bXVzdCBub3QgaGF2ZSB0eXBlIGFyZ3VtZW50cy4iKTsKICAgICAgICAgbGV0IHNoYWRlckZ1bmMg
PSBub2RlOwogICAgICAgICBzd2l0Y2ggKG5vZGUuc2hhZGVyVHlwZSkgewogICAgICAgICBjYXNl
ICJ2ZXJ0ZXgiOgpAQCAtODQsMTUgKzgwLDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICBpZiAoIWZ1bmMubmFtZS5zdGFydHNXaXRoKCJvcGVyYXRvciIpKQogICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3BlcmF0b3Igb3ZlcmxvYWQgbmFtZTogIiAr
IGZ1bmMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9
IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5
cGUgb2YgZnVuYy5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgIHBhcmFtZXRlclR5cGUudmlz
aXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIE5vZGUudmlzaXQoZnVuYy5yZXR1cm5U
eXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAg
Zm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAg
ICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5v
cmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlciArICIgdG8gb3Bl
cmF0b3IgIiArIGZ1bmMudG9EZWNsU3RyaW5nKCkgKyAiIGlzIG5vdCBpbmZlcnJhYmxlIGZyb20g
dmFsdWUgcGFyYW1ldGVycyIpOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBsZXQgY2hl
Y2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAgICAgICAgICAgbGV0IG51bUV4cGVjdGVkUGFyYW1l
dGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIgOiAxOwogICAgICAgICAgICAgaWYgKGZ1bmMucGFy
YW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzKQpAQCAtMTE1LDExICsxMDIs
MTAgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgaWYgKCFn
ZXR0ZXJGdW5jcykKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0
dGVyLCBidXQgZGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbiBuYW1lZCAiICsgZ2V0dGVyTmFtZSAr
ICIgdG8gbWF0Y2ggIiArIGZ1bmMubmFtZSk7CiAgICAgICAgICAgICBsZXQgYXJndW1lbnRUeXBl
cyA9IGZ1bmMucGFyYW1ldGVyVHlwZXMuc2xpY2UoMCwgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzIC0g
MSk7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRl
ckZ1bmNzLCBbXSwgYXJndW1lbnRUeXBlcywgbnVsbCk7CisgICAgICAgICAgICBsZXQgb3Zlcmxv
YWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRlckZ1bmNzLCBhcmd1bWVudFR5cGVzLCBudWxs
KTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQg
ZnVuY3Rpb24gbmFtZWQgIiArIGZ1bmMubmFtZSArICIgd2l0aCBhcmd1bWVudHMgIiArIGFyZ3Vt
ZW50VHlwZXMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgb3Zl
cmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0
VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigK
LSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51
bmlmaWNhdGlvbkNvbnRleHQpOworICAgICAgICAgICAgbGV0IHJlc3VsdFR5cGUgPSBvdmVybG9h
ZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdFR5cGUuZXF1YWxzKHZh
bHVlVHlwZSkpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0
eXBlIChnZXR0ZXIgYXQgIiArIG92ZXJsb2FkLmZ1bmMub3JpZ2luLm9yaWdpblN0cmluZyArICIg
c2F5cyAiICsgcmVzdWx0VHlwZSArICIgd2hpbGUgdGhpcyBzZXR0ZXIgc2F5cyAiICsgdmFsdWVU
eXBlICsgIikiKTsKICAgICAgICAgfTsKQEAgLTIxMSwyMyArMTk3LDYgQEAgY2xhc3MgQ2hlY2tl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2Nv
bERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNp
Z25hdHVyZXMpIHsKLSAgICAgICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5
cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAgICAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5cGUg
b2Ygc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzKQotICAgICAgICAgICAgICAgIHBhcmFtZXRlclR5
cGUudmlzaXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgICAgICBOb2RlLnZpc2l0KHNp
Z25hdHVyZS5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFj
a2VyKTsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygc2lnbmF0dXJlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXModHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IFdUeXBl
RXJyb3IodHlwZVBhcmFtZXRlci5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXJhbWV0ZXIg
dG8gcHJvdG9jb2wgc2lnbmF0dXJlIG5vdCBpbmZlcnJhYmxlIGZyb20gdmFsdWUgcGFyYW1ldGVy
cyIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXMobm9kZS50eXBlVmFyaWFibGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKHNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUHJvdG9jb2wncyB0eXBl
IHZhcmlhYmxlICgiICsgbm9kZS5uYW1lICsgIikgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmU6
ICIgKyBzaWduYXR1cmUpOwotICAgICAgICAgICAgdGhpcy5fY2hlY2tPcGVyYXRvck92ZXJsb2Fk
KHNpZ25hdHVyZSwgbmFtZSA9PiBub2RlLnNpZ25hdHVyZXNCeU5hbWUobmFtZSkpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0RW51bVR5cGUobm9kZSkKICAgICB7CiAgICAgICAg
IG5vZGUuYmFzZVR5cGUudmlzaXQodGhpcyk7CkBAIC0yNzgsMjkgKzI0NywxMiBAQCBjbGFzcyBD
aGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnVtIGRvZXMgbm90IGhhdmUgYSBtZW1iZXIg
d2l0aCB0aGUgdmFsdWUgemVybyIpOwogICAgIH0KICAgICAKLSAgICBfY2hlY2tUeXBlQXJndW1l
bnRzKG9yaWdpbiwgdHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBsZXQgYXJndW1lbnRJc1R5cGUgPSB0eXBlQXJndW1lbnRzW2ldIGluc3RhbmNlb2Yg
VHlwZTsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnRzW2ldLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgaWYgKGFyZ3VtZW50SXNUeXBlKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0uaW5oZXJpdHModHlwZVBhcmFtZXRlcnNbaV0u
cHJvdG9jb2wpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIlR5
cGUgYXJndW1lbnQgZG9lcyBub3QgaW5oZXJpdCBwcm90b2NvbDogIiArIHJlc3VsdC5yZWFzb24p
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVh
bHNXaXRoQ29tbWl0KHR5cGVQYXJhbWV0ZXJzW2ldLnR5cGUpKQotICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgdHlwZSBm
b3IgY29uc3RleHByIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBpZiAoIW5vZGUudHlwZSkKICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHlwZSByZWZlcmVuY2Ugd2l0aG91dCBhIHR5cGUg
aW4gY2hlY2tlcjogIiArIG5vZGUgKyAiIGF0ICIgKyBub2RlLm9yaWdpbik7CiAgICAgICAgIGlm
ICghKG5vZGUudHlwZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpKQogICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9jaGVja1R5cGVBcmd1bWVudHMobm9kZS5v
cmlnaW4sIG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywgbm9kZS50eXBlQXJndW1lbnRzKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkKQEAgLTQyNiw4ICszNzgsOCBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIAogICAgICAgICB0cnkgewog
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAg
ICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMsIHRoaXMuX2N1
cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5nZXRG
dW5jTmFtZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlc10sIG51bGwpOworICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBv
c3NpYmxlR2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuZ2V0RnVuY05hbWUsIFtu
b2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0cmFBcmdUeXBlc10sIG51
bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yR2V0ID0gcmVzdWx0LmNhbGw7CiAgICAgICAg
ICAgICBub2RlLnJlc3VsdFR5cGVGb3JHZXQgPSByZXN1bHQucmVzdWx0VHlwZTsKICAgICAgICAg
fSBjYXRjaCAoZSkgewpAQCAtNDQwLDggKzM5Miw4IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgICAgIGxldCBiYXNlRm9yQW5kID0gYmFzZVR5cGUuYXJndW1lbnRG
b3JBbmRPdmVybG9hZChub2RlLm9yaWdpbiwgbm9kZS5iYXNlKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVBbmRPdmVybG9hZHMsIHRoaXMuX2N1cnJl
bnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5j
TmFtZSwgW10sIFtiYXNlRm9yQW5kLCAuLi5leHRyYUFyZ3NdLCBbdHlwZUZvckFuZCwgLi4uZXh0
cmFBcmdUeXBlc10sCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVB
bmRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5jTmFtZSwgW2Jhc2VGb3JB
bmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKICAgICAg
ICAgICAgICAgICBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvckFuZCA9IHJlc3VsdC5j
YWxsOwogICAgICAgICAgICAgbm9kZS5yZXN1bHRUeXBlRm9yQW5kID0gcmVzdWx0LnJlc3VsdFR5
cGUudW5pZnlOb2RlLnJldHVyblR5cGVGcm9tQW5kT3ZlcmxvYWQobm9kZS5vcmlnaW4pOwpAQCAt
NDY1LDkgKzQxNyw5IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3Vs
dCB0eXBlIHJlc29sdmVkIGJ5LXZhbHVlICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yR2V0ICsgIikg
ZG9lcyBub3QgbWF0Y2ggcmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktcG9pbnRlciAoIiArIG5vZGUu
cmVzdWx0VHlwZUZvckFuZCArICIpIik7CiAgICAgICAgIAogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsIHRoaXMuX2N1cnJlbnRT
dGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFt
ZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CisgICAgICAgIGxldCByZXN1bHQg
PSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAorICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuc2V0RnVuY05h
bWUsIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0cmFB
cmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxG
b3JTZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdFR5cGUu
ZXF1YWxzKGJhc2VUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihu
b2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZXN1bHQgdHlwZSBvZiBzZXR0ZXIgIiArIHJlc3Vs
dC5jYWxsLmZ1bmMgKyAiIGlzIG5vdCB0aGUgYmFzZSB0eXBlICIgKyBiYXNlVHlwZSk7CkBAIC02
NzUsNyArNjI3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAg
IHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1l
bnRzID0gbm9kZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50
LnZpc2l0KHRoaXMpKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50
TGlzdC5tYXAoYXJndW1lbnQgPT4gewogICAgICAgICAgICAgbGV0IG5ld0FyZ3VtZW50ID0gYXJn
dW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgICAgICBpZiAoIW5ld0FyZ3VtZW50KQpAQCAtNjg3
LDcgKzYzOCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYg
KG5vZGUucmV0dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlz
KTsKIAotICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMsIHRoaXMuX2N1cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVu
dHMpOworICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2MxODI2ZWQ1NWYzZmU1NmY3ZTBlZDJhMDNk
ZmRhMDI4ZGE1YjM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIENvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIgZXh0ZW5kcyBWYWx1ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCB0eXBlKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0g
b3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9
IHR5cGU7Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlw
ZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVy
biB0cnVlOyB9Ci0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdl
dCB2YXJJc0xWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxl
VW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90
aGVyIGluc3RhbmNlb2YgVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
ICAgIGlmICghdGhpcy50eXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZSkp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhp
cy5fdHlwZVZhcmlhYmxlVW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAg
IH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7
Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4
dCwgb3RoZXIpOwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9u
Q29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0g
ICAgCi0gICAgdmVyaWZ5QXNQYXJhbWV0ZXIodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRl
TGl0ZXJhbFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRl
cmFsVHlwZS5qcwppbmRleCAxMjkxNGRhMzEzN2ZkNmI5MGZlZGE3MjU4NjI3ZWZmZmZiZDRlNTQx
Li5hOWQ3NDUzMzNlZDhmZjYxZWM2ZWZjZDI4MjdlMDg0OTNlNmFlNGE5IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwpAQCAtMzIs
NyArMzIsNyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgICAg
ICBzdXBlcigpOwogICAgICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICAg
ICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9
IG5ldyBUeXBlUmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1lLCBbXSk7CisgICAg
ICAgICAgICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4sIGNvbmZpZy5w
cmVmZXJyZWRUeXBlTmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGdldCBvcmln
aW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24g
Y3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICBwcmVwYXJlVG9WZXJpZnkodW5pZmlj
YXRpb25Db250ZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlm
aWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcyBpbnN0
YW5jZW9mIFR5cGVWYXJpYWJsZSB8fCByZWFsVGhpcy5pc0xpdGVyYWwpIHsKKyAgICAgICAgICAg
IGlmIChyZWFsVGhpcy5pc0xpdGVyYWwpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4g
ewogICAgICAgICAgICAgICAgICAgICBpZiAocmVhbFRoaXMudW5pZnkodW5pZmljYXRpb25Db250
ZXh0LCB0aGlzLnByZWZlcnJlZFR5cGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IHRydWV9OwpAQCAtNzcsMTQgKzc3LDYgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJh
bFR5cGUoY29uZmlnKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJh
bFR5cGUgc2hvdWxkIG5ldmVyIGJlIHVzZWQgYXMgYSB0eXBlIHBhcmFtZXRlciIpOwogICAgICAg
ICB9CiAgICAgICAgIAotICAgICAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4
dC5maW5kKHRoaXMpOwotICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmVxdWFscyh0aGlzLnByZWZl
cnJlZFR5cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgcmV0dXJu
IDE7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGNvbW1pdFVuaWZpY2F0aW9uKHVuaWZp
Y2F0aW9uQ29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgdGhpcy50eXBlID0gdW5pZmlj
YXRpb25Db250ZXh0LmZpbmQodGhpcykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKaW5kZXgg
MzBlNmIwMzFhNmRkNjY1OTc0MDdmM2Y2YjdmZTcxM2VkOGZkY2M0YS4uMDI5NDc4MmMwZTc5M2Fh
Mzc5NTczZjUyODhjNmVlOWU4ZjkwMDY5YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCkBAIC0zNSw4ICszNSw2IEBAIGNsYXNzIEV4
cHJlc3Npb25GaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdEZ1bmMobm9kZSkKICAg
ICB7CiAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgIGZv
ciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBv
ZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAg
ICAgfQpAQCAtNDYsMTEgKzQ0LDYgQEAgY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUpOwogICAgIH0KICAgICAK
LSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QXNzaWdubWVu
dChub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxNzJkOThkMWUyYzAwOGVkYjVkODE4
M2Y1ZWVmZDY3OGRjOGVlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRl
bmRzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBmbGF0
dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0pCi17Ci0gICAgbGV0IHZpc2l0aW5nID0gbmV3IFZp
c2l0aW5nU2V0KCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZmxhdHRlbihwcm90b2NvbCkKLSAgICB7
Ci0gICAgICAgIGlmICghcHJvdG9jb2wuZXh0ZW5kcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIAotICAgICAgICB2aXNpdGluZy5kb1Zpc2l0KHByb3RvY29sLCAoKSA9PiB7
Ci0gICAgICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2YgcHJvdG9jb2wuZXh0ZW5kcykgewotICAg
ICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wcm90b2NvbERlY2w7Ci0gICAgICAgICAgICAg
ICAgZmxhdHRlbihwYXJlbnQpOwotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBv
ZiBwYXJlbnQuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2lnbmF0
dXJlID0gc2lnbmF0dXJlLnZpc2l0KAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN1YnN0
aXR1dGlvbihbcGFyZW50LnR5cGVWYXJpYWJsZV0sIFtwcm90b2NvbC50eXBlVmFyaWFibGVdKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHByb3RvY29sLmFkZChuZXdTaWduYXR1cmUpOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb3RvY29sLmV4dGVuZHMg
PSBbXTsKLSAgICAgICAgfSk7Ci0gICAgfQotICAgIAotICAgIGZvciAobGV0IHByb3RvY29sIG9m
IHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBmbGF0dGVuKHByb3RvY29sKTsK
LX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRl
cmFsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCmlu
ZGV4IGU2YzU3MzdkZTE2YTRhNjQ4ZDg1YWRjYTE2OTM0NTRiNjE0MDcyN2UuLmQ1ZDFiMTUyMzBm
MDljMTBhMGJjMTI1ZjAzY2Y1YWQ0Y2UzZGQyZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKQEAgLTMwLDcgKzMwLDcgQEAgbGV0IEZsb2F0TGl0
ZXJhbCA9IGNyZWF0ZUxpdGVyYWwoewogICAgIAogICAgIG5lZ0NvbnN0ZXhwcihvcmlnaW4pCiAg
ICAgewotICAgICAgICByZXR1cm4gbmV3IEludExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7
CisgICAgICAgIHJldHVybiBuZXcgRmxvYXRMaXRlcmFsKG9yaWdpbiwgLXRoaXMudmFsdWUpOwog
ICAgIH0sCiAgICAgCiAgICAgY3JlYXRlVHlwZShvcmlnaW4sIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmMuanMKaW5kZXggNmZhN2M5ZDFiNmY0Yjk1ODMzNTk4MWMyNzI4YmU4
NjVhNTZlNzNhZS4uNmZjNzMzMjc2MWQ0NjNjMzVhOGM0MGMyYTc2ZjJmNGIzNmMyMzIyMyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3Rvcihv
cmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nh
c3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewogICAgICAgICBpZiAoIShv
cmlnaW4gaW5zdGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIG9yaWdpbjogIiArIG9yaWdpbik7CkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZ1bmMg
ZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0
aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7
Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAg
IHRoaXMuX3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBp
c0Nhc3Q7CiAgICAgICAgIHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwpAQCAtNDgsOCAr
NDcsNiBAQCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0
dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsg
fQogICAgIGdldCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAg
IGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0g
ICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKSB7IHJldHVybiB0aGlzLnR5
cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl9wYXJh
bWV0ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gdGhpcy5wYXJhbWV0
ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9CiAgICAgZ2V0IGlzQ2FzdCgp
IHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQpAQCAtNjUsOSArNjIsOSBAQCBjbGFzcyBGdW5jIGV4
dGVuZHMgTm9kZSB7CiAgICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCiAgICAgICAgICAgICBy
ZXN1bHQgKz0gdGhpcy5zaGFkZXJUeXBlICsgIiAiOwogICAgICAgICBpZiAodGhpcy5pc0Nhc3Qp
Ci0gICAgICAgICAgICByZXN1bHQgKz0gIm9wZXJhdG9yPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJz
ICsgIj4gIiArIHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0
b3IgIiArIHRoaXMucmV0dXJuVHlwZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
ICs9IHRoaXMucmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBh
cmFtZXRlcnMgKyAiPiI7CisgICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsg
IiAiICsgdGhpcy5uYW1lOwogICAgICAgICByZXR1cm4gcmVzdWx0ICsgIigiICsgdGhpcy5wYXJh
bWV0ZXJzICsgIikiOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9G
dW5jRGVmLmpzCmluZGV4IDExZmEwOTJlM2IyMjc4ZTIxNWEwYTY3ZTk1MWUxN2RhYmExMzZhODMu
LmNhMDU5N2ZjZDI5NGRmYWI2MDQ0MjE0ZTA3NTRmN2VmOTQ0Yjg3OGUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJp
Y3QiOwogCiBjbGFzcyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3Jp
Z2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgYm9keSwg
aXNDYXN0LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJu
VHlwZSwgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAg
ICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1l
dGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCBy
ZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlz
Ll9ib2R5ID0gYm9keTsKICAgICAgICAgdGhpcy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICB9
CkBAIC0zNiw4ICszNiw2IEBAIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKICAgICAKICAg
ICByZXdyaXRlKHJld3JpdGVyKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUg
YW4gdW5pbnN0YW50aWF0ZWQgZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9
IHRoaXMuX3JldHVyblR5cGUudmlzaXQocmV3cml0ZXIpOwogICAgICAgICB0aGlzLl9wYXJhbWV0
ZXJzID0gdGhpcy5fcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChy
ZXdyaXRlcikpOwogICAgICAgICB0aGlzLl9ib2R5ID0gdGhpcy5ib2R5LnZpc2l0KHJld3JpdGVy
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50
aWF0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9y
LmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTI4NjJhNmRkODU2NWVlMzdlNDIw
NjMxZDdhZjcwZDUyMjdlNTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3Iu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jSW5zdGFu
dGlhdG9yIHsKLSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5f
cHJvZ3JhbSA9IHByb2dyYW07Ci0gICAgICAgIHRoaXMuX2luc3RhbmNlcyA9IG5ldyBNYXAoKTsK
LSAgICB9Ci0gICAgCi0gICAgZ2V0IGluc3RhbmNlcygpIHsgcmV0dXJuIHRoaXMuX2luc3RhbmNl
czsgfQotICAgIAotICAgIC8vIFJldHVybnMgYSBGdW5jIG9iamVjdCB0aGF0IHVuaXF1ZWx5IGlk
ZW50aWZpZXMgYSBwYXJ0aWN1bGFyIHN5c3RlbSBvZiB0eXBlIGFyZ3VtZW50cy4gWW91IG11c3QK
LSAgICAvLyBpbnRhbnRpYXRlIHRoaW5ncyB3aXRoIGNvbmNyZXRlIHR5cGVzLCBiZWNhdXNlIHRo
aXMgY29kZSBjYXN1YWxseSBhc3N1bWVzIHRoaXMuIE5vdGUgdGhhdCB0aGlzCi0gICAgLy8gd2ls
bCByZXR1cm4gYSBkaWZmZXJlbnQgZnVuYyBmcm9tIGBmdW5jYCBubyBtYXR0ZXIgd2hhdC4gVGhp
cyBlbnN1cmVzIHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAgICAvLyByZXR1cm5lZCBmdW5jIGZvciBy
ZXdyaXRlcyB0aGF0IGluc3RhbnRpYXRlIHR5cGVzIHdpdGhvdXQgZGVzdHJveWluZyBvdXIgYWJp
bGl0eSB0byBkbyBvdmVybG9hZAotICAgIC8vIHJlc29sdXRpb25zIG9uIHRoZSBvcmlnaW5hbCBQ
cm9ncmFtLgotICAgIGdldFVuaXF1ZShmdW5jLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAg
ICAgY2xhc3MgRmluZFR5cGVWYXJpYWJsZSBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICAgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yIChs
ZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAg
ICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Ci0gICAgICAgICAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7Ci0gICAgICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgdmFyaWFibGU6ICIgKyBub2RlICsgIiB3
aGVuIGluc3RhbnRpYXRpbmcgIiArIGZ1bmMgKyAiIHdpdGggYXJndW1lbnRzICIgKyB0eXBlQXJn
dW1lbnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBl
QXJndW1lbnQgb2YgdHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dChuZXcgRmluZFR5cGVWYXJpYWJsZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW5j
ZXMgPSB0aGlzLl9pbnN0YW5jZXMuZ2V0KGZ1bmMpOwotICAgICAgICBpZiAoIWluc3RhbmNlcykK
LSAgICAgICAgICAgIHRoaXMuX2luc3RhbmNlcy5zZXQoZnVuYywgaW5zdGFuY2VzID0gW10pOwot
ICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7Ci0gICAg
ICAgICAgICBsZXQgb2sgPSB0cnVlOwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc3RhbmNl
LnR5cGVBcmd1bWVudHMubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbnN0
YW5jZS50eXBlQXJndW1lbnRzW2ldLmVxdWFscyh0eXBlQXJndW1lbnRzW2ldKSkgewotICAgICAg
ICAgICAgICAgICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmZ1bmM7
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCB0aGlzSW5zdGFudGlhdG9yID0gdGhp
czsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24gZXh0
ZW5kcyBTdWJzdGl0dXRpb24gewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2Rl
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNp
dENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IC8vIFdlIG1heSBoYXZlIHRvIHJlLXJlc29sdmUgdGhlIGZ1bmN0aW9uIGNhbGwsIGlmIGl0IHdh
cyBhIGNhbGwgdG8gYSBwcm90b2NvbAotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZS4KLSAg
ICAgICAgICAgICAgICBpZiAocmVzdWx0LmZ1bmMgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNs
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZElt
cGwocmVzdWx0LnBvc3NpYmxlT3ZlcmxvYWRzLCByZXN1bHQudHlwZUFyZ3VtZW50cywgcmVzdWx0
LmFyZ3VtZW50VHlwZXMsIHJlc3VsdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDb3VsZCBub3QgcmVzb2x2ZSBwcm90b2NvbCBzaWduYXR1cmUgZnVuY3Rpb24gY2FsbCBk
dXJpbmcgaW5zdGFudGlhdGlvbjogIiArIHJlc3VsdC5mdW5jICsgKG92ZXJsb2FkLmZhaWx1cmVz
Lmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAi
IikpOwotICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZVRvT3ZlcmxvYWQob3Zlcmxv
YWQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAocmVzdWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5u
YXRpdmVGdW5jSW5zdGFuY2UgPSB0aGlzSW5zdGFudGlhdG9yLmdldFVuaXF1ZShyZXN1bHQuZnVu
YywgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgSW5zdGFudGlhdGlvblN1YnN0aXR1
dGlvbihmdW5jLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLQotICAgICAgICBjbGFz
cyBJbnN0YW50aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgSW5zdGFudGlhdGVJ
bW1lZGlhdGVzIHsKLSAgICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGNlcnRhaW4g
dGhpbmdzIHRoYXQgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQsIGJ1dCB0aGF0IHdlIGNhbm5vdAot
ICAgICAgICAgICAgICAgIC8vIGluc3RhbnRpYXRlIHdpdGhvdXQgYnJlYWtpbmcgY2hhaW4taW5z
dGFudGlhdGlvbnMgKGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgZ2VuZXJpYwotICAgICAgICAgICAg
ICAgIC8vIGZ1bmN0aW9uIHNvIHRoZXJlZm9yZSB0aGUgaW5zdGFudGlhdGVkIGdlbmVyaWMgZnVu
Y3Rpb24gbXVzdCBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIC8vICh1
bmluc3RhbnRpYXRlZCkgdHlwZXMgdG8gaW5zdGFudGlhdGUgdGhlIGdlbmVyaWMgZnVuY3Rpb24g
dGhhdCBpdCBjYWxscykuCi0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhw
cmVzc2lvbigKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9k
ZS50eXBlQXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5t
YXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKLSAgICAgICAgICAg
ICAgICByZXN1bHQgPSB0aGlzLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9
IEFycmF5LmZyb20obm9kZS5hcmd1bWVudFR5cGVzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9k
ZS5pc0Nhc3QpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2RlLnJl
dHVyblR5cGUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0g
QXJyYXkuZnJvbShub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LQotICAgICAgICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRpb25J
bnN0YW50aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRp
YXRlIHsKLSAgICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGxldCByZXR1cm5UeXBlID0gZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0
aXR1dGlvbik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHJldHVyblR5cGUudmlzaXQo
aW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9
IGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0
dXRpb24pKTsKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5tYXAocGFy
YW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKTsKLSAgICAg
ICAgICAgICAgICBsZXQgYm9keSA9IGZ1bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pOwotICAg
ICAgICAgICAgICAgIGJvZHkgPSBib2R5LnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKAotICAgICAgICAgICAgICAgICAgICBm
dW5jLm9yaWdpbiwgZnVuYy5uYW1lLCByZXR1cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgYm9keSwg
ZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhmdW5j
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuY0lu
c3RhbmNlKAotICAgICAgICAgICAgICAgICAgICBmdW5jLAotICAgICAgICAgICAgICAgICAgICBm
dW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVk
aWF0ZXMpLAotICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRl
ciA9PiBwYXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVk
aWF0ZXMpKSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbnN0YW50
aWF0ZUltcGxlbWVudGF0aW9uKHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9Ci0gICAgICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChuZXcgSW5zdGFudGlh
dGUoKSk7Ci0gICAgICAgIHJlc3VsdGluZ0Z1bmMudW5pbnN0YW50aWF0ZWRSZXR1cm5UeXBlID0g
ZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgIGxldCBpbnN0YW5j
ZSA9IHtmdW5jOiByZXN1bHRpbmdGdW5jLCB0eXBlQXJndW1lbnRzfTsKLSAgICAgICAgaW5zdGFu
Y2VzLnB1c2goaW5zdGFuY2UpOwotICAgICAgICByZXR1cm4gcmVzdWx0aW5nRnVuYzsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlw
ZXNGb3JDYWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0Zv
ckNhbGwuanMKaW5kZXggNDQ2YjM1MWRhNTcxNWM2OGEzNWQ3Njk3OTY5ZDY5OGVjNzNlNzRmOC4u
NjA0OTE1MzYyNTFkMDliY2UwM2ExNGVkNjc3NTIyYTAyZDEzYTY0MyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKQEAgLTI0LDE5
ICsyNCwxMSBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JD
YWxsKGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCitmdW5j
dGlvbiBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQog
ewotICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCAmJiB0eXBlQXJndW1lbnRzLmxlbmd0aCAh
PSBmdW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBu
ZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUg
YXJndW1lbnRzIChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgcmVxdWlyZSAi
ICsgZnVuYy50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBpZiAoYXJndW1lbnRU
eXBlcy5sZW5ndGggIT0gZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIHtm
YWlsdXJlOiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVy
IG9mIGFyZ3VtZW50cyAocGFzc2VkICIgKyBhcmd1bWVudFR5cGVzLmxlbmd0aCArICIsIHJlcXVp
cmUgIiArIGZ1bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKLSAgICBsZXQgdW5pZmljYXRp
b25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChmdW5jLnR5cGVQYXJhbWV0ZXJzRm9y
Q2FsbFJlc29sdXRpb24pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkgewotICAgICAgICBsZXQgYXJndW1lbnQgPSB0eXBlQXJndW1lbnRzW2ldOwot
ICAgICAgICBsZXQgcGFyYW1ldGVyID0gZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAg
aWYgKCFhcmd1bWVudC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHBhcmFtZXRlcikpCi0gICAg
ICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1
bmMsICJUeXBlIGFyZ3VtZW50ICMiICsgKGkgKyAxKSArICIgZm9yIHBhcmFtZXRlciAiICsgcGFy
YW1ldGVyLm5hbWUgKyAiIGRvZXMgbm90IG1hdGNoIChwYXNzZWQgIiArIGFyZ3VtZW50ICsgIiwg
cmVxdWlyZSAiICsgcGFyYW1ldGVyICsgIikiKX07Ci0gICAgfQorICAgIGxldCB1bmlmaWNhdGlv
bkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7CiAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBhcmd1bWVudFR5cGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIGlmICghYXJndW1lbnRU
eXBlc1tpXSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBhcmd1bWVudCB0eXBl
IGF0IGkgPSAiICsgaSk7CkBAIC00OCwxNiArNDAsNiBAQCBmdW5jdGlvbiBpbmZlclR5cGVzRm9y
Q2FsbChmdW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogICAg
IGxldCB2ZXJpZmljYXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7CiAg
ICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQogICAgICAgICByZXR1cm4ge2ZhaWx1
cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsIHZlcmlmaWNhdGlvblJlc3Vs
dC5yZWFzb24pfTsKLSAgICBsZXQgc2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzID0gIXR5cGVBcmd1
bWVudHMubGVuZ3RoOwotICAgIGlmIChzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMpCi0gICAgICAg
IHR5cGVBcmd1bWVudHMgPSBbXTsKLSAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMu
dHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudCA9IHVuaWZpY2F0aW9u
Q29udGV4dC5maW5kKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICBpZiAodHlwZUFyZ3VtZW50ID09
IHR5cGVQYXJhbWV0ZXIpCi0gICAgICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9h
ZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRl
ciArICIgZGlkIG5vdCBnZXQgYXNzaWduZWQgYSB0eXBlIil9OwotICAgICAgICBpZiAoc2hvdWxk
QnVpbGRUeXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50cy5wdXNoKHR5cGVB
cmd1bWVudCk7Ci0gICAgfQotICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0LCB0
eXBlQXJndW1lbnRzfTsKKyAgICByZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dH07CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwppbmRleCBmMDI4NzNiZDI3
M2Q5MTBiM2RmMDRmZDJhNTFhM2M3YzBhNDY3Y2VmLi4wOTA3NDY5OTI2ZjhjMDdkNTMzNGJiMDMw
N2RkMzUxODViOGU1MjNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbmxpbmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpz
CkBAIC0yOCwxOCArMjgsMTMgQEAgZnVuY3Rpb24gaW5saW5lKHByb2dyYW0pCiB7CiAgICAgZm9y
IChsZXQgZnVuY0xpc3Qgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAg
Zm9yIChsZXQgZnVuYyBvZiBmdW5jTGlzdCkgewotICAgICAgICAgICAgaWYgKCFmdW5jLnR5cGVQ
YXJhbWV0ZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIGZ1bmMgPSBwcm9ncmFtLmZ1bmNJ
bnN0YW50aWF0b3IuZ2V0VW5pcXVlKGZ1bmMsIFtdKQotICAgICAgICAgICAgICAgIF9pbmxpbmVG
dW5jdGlvbihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQoZnVuYykpOwotICAgICAgICAg
ICAgfQorICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNp
dGluZ1NldChmdW5jKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKIGZ1bmN0aW9uIF9pbmxpbmVG
dW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKIHsKLSAgICBpZiAoZnVuYy50eXBlUGFy
YW1ldGVycy5sZW5ndGgpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGlubGluZSBm
dW5jdGlvbiB0aGF0IGhhcyB0eXBlIHBhcmFtZXRlcnMiKTsKICAgICBpZiAoZnVuYy5pbmxpbmVk
IHx8IGZ1bmMuaXNOYXRpdmUpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTU1LDE0ICs1MCwx
MCBAQCBmdW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgdmlzaXRpbmcpCiAg
ICAgZnVuYy5pbmxpbmVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5j
dGlvbihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBhbGxvd0Vu
dHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3Jh
bSwgbmFtZSwgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7Ci0gICAg
bGV0IG92ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5yZXNvbHZlRnVuY092ZXJs
b2FkKG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHVuZGVmaW5lZCwgYWxsb3dF
bnRyeVBvaW50KTsKKyAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0
LnJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxv
d0VudHJ5UG9pbnQpOwogICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgcmV0dXJuIG92
ZXJsb2FkLmZhaWx1cmVzOwotICAgIGlmICghb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycykK
LSAgICAgICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7Ci0gICAgbGV0IGZ1bmMgPSBwcm9ncmFtLmZ1
bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKG92ZXJsb2FkLmZ1bmMsIG92ZXJsb2FkLnR5cGVBcmd1
bWVudHMpOwotICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdT
ZXQob3ZlcmxvYWQuZnVuYykpOwotICAgIHJldHVybiBmdW5jOworICAgIHJldHVybiBvdmVybG9h
ZC5mdW5jOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5s
aW5lci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKaW5kZXgg
NDkxZWYzZTIyMWZjMDYzMThlZTAzNjdhMzgxNjk5ZTU3MjNiZmU1YS4uZDkwNmY3NmRkNTMzZTZk
ZTZlMzVjYWRmNDBiMzQxYzAxOTM1Zjg2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvSW5saW5lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbmxpbmVyLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIElubGluZXIgZXh0ZW5kcyBSZXdy
aXRlciB7CiAgICAgICAgIGlmIChyZXN1bHQubmF0aXZlRnVuY0luc3RhbmNlKQogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQo
bm9kZS5mdW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRoaXMuX3Byb2dyYW0u
ZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3VsdC5hY3R1YWxUeXBl
QXJndW1lbnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1bmM7CiAgICAgICAg
ICAgICBpZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlVuZXhwZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAgICAgIF9pbmxpbmVG
dW5jdGlvbih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEzNDhhYmMxMjc2OTZi
NmVlMzFlMGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVz
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBJbnN0YW50aWF0
ZUltbWVkaWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0g
ICAgewotICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICBp
ZiAoIW5vZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYgKG5vZGUudHlwZUFy
Z3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBlIGRv
ZXMgbm90IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgiICsgdHlwZS5jb25z
dHJ1Y3Rvci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50eXBlQXJndW1lbnRz
KS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmVmZXJl
bmNlVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotfQotCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCA5MzNkZmUw
MTEzMDJiMGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi4wNjdjZWM0MTc3MTYwZGFjMGUyNmY4
OThkOWU4MThjNDA1ZjQwZWUxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
dHJpbnNpY3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAg
ICAvLyBGb3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVjbGFyZWQgdXNpbmcg
ImludCIgcmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAgICAgIC8vIHVzZSAi
aW50IiBoZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkgYXJlIHRoZSBzYW1l
IHR5cGUuCiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAg
ICAgICB0aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNCaXR3aXNlRXF1aXZh
bGVudChsZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0IGRvdWJsZUFycmF5
ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5NCArNDcsMjU4IEBAIGNsYXNzIEludHJp
bnNpY3MgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9y
LCBudW1iZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFy
cmF5Q29uc3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsKKyAgICAg
ICAgICAgIHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0gICAgICAgICAgICB0
eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmNhblJl
cHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7
Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBlLmRl
ZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9y
aWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5
cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFs
dWUgKyAxKSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9
PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+
IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigp
IHsgCi0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7
ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7
CisgICAgICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQorICAgICAgICB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KKyAgICAgICAgICAg
IGlmIChOdW1iZXIuaXNOYU4obnVtYmVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVy
CisgICAgICAgICAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IE51bWJlci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgICAgIGlmIChudW1iZXIgPCAtNjU1
MDQpCisgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAg
ICAgICAgICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8IE1hdGgucG93KDIsIC0yNCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCAmJiBu
dW1iZXIgPiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTA7Cisg
ICAgICAgICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEpOworICAgICAg
ICAgICAgbGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7
CisgICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IG51bWJlcjsKKyAgICAgICAgICAgIGxldCBz
aWduID0gdWludEFycmF5WzddICYgMHg4MDsKKyAgICAgICAgICAgIGxldCBleHBvbmVudCA9ICgo
dWludEFycmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0
KTsKKyAgICAgICAgICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYgMHgwZikg
PDwgNikgfCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKIAotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQzMjw+IiwKLSAgICAgICAg
ICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDMyID0gdHlwZTsKLSAgICAg
ICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBl
LmlzSW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAw
LCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRl
cmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1
ZSA+Pj4gMCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZh
bHVlID0+ICh2YWx1ZSArIDEpID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1
YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVm
YXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4g
dmFsdWUgPj4+IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFs
dWVzID0gZnVuY3Rpb24qKCkgeyAKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPD0gMHhmZmZmZmZmZjsgKytpKQotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3Zh
bHVlOiBpLCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgICAgICAg
ICBleHBvbmVudCA9IDA7CisgICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMo
bnVtYmVyKSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7CisgICAgICAgICAgICAgICAgbGV0IHZh
bHVlID0gTWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgICAg
ICAgICBpZiAoc2lnbiAhPSAwKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1aW50ODw+IiwKLSAgICAg
ICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDggPSB0eXBlOwotICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNO
dW1iZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2
YWxlbnQodmFsdWUgJiAweGZmLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0g
MTsKLSAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7Ci0gICAgICAgICAg
ICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKLSAgICAg
ICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IDA7CiAKKyAgICAgICAg
ICAgIHVpbnRBcnJheVs3XSB8PSBzaWduOworICAgICAgICAgICAgdWludEFycmF5WzddIHw9IChl
eHBvbmVudCA+Pj4gNCk7CisgICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8
PCA0KSAmIDB4ZjApOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+
Pj4gNik7CisgICAgICAgICAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAm
IDB4ZmMpOworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07
CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIHR5cGVkZWYgZmxvYXQzMjw+IiwKKyAgICAgICAgICAgICJuYXRpdmUgdHlwZWRl
ZiB2b2lkIiwKICAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMuZmxv
YXQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAg
ICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0
aW5nID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxl
bnQoTWF0aC5mcm91bmQodmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZh
bHVlID0+IHZhbHVlOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExp
dGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAgICAgICAg
ICAgICAgICB0aGlzLnZvaWQgPSB0eXBlOworICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7
CisgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsK
ICAgICAgICAgICAgIH0pOwotCisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGJvb2w8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5
cGVkZWYgYm9vbCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlz
LmJvb2wgPSB0eXBlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwog
ICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IGZhbHNlKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMih1aW50MzIpIiwKLSAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgb3BlcmF0b3I8PiBpbnQzMih1aW50OCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2
YWx1ZS5sb2FkVmFsdWUoKSB8IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGludDMyKGZs
b2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDMyKGludDMyKSIsCi0gICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiB1aW50MzIodWludDgpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQzMihmbG9h
dCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDgoaW50MzIpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiB1aW50OCh1aW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50OChmbG9h
dCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZsb2F0KGludDMyKSIsCi0gICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIG9wZXJhdG9yPD4gZmxvYXQodWludDMyKSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9y
PD4gZmxvYXQodWludDgpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQo
dmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKzw+KGludCxp
bnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcis8Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcis8Pihm
bG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVl
KCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLTw+KGludCxpbnQpIiwKLSAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZh
bHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvci08Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkg
Pj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci08PihmbG9hdCxmbG9hdCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRo
LmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yKjw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcio8Pih1aW50LHVp
bnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvcio8PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmln
aHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0Lmxv
YWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJh
dG9yLzw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAw
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci88Pih1aW50LHVpbnQpIiwKLSAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZh
bHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3Bl
cmF0b3ImPD4oaW50LGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yJjw+KHVpbnQsdWludCkiLAotICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUo
KSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
cnw8PihpbnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIHVpbnQgb3BlcmF0b3J8PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwg
cmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXjw+
KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcl48Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PDw+KGlu
dCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yPDw8Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmln
aHQubG9hZFZhbHVlKCkpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj48Pihp
bnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcj4+PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4+IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfjw+KGludCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZhbHVlKCkpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yfjw+KHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3go
KH52YWx1ZS5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAot
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRv
ci88PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9h
ZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09PD4oaW50LGludCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBv
cGVyYXRvcj09PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVl
KCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08Pihib29sLGJvb2wpIiwKLSAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I9PTw+KGZsb2F0LGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGludCxpbnQpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUo
KSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw8Pih1
aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgYm9vbCBvcGVyYXRvcjw8PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmln
aHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD08PihpbnQsaW50
KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBi
b29sIG9wZXJhdG9yPD08Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2Fk
VmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PTw+KGZsb2F0LGZsb2F0KSIs
Ci0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I+PD4oaW50LGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVl
KCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiB1Y2hhciIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMudWNoYXIgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0g
ZmFsc2U7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNC
aXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4g
SW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZiwgdHlwZSk7CisgICAgICAg
ICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4
ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0g
YjsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIs
IG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBl
LmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24q
KCkgeworICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytp
KQorICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Cisg
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48Pih1aW50LHVpbnQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdXNob3J0IiwKKyAgICAgICAgICAg
ICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy51c2hvcnQgPSB0eXBlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAg
IHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAm
IDB4ZmZmZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUu
Y3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9y
aWdpbiwgdmFsdWUgJiAweGZmZmYsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nl
c3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmZmY7CisgICAgICAgICAgICAg
ICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOwor
ICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAg
ICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CisgICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAg
ICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1aW50IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsK
KyAgICAgICAgICAgICAgICAgdGhpcy51aW50ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVl
OworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJl
c2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgPj4+IDAsIHZhbHVlKTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5k
ZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAo
b3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlID4+PiAw
LCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+
ICh2YWx1ZSArIDEpID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0g
KGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0
VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1
ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8PSAweGZmZmZmZmZmOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3Zh
bHVlOiBpLCBuYW1lOiBpfTsKKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICB9KTsK
KwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJh
dG9yPj08PihpbnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBj
aGFyIiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5jaGFy
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
TnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1
aXZhbGVudChjYXN0KEludDhBcnJheSwgdmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsK
KyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+
IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0KEludDhBcnJheSwgdmFsdWUpLCB0eXBl
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSArIDEpOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFs
ID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZh
dWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgbGV0IHZhbHVlID0gY2FzdChJbnQ4QXJyYXksIGkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKKyAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICB9KTsKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9y
Pj08Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNo
b3J0IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5zaG9y
dCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAg
ICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5p
c051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVx
dWl2YWxlbnQoY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAw
OworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkg
PT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3QoSW50MTZBcnJheSwgdmFsdWUpLCB0
eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+IGNh
c3QoSW50MTZBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1h
dFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDE2QXJyYXksIGkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsK
KyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
ICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29s
IG9wZXJhdG9yPj08PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgYWRk
cmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFjZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAgICAgYG5hdGl2ZSBUKiAke2FkZHJlc3NTcGFjZX0gb3BlcmF0b3ImW108
VD4oVFtdICR7YWRkcmVzc1NwYWNlfSx1aW50KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZiwgaW5kZXhd
LCBub2RlKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZhbHVl
KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJOdWxsIGRlcmVmZXJlbmNlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGlu
ZGV4LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gcmVm
Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsgaW5kZXggKyAiIGlz
IG91dCBvZiBib3VuZHMgb2YgIiArIHJlZik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRVB0ci5ib3gocmVmLnB0ci5wbHVzKGluZGV4ICogbm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxU
eXBlQXJndW1lbnRzWzBdLnNpemUpKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50IiwKKyAgICAgICAg
ICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5pbnQgPSB0eXBlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlIHwg
MCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRl
TGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwg
dmFsdWUgfCAwLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9
IHZhbHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50
TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxW
YWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8PSAweGZmZmZmZmZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBpIHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZh
bHVlLCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihUW10gJHthZGRy
ZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJv
eCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYubGVuZ3Ro
KTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAgICAg
fQorICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYg
aGFsZiIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuaGFs
ZiA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAg
ICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmlzRmxv
YXRpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVp
dmFsZW50KGNhc3RUb0hhbGYodmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
cG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zm
c2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFs
ID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
VWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9IYWxmKHZhbHVlKTsKKyAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBzd2l6emxlIG9mIFN3aXp6bGVPcC5h
bGxTd2l6emxlT3BlcmF0b3JzKCkpIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc3dpenps
ZS50b1N0cmluZygpLCAKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZlY10sIG5vZGUpID0+IHsKLSAgICAgICAgICAgICAgICAg
ICAgY29uc3Qgb3V0cHV0QnVmZmVyID0gbmV3IEVCdWZmZXIoc3dpenpsZS5vdXRTaXplKTsKLSAg
ICAgICAgICAgICAgICAgICAgY29uc3QgcmVhZEluZGljZXMgPSB7ICd4JzogMCwgJ3knOiAxLCAn
eic6IDIsICd3JzogMyB9OwotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IHN3aXp6bGUub3V0U2l6ZTsgaSsrKQotICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0QnVm
ZmVyLnNldChpLCB2ZWMuZ2V0KHJlYWRJbmRpY2VzW3N3aXp6bGUuY29tcG9uZW50c1tpXV0pKTsK
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gbmV3IEVQdHIob3V0cHV0QnVmZmVyLCAwKTsKLSAgICAgICAgICAgICAg
ICB9LAotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gc3dpenpsZTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgY29uc29sZS5sb2coc3dpenpsZS50b1N0cmlu
ZygpKTsKLSAgICAgICAgfQorICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAi
bmF0aXZlIHR5cGVkZWYgZmxvYXQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAg
ICAgICAgICB0aGlzLmZsb2F0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAg
ICAgICAgIHR5cGUuaXNGbG9hdGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNO
dW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVl
ID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoTWF0aC5mcm91bmQodmFsdWUpLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRo
LmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludCIsCisgICAgICAgICAg
ICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX2ludCA9IHR5cGU7Cisg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAi
bmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICB9KTsK
ICAgICB9CiAgICAgCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L015bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkOGYxM2IzMDgyZGQ2MzY4ZDE0ZDBkODYxZWYzMGEy
NTI1NjY3ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L015bGVzLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+TXls
ZXM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ik5vZGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlZmVyZW5jZVR5cGUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iVmlzaXRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ3JlYXRl
TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5cGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQW5vbnltb3VzVmFy
aWFibGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFycmF5UmVmVHlwZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJB
c3NpZ25tZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBdXRvV3JhcHBlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iQmxvY2suanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJv
b2xMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCcmVhay5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2suanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JlY3Vy
c2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tSZWN1cnNpdmVUeXBlcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tSZXR1cm5zLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJDaGVja1VucmVhY2hhYmxlQ29kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q2hlY2tXcmFwcGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja2VyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ29uc3RleHBy
Rm9sZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
RG90RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRGVyZWZlcmVuY2VFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFQXJyYXlSZWYuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkVCdWZmZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVCdWZm
ZXJCdWlsZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFUHRyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJFbnVtTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRW51
bU1lbWJlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRW51bVR5cGUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkV2YWx1YXRpb25Db21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkV2YWx1YXRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXhwcmVzc2lvbkZpbmRl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGaW5kSGln
aFpvbWJpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNl
dEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkZvbGRDb25zdGV4cHJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGb3JM
b29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iSWRlbnRpdHlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJZlN0
YXRlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW5kZXhFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmxpbmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW50cmlu
c2ljcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTGF0ZUNoZWNrZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkxleGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMZXhlclRv
a2VuLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMaXRlcmFsVHlwZUNoZWNrZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkxvZ2ljYWxFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJMb2dpY2FsTm90LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMb29wQ2hl
Y2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJO
YW1lRmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3Bl
cnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iT3JpZ2luS2luZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iT3ZlcmxvYWRSZXNvbHV0
aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUGFyc2UuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlByZXBhcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb3Bl
cnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZWN1cnNpdmVU
eXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVzb2x2ZU5hbWVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJSZXNvbHZlUHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iUmVzb2x2ZVR5cGVEZWZzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXR1cm4uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3Rh
bmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRDbG9uZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlN0cnVjdFR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlN1YnN0aXR1dGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpdGNoQ2FzZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpdGNoU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VHlwZVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVW5pZmljYXRpb25D
b250ZXh0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbnJlYWNoYWJsZUNvZGVDaGVja2Vy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWYXJpYWJsZURlY2wuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWaXNp
dGluZ1NldC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV1N5bnRheEVycm9yLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJXVHJhcEVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJXVHlwZUVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXaGlsZUxvb3AuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IldyYXBDaGVja2VyLmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dCBzcmM9IlRlc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgord2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKKyAgICBwcmVwYXJlKCk7Cit9KTsKKzwvc2NyaXB0
PgorCis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9Im1lc3NhZ2VzIj48L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVD
b250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMK
aW5kZXggYzMxYmM0MjgyOTQ0MzBiZDQ1Mjc3OTZmNGQ3YTk5NjA1MzlmNjE4OC4uYWZjY2U3MTIz
NGY1YWFjZGVmM2UzYWVkZDIxN2Q2OGQzNWY3YjEwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKQEAgLTEwNCwxMyArMTA0LDEzIEBAIGNsYXNzIE5h
bWVDb250ZXh0IHsKICAgICAgICAgeWllbGQgdGhpbmc7CiAgICAgfQogICAgIAotICAgIHJlc29s
dmVGdW5jT3ZlcmxvYWQobmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJu
VHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCisgICAgcmVzb2x2ZUZ1bmNPdmVybG9hZChu
YW1lLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkK
ICAgICB7CiAgICAgICAgIGxldCBmdW5jdGlvbnMgPSB0aGlzLmdldChGdW5jLCBuYW1lKTsKICAg
ICAgICAgaWYgKCFmdW5jdGlvbnMpCiAgICAgICAgICAgICByZXR1cm4ge2ZhaWx1cmVzOiBbXX07
CiAgICAgICAgIAotICAgICAgICByZXR1cm4gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMs
IHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2lu
dCk7CisgICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJndW1l
bnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50KTsKICAgICB9CiAgICAgCiAgICAg
Z2V0IGN1cnJlbnRTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
bWVGaW5kZXIuanMKaW5kZXggZmMyZmRiZDAzMjUyN2NjYzU0Y2FkNzFiYTU3NmI5OTIyMWVlOWM3
ZC4uNDNlNDcxYWFjNjFhZGE0M2Y3NGM3ZjA4MzJmNzNlODBjYWEzYjRlNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCkBAIC00MywxMiArNDMsNiBAQCBj
bGFzcyBOYW1lRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX3dvcmtsaXN0
LnB1c2gobmFtZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAg
ICB7Ci0gICAgICAgIHRoaXMuYWRkKG5vZGUubmFtZSk7Ci0gICAgICAgIHN1cGVyLnZpc2l0UHJv
dG9jb2xSZWYobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAg
IHsKICAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwppbmRleCA3MzE5NjRmYzc4MjIxYWU3MzExODk4MTI1
MjIzMjUwM2JjZmFiYzMwLi5jYWYyNjdjZTUyYTFhNTA0NjM1NmQ4M2EwM2UwMTZjOWViYjM2YmIz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCkBA
IC00MSwxOSArNDEsMTQgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgIHRoaXMuX25hbWVDb250ZXh0LmRvU3RhdGVtZW50KHN0YXRlbWVudCwgKCkgPT4gc3Rh
dGVtZW50LnZpc2l0KHRoaXMpKTsKICAgICB9CiAgICAgCi0gICAgX3Zpc2l0VHlwZVBhcmFtZXRl
cnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpCisgICAgX2J1aWxkTmFtZUNvbnRleHQoKQogICAg
IHsKLSAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVD
b250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJh
bWV0ZXJzKSB7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5hZGQodHlwZVBhcmFtZXRlcik7Ci0g
ICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiBuYW1lQ29udGV4dDsKKyAgICAgICAgcmV0dXJuIG5ldyBOYW1lQ29udGV4dCh0aGlz
Ll9uYW1lQ29udGV4dCk7CiAgICAgfQogICAgIAogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsK
LSAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKHRoaXMuX3Zpc2l0VHlwZVBh
cmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpKTsKKyAgICAgICAgbGV0IGNoZWNrZXIg
PSBuZXcgTmFtZVJlc29sdmVyKHRoaXMuX2J1aWxkTmFtZUNvbnRleHQobm9kZSkpOwogICAgICAg
ICBub2RlLnJldHVyblR5cGUudmlzaXQoY2hlY2tlcik7CiAgICAgICAgIGZvciAobGV0IHBhcmFt
ZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQoY2hl
Y2tlcik7CkBAIC02MSwxNiArNTYsMTQgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgCiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQg
Y29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyA9IHRoaXMuX3Zpc2l0VHlwZVBhcmFtZXRlcnNBbmRC
dWlsZE5hbWVDb250ZXh0KG5vZGUpOwotICAgICAgICBsZXQgY2hlY2tlcldpdGhUeXBlUGFyYW1l
dGVycyA9IG5ldyBOYW1lUmVzb2x2ZXIoY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyk7Ci0gICAg
ICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyV2l0aFR5cGVQYXJhbWV0ZXJzKTsKLSAg
ICAgICAgbGV0IGNvbnRleHRXaXRoUGFyYW1ldGVycyA9IG5ldyBOYW1lQ29udGV4dChjb250ZXh0
V2l0aFR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0IGlubmVyQ29udGV4dCA9IHRoaXMuX2J1
aWxkTmFtZUNvbnRleHQoKTsKKyAgICAgICAgbGV0IGlubmVyQ2hlY2tlciA9IG5ldyBOYW1lUmVz
b2x2ZXIoaW5uZXJDb250ZXh0KTsKKyAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGlubmVy
Q2hlY2tlcik7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMp
IHsKLSAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChjaGVja2VyV2l0aFR5cGVQYXJhbWV0ZXJz
KTsKLSAgICAgICAgICAgIGNvbnRleHRXaXRoUGFyYW1ldGVycy5hZGQocGFyYW1ldGVyKTsKKyAg
ICAgICAgICAgIHBhcmFtZXRlci52aXNpdChpbm5lckNoZWNrZXIpOworICAgICAgICAgICAgbmV3
Q29udGV4dC5hZGQocGFyYW1ldGVyKTsKICAgICAgICAgfQotICAgICAgICBsZXQgY2hlY2tlcldp
dGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFBhcmFtZXRlcnMpOwot
ICAgICAgICBub2RlLmJvZHkudmlzaXQoY2hlY2tlcldpdGhQYXJhbWV0ZXJzKTsKKyAgICAgICAg
bm9kZS5ib2R5LnZpc2l0KGlubmVyQ2hlY2tlcik7CiAgICAgfQogICAgIAogICAgIHZpc2l0Qmxv
Y2sobm9kZSkKQEAgLTExNSw0MSArMTA4LDkgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMg
VmlzaXRvciB7CiAgICAgICAgIG5vZGUuYm9keS52aXNpdChuZXdSZXNvbHZlcik7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxl
dCBwYXJlbnQgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcGFyZW50LnZpc2l0KHRoaXMp
OwotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNv
bnRleHQpOwotICAgICAgICBuYW1lQ29udGV4dC5hZGQobm9kZS50eXBlVmFyaWFibGUpOwotICAg
ICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpOwotICAgICAg
ICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2ln
bmF0dXJlLnZpc2l0KGNoZWNrZXIpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVm
KG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0
KFByb3RvY29sLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5v
dCBmaW5kIHByb3RvY29sIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnByb3Rv
Y29sRGVjbCA9IHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNs
KG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbGV0
IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7Ci0gICAgICAg
IGlmICghZnVuY3MpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdp
bi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyBub2Rl
Lm5hbWUpOwotICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVuY3M7Ci0gICAgfQot
ICAgIAogICAgIHZpc2l0VHlwZURlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IG5hbWVDb250
ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChs
ZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICB0
eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgbmFtZUNvbnRleHQuYWRkKHR5
cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVS
ZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdChjaGVja2VyKTsK
ICAgICB9CkBAIC0xNTcsNDEgKzExOCwxMyBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIGxldCBu
YW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAg
IGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAg
ICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0
LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgfQogICAgICAgICBsZXQgY2hlY2tlciA9IG5l
dyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBu
b2RlLmZpZWxkcykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KGNoZWNrZXIpOwogICAgIH0KICAg
ICAKLSAgICBfcmVzb2x2ZVR5cGVBcmd1bWVudHModHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgbGV0IHR5cGVBcmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAg
ICBpZiAodHlwZUFyZ3VtZW50IGluc3RhbmNlb2YgVHlwZU9yVmFyaWFibGVSZWYpIHsKLSAgICAg
ICAgICAgICAgICBsZXQgdGhpbmcgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoQW55dGhpbmcsIHR5
cGVBcmd1bWVudC5uYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRoaW5nKQotICAgICAgICAg
ICAgICAgICAgICBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnQub3JpZ2luLm9yaWdpblN0cmlu
ZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgb3IgdmFyaWFibGUgbmFtZWQgIiArIHR5cGVBcmd1bWVu
dC5uYW1lKTsKLSAgICAgICAgICAgICAgICBpZiAodGhpbmcgaW5zdGFuY2VvZiBWYWx1ZSkKLSAg
ICAgICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50c1tpXSA9IG5ldyBWYXJpYWJsZVJlZih0eXBl
QXJndW1lbnQub3JpZ2luLCB0eXBlQXJndW1lbnQubmFtZSk7Ci0gICAgICAgICAgICAgICAgZWxz
ZSBpZiAodGhpbmcgaW5zdGFuY2VvZiBUeXBlKQotICAgICAgICAgICAgICAgICAgICB0eXBlQXJn
dW1lbnRzW2ldID0gbmV3IFR5cGVSZWYodHlwZUFyZ3VtZW50Lm9yaWdpbiwgdHlwZUFyZ3VtZW50
Lm5hbWUsIFtdKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlw
ZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9mIHRoaW5nOiAiICsgdGhpbmcua2lu
ZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh0eXBlQXJn
dW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZQotICAgICAgICAgICAgICAgICYmICF0eXBlQXJndW1l
bnRbaV0uaXNDb25zdGV4cHIpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
dHlwZUFyZ3VtZW50W2ldLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCBjb25zdGV4cHIi
KTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRzKG5vZGUudHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIAogICAgICAgICBsZXQgdHlwZSA9IG5vZGUudHlwZTsKICAgICAgICAgaWYgKCF0
eXBlKSB7CiAgICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFR5cGUsIG5v
ZGUubmFtZSk7CkBAIC0xOTksMTggKzEzMiw2IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3Jp
Z2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgbmFtZWQgIiArIG5vZGUubmFt
ZSk7CiAgICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOwogICAgICAgICB9Ci0gICAgICAgIAot
ICAgICAgICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggIT0gbm9kZS50eXBlQXJndW1l
bnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyAocGFzc2VkICIg
KyBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgZXhwZWN0ZWQgIiArIHR5cGUudHlwZVBh
cmFtZXRlcnMubGVuZ3RoICsgIikiKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBl
LnR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVy
SXNUeXBlID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBpbnN0YW5jZW9mIFR5cGVWYXJpYWJsZTsK
LSAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IG5vZGUudHlwZUFyZ3VtZW50c1tpXSBp
bnN0YW5jZW9mIFR5cGU7Ci0gICAgICAgICAgICBub2RlLnR5cGVBcmd1bWVudHNbaV0udmlzaXQo
dGhpcyk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVySXNUeXBlICYmICFhcmd1bWVudElzVHlw
ZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290IHZhbHVlIGF0IGFyZ3VtZW50ICMiICsg
aSk7Ci0gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklzVHlwZSAmJiBhcmd1bWVudElzVHlwZSkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBlIGF0IGFyZ3VtZW50ICMiICsgaSk7
Ci0gICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCkBA
IC0yNzksOCArMjAwLDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgCiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5f
cmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRzKTsKLSAgICAgICAgCiAgICAg
ICAgIGxldCBmdW5jcyA9IHRoaXMuX25hbWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwog
ICAgICAgICBpZiAoZnVuY3MpCiAgICAgICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0g
ZnVuY3M7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwppbmRl
eCBhNTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1MTgyNDg3Li5kYzBmZjc4MWI2OTJl
MTg0NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwxMiBAQAogInVzZSBzdHJpY3QiOwog
CiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2lu
LCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBz
aGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFy
YW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2lu
LCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBz
aGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9
IGZhbHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVsbDsKICAgICAgICAgdGhp
cy5faW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhpcy5pbnN0YW50aWF0ZUlt
cGxlbWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307CiAgICAgICAgIHRoaXMudmlzaXRJ
bXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9PiBudWxs
OwogICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YSA9IGlt
cGxlbWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzk5Yjc4MjYzNTM1YTcwZDkzMDk2MjZkNTg1MDM1OTAwMTA1ZDQxMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMKKysrIC9kZXYvbnVsbApAQCAt
MSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2ZUZ1bmNJbnN0YW5jZSBleHRlbmRzIEZ1bmMg
ewotICAgIGNvbnN0cnVjdG9yKGZ1bmMsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwg
c2hhZGVyVHlwZSwgaW1wbGVtZW50YXRpb25EYXRhKQotICAgIHsKLSAgICAgICAgc3VwZXIoZnVu
Yy5vcmlnaW4sIGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwgW10sIHBhcmFtZXRlcnMsIGlzQ2FzdCwg
c2hhZGVyVHlwZSk7Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBmdW5jOwotICAgICAgICB0aGlzLl9p
bXBsZW1lbnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRhdGE7Ci0gICAgfQotICAgIAotICAg
IGdldCBmdW5jKCkgeyByZXR1cm4gdGhpcy5fZnVuYzsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsg
cmV0dXJuIHRydWU7IH0KLSAgICBnZXQgaW1wbGVtZW50YXRpb25EYXRhKCkgeyByZXR1cm4gdGhp
cy5faW1wbGVtZW50YXRpb25EYXRhOyB9Ci0KLSAgICB0b0RlY2xTdHJpbmcoKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuICJuYXRpdmUgIiArIHN1cGVyLnRvRGVjbFN0cmluZygpOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggYjhi
MWE0NzMzMGI1ZmQ1MWZmMDIxYWYwNjU4Njg0NGMyYWNiYThlYS4uMjA4NjkyNDJjNDY4NzI5YmVk
NGI5MzgyOGZmZGVlNmI2Y2MyMDQ0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYXRpdmVUeXBlLmpzCkBAIC0yNSwxNCArMjUsMTQgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xh
c3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFt
ZSwgdHlwZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJn
dW1lbnRzKQogICAgIHsKLSAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlcnMgaW5zdGFuY2VvZiBB
cnJheSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3Qg
YXJyYXk6ICIgKyB0eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGlmICghKHR5cGVBcmd1bWVudHMg
aW5zdGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFy
YW1ldGVycyBub3QgYXJyYXk6ICIgKyB0eXBlQXJndW1lbnRzKTsKICAgICAgICAgc3VwZXIoKTsK
ICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFt
ZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKKyAgICAg
ICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2lz
TnVtYmVyID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzSW50ID0gZmFsc2U7CiAgICAgICAgIHRo
aXMuX2lzRmxvYXRpbmcgPSBmYWxzZTsKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgTmF0aXZlVHlw
ZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9v
cmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQg
dHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQorICAgIGdl
dCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdl
dCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAvLyBXZSBsZXQgSW50cmlu
c2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQgbGlrZXMuCkBAIC01NCwxOCArNTQsMTIgQEAgY2xhc3Mg
TmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIGdldCBpc1ByaW1pdGl2ZSgpIHsgcmV0dXJu
IHRoaXMuX2lzUHJpbWl0aXZlOyB9CiAgICAgc2V0IGlzUHJpbWl0aXZlKHZhbHVlKSB7IHRoaXMu
X2lzUHJpbWl0aXZlID0gdmFsdWU7IH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1l
bnRzKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IHRoaXMudHlw
ZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyBu
dW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICBpZiAo
IXR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXM7Ci0gICAgICAg
IHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKHRoaXMsIHR5cGVBcmd1bWVudHMpOwotICAg
IH0KLSAgICAKICAgICB0b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gIm5hdGl2ZSB0
eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4iOwor
ICAgICAgICBsZXQgcmVzdWx0ID0gIm5hdGl2ZSB0eXBlZGVmICIgKyB0aGlzLm5hbWU7CisgICAg
ICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMuc2l6ZSkKKyAgICAgICAgICAgIHJlc3VsdCArPSAi
PCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRp
dmVUeXBlSW5zdGFuY2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVU
eXBlSW5zdGFuY2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhMzllNzc3ODcw
MDQ5ZWQyMmQ3MDQxYTUyMDE0Y2M4ZTY5Y2JjNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZl
VHlwZUluc3RhbmNlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBOYXRpdmVUeXBlSW5zdGFuY2UgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBl
LCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5f
dHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRz
OwotICAgIH0KLSAgICAKLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAg
ICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KLSAg
ICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl90eXBlLmlzUHJpbWl0aXZlOyB9Ci0g
ICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1
bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMudHlwZSAh
PSBvdGhlci50eXBlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAodGhp
cy50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBvdGhlci50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlz
LnR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy50eXBl
QXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZUFyZ3VtZW50
c1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAg
ICByZXR1cm4gdGhpcy50eXBlICsgIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKaW5kZXggODgxMDMwMTMw
NzczZTcwZWE4OGUwYWI1OTc5NzRjZjU2MWY5ZDVlNC4uNmQyMTFiNzYyYjBhMjU4ZDM1NTUxOTM0
ZDYwOGE1MzhjZTMwMzc5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTm9kZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzCkBA
IC04OSw4ICs4OSw2IEBAIGNsYXNzIE5vZGUgewogICAgIAogICAgIGdldCBpc05hdGl2ZSgpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgY29udmVyc2lvbkNvc3QodW5pZmljYXRpb25Db250
ZXh0KSB7IHJldHVybiAwOyB9Ci0gICAgCiAgICAgZXF1YWxzKG90aGVyKQogICAgIHsKICAgICAg
ICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKQEAg
LTEwNCw3ICsxMDIsNiBAQCBjbGFzcyBOb2RlIHsKICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IHRoaXMuZXF1YWxzKG90aGVyKTsKICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRl
eHQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHVuaWZpY2F0aW9uQ29udGV4
dC5jb21taXQoKTsKICAgICAgICAgcmV0dXJuIHVuaWZpY2F0aW9uQ29udGV4dDsKICAgICB9CiAg
ICAgCkBAIC0xMTUsNyArMTEyLDYgQEAgY2xhc3MgTm9kZSB7CiAgICAgICAgIGxldCByZXN1bHQg
PSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7CiAgICAgICAgIGlmICghcmVzdWx0LnJlc3Vs
dCkKICAgICAgICAgICAgIHRocm93IG5ldyBXRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5n
LCAiQ291bGQgbm90IGluZmVyIHR5cGU6ICIgKyByZXN1bHQucmVhc29uKTsKLSAgICAgICAgdW5p
ZmljYXRpb25Db250ZXh0LmNvbW1pdCgpOwogICAgICAgICByZXR1cm4gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodGhpcyk7CiAgICAgfQogICAgIApAQCAtMTIzLDExICsxMTksNCBAQCBjbGFzcyBO
b2RlIHsKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnZpc2l0KG5ldyBTdWJzdGl0dXRpb24o
cGFyYW1ldGVycywgYXJndW1lbnRMaXN0KSk7CiAgICAgfQotICAgIAotICAgIHN1YnN0aXR1dGVU
b1VuaWZpY2F0aW9uKHBhcmFtZXRlcnMsIHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLnN1YnN0aXR1dGUoCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLAotICAg
ICAgICAgICAgcGFyYW1ldGVycy5tYXAodHlwZSA9PiB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0
eXBlKSkpOwotICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1BhcnNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKaW5k
ZXggNmQyYjQzMTYxNTYwMWFiOWRkM2QwOTM4ZmJmYjM4NWVlMmE0ZGFmMS4uZDgzODY1Y2Q0MGUz
NGIzNzU2OGVmNWYyN2NlODRhMTNmNTIwOGEyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUGFyc2UuanMKQEAgLTEyMSwxMiArMTIxLDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sUmVmKCkK
LSAgICB7Ci0gICAgICAgIGxldCBwcm90b2NvbFRva2VuID0gY29uc3VtZUtpbmQoImlkZW50aWZp
ZXIiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2NvbFJlZihwcm90b2NvbFRva2VuLCBwcm90
b2NvbFRva2VuLnRleHQpOwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBjb25zdW1lRW5kT2ZU
eXBlQXJncygpCiAgICAgewogICAgICAgICBsZXQgcmlnaHRTaGlmdCA9IHRyeUNvbnN1bWUoIj4+
Iik7CkBAIC0xMzYsMzQgKzEzMCw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIGNvbnN1bWUo
Ij4iKTsKICAgICB9CiAgICAgCi0gICAgZnVuY3Rpb24gcGFyc2VUeXBlUGFyYW1ldGVycygpCi0g
ICAgewotICAgICAgICBpZiAoIXRlc3QoIjwiKSkKLSAgICAgICAgICAgIHJldHVybiBbXTsKLSAg
ICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgY29uc3VtZSgiPCIpOwot
ICAgICAgICB3aGlsZSAoIXRlc3QoIj4iKSkgewotICAgICAgICAgICAgbGV0IGNvbnN0ZXhwciA9
IGxleGVyLmJhY2t0cmFja2luZ1Njb3BlKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdHlw
ZSA9IHBhcnNlVHlwZSgpOwotICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBhc3NlcnROZXh0KCIsIiwgIj4iLCAiPj4i
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIodHlw
ZS5vcmlnaW4sIG5hbWUudGV4dCwgdHlwZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAg
IGlmIChjb25zdGV4cHIpCi0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY29uc3RleHByKTsK
LSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtp
bmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgICAgICBsZXQgcHJvdG9jb2wgPSB0cnlDb25z
dW1lKCI6IikgPyBwYXJzZVByb3RvY29sUmVmKCkgOiBudWxsOwotICAgICAgICAgICAgICAgIHJl
c3VsdC5wdXNoKG5ldyBUeXBlVmFyaWFibGUobmFtZSwgbmFtZS50ZXh0LCBwcm90b2NvbCkpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0cnlDb25zdW1lKCIsIikpCi0gICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZUVuZE9mVHlwZUFyZ3Mo
KTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgZnVuY3Rpb24gcGFy
c2VUZXJtKCkKICAgICB7CiAgICAgICAgIGxldCB0b2tlbjsKQEAgLTIyMiw3ICsxODgsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgdG9rZW47CiAgICAgICAgIGlmICh0b2tlbiA9
IHRyeUNvbnN1bWUoIi0iKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24o
dG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlVGVybSgpXSk7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9r
ZW4udGV4dCwgW3BhcnNlVGVybSgpXSk7CiAgICAgICAgIGxldCBsZWZ0ID0gcGFyc2VUZXJtKCk7
CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi4iKSkKICAgICAgICAgICAgIGxlZnQg
PSBuZXcgRG90RXhwcmVzc2lvbih0b2tlbiwgbGVmdCwgY29uc3VtZUtpbmQoImlkZW50aWZpZXIi
KS50ZXh0KTsKQEAgLTI4Miw4ICsyNDgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICBhZGRy
ZXNzU3BhY2UgPSB0b2tlbi50ZXh0OwogICAgICAgICAKICAgICAgICAgbGV0IG5hbWUgPSBjb25z
dW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNl
VHlwZUFyZ3VtZW50cygpOwotICAgICAgICBsZXQgdHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsIG5h
bWUudGV4dCwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYo
bmFtZSwgbmFtZS50ZXh0KTsKICAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIGdldEFkZHJlc3NT
cGFjZSgpCiAgICAgICAgIHsKQEAgLTMxOCwxMSArMjgzLDEwIEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7
CiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJ0eXBlZGVmIik7CiAgICAgICAgIGxldCBu
YW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBh
cmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGNvbnN1bWUoIj0iKTsK
ICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgY29uc3VtZSgiOyIpOwot
ICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywg
dHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGUpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBnZW5lcmljUGFyc2VMZWZ0KHRleHRzLCBuZXh0UGFy
c2VyLCBjb25zdHJ1Y3RvcikKQEAgLTMzOSwxMyArMzAzLDEyIEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAg
ICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICB0ZXh0cywgbmV4dFBhcnNl
ciwKICAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+Ci0gICAgICAgICAgICAgICAg
bmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW10sIFts
ZWZ0LCByaWdodF0pKTsKKyAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4s
ICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbbGVmdCwgcmlnaHRdKSk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIHBhcnNlQ2FsbEV4cHJlc3Npb24oKQogICAgIHsKICAgICAgICAgbGV0IG5h
bWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50
cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAg
IGxldCBhcmd1bWVudExpc3QgPSBbXTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCIpIikpIHsKQEAg
LTM1NSw3ICszMTgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY29uc3VtZSgiKSIpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENh
bGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0
KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihuYW1lLCBuYW1lLnRl
eHQsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApA
QCAtMzYzLDcgKzMyNiw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2lu
S2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBsZXhl
ci50ZXN0U2NvcGUoKCkgPT4gewogICAgICAgICAgICAgY29uc3VtZUtpbmQoImlkZW50aWZpZXIi
KTsKLSAgICAgICAgICAgIHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICAgICAgY29uc3Vt
ZSgiKCIpOwogICAgICAgICB9KTsKICAgICB9CkBAIC0zODEsNyArMzQzLDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICBpZiAobmFtZSA9PSAib3BlcmF0b3IiKQogICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJJbnZhbGlkIG5hbWU6ICIgKyBuYW1lKTsKICAgICAgICAgCi0gICAgICAgIHJldHVy
biBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5hbWUsIFtdLCBhcmdzKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwgYXJncyk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIGZpbmlzaFBhcnNpbmdQb3N0SW5jcmVtZW50KHRva2VuLCBsZWZ0KQpAQCAt
NDU0LDcgKzQxNiw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKHRlc3QoIisrIiwgIi0tIikp
CiAgICAgICAgICAgICByZXR1cm4gcGFyc2VQcmVJbmNyZW1lbnQoKTsKICAgICAgICAgaWYgKHRv
a2VuID0gdHJ5Q29uc3VtZSgiKyIsICItIiwgIn4iKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcg
Q2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNl
UG9zc2libGVQcmVmaXgoKV0pOworICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtwYXJzZVBvc3NpYmxlUHJlZml4KCld
KTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiKiIpKQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBEZXJlZmVyZW5jZUV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgo
KSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiYiKSkKQEAgLTQ2Myw3ICs0MjUs
NyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1i
ZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICByZXR1cm4gbmV3IE1ha2VBcnJheVJlZkV4cHJl
c3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9
IHRyeUNvbnN1bWUoIiEiKSkgewogICAgICAgICAgICAgbGV0IHJlbWFpbmRlciA9IHBhcnNlUG9z
c2libGVQcmVmaXgoKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwg
bmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29sIiwgW10sIFtyZW1haW5k
ZXJdKSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IExvZ2ljYWxOb3QodG9rZW4sIG5ldyBDYWxs
RXhwcmVzc2lvbihyZW1haW5kZXIub3JpZ2luLCAiYm9vbCIsIFtyZW1haW5kZXJdKSk7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlUG9zc2libGVTdWZmaXgoKTsKICAgICB9CkBAIC00
OTMsNyArNDU1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5k
LCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVm
dCgKICAgICAgICAgICAgIFsiPT0iLCAiIT0iXSwgcGFyc2VQb3NzaWJsZVJlbGF0aW9uYWxJbmVx
dWFsaXR5LAogICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gewotICAgICAgICAg
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09
IiwgW10sIFtsZWZ0LCByaWdodF0pOworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcg
Q2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09IiwgW2xlZnQsIHJpZ2h0XSk7CiAgICAg
ICAgICAgICAgICAgaWYgKHRva2VuLnRleHQgPT0gIiE9IikKICAgICAgICAgICAgICAgICAgICAg
cmVzdWx0ID0gbmV3IExvZ2ljYWxOb3QodG9rZW4sIHJlc3VsdCk7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKQEAgLTUxOSw3ICs0ODEsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFt
LCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAg
ICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFy
c2VyLAotICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gbmV3IExvZ2ljYWxFeHBy
ZXNzaW9uKHRva2VuLCB0b2tlbi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Npb24obGVmdC5vcmlnaW4s
ICJib29sIiwgW10sIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJi
b29sIiwgW10sIFtyaWdodF0pKSk7CisgICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9
PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVz
c2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbbGVmdF0pLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmln
aHQub3JpZ2luLCAiYm9vbCIsIFtyaWdodF0pKSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9u
IHBhcnNlUG9zc2libGVMb2dpY2FsQW5kKCkKQEAgLTY1Niw3ICs2MTgsNyBAQCBmdW5jdGlvbiBw
YXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQp
CiAgICAgICAgIGxldCBlbHNlQm9keTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoImVsc2UiKSkK
ICAgICAgICAgICAgIGVsc2VCb2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgcmV0dXJu
IG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5v
cmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7CisgICAg
ICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29u
ZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VXaGlsZSgpCkBAIC02NjYsNyArNjI4LDcgQEAg
ZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zm
c2V0LCB0ZXh0KQogICAgICAgICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4cHJlc3Npb24oKTsK
ICAgICAgICAgY29uc3VtZSgiKSIpOwogICAgICAgICBsZXQgYm9keSA9IHBhcnNlU3RhdGVtZW50
KCk7Ci0gICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNz
aW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHkp
OworICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9vcChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lv
bihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSksIGJvZHkpOwogICAg
IH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlRm9yKCkKQEAgLTY4Nyw3ICs2NDksNyBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgY29uZGl0aW9uID0gcGFyc2VFeHByZXNz
aW9uKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAgICBjb25kaXRpb24g
PSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRp
dGlvbl0pOworICAgICAgICAgICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHByZXNzaW9uKGNvbmRp
dGlvbi5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbl0pOwogICAgICAgICB9CiAgICAgICAgIGxl
dCBpbmNyZW1lbnQ7CiAgICAgICAgIGlmICh0cnlDb25zdW1lKCIpIikpCkBAIC03MDgsNyArNjcw
LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIGxldCBjb25k
aXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAg
ICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Np
b24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSk7CisgICAg
ICAgIHJldHVybiBuZXcgRG9XaGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Np
b24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pKTsKICAgICB9CiAg
ICAgCiAgICAgZnVuY3Rpb24gcGFyc2VWYXJpYWJsZURlY2xzKCkKQEAgLTg1OCwxMyArODIwLDEx
IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJl
ck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbjsKICAgICAgICAgbGV0IHJldHVyblR5
cGU7CiAgICAgICAgIGxldCBuYW1lOwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAg
ICAgIGxldCBpc0Nhc3Q7CiAgICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAgICAgICBsZXQgb3Bl
cmF0b3JUb2tlbiA9IHRyeUNvbnN1bWUoIm9wZXJhdG9yIik7CiAgICAgICAgIGlmIChvcGVyYXRv
clRva2VuKSB7CiAgICAgICAgICAgICBvcmlnaW4gPSBvcGVyYXRvclRva2VuOwotICAgICAgICAg
ICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBy
ZXR1cm5UeXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgICAgICBuYW1lID0gIm9wZXJhdG9yIGNh
c3QiOwogICAgICAgICAgICAgaXNDYXN0ID0gdHJ1ZTsKQEAgLTg3Nyw0NCArODM3LDE3IEBAIGZ1
bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNl
dCwgdGV4dCkKICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG9yaWdpbiA9IHJl
dHVyblR5cGUub3JpZ2luOwogICAgICAgICAgICAgbmFtZSA9IHBhcnNlRnVuY05hbWUoKTsKLSAg
ICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwogICAgICAg
ICAgICAgaXNDYXN0ID0gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbGV0IHBhcmFtZXRlcnMg
PSBwYXJzZVBhcmFtZXRlcnMoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFt
ZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVy
VHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUs
IHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24g
cGFyc2VQcm90b2NvbEZ1bmNEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBmdW5jID0gcGFyc2VG
dW5jRGVjbCgpOwotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sRnVuY0RlY2woZnVuYy5vcmln
aW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5j
LnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAK
ICAgICBmdW5jdGlvbiBwYXJzZUZ1bmNEZWYoKQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMgPSBw
YXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VCbG9jaygpOwotICAgICAg
ICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5U
eXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXND
YXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVBy
b3RvY29sRGVjbCgpCi0gICAgewotICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgicHJvdG9j
b2wiKTsKLSAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQ7
Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG9yaWdpbiwgbmFtZSk7Ci0g
ICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpIHsKLSAgICAgICAgICAgIHdoaWxlICghdGVzdCgi
eyIpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFkZEV4dGVuZHMocGFyc2VQcm90b2NvbFJl
ZigpKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3Vt
ZSgieyIpOwotICAgICAgICB3aGlsZSAoIXRyeUNvbnN1bWUoIn0iKSkgewotICAgICAgICAgICAg
cmVzdWx0LmFkZChwYXJzZVByb3RvY29sRnVuY0RlY2woKSk7Ci0gICAgICAgICAgICBjb25zdW1l
KCI7Iik7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJu
IG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVu
Yy5wYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9
CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGaWVsZCgpCkBAIC05MjksOCArODYyLDcgQEAgZnVu
Y3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0
LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInN0cnVjdCIpOwog
ICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAg
ICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwotICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycyk7
CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4sIG5hbWUpOwogICAg
ICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKQogICAg
ICAgICAgICAgcmVzdWx0LmFkZChwYXJzZUZpZWxkKCkpOwpAQCAtOTQxLDcgKzg3Myw3IEBAIGZ1
bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNl
dCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAg
ICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9y
aWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1
bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7CisgICAgICAgIHJl
dHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5
cGUsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7CiAgICAg
fQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlTmF0aXZlKCkKQEAgLTk0OSw5ICs4ODEsOSBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJuYXRpdmUiKTsKICAgICAg
ICAgaWYgKHRyeUNvbnN1bWUoInR5cGVkZWYiKSkgewogICAgICAgICAgICAgbGV0IG5hbWUgPSBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBw
YXJzZVR5cGVQYXJhbWV0ZXJzKCk7CisgICAgICAgICAgICBsZXQgcGFyc2VkQXJndW1lbnRzID0g
cGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAg
ICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcmFtZXRlcnMp
OworICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZS50ZXh0LCBw
YXJzZWRBcmd1bWVudHMpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZU5hdGl2ZUZ1
bmMoKTsKICAgICB9CkBAIC05ODUsNyArOTE3LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAo
dHJ5Q29uc3VtZSgiOiIpKQogICAgICAgICAgICAgYmFzZVR5cGUgPSBwYXJzZVR5cGUoKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50
IiwgW10pOworICAgICAgICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50Iik7
CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFbnVtVHlw
ZShuYW1lLCBuYW1lLnRleHQsIGJhc2VUeXBlKTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ9Iikp
IHsKQEAgLTEwMTMsMTAgKzk0NSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIHByb2dyYW0u
YWRkKHBhcnNlU3RydWN0VHlwZSgpKTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAi
ZW51bSIpCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUVudW1UeXBlKCkpOwotICAgICAg
ICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJwcm90b2NvbCIpCi0gICAgICAgICAgICBwcm9ncmFt
LmFkZChwYXJzZVByb3RvY29sRGVjbCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcHJv
Z3JhbS5hZGQocGFyc2VGdW5jRGVmKCkpOwogICAgIH0KIH0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1ByZXBhcmUuanMKaW5kZXggYTIwNDhhOWFkM2U4M2JkMThiNzY0NDRjYTU1NDZl
NDhmZTAxMTlhMC4uZTdjM2YyMzY2MDRmOGJhMDg3YWMxZTY2ZjU4ZDY3ODYwMWM1NzZjNiAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00MiwxNiArNDIsMTMg
QEAgbGV0IHByZXBhcmUgPSAoKCkgPT4gewogICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFt
KTsKICAgICAgICAgbGV0IG5hbWVSZXNvbHZlciA9IGNyZWF0ZU5hbWVSZXNvbHZlcihwcm9ncmFt
KTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwot
ICAgICAgICByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwog
ICAgICAgICByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pOwotICAgICAgICByZXNvbHZl
VHlwZURlZnNJblByb3RvY29scyhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tSZWN1cnNpdmVUeXBl
cyhwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKTsK
ICAgICAgICAgc3ludGhlc2l6ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29s
dmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29s
dmVUeXBlRGVmc0luRnVuY3Rpb25zKHByb2dyYW0pOwotICAgICAgICAKLSAgICAgICAgZmxhdHRl
blByb3RvY29sRXh0ZW5kcyhwcm9ncmFtKTsKKwogICAgICAgICBjaGVjayhwcm9ncmFtKTsKICAg
ICAgICAgY2hlY2tMaXRlcmFsVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVQcm9wZXJ0
aWVzKHByb2dyYW0pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKaW5k
ZXggYmJjNGIyNGE2MjI3YjFjZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZjNmY3OTNlZTZl
NzNlZWNhNWE2YWE3NGE0NDBhNjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm9ncmFtLmpzCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBO
b2RlIHsKICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAgICAgICAgIHRo
aXMuX2Z1bmN0aW9ucyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMgPSBuZXcgTWFw
KCk7Ci0gICAgICAgIHRoaXMuX3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5f
ZnVuY0luc3RhbnRpYXRvciA9IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwogICAgICAgICB0
aGlzLl9nbG9iYWxOYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAgICAgICB0aGlz
Ll9nbG9iYWxOYW1lQ29udGV4dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhpcy5fZ2xvYmFs
TmFtZUNvbnRleHQucmVjb2duaXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAsNiBAQCBjbGFz
cyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVtZW50cygpIHsg
cmV0dXJuIHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5jdGlvbnMoKSB7
IHJldHVybiB0aGlzLl9mdW5jdGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJldHVybiB0aGlz
Ll90eXBlczsgfQotICAgIGdldCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9wcm90b2NvbHM7
IH0KLSAgICBnZXQgZnVuY0luc3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1bmNJbnN0YW50
aWF0b3I7IH0KICAgICBnZXQgZ2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0aGlzLl9nbG9i
YWxOYW1lQ29udGV4dDsgfQogICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01Niw4ICs1Miw2
IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFycmF5LnB1c2go
c3RhdGVtZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBUeXBl
KQogICAgICAgICAgICAgdGhpcy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQp
OwotICAgICAgICBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2NvbCkKLSAgICAg
ICAgICAgIHRoaXMuX3Byb3RvY29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVtZW50IGlzIG5v
dCBhIGZ1bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0aGlzLl90b3BM
ZXZlbFN0YXRlbWVudHMucHVzaChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Qcm90b2NvbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmODQ1NjQ3
N2VjYTJlOGRjZjY2Y2Y0NWMyZDQ3M2NhMDg1N2Q4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90
b2NvbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9j
b2wgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewot
ICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAg
IHRoaXMuX25hbWUgPSBuYW1lOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1
cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9
Ci0gICAgZ2V0IGtpbmQoKSB7IHJldHVybiBQcm90b2NvbDsgfQotICAgIAotICAgIHRvU3RyaW5n
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiNTBiY2ZjZjMzYmE3Mzk1YzU2ZDk1MmE1NzlkMDk5MjdiMGJlNzY3Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDEx
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sRGVjbCBleHRlbmRzIFByb3RvY29sIHsKLSAg
ICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4s
IG5hbWUpOwotICAgICAgICB0aGlzLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0
dXJlcyA9IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAgPSBuZXcgTWFwKCk7Ci0gICAg
ICAgIHRoaXMuX3R5cGVWYXJpYWJsZSA9IG5ldyBUeXBlVmFyaWFibGUob3JpZ2luLCBuYW1lLCBu
dWxsKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkRXh0ZW5kcyhwcm90b2NvbCkKLSAgICB7Ci0gICAg
ICAgIHRoaXMuZXh0ZW5kcy5wdXNoKHByb3RvY29sKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKHNp
Z25hdHVyZSkKLSAgICB7Ci0gICAgICAgIGlmICghKHNpZ25hdHVyZSBpbnN0YW5jZW9mIFByb3Rv
Y29sRnVuY0RlY2wpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaWduYXR1cmUgaXNu
J3QgYSBQcm90b2NvbEZ1bmNEZWNsIGJ1dCBhICIgKyBzaWduYXR1cmUuY29uc3RydWN0b3IubmFt
ZSk7Ci0gICAgICAgIAotICAgICAgICBzaWduYXR1cmUucHJvdG9jb2xEZWNsID0gdGhpczsKLSAg
ICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgICAgIGxldCBvdmVy
bG9hZHMgPSB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KHNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAg
aWYgKCFvdmVybG9hZHMpCi0gICAgICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAuc2V0KHNpZ25h
dHVyZS5uYW1lLCBvdmVybG9hZHMgPSBbXSk7Ci0gICAgICAgIG92ZXJsb2Fkcy5wdXNoKHNpZ25h
dHVyZSk7Ci0gICAgfQotICAgIAotICAgIGdldCBzaWduYXR1cmVzKCkgeyByZXR1cm4gdGhpcy5f
c2lnbmF0dXJlczsgfQotICAgIHNpZ25hdHVyZXNCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5f
c2lnbmF0dXJlTWFwLmdldChuYW1lKTsgfQotICAgIGdldCB0eXBlVmFyaWFibGUoKSB7IHJldHVy
biB0aGlzLl90eXBlVmFyaWFibGU7IH0KLSAgICAKLSAgICBzaWduYXR1cmVzQnlOYW1lV2l0aFR5
cGVWYXJpYWJsZShuYW1lLCB0eXBlVmFyaWFibGUpCi0gICAgewotICAgICAgICBsZXQgc3Vic3Rp
dHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy50eXBlVmFyaWFibGVdLCBbdHlwZVZhcmlh
YmxlXSk7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUobmFtZSk7
Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAg
IHJldHVybiByZXN1bHQubWFwKHNpZ25hdHVyZSA9PiBzaWduYXR1cmUudmlzaXQoc3Vic3RpdHV0
aW9uKSk7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVyUHJvdG9jb2wpCi0gICAgewot
ICAgICAgICBpZiAoIW90aGVyUHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDog
dHJ1ZX07Ci0gICAgICAgIAotICAgICAgICBpZiAob3RoZXJQcm90b2NvbCBpbnN0YW5jZW9mIFBy
b3RvY29sUmVmKQotICAgICAgICAgICAgb3RoZXJQcm90b2NvbCA9IG90aGVyUHJvdG9jb2wucHJv
dG9jb2xEZWNsOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgb3RoZXJTaWduYXR1cmUgb2Yg
b3RoZXJQcm90b2NvbC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlcyA9
IHRoaXMuc2lnbmF0dXJlc0J5TmFtZShvdGhlclNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgICAg
IGlmICghc2lnbmF0dXJlcykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2Us
IHJlYXNvbjogIlByb3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIGRvZXMgbm90IGhhdmUgYSBmdW5j
dGlvbiBuYW1lZCAiICsgb3RoZXJTaWduYXR1cmUubmFtZSArICIgKGxvb2tpbmcgYXQgc2lnbmF0
dXJlICIgKyBvdGhlclNpZ25hdHVyZSArICIpIn07Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQg
PSByZXNvbHZlT3ZlcmxvYWRJbXBsKAotICAgICAgICAgICAgICAgIHNpZ25hdHVyZXMsIFtdLAot
ICAgICAgICAgICAgICAgIG90aGVyU2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLAotICAgICAgICAg
ICAgICAgIG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwot
ICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7
cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBm
b3IgIiArIG90aGVyU2lnbmF0dXJlICsgIiBpbiAiICsgdGhpcy5uYW1lICsgKG92ZXJsb2FkLmZh
aWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAi
KSArICIpIiA6ICIiKX07Ci0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlID0K
LSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5p
ZmljYXRpb24oCi0gICAgICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRl
cnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0
aXR1dGVkUmV0dXJuVHlwZS5lcXVhbHMob3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZSkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJSZXR1cm4gdHlwZSBt
aXNtYXRjaCBiZXR3ZWVuICIgKyBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBhbmQgIiAr
IHN1YnN0aXR1dGVkUmV0dXJuVHlwZX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAgewotICAgICAg
ICBsZXQgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy5fdHlwZVZhcmlhYmxl
XSwgW3R5cGVdKTsKLSAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXM7Ci0g
ICAgICAgIGZvciAobGV0IG9yaWdpbmFsU2lnbmF0dXJlIG9mIHNpZ25hdHVyZXMpIHsKLSAgICAg
ICAgICAgIGxldCBzaWduYXR1cmUgPSBvcmlnaW5hbFNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRp
b24pOwotICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChzaWdu
YXR1cmUucG9zc2libGVPdmVybG9hZHMsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycywgc2lnbmF0
dXJlLnBhcmFtZXRlclR5cGVzLCBzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1
dGlvbik7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0Y2hpbmcgc2ln
bmF0dXJlIGZvciAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3JpZ2luYWxTaWdu
YXR1cmUub3JpZ2luLm9yaWdpblN0cmluZyArICIpIHdpdGggdHlwZSAiICsgdHlwZSArIChvdmVy
bG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpv
aW4oIjsgIikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBsZXQgc3Vi
c3RpdHV0ZWRSZXR1cm5UeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVU
b1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRl
cnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0
aXR1dGVkUmV0dXJuVHlwZS5lcXVhbHMoc2lnbmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAg
ICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiQXQgc2lnbmF0dXJlICIgKyBv
cmlnaW5hbFNpZ25hdHVyZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3Jp
Z2luU3RyaW5nICsgIik6IHJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIHNpZ25hdHVy
ZS5yZXR1cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZSArICIgaW4gZm91
bmQgZnVuY3Rpb24gIiArIG92ZXJsb2FkLmZ1bmMudG9EZWNsU3RyaW5nKCl9OwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJp
bmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuICJwcm90b2NvbCAiICsgdGhpcy5uYW1lICsgIiB7
ICIgKyB0aGlzLnNpZ25hdHVyZXMuam9pbigiOyAiKSArICI7IH0iOwotICAgIH0KLX0KLQotCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNs
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODliNWM5YjhlNzE2MTg2OGExY2U0NWQ1ODg2
NjM5MmMwMjIyNDRkMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbEZ1bmNEZWNs
IGV4dGVuZHMgRnVuYyB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24o
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnMuY29uY2F0KHRoaXMu
cHJvdG9jb2xEZWNsLnR5cGVWYXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkM2MwZWEzMGQ3NDhkOGI5ZTE2MTA3YTlmODA4YzIzYjMyODY1ZTY0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3Qi
OwotCi1jbGFzcyBQcm90b2NvbFJlZiBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUpOwotICAg
ICAgICB0aGlzLnByb3RvY29sRGVjbCA9IG51bGw7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRz
KG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmluaGVyaXRz
KG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmhhc0hlaXIodHlwZSk7Ci0gICAgfQotICAgIAotICAg
IGdldCBpc1ByaW1pdGl2ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERl
Y2wuaXNQcmltaXRpdmU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUmVzb2x2ZU5hbWVzLmpzCmluZGV4IDE5MjJlOGVjMjdmYzM5ZDk1YjRhYThiZmE5YTU2Yzkx
MGY2ZTY4YjIuLjQ5ZGM4NjM3ZDRlMTQzYTliMDdkNTljZjNmYjk3NWNmODRhNjVlMTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKQEAgLTM1LDEy
ICszNSw2IEBAIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwgbmFtZVJlc29s
dmVyKQogICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQodHlwZSk7CiB9CiAKLWZ1bmN0
aW9uIHJlc29sdmVOYW1lc0luUHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKLXsKLSAg
ICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAg
ICAgbmFtZVJlc29sdmVyLmRvU3RhdGVtZW50KHByb3RvY29sKTsKLX0KLQogZnVuY3Rpb24gcmVz
b2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogewogICAgIGZvciAo
bGV0IGZ1bmNzIG9mIHByb2dyYW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcwppbmRleCA3
ZTIyMTU2ZGUxYWM1ZTJhNmM3MjRhZDM0NjlkYzkxZTc0NmYyNTY2Li5hYzcyNDk0ZWUyMGI4NDcy
YjU4ODczMjkwNGJhODIwMDM0MDU0NzQxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKQEAgLTI0LDcgKzI0LDcgQEAKICAq
LwogInVzZSBzdHJpY3QiOwogCi1mdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9u
cywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBv
aW50ID0gZmFsc2UpCitmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJn
dW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7CiAgICAg
aWYgKCFmdW5jdGlvbnMpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBmdW5jdGlvbnM7
IHRoYXQgc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgYnkgdGhlIGNhbGxlci4iKTsKQEAgLTM2LDcg
KzM2LDcgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGZhaWx1cmVzLnB1
c2gobmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIkZ1bmN0aW9uIGlzIGEgIiAr
IGZ1bmMuc2hhZGVyVHlwZSArICIgc2hhZGVyLCBzbyBpdCBjYW5ub3QgYmUgY2FsbGVkIGZyb20g
d2l0aGluIGFuIGV4aXN0aW5nIHNoYWRlci4iKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9Ci0gICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOworICAgICAgICBsZXQgb3Zl
cmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBl
KTsKICAgICAgICAgaWYgKG92ZXJsb2FkLmZhaWx1cmUpCiAgICAgICAgICAgICBmYWlsdXJlcy5w
dXNoKG92ZXJsb2FkLmZhaWx1cmUpOwogICAgICAgICBlbHNlCkBAIC00NiwxMiArNDYsNiBAQCBm
dW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRUeXBlcywgcmV0dXJuVHlwZQogICAgIGlmICghc3VjY2Vzc2VzLmxlbmd0aCkKICAgICAg
ICAgcmV0dXJuIHtmYWlsdXJlczogZmFpbHVyZXN9OwogICAgIAotICAgIGxldCBtaW5pbXVtQ29u
dmVyc2lvbkNvc3QgPSBzdWNjZXNzZXMucmVkdWNlKAotICAgICAgICAocmVzdWx0LCBvdmVybG9h
ZCkgPT4gTWF0aC5taW4ocmVzdWx0LCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQuY29udmVy
c2lvbkNvc3QpLAotICAgICAgICBJbmZpbml0eSk7Ci0gICAgc3VjY2Vzc2VzID0gc3VjY2Vzc2Vz
LmZpbHRlcigKLSAgICAgICAgb3ZlcmxvYWQgPT4gb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0
LmNvbnZlcnNpb25Db3N0ID09IG1pbmltdW1Db252ZXJzaW9uQ29zdCk7Ci0gICAgCiAgICAgLy8g
SWYgYW55IG9mIHRoZSBzaWduYXR1cmVzIGFyZSByZXN0cmljdGVkIHRoZW4gd2UgY29uc2lkZXIg
dGhvc2UgZmlyc3QuIFRoaXMgaXMgYW4gZXNjYXBlIG1lY2hhbmlzbSBmb3IKICAgICAvLyBidWls
dC1pbiB0aGluZ3MuCiAgICAgLy8gRklYTUU6IEl0IHNob3VsZCBiZSBhbiBlcnJvciB0byBkZWNs
YXJlIGEgZnVuY3Rpb24gdGhhdCBpcyBhdCBsZWFzdCBhcyBzcGVjaWZpYyBhcyBhIHJlc3RyaWN0
ZWQgZnVuY3Rpb24uCkBAIC03NCw3ICs2OCw2IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9hZElt
cGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlCiAg
ICAgICAgICAgICBsZXQgcGFyYW1ldGVyRnVuYyA9IHN1Y2Nlc3Nlc1tqXS5mdW5jOwogICAgICAg
ICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoCiAgICAgICAgICAgICAgICAg
cGFyYW1ldGVyRnVuYywKLSAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzLmxlbmd0aCA/IGFy
Z3VtZW50RnVuYy50eXBlUGFyYW1ldGVycyA6IFtdLAogICAgICAgICAgICAgICAgIGFyZ3VtZW50
RnVuYy5wYXJhbWV0ZXJUeXBlcywKICAgICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMucmV0dXJu
VHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7CiAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1
bmMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVm
cy5qcwppbmRleCAzYmQyYTRkNjVmNTY0ZjcwOGIwZWY0NzU5ZTQzYjJjODhkNDhjMjM0Li5lODdi
ZGMzYzM0ODMxOTk1MmZmOWQ4ZjAzOTlmMzQ4ZWE5NTBkNjBlIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCkBAIC0zMSwxMyArMzEsNiBA
QCBmdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pCiAgICAgICAgIHR5cGUu
dmlzaXQocmVzb2x2ZXIpOwogfQogCi1mdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblByb3RvY29s
cyhwcm9ncmFtKQotewotICAgIGxldCByZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2ZXIoKTsK
LSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAg
ICAgICAgcHJvdG9jb2wudmlzaXQocmVzb2x2ZXIpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlVHlw
ZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKQogewogICAgIGxldCByZXNvbHZlciA9IG5ldyBUeXBl
RGVmUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMK
aW5kZXggZjQwZDZiODhiMjZlZWRjYmY4MjlmMWJhYmIxMGEyMDQ1YjdhOGU4My4uMTcxNWFkMGZh
Yjc5OTliOTY1YmIwMzkwMjI1NDAxN2QxN2IzOWIxZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTUzLDQxICs1MywxMSBAQCBjbGFzcyBSZXdyaXRlciB7
CiAgICAgLy8gdGhhdC4KICAgICB2aXNpdEZ1bmNEZWYobm9kZSkgeyByZXR1cm4gbm9kZTsgfQog
ICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXROYXRp
dmVGdW5jSW5zdGFuY2Uobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0TmF0aXZlVHlw
ZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpIHsgcmV0dXJu
IG5vZGU7IH0KICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAg
IHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAg
dmlzaXRQcm90b2NvbERlY2wobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0RW51bVR5
cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogCi0gICAgLy8gVGhpcyBpcyBhbG1vc3Qgd3Jvbmcu
IFdlIGluc3RhbnRpYXRlIEZ1bmMgaW4gU3Vic3RpdHV0aW9uIGluIFByb3RvY29sRGVjbC4gVGhl
biwgd2UgZW5kIHVwCi0gICAgLy8gbm90IHJld3JpdGluZyB0eXBlIHZhcmlhYmxlcy4gSSB0aGlu
ayB0aGF0IGp1c3Qgd29ya3MgYmVjYXVzZSBub3QgcmV3cml0aW5nIHRoZW0gdGhlcmUgaXMgT0su
Ci0gICAgLy8gRXZlcnl3aGVyZSBlbHNlLCBpdCdzIG1hbmRhdG9yeSB0aGF0IHdlIGRvbid0IHJl
d3JpdGUgdGhlc2UgYmVjYXVzZSB3ZSBhbHdheXMgYXNzdW1lIHRoYXQKLSAgICAvLyB0eXBlIHZh
cmlhYmxlcyBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgcmV3cml0aW5nLgotICAgIHZpc2l0VHlw
ZVZhcmlhYmxlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLQotICAgIHZpc2l0UHJvdG9jb2xGdW5j
RGVjbChub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2NvbEZ1bmNE
ZWNsKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5v
ZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRl
cnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAgICAgICAg
bm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwK
LSAgICAgICAgICAgIG5vZGUuaXNDYXN0LAotICAgICAgICAgICAgbm9kZS5zaGFkZXJUeXBlKTsK
LSAgICAgICAgcmVzdWx0LnByb3RvY29sRGVjbCA9IG5vZGUucHJvdG9jb2xEZWNsOwotICAgICAg
ICByZXN1bHQucG9zc2libGVPdmVybG9hZHMgPSBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzOwotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdE5hdGl2ZVR5cGVJbnN0
YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5zdGFuY2Uo
Ci0gICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnR5
cGVBcmd1bWVudHMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBGdW5jUGFyYW1ldGVyKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUu
dHlwZS52aXNpdCh0aGlzKSk7CkBAIC0xMjUsMTQgKzk1LDkgQEAgY2xhc3MgUmV3cml0ZXIgewog
ICAgICAgICB9KSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2RlLm9yaWdp
biwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBl
QXJndW1lbnQudmlzaXQodGhpcykpKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVm
KG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IE5vZGUudmlz
aXQobm9kZS50eXBlLCB0aGlzKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0z
MTcsMTQgKzI4Miw2IEBAIGNsYXNzIFJld3JpdGVyIHsKIAogICAgIHByb2Nlc3NEZXJpdmVkQ2Fs
bERhdGEobm9kZSwgcmVzdWx0KQogICAgIHsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVu
dHMgPSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBl
QXJndW1lbnRzKQotICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxUeXBlQXJndW1lbnRzLm1h
cChhY3R1YWxUeXBlQXJndW1lbnQgPT4gYWN0dWFsVHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpKTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAg
fQotICAgICAgICByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1bWVu
dHMobm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0Lmluc3RhbnRpYXRl
ZEFjdHVhbFR5cGVBcmd1bWVudHMgPSBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlh
dGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gbm9k
ZS5hcmd1bWVudFR5cGVzOwogICAgICAgICBpZiAoYXJndW1lbnRUeXBlcykKICAgICAgICAgICAg
IHJlc3VsdC5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlcy5tYXAoYXJndW1lbnRUeXBlID0+
IGFyZ3VtZW50VHlwZS52aXNpdCh0aGlzKSk7CkBAIC0zNDIsNyArMjk5LDYgQEAgY2xhc3MgUmV3
cml0ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbigK
ICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5
cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykp
LAogICAgICAgICAgICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5vZGUudmlz
aXQoYXJndW1lbnQsIHRoaXMpKSk7CiAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NEZXJpdmVk
Q2FsbERhdGEobm9kZSwgcmVzdWx0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU1BJUlYuaHRtbAppbmRleCA5M2Y2YjliOTMyZDI3MmQ3N2EzZGMzMTY3ZjUyNWZhNDBhNjFl
ZDIzLi4zNjg2MThmODUxYzlkOGU1MDJmYzVmOWQ2N2IxMDkxMDM0YTM5NjdhIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTQyLDcgKzQyLDYgQEAgdGQgewog
ICAgIDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb25z
dGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+
CkBAIC02MSw3ICs2MCw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4u
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBz
cmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsb2F0
TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjksNyArNjcsNiBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJGdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVuY3Rp
b25MaWtlQmxvY2suanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmlu
ZGVyLmpzIj48L3NjcmlwdD4KQEAgLTc5LDcgKzc2LDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3Jj
PSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IklubGlu
ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
SW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNz
LmpzIj48L3NjcmlwdD4KQEAgLTk2LDkgKzkyLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJO
YW1lRmluZGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJOYXRp
dmVUeXBlSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQ
cm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTnVsbExpdGVy
YWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+
CkBAIC0xMDksMTAgKzEwMyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLSAg
ICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3Rv
Y29sUmVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAg
LTE0MSwxMCArMTMxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxl
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKaW5kZXggYjRmNTA4NTlhODdhZmI2MGU1NGIzNjBjNjA1
OWM0YWFjOGMyM2JjYS4uYTlmZGVlY2U0NzU4NjY4NjYzZWQxMDMyZjcyYjIwM2U4MjA1MmFhMSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcwpAQCAt
NTMsNyArNTMsNyBAQCBmdW5jdGlvbiBnZW5lcmF0ZVNQSVJWKHNwaXJ2LCBwcm9ncmFtKQogICAg
IHR5cGVNYXAuc2V0KHByb2dyYW0uaW50cmluc2ljcy51aW50MzIsIGN1cnJlbnRJZCsrKTsKIAog
ICAgIGZvciAobGV0IGVudHJ5UG9pbnQgb2YgZmluZEVudHJ5UG9pbnRzKCkpIHsKLSAgICAgICAg
bGV0IGlubGluZWRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGVu
dHJ5UG9pbnQsIFtdKTsKKyAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBvaW50Owog
ICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3IFZpc2l0
aW5nU2V0KGVudHJ5UG9pbnQpKTsKIAogICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0gbmV3IFNQ
SVJWVHlwZUFuYWx5emVyKHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXggMTk4ODcy
M2MzNTQ4MDgxYzY2N2ZhYzc4NjJmNDAyNjdmOWY4Yjg1Ny4uYWM1ODIzZTI1NGNjYjE5NThhOTFk
ZjBhN2NkMTM5Zjg4ODIwY2EyMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMjksMzYxICsyOSwxNyBAQCBsZXQgc3RhbmRhcmRM
aWJyYXJ5ID0gYAogLy8gVGhpcyBpcyB0aGUgV1NMIHN0YW5kYXJkIGxpYnJhcnkuIEltcGxlbWVu
dGF0aW9ucyBvZiBhbGwgb2YgdGhlc2UgdGhpbmdzIGFyZSBpbgogLy8gSW50cmluc2ljcy5qcy4K
IAotLy8gTmVlZCB0byBib290c3RyYXAgdm9pZCBmaXJzdC4KIG5hdGl2ZSB0eXBlZGVmIHZvaWQ7
Ci0KLW5hdGl2ZSB0eXBlZGVmIHVpbnQ4OwotbmF0aXZlIHR5cGVkZWYgaW50MzI7Ci1uYXRpdmUg
dHlwZWRlZiB1aW50MzI7CiBuYXRpdmUgdHlwZWRlZiBib29sOwotdHlwZWRlZiBpbnQgPSBpbnQz
MjsKLXR5cGVkZWYgdWludCA9IHVpbnQzMjsKLQotbmF0aXZlIHR5cGVkZWYgZmxvYXQzMjsKLXR5
cGVkZWYgZmxvYXQgPSBmbG9hdDMyOwotCi1uYXRpdmUgb3BlcmF0b3IgaW50MzIodWludDMyKTsK
LW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50OCk7Ci1uYXRpdmUgb3BlcmF0b3IgaW50MzIoZmxv
YXQpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihpbnQzMik7Ci1uYXRpdmUgb3BlcmF0b3IgdWlu
dDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIoZmxvYXQpOwotbmF0aXZlIG9wZXJh
dG9yIHVpbnQ4KGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50OCh1aW50MzIpOwotbmF0aXZl
IG9wZXJhdG9yIHVpbnQ4KGZsb2F0KTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdChpbnQzMik7Ci1u
YXRpdmUgb3BlcmF0b3IgZmxvYXQodWludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50
OCk7Ci0KLW5hdGl2ZSBpbnQgb3BlcmF0b3IrKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJh
dG9yKyh1aW50LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yKyh1aW50OCBhLCB1aW50OCBiKSB7IHJl
dHVybiB1aW50OCh1aW50KGEpICsgdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvciso
ZmxvYXQsIGZsb2F0KTsKLWludCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUg
KyAxOyB9Ci11aW50IG9wZXJhdG9yKysodWludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9
Ci11aW50OCBvcGVyYXRvcisrKHVpbnQ4IHZhbHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH0KLW5h
dGl2ZSBpbnQgb3BlcmF0b3ItKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50
LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yLSh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50
OCh1aW50KGEpIC0gdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZs
b2F0KTsKLWludCBvcGVyYXRvci0tKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11
aW50IG9wZXJhdG9yLS0odWludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11aW50OCBv
cGVyYXRvci0tKHVpbnQ4IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0KLW5hdGl2ZSBpbnQg
b3BlcmF0b3IqKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50KTsK
LXVpbnQ4IG9wZXJhdG9yKih1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEp
ICogdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKLW5h
dGl2ZSBpbnQgb3BlcmF0b3IvKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yLyh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50
OCh1aW50KGEpIC8gdWludChiKSk7IH0KLW5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCwgaW50KTsK
LW5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCwgaW50KTsKLW5hdGl2ZSBpbnQgb3BlcmF0b3JeKGlu
dCwgaW50KTsKLW5hdGl2ZSBpbnQgb3BlcmF0b3J+KGludCk7Ci1uYXRpdmUgaW50IG9wZXJhdG9y
PDwoaW50LCB1aW50KTsKLW5hdGl2ZSBpbnQgb3BlcmF0b3I+PihpbnQsIHVpbnQpOwotbmF0aXZl
IHVpbnQgb3BlcmF0b3ImKHVpbnQsIHVpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3J8KHVpbnQs
IHVpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsIHVpbnQpOwotbmF0aXZlIHVpbnQg
b3BlcmF0b3J+KHVpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LCB1aW50KTsKLW5h
dGl2ZSB1aW50IG9wZXJhdG9yPj4odWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvciYodWludDgg
YSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSAmIHVpbnQoYikpOyB9Ci11aW50OCBv
cGVyYXRvcnwodWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSB8IHVpbnQo
YikpOyB9Ci11aW50OCBvcGVyYXRvcl4odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgo
dWludChhKSBeIHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRvcn4odWludDggdmFsdWUpIHsgcmV0
dXJuIHVpbnQ4KH51aW50KHZhbHVlKSk7IH0KLXVpbnQ4IG9wZXJhdG9yPDwodWludDggYSwgdWlu
dCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIDw8IChiICYgNykpOyB9Ci11aW50OCBvcGVyYXRv
cj4+KHVpbnQ4IGEsIHVpbnQgYikgeyByZXR1cm4gdWludDgodWludChhKSA+PiAoYiAmIDcpKTsg
fQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3Bl
cmF0b3I9PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KHVpbnQsIHVpbnQpOwot
Ym9vbCBvcGVyYXRvcj09KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQoYSkgPT0gdWlu
dChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29sLCBib29sKTsKLW5hdGl2ZSBib29s
IG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGlu
dCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPCh1
aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50KGEpIDwgdWludChiKTsgfQotbmF0aXZlIGJv
b2wgb3BlcmF0b3I8KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGludCwg
aW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9y
PD0odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOyB9Ci1uYXRp
dmUgYm9vbCBvcGVyYXRvcjw9KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4o
aW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVy
YXRvcj4odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA+IHVpbnQoYik7IH0KLW5h
dGl2ZSBib29sIG9wZXJhdG9yPihmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+
PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KHVpbnQsIHVpbnQpOwotYm9vbCBv
cGVyYXRvcj49KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsg
fQotbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxvYXQpOwotCi1ib29sIG9wZXJhdG9y
Jihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0dXJuIGI7Ci0gICAg
cmV0dXJuIGZhbHNlOwotfQotCi1ib29sIG9wZXJhdG9yfChib29sIGEsIGJvb2wgYikKLXsKLSAg
ICBpZiAoYSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGIpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBi
b29sIGIpCi17Ci0gICAgaWYgKGEpCi0gICAgICAgIHJldHVybiAhYjsKLSAgICByZXR1cm4gYjsK
LX0KLQotYm9vbCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkKLXsKLSAgICByZXR1cm4gIXZhbHVlOwot
fQotCi1wcm90b2NvbCBBZGRhYmxlIHsKLSAgICBBZGRhYmxlIG9wZXJhdG9yKyhBZGRhYmxlLCBB
ZGRhYmxlKTsKLX0KLQotcHJvdG9jb2wgRXF1YXRhYmxlIHsKLSAgICBib29sIG9wZXJhdG9yPT0o
RXF1YXRhYmxlLCBFcXVhdGFibGUpOwotfQotCi1yZXN0cmljdGVkIG9wZXJhdG9yPFQ+IFQoKQot
ewotICAgIFQgZGVmYXVsdFZhbHVlOwotICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Ci19Ci0KLXJl
c3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChUIHgpCi17Ci0gICAgcmV0dXJuIHg7Ci19Ci0KLW9wZXJh
dG9yPFQ6RXF1YXRhYmxlPiBib29sKFQgeCkKLXsKLSAgICByZXR1cm4geCAhPSBUKCk7Ci19Ci0K
LXN0cnVjdCB2ZWMyPFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5OwotfQotCi10eXBlZGVmIGludDIg
PSB2ZWMyPGludD47Ci10eXBlZGVmIHVpbnQyID0gdmVjMjx1aW50PjsKLXR5cGVkZWYgZmxvYXQy
ID0gdmVjMjxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzI8VD4oVCB4LCBUIHkpCi17Ci0gICAg
dmVjMjxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0geTsKLSAg
ICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzI8
VD4gYSwgdmVjMjxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7
Ci19Ci0KLXRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgdmVjMjxUPiogZm9vLCB1aW50
IGluZGV4KQotewotICAgIGlmIChpbmRleCA9PSAwKQotICAgICAgICByZXR1cm4gJmZvby0+eDsK
LSAgICBpZiAoaW5kZXggPT0gMSkKLSAgICAgICAgcmV0dXJuICZmb28tPnk7Ci0gICAgdHJhcDsK
LX0KLQotc3RydWN0IHZlYzM8VD4gewotICAgIFQgeDsKLSAgICBUIHk7Ci0gICAgVCB6OwotfQot
Ci10eXBlZGVmIGludDMgPSB2ZWMzPGludD47Ci10eXBlZGVmIHVpbnQzID0gdmVjMzx1aW50PjsK
LXR5cGVkZWYgZmxvYXQzID0gdmVjMzxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzM8VD4oVCB4
LCBUIHksIFQgeikKLXsKLSAgICB2ZWMzPFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHg7Ci0g
ICAgcmVzdWx0LnkgPSB5OwotICAgIHJlc3VsdC56ID0gejsKLSAgICByZXR1cm4gcmVzdWx0Owot
fQotCi1vcGVyYXRvcjxUPiB2ZWMzPFQ+KHZlYzI8VD4gdjIsIFQgeikKLXsKLSAgICB2ZWMzPFQ+
IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHYyLng7Ci0gICAgcmVzdWx0LnkgPSB2Mi55OwotICAg
IHJlc3VsdC56ID0gejsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1vcGVyYXRvcjxUPiB2ZWMz
PFQ+KFQgeCwgdmVjMjxUPiB2MikKLXsKLSAgICB2ZWMzPFQ+IHJlc3VsdDsKLSAgICByZXN1bHQu
eCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2Mi54OwotICAgIHJlc3VsdC56ID0gdjIueTsKLSAgICBy
ZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzM8VD4g
YSwgdmVjMzxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYg
YS56ID09IGIuejsKLX0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMzPFQ+
KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgIHJldHVy
biAmZm9vLT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+eTsK
LSAgICBpZiAoaW5kZXggPT0gMikKLSAgICAgICAgcmV0dXJuICZmb28tPno7Ci0gICAgdHJhcDsK
LX0KLQotc3RydWN0IHZlYzQ8VD4gewotICAgIFQgeDsKLSAgICBUIHk7Ci0gICAgVCB6OwotICAg
IFQgdzsKLX0KLQotdHlwZWRlZiBpbnQ0ID0gdmVjNDxpbnQ+OwotdHlwZWRlZiB1aW50NCA9IHZl
YzQ8dWludD47Ci10eXBlZGVmIGZsb2F0NCA9IHZlYzQ8ZmxvYXQ+OwotCi1vcGVyYXRvcjxUPiB2
ZWM0PFQ+KFQgeCwgVCB5LCBUIHosIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB5OwotICAgIHJlc3VsdC56ID0gejsKLSAgICBy
ZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotb3BlcmF0b3I8VD4gdmVjNDxU
Pih2ZWMyPFQ+IHYyLCBUIHosIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1
bHQueCA9IHYyLng7Ci0gICAgcmVzdWx0LnkgPSB2Mi55OwotICAgIHJlc3VsdC56ID0gejsKLSAg
ICByZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotb3BlcmF0b3I8VD4gdmVj
NDxUPihUIHgsIHZlYzI8VD4gdjIsIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2Mi54OwotICAgIHJlc3VsdC56ID0gdjIueTsK
LSAgICByZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotb3BlcmF0b3I8VD4g
dmVjNDxUPihUIHgsIFQgeSwgdmVjMjxUPiB2MikKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAg
ICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB5OwotICAgIHJlc3VsdC56ID0gdjIueDsK
LSAgICByZXN1bHQudyA9IHYyLnk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotb3BlcmF0b3I8
VD4gdmVjNDxUPih2ZWMyPFQ+IHYyYSwgdmVjMjxUPiB2MmIpCi17Ci0gICAgdmVjNDxUPiByZXN1
bHQ7Ci0gICAgcmVzdWx0LnggPSB2MmEueDsKLSAgICByZXN1bHQueSA9IHYyYS55OwotICAgIHJl
c3VsdC56ID0gdjJiLng7Ci0gICAgcmVzdWx0LncgPSB2MmIueTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzM8VD4gdjMsIFQgdykKLXsKLSAgICB2ZWM0
PFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHYzLng7Ci0gICAgcmVzdWx0LnkgPSB2My55Owot
ICAgIHJlc3VsdC56ID0gdjMuejsKLSAgICByZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKLX0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIHZlYzM8VD4gdjMpCi17Ci0gICAgdmVj
NDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjMueDsKLSAg
ICByZXN1bHQueiA9IHYzLnk7Ci0gICAgcmVzdWx0LncgPSB2My56OwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjNDxUPiBhLCB2ZWM0PFQ+
IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56
ICYmIGEudyA9PSBiLnc7Ci19Ci0KLXRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgdmVj
NDxUPiogZm9vLCB1aW50IGluZGV4KQotewotICAgIGlmIChpbmRleCA9PSAwKQotICAgICAgICBy
ZXR1cm4gJmZvby0+eDsKLSAgICBpZiAoaW5kZXggPT0gMSkKLSAgICAgICAgcmV0dXJuICZmb28t
Pnk7Ci0gICAgaWYgKGluZGV4ID09IDIpCi0gICAgICAgIHJldHVybiAmZm9vLT56OwotICAgIGlm
IChpbmRleCA9PSAzKQotICAgICAgICByZXR1cm4gJmZvby0+dzsKLSAgICB0cmFwOwotfQotCi1u
YXRpdmUgdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCBUW10sIHVpbnQpOwotbmF0aXZl
IHRocmVhZGdyb3VwIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZGdyb3VwIFRbXSwgdWludCk7Ci1u
YXRpdmUgZGV2aWNlIFQqIG9wZXJhdG9yJltdPFQ+KGRldmljZSBUW10sIHVpbnQpOwotbmF0aXZl
IGNvbnN0YW50IFQqIG9wZXJhdG9yJltdPFQ+KGNvbnN0YW50IFRbXSwgdWludCk7Ci0KLW5hdGl2
ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPih0aHJlYWQgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJh
dG9yLmxlbmd0aDxUPih0aHJlYWRncm91cCBUW10pOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVu
Z3RoPFQ+KGRldmljZSBUW10pOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KGNvbnN0
YW50IFRbXSk7Ci0KLXVpbnQgb3BlcmF0b3IubGVuZ3RoPFQsIHVpbnQgbGVuZ3RoPihUW2xlbmd0
aF0pCi17Ci0gICAgcmV0dXJuIGxlbmd0aDsKLX0KK25hdGl2ZSB0eXBlZGVmIHVjaGFyOworbmF0
aXZlIHR5cGVkZWYgdXNob3J0OworbmF0aXZlIHR5cGVkZWYgdWludDsKK25hdGl2ZSB0eXBlZGVm
IGNoYXI7CituYXRpdmUgdHlwZWRlZiBzaG9ydDsKK25hdGl2ZSB0eXBlZGVmIGludDsKK25hdGl2
ZSB0eXBlZGVmIGhhbGY7CituYXRpdmUgdHlwZWRlZiBmbG9hdDsKK25hdGl2ZSB0eXBlZGVmIGF0
b21pY19pbnQ7CituYXRpdmUgdHlwZWRlZiBhdG9taWNfdWludDsKK25hdGl2ZSB0eXBlZGVmIGJv
b2wyOwogYDsKLQotZnVuY3Rpb24gaW50VG9TdHJpbmcoeCkKLXsKLSAgICBzd2l0Y2ggKHgpIHsK
LSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiAieCI7Ci0gICAgY2FzZSAxOgotICAgICAgICBy
ZXR1cm4gInkiOwotICAgIGNhc2UgMjoKLSAgICAgICAgcmV0dXJuICJ6IjsKLSAgICBjYXNlIDM6
Ci0gICAgICAgIHJldHVybiAidyI7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJDb3VsZCBub3QgZ2VuZXJhdGUgc3RhbmRhcmQgbGlicmFyeS4iKTsKLSAgICB9Ci19Ci0K
LS8vIFRoZXJlIGFyZSA0ODEgc3dpenpsZSBvcGVyYXRvcnMsIHNvIHdlIGNvbXBpbGUgdGhlbSBh
cyBuYXRpdmUgZnVuY3Rpb25zCi1zdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmFsbFN3aXp6
bGVPcGVyYXRvcnMoKS5qb2luKCI7XG4iKSArICI7IjsKLWNvbnNvbGUubG9nKHN0YW5kYXJkTGli
cmFyeSk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUz
NWRlYTM3ZjdmYzFhNjNiYzcxY2YzMTYuLjcxY2NjYjYwMTdhMTQwMzhhOTg2YWI1NDZkMDMyODJm
MzQ4NTVjYTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRl
bWVudENsb25lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1l
bnRDbG9uZXIuanMKQEAgLTI3LDExICsyNyw5IEBACiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0
ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBs
ZXQgdHlwZVBhcmFtZXRlcnMgPSBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVy
ID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IEZ1bmNEZWYoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAg
ICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgdHlwZVBhcmFtZXRl
cnMsCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0
ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAg
ICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBA
IGNsYXNzIFN0YXRlbWVudENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFt
ZSwKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAg
IG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52
aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9
PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUu
c2hhZGVyVHlwZSk7CiAgICAgICAgIHJlc3VsdC5pc1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJp
Y3RlZDsKQEAgLTU0LDUyICs1MSwyNCBAQCBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBS
ZXdyaXRlciB7CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1
cm4gbmV3IE5hdGl2ZVR5cGUoCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBu
b2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlz
aXQodGhpcykpKTsKKyAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlw
ZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSkp
OwogICAgIH0KICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiBuZXcgVHlwZURlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0g
ICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQ
YXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMp
KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAg
ICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUoCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFt
ZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgU3RydWN0VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKICAgICAgICAgZm9yIChs
ZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCiAgICAgICAgICAgICByZXN1bHQuYWRkKGZpZWxkLnZp
c2l0KHRoaXMpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgdmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3
IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
LnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkK
LSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG5vZGUub3JpZ2lu
LCBub2RlLm5hbWUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMp
Ci0gICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwcm90b2NvbC52aXNpdCh0aGlzKSk7Ci0g
ICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAg
ICByZXN1bHQuYWRkKHNpZ25hdHVyZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBuZXcgVHlwZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIE5vZGUudmlz
aXQobm9kZS5wcm90b2NvbCwgdGhpcykpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29s
UmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sUmVmKG5vZGUub3Jp
Z2luLCBub2RlLm5hbWUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEJvb2xMaXRlcmFsKG5vZGUp
CiAgICAgewogICAgICAgICByZXR1cm4gbmV3IEJvb2xMaXRlcmFsKG5vZGUub3JpZ2luLCBub2Rl
LnZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVj
dExheW91dEJ1aWxkZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzCmluZGV4IDRmOThjNTczYTFhMzgyMzdlMTY0NTBhZTEwYjg2Y2IyZTYx
ZDEyMzAuLjc0NDFkZWVlZDQzZDA2MmRiMTMwMzY3NjQ5MGYzNjhjZWI2ZDgzZDggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5q
cwpAQCAtMzksOCArMzksNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgewogICAgICAgICBpZiAobm9kZS5zaXplICE9IG51bGwpCiAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIGlmIChub2RlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRvIGxheW91dCBmb3IgZ2VuZXJpYyB0eXBl
OiAiICsgbm9kZSk7CiAgICAgICAgIGxldCBvbGRPZmZzZXQgPSB0aGlzLl9vZmZzZXQ7CiAgICAg
ICAgIHRoaXMuX29mZnNldCA9IDA7CiAgICAgICAgIHN1cGVyLnZpc2l0U3RydWN0VHlwZShub2Rl
KTsKQEAgLTYwLDEyICs1OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgdGhpcy5fb2Zmc2V0ICs9IHNpemU7CiAgICAgfQogICAgIAotICAg
IHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUpCi0gICAgewotICAgICAgICBzdXBlci52aXNp
dE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKTsKLSAgICAgICAgbm9kZS5mdW5jLmRpZExheW91dFN0
cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxlbWVudGF0aW9uRGF0YSk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgc3VwZXIudmlz
aXRUeXBlUmVmKG5vZGUpOwpAQCAtNzYsMTMgKzY4LDYgQEAgY2xhc3MgU3RydWN0TGF5b3V0QnVp
bGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQg
b2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0
aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxUeXBlQXJndW1l
bnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAgICAg
ICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1
YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2ZUZ1bmNJbnN0
YW5jZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RU
eXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcwppbmRl
eCBmOWQ4YzdkYTQ4NTgzMjE2MWU1NWQyMmE0Mzg3NjI5OTMzN2NiOTM2Li4zOTQ3ZmRiYWMwNzAw
MGRlODBmZmY2NWZkNjZjNmUwMDU4YTI3ZWMxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N0cnVjdFR5cGUuanMKQEAgLTI1LDEyICsyNSwxMSBAQAogInVzZSBzdHJpY3QiOwog
CiBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2lu
LCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCiAg
ICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9
IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9maWVsZHMgPSBuZXcgTWFwKCk7CiAgICAg
fQogICAgIApAQCAtNDQsNyArNDMsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7
CiAgICAgCiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAgICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygp
IHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgCiAgICAgZ2V0IGZpZWxkTmFt
ZXMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMua2V5cygpOyB9CiAgICAgZmllbGRCeU5hbWUobmFt
ZSkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmdldChuYW1lKTsgfQpAQCAtNTgsMzIgKzU2LDYgQEAg
Y2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1lbnRzID0gbnVsbCkKLSAgICB7
Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsOwotICAgICAgICBsZXQgdHlwZVBhcmFt
ZXRlcnMgPSB0aGlzLnR5cGVQYXJhbWV0ZXJzOwotICAgICAgICAKLSAgICAgICAgaWYgKHR5cGVB
cmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSB0aGlz
LnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVF
cnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1
bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBzdWJz
dGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHRoaXMudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1
bWVudHMpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBbXTsKLSAgICAgICAgfQotICAg
ICAgICAKLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRlcyA9IG5ldyBJbnN0YW50aWF0
ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKHRoaXMu
b3JpZ2luLCB0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgZm9yIChsZXQgZmll
bGQgb2YgdGhpcy5maWVsZHMpIHsKLSAgICAgICAgICAgIGxldCBuZXdGaWVsZCA9IGZpZWxkOwot
ICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbikKLSAgICAgICAgICAgICAgICBuZXdGaWVsZCA9
IG5ld0ZpZWxkLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBuZXdGaWVsZCA9IG5l
d0ZpZWxkLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAgICAgICByZXN1bHQu
YWRkKG5ld0ZpZWxkKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICB9Ci0gICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQp
CiAgICAgewogICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwpCkBAIC05NCw2ICs2Niw2IEBA
IGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAKICAgICB0b1N0cmluZygpCiAg
ICAgewotICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50
eXBlUGFyYW1ldGVycyArICI+IHsgIiArIEFycmF5LmZyb20odGhpcy5maWVsZHMpLmpvaW4oIjsg
IikgKyAiOyB9IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QgIiArIHRoaXMubmFtZSArICIgeyAi
ICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSArICI7IH0iOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVt
RnVuY3Rpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVu
dW1GdW5jdGlvbnMuanMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhjMjlmMWVhMDUxMGNlMjllMjgw
YTU2Zi4uMTdiNjE4NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0MDAxNzliMiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5j
dGlvbnMuanMKQEAgLTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBzeW50aGVzaXplRW51bUZ1bmN0
aW9ucyhwcm9ncmFtKQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsKICAgICAgICAgCiAgICAgICAg
IG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAi
b3BlcmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIsIFtdKSwgW10sCisg
ICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBlLm9y
aWdpbiwgImJvb2wiKSwKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUu
bmFtZSwgW10pKSwKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdp
biwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKQorICAgICAg
ICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJl
Zih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSksCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJh
bWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5h
bWUpKQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAg
ICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4gRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgIHBy
b2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5l
dyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIs
IHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtu
ZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9y
LnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAgICAg
ICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUu
b3JpZ2luLCB0eXBlLm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwog
ICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwog
ICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2
ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0
b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAg
ICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYo
dHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwg
Im9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwKKyAg
ICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVS
ZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVy
VHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
dmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAg
ICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4s
ICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10p
LCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBl
UmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1l
dGVyKHR5cGUub3JpZ2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigp
KSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpz
CmluZGV4IGY3ODE2ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1ZTRiZmUzYTkuLjBhYTc1NjBl
YTUzZmVhYmM5Nzc5ZDIwOGJjNGFkZTY5YjE5Yzg4NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwpA
QCAtMzEsMjggKzMxLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9n
cmFtKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBmb3IgKGxldCBm
aWVsZCBvZiB0eXBlLmZpZWxkcykgewotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZVBh
cmFtZXRlcnMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLnR5
cGVQYXJhbWV0ZXJzLm1hcCgKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlciA9PiB0
eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3cml0ZXIoKSkpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlQXJn
dW1lbnRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZVBhcmFt
ZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgQXV0b1dy
YXBwZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5j
dGlvbiBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCBpbXBsZW1lbnRhdGlvbikK
ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLmluc3RhbnRpYXRlSW1w
bGVtZW50YXRpb24gPSBzdWJzdGl0dXRpb24gPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQg
bmV3VHlwZSA9IHR5cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50eXBlUGFyYW1ldGVycy5tYXAo
dHlwZVBhcmFtZXRlciA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0
ZSA9IHN1YnN0aXR1dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCFzdWJzdGl0dXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBlIHBhcmFtZXRlciAiICsgdHlw
ZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZTsK
LSAgICAgICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3R5
cGU6IG5ld1R5cGUsIGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0gICAgICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0gKGlt
cGxlbWVudGF0aW9uRGF0YSwgdmlzaXRvcikgPT4gewogICAgICAgICAgICAgICAgICAgICAvLyBW
aXNpdGluZyB0aGUgdHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHN0cnVjdCBsYXlvdXQgYnVp
bGRlciBmaWd1cmVzIG91dCB0aGUgZmllbGQncwogICAgICAgICAgICAgICAgICAgICAvLyBvZmZz
ZXQuCkBAIC04OSwyMyArNjksMjEgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29y
cyhwcm9ncmFtKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVGaWVs
ZFR5cGUoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC50eXBl
LnZpc2l0KG5ldyBTdWJzdGl0dXRpb24odHlwZS50eXBlUGFyYW1ldGVycywgdHlwZVBhcmFtZXRl
cnMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgUmV3cml0
ZXIoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9u
IGNyZWF0ZVR5cGVSZWYoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBU
eXBlUmVmLmluc3RhbnRpYXRlKHR5cGUsIGNyZWF0ZVR5cGVBcmd1bWVudHMoKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxldCBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAg
ICAgIGxldCBzaGFkZXJUeXBlOwotICAgICAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzOwogICAg
ICAgICAgICAgbGV0IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXI6IG9w
ZXJhdG9yLmZpZWxkCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJh
bWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAg
ICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUsIGNyZWF0
ZUZpZWxkVHlwZSgpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmln
aW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAgICAgICAg
ICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlVHlw
ZVJlZigpKV0sIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cEltcGxlbWVu
dGF0aW9uRGF0YShuYXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUsIGZpZWxk
U2l6ZSkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1
ZmZlcihmaWVsZFNpemUpLCAwKTsKQEAgLTExNSw5ICs5Myw4IEBAIGZ1bmN0aW9uIHN5bnRoZXNp
emVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2
ZUZ1bmMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBvcGVyYXRv
ci5maWVsZD0KLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRl
cnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAg
ICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3Jl
YXRlVHlwZVJlZigpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmln
aW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigpLAogICAg
ICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmll
bGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAgICAgICBu
ZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlwZSgpKQpA
QCAtMTM0LDEwICsxMTEsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHBy
b2dyYW0pCiAgICAgICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwog
ICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAg
ICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBuZXcgUHRy
VHlwZShmaWVsZC5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkpLAotICAg
ICAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgWwog
ICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVGVzdC5odG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2ZDBiZGQ0
NDFiYmMuLjdhZDRhZDdiNDUwNTY1ZTRjNTZkYjU5MGE2MjA5ZjhlNzEyZTJkMGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3Jp
cHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhw
cmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29u
dmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJE
b1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0i
RXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5
cGUuanMiPjwvc2NyaXB0PgpAQCAtNjMsNyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3Au
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3Iu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3Jp
cHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5s
aW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAg
LTkwLDkgKzg2LDcgQEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2
ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3Jt
YWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0
ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpA
QCAtMTAzLDEwICs5Nyw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
UHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQ
dHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3Nj
cmlwdD4KQEAgLTEzMSwxMCArMTIxLDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCAyYjA1NjkwMmE2NmNjMzJkMDRhMWVh
NzIwZDI1MWUzZjcwY2Y5NjQ4Li43NmNjYTg3OWFiMmZhZmIxMDU1OWZlY2Y4ZTg0MzMxNTc2MWUx
NzU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4Nyw3ICsxODcs
NyBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBydW5zIG92
ZXIgbXVsdGlwbGUgbGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9
CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgKICAgICAgICAg
KCkgPT4gZG9QcmVwKGAKQEAgLTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5n
ID0gZnVuY3Rpb24oKSB7CiAKIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfSIpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1bmN0aW9uKCkgewog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsgcmV0dXJuIHg7IH0i
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBsZU1hdGggPSBmdW5j
dGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkp
IHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
IC0geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1h
a2VJbnQocHJvZ3JhbSwgNyldKSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28o
aW50IHgsIGludCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCAtNSldKSwgLTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUp
XSksIDM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOwog
ICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC8g
eTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1wbGVNYXRoID0gZnVu
Y3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWlu
dCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQg
eSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChw
cm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFt
LCA3KV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5
NDk2NzI5NCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkp
IHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMzUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7
IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwg
Myk7CiB9CiAKIHRlc3RzLnVpbnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAr
IHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0p
LCAxMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0
dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNSldKSwgMik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwg
NyldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSks
IDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1
cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFt
LCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0p
LCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkp
IHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgo
cHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFt
LCAyKV0pLCAzKTsKIH0KIAogdGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggPT0g
eTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggPT0geTsg
fSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAg
cHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ID09IHk7
IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2Up
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsK
ICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsg
fSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1YWxpdHkgPSBmdW5j
dGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50
IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
ZmFsc2UpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkp
IHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChw
cm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dy
YW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3
KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5
KSB7IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHgg
IT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VC
b29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5VHlwZUZh
aWx1cmUgPSBmdW5jdGlvbigpCkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0cy5lcXVhbGl0eVR5
cGVGYWlsdXJlID0gZnVuY3Rpb24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9uID0gZnVuY3Rpb24o
KQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCkgeyByZXR1cm4g
IXg7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAwKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MCldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA0MildKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVz
dHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHRlc3Rz
LnNpbXBsZUdlbmVyaWMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxUPihUIHgpIHsgcmV0
dXJuIHg7IH0KICAgICAgICAgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQoeCkgKyAxOyB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0
Myk7CiB9CiAKIHRlc3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTMz
MSw3ICszMzEsNyBAQCB0ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQXNz
aWdubWVudCA9IGZ1bmN0aW9uKCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0cy5zaW1wbGVBc3Np
Z25tZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0Mild
KSwgNDIpOwogfQogCiB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQpAQCAtMzU2LDcg
KzM1Niw3IEBAIHRlc3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRlc3Rz
LnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2OSw3IEBAIHRlc3Rz
LnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIg
PSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3go
bmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUg
PSBmdW5jdGlvbigpCkBAIC0zODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VTdG9yZSA9
IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAg
ICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAgICBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShl
eHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBF
UHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCiAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0IGNv
bnRhaW5zOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgdGVzdHMu
c2ltcGxlTWFrZVB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAmeDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pOwogICAgIGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAg
ICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpKQpAQCAtNDE4LDcgKzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5TG9hZCA9IGZ1bmN0
aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVm
ZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2lu
LCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcg
RVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9y
aWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYo
bmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0
LCA4OSk7CiB9CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWRJbnRM
aXRlcmFsID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQgPSBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZU
eXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwg
bmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0ludChw
cm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBAIHRlc3RzLmRldmlj
ZUFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVC
dWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZU
eXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwg
bmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0
ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5
UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYzLDEwIEBAIHRlc3Rz
LnRocmVhZEFycmF5U3RvcmUgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRW
YWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJl
YWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5l
dyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAg
aWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZh
bHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7
Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50
KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJy
YXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAh
PSAtMTExKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBi
dWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC00ODQsMTAg
KzQ4NCwxMCBAQCB0ZXN0cy5kZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBh
cnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAg
bmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwor
ICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dy
YW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiAr
IGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFth
cnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYg
KGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFs
dWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkp
OwogfQpAQCAtNTA1LDMyICs1MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZUludExpdGVy
YWwgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAg
ICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwg
MCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYs
IG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQo
MCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRv
IGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEp
XSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQo
cHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVk
IC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBsZVByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9j
b2wgTXlBZGRhYmxlIHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxl
LCBNeUFkZGFibGUpOwotICAgICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlBZGRhYmxlPihUIGEs
IFQgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwotICAgICAgICB9Ci0g
ICAgICAgIGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZGQo
eCwgNzMpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDUpXSksIDQ1ICsg
NzMpOwotfQotCiB0ZXN0cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCiB7CiAgICAg
Y2hlY2tGYWlsKApAQCAtNjY2LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0
aW9uKCkKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAgYnVmZmVyLnNldCgw
LCA2Mik7CiAgICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDAp
KV0pOwogICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUpKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwogICAg
IGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTksNiBAQCB0ZXN0cy5z
aW1wbGVTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jvbmcg
cmVzdWx0IGZvciB5OiAiICsgeSArICIgKHggKyAiICsgeCArICIpIik7CiB9CiAKLXRlc3RzLmdl
bmVyaWNTdHJ1Y3RJbnN0YW5jZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVCB4OwotICAgICAg
ICAgICAgVCB5OwotICAgICAgICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhGb288aW50PiBmb28p
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJl
c3VsdC54ID0gZm9vLnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54OwotICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBzdHJ1Y3RUeXBl
ID0gVHlwZVJlZi5pbnN0YW50aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9vIiksIFtwcm9ncmFt
LmludHJpbnNpY3MuaW50MzJdKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7Ci0g
ICAgYnVmZmVyLnNldCgwLCA2Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShz
dHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4ID0gcmVzdWx0LmVQ
dHIuZ2V0KDApOwotICAgIGxldCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwotICAgIGlmICh4ICE9
IDI0KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeDogIiArIHgg
KyAiICh5ID0gIiArIHkgKyAiKSIpOwotICAgIGlmICh5ICE9IDYyKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIp
OwotfQotCiB0ZXN0cy5kb3VibGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmljID0gZnVuY3Rpb24o
KQogewogICAgIGRvUHJlcChgCkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMucmV0dXJuTnVsbCA9
IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVhZCBp
bnQqIGZvbygpIHsgcmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRy
KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6
ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVh
bHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAsNyBAQCB0ZXN0cy5k
ZXJlZmVyZW5jZURlZmF1bHROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAg
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03ODAs
NyArNzM0LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVy
cm9yKTsKIH0KIApAQCAtNzk3LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25vbW9y
cGhpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgxMSw3IEBAIHRlc3Rz
LnJldHVybk51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgIHRocmVhZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAgYCk7
Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsK
KyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAg
aWYgKCFyZXN1bHQudHlwZS5pc0FycmF5UmVmKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJl
dHVybiB0eXBlIGlzIG5vdCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7CiAg
ICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyKSkKQEAgLTg3Niw3ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHROdWxs
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAg
ICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChl
KSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3ICs4NDQsNyBAQCB0
ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAg
IH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7
CiB9CiAKQEAgLTkwNCw3ICs4NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJy
YXlSZWZJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAg
ICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05MjEsNyArODc1
LDcgQEAgdGVzdHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigp
CiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1Ry
YXBFcnJvcik7CiB9CiAKQEAgLTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJQ
b2x5bW9ycGhpY0FycmF5UmVmID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJuSW50TGl0ZXJhbFVp
bnQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKCkg
eyByZXR1cm4gNDI7IH0iKTsKLSAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5yZXR1cm5J
bnRMaXRlcmFsRmxvYXQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
ImZsb2F0IGZvbygpIHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1i
ZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAog
dGVzdHMuYmFkSW50TGl0ZXJhbEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4OCw3ICs5NDIsNyBA
QCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0
IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChu
ZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5p
bnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMucGFzc051bGxB
bmROb3ROdWxsRnVsbFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1OSw3IEBAIHRlc3Rz
LnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxl
dCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRW
YWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3go
bmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxs
QW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEwMjIsNjUgKzk3Niw3
IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNl
dCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
MTMpOwotfQotCi10ZXN0cy5udWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IGxlZnQgPSBuZXcgTnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwotICAgIGxldCByaWdo
dCA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAgaWYg
KGxlZnQuZXF1YWxzKHJpZ2h0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90
IGJlIGVxdWFsIGJ1dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICBpZiAo
cmlnaHQuZXF1YWxzKGxlZnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3Qg
YmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQpOwotICAgIAotICAg
IGZ1bmN0aW9uIGV2ZXJ5T3JkZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgZnVu
Y3Rpb24gcmVjdXJzZShhcnJheSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBpZiAoIWFycmF5Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2su
Y2FsbChudWxsLCBvcmRlcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgbmV4dEFy
cmF5ID0gYXJyYXkuY29uY2F0KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFycmF5LnNwbGljZShp
LCAxKTsKLSAgICAgICAgICAgICAgICByZWN1cnNlKG5leHRBcnJheSwgY2FsbGJhY2ssIG9yZGVy
LmNvbmNhdChbYXJyYXlbaV1dKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIHJlY3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAgfQotICAgIAotICAg
IGZ1bmN0aW9uIGV2ZXJ5UGFpcih0aGluZ3MpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0g
W107Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7ICsraikgewotICAg
ICAgICAgICAgICAgIGlmIChpICE9IGopCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNo
KFt0aGluZ3NbaV0sIHRoaW5nc1tqXV0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3JkZXIoCi0gICAgICAg
IGV2ZXJ5UGFpcihbIm51bGxUeXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJUeXBlIl0pLAotICAg
ICAgICBvcmRlciA9PiB7Ci0gICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsKLSAgICAgICAgICAg
IHR5cGVzLm51bGxUeXBlID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICAgICAg
ICAgIHR5cGVzLnZhcmlhYmxlVHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4s
ICJUIiwgbnVsbCk7Ci0gICAgICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3IFB0clR5cGUoZXh0
ZXJuYWxPcmlnaW4sICJjb25zdGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVybmFsT3JpZ2luLCAi
Zm9vX3QiLCBbXSkpOwotICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBV
bmlmaWNhdGlvbkNvbnRleHQoW3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAgICAgICAgICAgZm9y
IChsZXQgW2xlZnROYW1lLCByaWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IGxlZnQgPSB0eXBlc1tsZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJpZ2h0ID0g
dHlwZXNbcmlnaHROYW1lXTsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbGVmdC51bmlm
eSh1bmlmaWNhdGlvbkNvbnRleHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3Vs
dCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBvcmRlciAiICsgb3Jk
ZXIgKyAiIGNhbm5vdCB1bmlmeSAiICsgbGVmdCArICIgd2l0aCAiICsgcmlnaHQpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCkucmVz
dWx0KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVy
Lm1hcCh2YWx1ZSA9PiAiKCIgKyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2ZXJpZnkiKTsKLSAg
ICAgICAgfSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2Ui
LCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7
CiB9CiAKIHRlc3RzLmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEsOCArOTg3LDggQEAg
dGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuICEheDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuc2ltcGxl
UmVjdXJzaW9uID0gZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBAQCB0ZXN0cy5zaW1w
bGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvcik7CiB9CiAKLXRlc3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+
IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAg
ICB9Ci0gICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3Vs
dC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50
QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50QW5kYWJsZSwgaW50
KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50
IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50
QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJl
c3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1h
a2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbFBvbHlT
aWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAg
ICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGlu
dCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiByZXN1
bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3Vs
dC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9
Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQ+IGlu
dEFuZDxUPihJbnRBbmRhYmxlLCBUKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50
QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50
QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQot
Ci10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBV
PiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAg
ICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxU
LCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnRBbmQ8VCwgVT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7
Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0
LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0g
ICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGlu
dEFuZDxULCBVPihJbnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9v
PFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7
Ci0gICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vj
b25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNl
Y29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsg
MTIgKyAzOSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWZF
eHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAg
ICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAgICAg
IEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAg
IHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29u
ZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAg
ICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQs
IGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1
bHQgPSBpbnRBbmQ8aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAg
IHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEy
KSwgbWFrZUludChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQogdGVzdHMudmFy
aWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YApAQCAtMTIyOSw3ICsxMDE3LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgOCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDgp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgewpA
QCAtMTI0Miw3ICsxMDMwLDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwog
fQogCiB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcsMTMgKzEwNDUsMTMg
QEAgdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDgpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9
IGZ1bmN0aW9uKCkKQEAgLTEyODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZFbHNlU3RhdGVtZW50
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA5KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDkpOwogfQogCiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEz
MDMsMTMgKzEwOTEsMTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRl
c3RzLmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMjgsMTMgKzExMTYs
MTMgQEAgdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAx
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
OCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKIH0KIAog
dGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1LDEzIEBAIHRlc3Rz
LnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDkpXSksIDEwKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyArMTIwNywxMyBAQCB0
ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNild
KSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwg
OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA5KV0pLCA5KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsxMjM3LDcgQEAgdGVz
dHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
Nik7CiB9CiAKIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAtMTQ2MiwzOSArMTI1
MCw3IEBAIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19Ci0K
LXRlc3RzLnByb3RvY29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBmdW5jdGlv
bigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7
Ci0gICAgICAgICAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAgVCBz
ZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNl
Y29uZCwgVSB0aGlyZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIElu
dEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZp
cnN0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJvdG9j
b2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGludEFu
ZDxUPihJbnRBbmRhYmxlLCBULCBpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJk
KQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwgaW50
PiByZXN1bHQgPSBpbnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRo
aXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGApOwotICAgICAgICAgICAgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtl
SW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAgICAgICAgfSwKLSAg
ICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSks
IDE2KTsKIH0KIAogdGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBmdW5jdGlvbigpCkBA
IC0xNTM3LDcgKzEyOTMsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb24gPSBmdW5jdGlv
bigpCiAgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAgICAgICAgaW50IGJh
cigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMu
aW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQpAQCAtMTU0OCw3
ICsxMzA0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVu
Y3Rpb24oKQogICAgICAgICBpbnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQogICAgICAgICBpbnQg
YmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0
cy5pbnRPdmVybG9hZFJlc29sdXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU1OCw3ICsx
MzE0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgaW50IGZvbzxUPihUKSB7IHJldHVybiAyOyB9CiAgICAgICAgIGludCBiYXIoKSB7
IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludExp
dGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3IEBAIHRlc3RzLmlu
dExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQgeCkgeyBy
ZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwg
W10sIFtdKSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29s
cyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHBy
b3RvY29sIE15Q29udmVydGlibGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBpbnQoTXlD
b252ZXJ0aWJsZVRvSW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6TXlDb252ZXJ0
aWJsZVRvSW50PihUIHgpIHsgcmV0dXJuIGludCh4KTsgfQotICAgICAgICBpbnQgYmFyKCkgeyBy
ZXR1cm4gZm9vKDQyKTsgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMudWlu
dExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMzMiw3IEBAIHRlc3Rz
LnVpbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgp
IHsgcmV0dXJuIDM0Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxHZW5lcmljV2l0aFBy
b3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb1VpbnQgewotICAgICAgICAgICAgb3BlcmF0b3Ig
dWludChNeUNvbnZlcnRpYmxlVG9VaW50KTsKLSAgICAgICAgfQotICAgICAgICB1aW50IGZvbzxU
Ok15Q29udmVydGlibGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsgfQotICAgICAgICB1
aW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsK
IH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKQEAgLTE2
MDksNyArMTM0MSw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlv
bigpCiAgICAgICAgIFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgYmFy
KCkgeyByZXR1cm4gZm9vKGludCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDQyKTsKIH0KIAog
dGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3ICsxMzU2LDcgQEAg
dGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZv
bzw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTgg
KyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmJyZWFrID0g
ZnVuY3Rpb24oKQpAQCAtMTY0MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAx
KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChg
CiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgsOCArMTM5MCw4IEBA
IHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOwogICAgIGNo
ZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50
IHgpCkBAIC0xNjk1LDcgKzE0MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHByb2dyYW0gPSBkb1By
ZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgICAgIHsKQEAgLTE3MDUs
NyArMTQzNyw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJl
dHVybiB4OwogICAgICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
ICAgICBpbnQgZm9vKCkKICAgICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0Niw3IEBAIHRlc3Rz
LmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChg
CiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1LDcgQEAgdGVzdHMu
Y29udGludWUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4
KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBp
bnQgZm9vKGludCB4KQpAQCAtMTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3ODIsNyArMTUxNCw3
IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgp
CiAgICAgICAgIHsKQEAgLTE3OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgOSldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwogfQogCiB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVzdHMuZm9yTG9vcCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1By
ZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODI3LDkgKzE1NTks
OSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAg
IHsKQEAgLTE4NDEsOSArMTU3Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50
IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBAQCB0ZXN0cy5mb3JM
b29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3MiwxMSArMTYwNCwx
MSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg4
OSwxMSArMTYyMSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIx
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTkwNywxMSArMTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhp
bnQgeCkKICAgICAgICAgewpAQCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0cy5mb3JMb29wID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+
IGRvUHJlcChgCiAgICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5NTAsMTEgKzE2ODIs
MTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAg
ICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTk3MywxMSAr
MTcwNSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0ZXN0cy5jaGFpbkNv
bnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRlc3RzLmNoYWluQ29u
c3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0Mj4oYik7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9n
cmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9u
KCkKQEAgLTIwMTUsNyArMTc0Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBiYXIoJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMzcpXSksIDM3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CiB9CiAKIHRlc3Rz
LmNoYWluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcgQEAgdGVzdHMuY2hh
aW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKCZ4KTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNDY1NyldKSwgNDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1
bmN0aW9uKCkKQEAgLTIwNjMsNyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxp
ZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7
CiAgICAgYnVmZmVyLnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4
dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQ
dHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVm
ZmVyLCAwKSldKSwgNzg0NTMpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0
aW9uKCkKQEAgLTIwODgsNyArMTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0RGV2aWNlID0gZnVu
Y3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBi
dWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxP
cmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZm
ZXIsIDApKV0pLCA3OTIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4s
ICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDAp
KV0pLCA3OTIwMSk7CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlv
bigpCkBAIC0yMTEzLDg5ICsxODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0cnVjdERldmljZSA9
IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAg
ICAgYnVmZmVyLnNldCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIo
YnVmZmVyLCAwKSldKSwgNzkyMDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90b2NvbEV4dGVuZHMg
PSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90
b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9
Ci0gICAgICAgIHByb3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJl
YWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9vPih0aHJlYWQgVCog
cCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHApOwotICAgICAgICB9Ci0gICAgICAgIHZv
aWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1enoo
cCk7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhy
ZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAg
ICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAg
ICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkK
LSAgICAgICAgewotICAgICAgICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGhpbmd5IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQz
ICsgOTEpOwotfQotCi10ZXN0cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5jdGlvbigpCi17Ci0g
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29s
IEJhciB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAg
ICAgICAgcHJvdG9jb2wgQmF6IDogRm9vLCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXoodGhy
ZWFkIEJheiopOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQq
IHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2
b2lkIGJ1eno8VDpCYXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIo
cCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJlYWQgVCogcCkKLSAg
ICAgICAgewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1enoocCk7Ci0gICAg
ICAgICAgICBiYXoocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCog
cCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAg
ICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9
ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFkIGludCogcCkKLSAg
ICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9Ci0gICAgICAgIGlu
dCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHh1enooJmEpOwotICAgICAg
ICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
NDIpXSksIDY0MiArIDc0MyArIDkxICsgMzkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIo
YnVmZmVyLCAwKSldKSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0
aW9uKCkKQEAgLTIyMDcsNyArMTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMu
cHJlZml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcgKzE4NjgsNyBAQCB0
ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biArK3g7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVu
Y3Rpb24oKQpAQCAtMjIzMCw3ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVz
dHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0MSw3ICsxODkxLDcg
QEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHgrKzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2
NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01pbnVz
ID0gZnVuY3Rpb24oKQpAQCAtMjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJlZml4TWludXNNaW51
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9
CiAKIHRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjY0LDcg
KzE5MTQsNyBAQCB0ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIC0teDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4
TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBAIHRlc3RzLnBvc3Rm
aXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQp
XSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigp
CkBAIC0yMjg3LDcgKzE5MzcsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51c1Jlc3VsdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LS07CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0KIAog
dGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0OSw3IEBAIHRlc3Rz
LnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5j
dGlvbigpCkBAIC0yMzEwLDcgKzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwg
Mzg1ICsgNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzMjIs
NyArMTk3Miw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4
NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy5taW51
c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3IEBAIHRlc3RzLm1p
bnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggLT0gNDI7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFscyA9
IGZ1bmN0aW9uKCkKQEAgLTIzNDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICog
NDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNTYs
NyArMjAwNiw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHggKj0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQog
CiB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcgKzIwMTgsNyBAQCB0
ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLmRpdmlk
ZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3IEBAIHRlc3RzLmRp
dmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC89IDQy
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIp
IHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKIH0KIAogdGVzdHMu
dHdvSW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAsNyBAQCB0ZXN0cy50
d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0MiA9PSA0MjsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLnVuaWZ5
RGlmZmVyZW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIxMjksNyBAQCB0ZXN0
cy5idWlsZEFycmF5VGhlblN1bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAq
IDUgKyA0MiAqIDQxIC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0Fy
cmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcgQEAgdGVzdHMuYnVp
bGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYmFyKEBhcnJheSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICogNSAr
IDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5vdmVycmlk
ZVN1YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3Niw3IEBAIHRlc3Rz
Lm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGZvb1swXSArIGZvb1sxXSAqIDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5ICog
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDQ5OCArIDE5ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5k
RG9TdG9yZXMgPSBmdW5jdGlvbigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0ZXN0cy5vdmVycmlk
ZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIGZvby54ICsgZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4
ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJz
ID0gZnVuY3Rpb24oKQpAQCAtMjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3Jp
cHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBi
YXIoJmZvbyk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwog
fQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzSW5jb3JyZWN0
bHkgPSBmdW5jdGlvbigpCkBAIC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZG
cm9tTG9jYWwgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Q
b2ludGVyID0gZnVuY3Rpb24oKQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVzdHMubWFrZUFycmF5
UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmF6KCZ4KTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJl
ZkZyb21BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3IEBAIHRlc3RzLnNp
bXBsZUxlbmd0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQGFycmF5KS5sZW5n
dGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9u
QXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0yNjk0LDcgKzIzNDQs
NyBAQCB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3
NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgPSBmdW5j
dGlvbigpCkBAIC0yNzkzLDcgKzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0ZXIgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc4
MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA3ODA0KTsKIH0KIAogdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtMjgx
OCw3ICsyNDY4LDcgQEAgdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIGZvby54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7CiB9
CiAKIHRlc3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0yOTAzLDM1NCArMjU1
MywxMDMgQEAgdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBmb28uc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdLCBbXSksIDEgKyAy
ICsgMyArIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtdKSwgNTMgKyA5MzIp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0
ZXIiLCBbXSwgW10pLCAxICsgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSArIDIgKyAzICogNSAr
IDQpOwotfQotCi10ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Qml0bWFza2FibGUg
OiBFcXVhdGFibGUgewotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvciYoTXlCaXRt
YXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJh
dG9yfChNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFz
a2FibGUgb3BlcmF0b3J+KE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJs
ZSBvcGVyYXRvcjw8KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgTXlCaXRtYXNr
YWJsZSBvcGVyYXRvcj4+KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgb3BlcmF0
b3IgTXlCaXRtYXNrYWJsZShpbnQpOwotICAgICAgICB9Ci0gICAgICAgIFQgbWFza0ZvckJpdElu
ZGV4PFQ6TXlCaXRtYXNrYWJsZT4odWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIFQoMSkgPDwgaW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCBvcGVyYXRvcltd
PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGJvb2wodmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpKTsKLSAg
ICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwg
dWludCBpbmRleCwgYm9vbCBiaXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFQgbWFzayA9IG1h
c2tGb3JCaXRJbmRleDxUPihpbmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0KQotICAgICAgICAg
ICAgICAgIHZhbHVlIHw9IG1hc2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAg
dmFsdWUgJj0gfm1hc2s7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLSAg
ICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gMzI7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgodWludCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAgIGlu
dCB0ZXN0SW50U2V0Qml0MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAg
ICAgICAgICBmb29bM10gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAg
fQotICAgICAgICBib29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAgewotICAgICAgICAg
ICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1
cm4gZm9vWzVdOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdldEJpdDEoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0dXJuIGZvb1sxXTsK
LSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAg
ICAgIGlmIChmb29baV0pCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQg
dGVzdFVpbnRTd2FwQml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0MjsK
LSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGggLyAyOyArK2kpIHsK
LSAgICAgICAgICAgICAgICBib29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAgICAgICAgICBmb29b
aV0gPSBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAgICBmb29bZm9vLmxl
bmd0aCAtIGkgLSAxXSA9IHRtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBm
b287Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB1aW50IGY7
Ci0gICAgICAgICAgICB1aW50IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgRm9vKHVp
bnQgZiwgdWludCBnKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAg
ICAgICAgcmVzdWx0LmYgPSBmOwotICAgICAgICAgICAgcmVzdWx0LmcgPSBnOwotICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuaChGb28g
Zm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaW50KChmb28uZiAmIDB4ZmZmZikg
fCAoKGZvby5nICYgMHhmZmZmKSA8PCAxNikpOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVy
YXRvci5oPShGb28gZm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5m
ICY9IH4weGZmZmZ1OwotICAgICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1ZSkgJiAweGZmZmY7
Ci0gICAgICAgICAgICBmb28uZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5nIHw9ICh1
aW50KHZhbHVlKSA+PiAxNikgJiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAg
ICAgICB9Ci0gICAgICAgIGludCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0gICAgICAgICAgICBm
b28uZyA9IDM3OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmgubGVuZ3Ro
OyArK2kpCi0gICAgICAgICAgICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBpbnQoZm9vLmYgKyBmb28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7
Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICB9Ci0gICAg
ICAgIEZvbyBvcGVyYXRvci5jKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBGb28odWludChiYXIuYS5oKSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAgIH0KLSAgICAgICAg
QmFyIG9wZXJhdG9yLmM9KEJhciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGJhci5hLmggPSBpbnQoZm9vLmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9IGludChmb28uZyk7
Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0Q3Jh
enlMVmFsdWVFbXVsYXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXIgYmFyOwotICAg
ICAgICAgICAgYmFyLmEuZiA9IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0gMjsKLSAgICAgICAg
ICAgIGJhci5iLmYgPSAzOwotICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0gICAgICAgICAgICBm
b3IgKHVpbnQgaSA9IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAgICAg
ICAgIGJhci5jLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoYmFyLmEuZiAr
IGJhci5hLmcgKyBiYXIuYi5mICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRTZXRCaXQzIiwg
W10sIFtdKSwgOCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEludFNldEdldEJpdDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIsIFtdLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RV
aW50U3VtQml0cyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0MDkyODYxNDQpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVt
dWxhdGlvbiIsIFtdLCBbXSksIDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCA0MzY5
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3Vw
ZXJCYXNpYyIsIFtdKSwgMSArIDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSksIDkzMik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtd
KSwgNTMgKyA5MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFpHZXR0ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSksIDEgKyAyICsgMyAq
IDUgKyA0KTsKIH0KIAogdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uU2ltcGxl
ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgc3Ry
dWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAg
aW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJh
dG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAg
ICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsK
LSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgc3VtKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQg
PSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQotICAgICAg
ICAgICAgICAgIHJlc3VsdCArPSBmb29baV07Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vWzZdIGFycmF5
OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0g
ICAgICAgIEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJh
ciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVy
biBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXIgYmFyKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmFy
Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXog
ewotICAgICAgICAgICAgQmFyWzVdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVy
YXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBiYXouYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJheiBvcGVyYXRvcltdPShC
YXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJh
ei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXo7Ci0gICAgICAg
IH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50
IHN1bShCYXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAg
ICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAg
ICByZXN1bHQgKz0gc3VtKGJheltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKLSAgICAgICAg
ewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewotICAgICAg
ICAgICAgICAgIGZvciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewotICAgICAg
ICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0g
ICAgICAgICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaW50
IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6Owot
ICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgcmV0dXJuIHN1bShiYXop
OwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3Vt
KCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAgIHNldFZhbHVl
cygmYmF6KTsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewot
ICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewotICAg
ICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5ndGg7IGstLTspCi0g
ICAgICAgICAgICAgICAgICAgICAgICBiYXpbaV1bal1ba10gKj0gaW50KGspOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVl
c0FuZFN1bSIsIFtdLCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFs
dWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBUWzddIGFycmF5Owor
ICAgICAgICAgICAgaW50WzddIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3Jb
XTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4KQorICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28g
Zm9vLCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5
W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXT08VD4oRm9vPFQ+
IGZvbywgdWludCBpbmRleCwgVCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBm
b28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgZm9vLmFy
cmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGZvbzsKICAgICAgICAgfQot
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQorICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
Zm9vLmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUg
ewotICAgICAgICAgICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7
Ci0gICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxUPiBmb28pCisgICAg
ICAgIGludCBzdW0oRm9vIGZvbykKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7Cisg
ICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gZm9v
Lmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyPFQ+IHsK
LSAgICAgICAgICAgIEZvbzxUPls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJhciB7CisgICAg
ICAgICAgICBGb29bNl0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGg8VD4oQmFyPFQ+IGJhcikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmFyIGJh
cikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5sZW5ndGg7CiAgICAg
ICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJhciwgdWludCBpbmRl
eCkKKyAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRleCkKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAgICAg
ICAgQmFyPFQ+IG9wZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgsIEZvbzxUPiB2
YWx1ZSkKKyAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZvbyB2
YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVlOwog
ICAgICAgICAgICAgcmV0dXJuIGJhcjsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRk
YWJsZT4oQmFyPFQ+IGJhcikKKyAgICAgICAgaW50IHN1bShCYXIgYmFyKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJl
c3VsdCArPSBzdW0oYmFyW2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
IH0KLSAgICAgICAgc3RydWN0IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8VD5bNV0gYXJyYXk7
CisgICAgICAgIHN0cnVjdCBCYXogeworICAgICAgICAgICAgQmFyWzVdIGFycmF5OwogICAgICAg
ICB9Ci0gICAgICAgIEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXosIHVpbnQgaW5kZXgp
CisgICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAg
IEJhejxUPiBvcGVyYXRvcltdPTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4LCBCYXI8VD4gdmFs
dWUpCisgICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFs
dWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAg
ICAgICAgICAgIHJldHVybiBiYXo7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5s
ZW5ndGg8VD4oQmF6PFQ+IGJheikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJh
eikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7CiAgICAg
ICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXopCisgICAgICAgIGlu
dCBzdW0oQmF6IGJheikKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAg
ICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0
aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7CiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIE15Q29udmVy
dGlibGVGcm9tVWludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZlcnRpYmxlRnJvbVVp
bnQodWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFsdWFibGUgOiBNeUFk
ZGFibGUsIE15Q29udmVydGlibGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXM8
VDpTZXRWYWx1YWJsZT4odGhyZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2b2lkIHNldFZhbHVl
cyh0aHJlYWQgQmF6KiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAodWludCBpID0g
YmF6LT5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6
KVtpXS5sZW5ndGg7IGotLTspIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAo
KmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXop
W2ldW2pdW2tdID0gVChpICsgaiArIGspOworICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXop
W2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKICAgICAg
ICAgewotICAgICAgICAgICAgQmF6PGludD4gYmF6OworICAgICAgICAgICAgQmF6IGJhejsKICAg
ICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsK
ICAgICAgICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBi
YXo7CiAgICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICBmb3IgKHVpbnQg
aSA9IGJhei5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGJh
eltpXS5sZW5ndGg7IGotLTspIHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRlc3RzLm5lc3RlZFN1
YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAx
NTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RT
ZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBb
XSksIDE1NzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7CiB9CiAKIHRlc3Rz
LmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEwIEBAIHRlc3RzLmJv
b2xCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1h
a2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRPciA9
IGZ1bmN0aW9uKCkKQEAgLTMyODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9vbEJpdE9yID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVl
KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0z
MzAxLDEwICsyNzAwLDEwIEBAIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0s
IGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHBy
b2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2Up
OwogfQogCiB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMxNSw4ICsyNzE0LDgg
QEAgdGVzdHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSld
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW50
Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0ZXN0cy5pbnRCaXRB
bmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChw
cm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03
KV0pLCAtNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7
CiB9CiAKIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwxMCArMjc0MCwxMCBA
QCB0ZXN0cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0s
IDcpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0Mild
KSwgNjU1MzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwg
LTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTcz
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
LTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUlu
dChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5j
dGlvbigpCkBAIC0zMzU1LDEwICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhvciA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0s
IDQyKV0pLCA2NTQ5Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsK
IH0KIAogdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwxMCArMjc2OCwxMCBA
QCB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNjU1MzUpXSksIC02NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDApXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0yKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KV0pLCAtNjU1MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgLTEpOwogfQogCiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzgz
LDEwICsyNzgyLDEwIEBAIHRlc3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1h
a2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChw
cm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0p
LCAxMjgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIx
NDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5pbnRS
U2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRlc3RzLmludFJTaGlm
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAw
KTsKIH0KIAogdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0MTEsMTAgKzI4MTAs
MTAgQEAgdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBh
ICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50
KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChw
cm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9n
cmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIp
XSksIDQyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5
NDk2NzI4OSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwg
MCk7CiB9CiAKIHRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0MjUsMTAgKzI4MjQs
MTAgQEAgdGVzdHMudWludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEg
fCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHBy
b2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHBy
b2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAt
NyldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAt
MzQzOSwxMCArMjgzOCwxMCBAQCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAt
MSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9n
cmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTcz
MildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzQ1
MywxMCArMjg1MiwxMCBAQCB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKV0p
LCA0Mjk0OTY3Mjk0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYwKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQy
OTQ5NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNjU1MzUpXSksIDQyOTQ5MDE3NjApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50TFNoaWZ0ID0gZnVu
Y3Rpb24oKQpAQCAtMzQ2NywxMCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAt
MSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRSU2hpZnQgPSBm
dW5jdGlvbigpCkBAIC0zNDgxLDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0QW5kID0gZnVuY3Rp
b24oKQpAQCAtMzQ5NSwxMCArMjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKLSAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0s
IDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJp
dE9yID0gZnVuY3Rpb24oKQpAQCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0cy51aW50OEJpdE9y
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNyk7
Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAy
NTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwg
MjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMild
KSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOwor
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9
CiAKIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywxMCArMjkyMiwxMCBA
QCB0ZXN0cy51aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4g
YjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4
KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
OChwcm9ncmFtLCA0MildKSwgMjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4
KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJv
Z3JhbSwgNDIpXSksIDIxMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3Jh
bSwgLTcpXSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3
MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzUz
NywxMCArMjkzNiwxMCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAx
KV0pLCAyNTQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KV0pLCAwKTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsK
IH0KIAogdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUxLDEwICsyOTUwLDEw
IEBAIHRlc3RzLnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEg
PDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAyNTIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpXSksIDI1Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCAyMjQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsK
IH0KIAogdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1LDEwICsyOTY0LDEw
IEBAIHRlc3RzLnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEg
Pj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgMildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMild
KSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1
NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQog
CiB0ZXN0cy5mbG9hdE1hdGggPSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICszMDIzLDE3IEBAIHRl
c3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmbG9hdCh4KTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCA3LjUpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW10sIFtd
KSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcuNSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgNy41KTsKKyAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdKSwg
Ny41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTAiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEyIiwgW10pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAg
ICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKQEAgLTM3MjksNyAr
MzEyOCw3IEBAIHRlc3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geC5yZWFsICsgeC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7
CiB9CiAKIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2OCwxNCArMzE2Nywx
NCBAQCB0ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZSB8fCBmYWxzZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIs
IFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbXSwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3Rz
LmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2LDEwICszMjE1LDEw
IEBAIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgIH0K
ICAgICBgKTsKIAotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YW5kVHJ1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYW5kRmFsc2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdLCBbXSksIDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIs
IFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJh
bmRGYWxzZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJvclRydWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3RzLnR5cGVkZWZBcnJh
eSA9IGZ1bmN0aW9uKCkKQEAgLTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5cGVkZWZBcnJheSA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZbMF07CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlwZXMgPSBmdW5jdGlv
bigpCkBAIC00MDg0LDI0ICszNDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0b3JzID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W10sIFtdKSwgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCBmYWxzZSk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdTMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTYiLCBb
XSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb2YiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10pLCAzKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSwgW10p
LCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29m
NSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2Y2IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1KTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdTIiLCBbXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10pLCBm
YWxzZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b2YiLCBbXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb29mMiIsIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvb2YzIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdKSwgZmFsc2Up
OwogfQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAt
NDEyMSw3ICszNTIwLDcgQEAgdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
NDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA0Myk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9
IGZ1bmN0aW9uKCkKQEAgLTQxMzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0
SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUVudW0g
PSBmdW5jdGlvbigpCkBAIC00MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNpbXBsZUVudW0gPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKGludERlYXRoKCkpOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBs
ZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtd
LCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtd
LCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSksIDApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10s
IFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBb
XSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFt
aW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
TGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtd
LCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSks
IDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIs
IFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhl
ckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUi
LCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50UGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAx
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVu
Y2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwg
MCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFt
aW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIs
IFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQpA
QCAtNDMxNywxMCArMzcxNiwxMCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwg
W10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZmFtaW5lIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIC00Mik7CisgICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwg
W10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlIiwgW10pLCAyMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVudW1XaXRob3V0WmVy
byA9IGZ1bmN0aW9uKCkKQEAgLTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMuZW51bVdpdGhTb21l
TWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDAp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwg
W10sIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZmFtaW5lIiwgW10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEpOwogfQogCiB0ZXN0
cy5lbnVtQ29uc3RleHByR2VuZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpAQCAtNDM5MSw4ICsz
NzkwLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgaW50IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsgfQogICAgICAgICBp
bnQgdGVzdFkoKSB7IHJldHVybiBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSwg
W10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1
Y3QgPSBmdW5jdGlvbigpCkBAIC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHBy
R2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28oZik7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0
ZXN0cy50cmFwID0gZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBAQCB0ZXN0cy50cmFw
ID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJv
Z3JhbSwgMSldKSwgNCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKKyAgICAgICAg
KCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAgICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLAor
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksCiAgICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcwLDkgKzM4NjksOSBA
QCB0ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHF1aXguejsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgNCk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
XSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10pLCA0KTsKIH0KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5j
dGlvbigpCkBAIC00NTk3LDMyICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRC
YXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1
YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1
YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIs
IFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1
ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBb
XSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVh
dGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2Fy
ZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBb
XSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwg
W10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBb
XSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
RmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSks
IDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIs
IFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMi
LCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNr
d2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24o
KQpAQCAtNDc0NywzMiArNDE0NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1
YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVl
IiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJh
bCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBb
XSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5l
QmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhCYWNr
d2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVh
bCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5v
dEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dWludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdKSwgMyk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUi
LCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJh
bCIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
TGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3Rp
bGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3Rz
LmVudW1GbG9hdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcsNyBAQCB0ZXN0cy5l
bXB0eVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0NjsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgNDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1Y3RCYXNlID0gZnVu
Y3Rpb24oKQpAQCAtNDg1Nyw5ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dpdGNoID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkp
XSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5leGhhdXN0aXZl
VWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBAQCB0ZXN0cy5leGhh
dXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7
ICsraSkKLSAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKIH0KIAogdGVzdHMubm90UXVpdGVFeGhhdXN0aXZl
VWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBAQCB0ZXN0cy5ub3RR
dWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgIHRl
eHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBp
ICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3Rz
LnN3aXRjaEZhbGxUaHJvdWdoID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0MzEyLDkgQEAgdGVz
dHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2
MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA2OSldKSwgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0K
IAogdGVzdHMuc3dpdGNoQnJlYWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkgKzQzMzcsOSBAQCB0
ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNzY3KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBm
dW5jdGlvbigpCkBAIC00OTY2LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhh
dXN0aXZlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVt
KHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dy
YW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5
KTsKIH0KIAogdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlID0gZnVuY3Rp
b24oKQpAQCAtNTAyMSw5ICs0NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVF
eGhhdXN0aXZlV2l0aERlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSks
IDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAy
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZv
byIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVTdHJ1Y3QgPSBmdW5j
dGlvbigpCkBAIC01MDcyLDcgKzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVj
dFdpdGhQb2ludGVyc0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkgPT4gY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpLAogICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5OCw3ICs0NDk3LDcg
QEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCAtNTExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxpbmtlZExpc3QgPSBm
dW5jdGlvbigpCkBAIC01MTE5LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9pbnRlciA9IGZ1bmN0
aW9uKCkKQEAgLTUxNDIsNyArNDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5hcnJheVJlZlRvQXJy
YXlSZWYgPSBmdW5jdGlvbigpCkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0cy5hcnJheVJlZlRv
QXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0
cy5wb2ludGVyR2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0NSw2IEBAIHRlc3Rz
LnNldHRlcldpdGhNYXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKIH0KIAotdGVzdHMu
b3BlcmF0b3JXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBG
b28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
Rm9vIG9wZXJhdG9yKzxUPihGb28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsK
LSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBg
KSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9w
ZXJhdG9yV2l0aG91dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAg
ICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9vIGIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQu
eCA9IGEueCArIGIueDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAg
ICAgYS54ID0gNjQ1OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAgICBiLnggPSAtMzU7
Ci0gICAgICAgICAgICByZXR1cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA2
NDUgLSAzNSk7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVycmFibGVUeXBlVmFy
aWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50IHgpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1
bHQueCA9IHg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQot
Ci10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRGcm9tUmV0dXJuVHlw
ZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0
cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9j
b2wgQmFyYWJsZSB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyYWJsZSosIGludCk7
Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiByZXN1bHQsIGludCB2
YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0KHZhbHVlKTsKLSAg
ICAgICAgfQotICAgICAgICBvcGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZvbykKLSAgICAgICAg
ewotICAgICAgICAgICAgVCByZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJlc3VsdCwgZm9vLngp
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9v
KCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby54ID0g
NzU7Ci0gICAgICAgICAgICBmbG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAgICAgICAgIHJldHVy
biBpbnQoeCAqIDEuNSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7Ci19Ci0KIHRlc3Rz
LmluY1dyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApA
QCAtNTgyMyw3ICs1MTM0LDcgQEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHguZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAx
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDEzKTsKIH0KIAogdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1
bmN0aW9uKCkKQEAgLTU4OTcsNyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0aEFycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0dGVyID0gZnVuY3Rp
b24oKQpAQCAtNjA4Myw3ICs1Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5nV3Jv
bmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geFs2NjZdOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJl
ck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcgQEAgdGVzdHMuaW5k
ZXhBbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQHgp
W2Zsb2F0KC0xKV07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0
cy5kZXZpY2VQdHJQdHIgPSBmdW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUxOCw2IEBAIHRlc3Rz
LmNvbnN0YW50UHRyUHRyID0gZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXBy
aW1pdGl2ZSB0eXBlOiBpbnQzMiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0gLTEpOwogfQogCi10
ZXN0cy5wb2ludGVySW5kZXhHZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGZv
ciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oJHthZGRyZXNzU3BhY2V9
IEZvbyosIHVpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHJ1Y3Qg
QmFyIHsgfQotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1
cm4gNDI7IH0KLSAgICAgICAgICAgIGApLAotICAgICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgZ2V0dGVyIGZvciBw
b2ludGVyIHR5cGUiKSAhPSAtMSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJJ
blByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
ZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgRm9v
IG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsg
cmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQp
IHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZl
IGEgbWF0Y2hpbmcgZ2V0dGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RMb25lSW5kZXhTZXR0
ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHByb3Rv
Y29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAg
ICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAgICAg
ICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0
dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1
cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hl
ZFR5cGVJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgZmxvYXQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgICAgIEZvbyBvcGVy
YXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVy
biA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJl
dHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3Jl
ZSBvbiB2YWx1ZSB0eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yV3JvbmdB
cmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
c3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyBy
ZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9v
KSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7
IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0
ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10o
Rm9vLCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsg
fQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQot
ICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1l
c3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwot
fQotCi10ZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9j
b2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXT0oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAg
ICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAg
ICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVz
c2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25l
ZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBk
b1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQg
b3BlcmF0b3JbXT0oRm9vKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJh
cigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
ICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAh
PSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBj
aGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBG
b28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28sIGludCwgaW50LCBpbnQp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAg
IGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJh
ciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAg
YCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmlu
ZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVz
dHMubG9uZUluZGV4U2V0dGVyUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltdPSh0aHJlYWQgRm9v
KiBwdHIsIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBC
YXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVyIHR5
cGUiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRJ
blByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
ZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50
IG9wZXJhdG9yW10oaW50LCBGb28pOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShG
b28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsg
fQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQot
ICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIo
KTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkIG9wZXJhdG9y
W109IHdpdGggYXJndW1lbnRzIEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4
U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17
Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBv
cGVyYXRvcltdKEZvbywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1
aW50LCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGlu
dCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJh
dG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10
ZXN0cy5pbmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsK
LSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiB4WzQyXTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAg
ICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4g
JnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGJhcihCYXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwot
fQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHNJblByb3RvY29s
ID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCog
b3BlcmF0b3ImW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9
Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0g
ICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2Yo
IlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVy
ZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCBGb28qIGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJh
ciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEy
MzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltd
IikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAg
ICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0
b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZb
XSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQg
cmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ig
JiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBmb3Ig
b3BlcmF0b3ImW10iKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRSZXR1cm5Q
b2ludGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAg
ICAgIGludCBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9w
ZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0Owot
ICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2YgYW5kZXIgaXMgbm90
IGEgcG9pbnRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRvZXNudFRha2VSZWZl
cmVuY2VJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3Bl
cmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5kZXIgaXMgbm90IGEg
cmVmZXJlbmNlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmSW5Q
cm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0
aHJlYWQgRm9vW10gYXJyYXksIGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBpbnQg
YmFyPFQ6Rm9vPih0aHJlYWQgVFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4
WzEuNV07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhyZWFk
IGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIHg7
Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTIz
NCk7Ci19Ci0KIHRlc3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAgICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAgdGVzdHMuYW5kUmV0
dXJuZWRBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAqcHRyOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAzNTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4NzkxODk1M2E1YjFkNWUz
NWU4NTBlMzMwZjM4OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNiZGE4MWZjY2NjMWVm
YjQ0YzZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTI1LDcgKzI1
LDYgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewotICAgIGdl
dCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtpbmQoKSB7IHJldHVy
biBUeXBlOyB9CiAgICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNB
cnJheSgpIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBjbGFzcyBUeXBlIGV4
dGVuZHMgTm9kZSB7CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0
IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBpbmhlcml0cyhwcm90
b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4g
e3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNIZWlyKHRoaXMpOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0dXJuIHRoaXMudmlz
aXQobmV3IEluc3RhbnRpYXRlSW1tZWRpYXRlcygpKTsgfQotICAgIAogICAgIC8vIEhhdmUgdG8g
Y2FsbCB0aGVzZSBvbiB0aGUgdW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQo
b3JpZ2luLCB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9UeXBlRGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURl
Zi5qcwppbmRleCA2YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFiMjdjMTQzLi5kN2Iw
MGNkMmM3M2ViM2E1YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAogInVzZSBzdHJpY3Qi
OwogCiBjbGFzcyBUeXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2lu
LCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5h
bWUsIHR5cGUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4g
PSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBl
UGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsK
ICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQog
ICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1l
dGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHR5cGUoKSB7
IHJldHVybiB0aGlzLl90eXBlOyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0
ZXJzICsgIj4gPSAiICsgdGhpcy50eXBlOworICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRo
aXMubmFtZSArICIgPSAiICsgdGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4IGE4MWVhYjQyZDk0
OGZjYTNlOTMwYzY4NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1OTFkZmYyMmQwYTY1
YTM1NDliOGNjZTAxZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWZSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlRGVmUmVzb2x2ZXIuanMKQEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAg
ICAgdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3Ig
KGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAg
IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgaW5z
dGFuY2VvZiBUeXBlRGVmKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4
dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzKTsKLSAg
ICAgICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBub2RlLnR5cGUu
dHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImFyZ3VtZW50L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQg
ZWFybGllcikiKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUudHlw
ZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlQXJn
dW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBlLnR5cGVQYXJhbWV0
ZXJzW2ldKTsKLSAgICAgICAgICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5pZmlj
YXRpb25Db250ZXh0LnZlcmlmeSgpOwotICAgICAgICAgICAgICAgIGlmICghdmVyaWZpY2F0aW9u
UmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8gYSB0eXBlIGRlZmlu
aXRpb24gdmlvbGF0ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJpZmljYXRpb25SZXN1
bHQucmVhc29uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBsZXQgbmV3VHlw
ZSA9IG5vZGUudHlwZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5vZGUudHlwZS50eXBl
UGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBuZXdUeXBl
LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFuZEFyZ3VtZW50cyhu
ZXdUeXBlLCBbXSk7CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAg
ICAgICAgICAgICAgIG5vZGUuc2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwz
OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAgdmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENv
bnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZp
c2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxl
KG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9yaWdp
biwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQxZTU2ZDY5
M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYwOWIwNWIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUsNjkgKzI1
LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKLSAg
ICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5f
b3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAgdGhp
cy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVu
dHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAgICAgICBp
ZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykKKyAgICAg
ICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJuIHR5cGU7
CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBl
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgaW5zdGFu
dGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSkK
ICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlw
ZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVm
KHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVy
biB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0K
LSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0K
ICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBl
QXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5pZnlOb2Rl
OwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51bmlmeU5v
ZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0
KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAg
ICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNl
dCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZhbHVlIG9m
IGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBnZXQgc2l6
ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAg
ICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigi
Q2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVy
biB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkKICAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAg
IHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigi
Q2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1pdGl2ZTog
IiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwogICAgIH0K
ICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCisgICAg
c2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAgICAg
IHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJn
dW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBv
dGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5p
ZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlwZUFyZ3Vt
ZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90
aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksOSArOTIs
NyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBpZiAoIXRo
aXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKLSAgICAg
ICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRo
aXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3Vt
ZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3MmZhMGI3
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBlIHsKLSAg
ICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJuIHRo
aXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1pdGl2ZTsK
LSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAg
IAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbCkK
LSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0aGlzLnBy
b3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBl
IHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsKLSAgICAg
ICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0KLSAgICAK
LSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsK
LSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlm
eUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5
SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRo
aXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQot
ICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAg
ICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAg
ICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0IGJlIGEg
dHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAgICAvLyB0
aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBl
VmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJU
eXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIG5v
bi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIAot
ICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcy5w
cm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjog
IlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90IGJlIHBh
c3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyByZWFsVGhp
cy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmluaGVyaXRz
KHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAg
ICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5w
cm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMucHJvdG9j
b2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxUaGlzICsg
Iik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9Owot
ICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5m
aW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHModGhpcy5w
cm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVy
biB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRvZXMgbm90
IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiAr
IHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsK
LSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmlu
ZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9jb2wgPyAi
OiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4NTIzOTFm
ODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVUcmFja2Vy
IGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3Vw
ZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAKLSAgICBn
ZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVyKHRoaW5n
KQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgdGhp
cy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAgICAg
ICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAg
ICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbnNp
ZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBhMTNkZTQzZDUzMjZl
MTM1N2M4N2Y4ODU5ZDlkNjAxNWUwY2FkNDcuLmZlYzUzNTE0NTk2Mzg2MmM1YmUwNDJjOGRmYmU0
M2Y0OTVlNDJiODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Vu
aWZpY2F0aW9uQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9V
bmlmaWNhdGlvbkNvbnRleHQuanMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ugc3RyaWN0IjsKIAog
Y2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlUGFyYW1ldGVy
cykKKyAgICBjb25zdHJ1Y3RvcigpCiAgICAgewotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVy
cyA9IG5ldyBTZXQodHlwZVBhcmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9uZXh0TWFwID0gbmV3
IE1hcCgpOwogICAgICAgICB0aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgpOwogICAgIH0KQEAg
LTQ1LDEwICs0NCw2IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJsZSB0aGluZ3MgIiAr
IGEgKyAiIGFuZCAiICsgYik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIE1ha2Ug
c3VyZSB0aGF0IHR5cGUgcGFyYW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcgcm9vdHMuCi0gICAg
ICAgIGlmIChhLmlzVW5pZmlhYmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhpcy5fdHlwZVBhcmFt
ZXRlcnMuaGFzKGIpKQotICAgICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwotICAgICAgICAKICAg
ICAgICAgdGhpcy5fbmV4dE1hcC5zZXQoYSwgYik7CiAgICAgfQogICAgIApAQCAtODUsMTggKzgw
LDYgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgCi0gICAgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFy
YW1ldGVyczsgfQotICAgICp0eXBlQXJndW1lbnRzKCkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiB0aGlzLm5vZGVzKSB7Ci0gICAgICAgICAgICBpZiAoIXR5cGVBcmd1
bWVudC5pc1VuaWZpYWJsZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5oYXModHlwZUFyZ3VtZW50KSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHlpZWxkIHR5cGVBcmd1bWVudDsKLSAgICAgICAg
fQotICAgIH0KLSAgICAKICAgICB2ZXJpZnkoKQogICAgIHsKICAgICAgICAgLy8gV2UgZG8gYSB0
d28tcGhhc2UgcHJlLXZlcmlmaWNhdGlvbi4gVGhpcyBnaXZlcyBsaXRlcmFscyBhIGNoYW5jZSB0
byBzZWxlY3QgYSBtb3JlIHNwZWNpZmljIHR5cGUuCkBAIC0xMTEsNDAgKzk0LDcgQEAgY2xhc3Mg
VW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKICAg
ICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7Ci0gICAg
ICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZVBhcmFtZXRlci52ZXJpZnlBc1BhcmFtZXRlcih0aGlz
KTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGxldCBudW1UeXBlVmFyaWFibGVBcmd1bWVu
dHMgPSAwOwotICAgICAgICBsZXQgYXJndW1lbnRTZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAgIGZv
ciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkgewotICAgICAgICAg
ICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudC52ZXJpZnlBc0FyZ3VtZW50KHRoaXMpOwotICAg
ICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50LmlzTGl0ZXJhbCkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGFyZ3VtZW50U2V0LmFkZCh0aGlzLmZpbmQodHlw
ZUFyZ3VtZW50KSk7Ci0gICAgICAgICAgICBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMrKzsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoYXJndW1lbnRTZXQuc2l6ZSA9PSBudW1UeXBlVmFyaWFibGVB
cmd1bWVudHMpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJl
dHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZXMgdXNlZCBhcyBhcmd1
bWVudHMgZ290IHVuaWZpZWQgd2l0aCBlYWNoIG90aGVyIn07Ci0gICAgfQotICAgIAotICAgIGdl
dCBjb252ZXJzaW9uQ29zdCgpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gMDsKLSAgICAg
ICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRoaXMudHlwZUFyZ3VtZW50cygpKQotICAgICAg
ICAgICAgcmVzdWx0ICs9IHR5cGVBcmd1bWVudC5jb252ZXJzaW9uQ29zdCh0aGlzKTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgY29tbWl0KCkKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkKLSAgICAg
ICAgICAgIHR5cGVBcmd1bWVudC5jb21taXRVbmlmaWNhdGlvbih0aGlzKTsKKyAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IHRydWV9OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBkZWY1
MzM2ZC4uZDdkMGQ4M2ZhMGNjZmNkNGExY2M0NjgyNzg1NjRkYzBmNDY1YTNmZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAgY2xh
c3MgVmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnJl
dHVyblR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Yg
bm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhp
cyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAg
ICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJv
dG9jb2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7
Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAg
ICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAgY2xhc3MgVmlzaXRv
ciB7CiAgICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNp
dE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMo
bm9kZSk7Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YShub2RlLmlt
cGxlbWVudGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QmxvY2sobm9k
ZSkKICAgICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMp
CkBAIC03OSwxOCArNjYsNiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgICAgIGV4cHJlc3Np
b24udmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkK
LSAgICB7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewot
ICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBw
cm90b2NvbC52aXNpdCh0aGlzKTsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUu
c2lnbmF0dXJlcykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBmb3IgKGxldCB0eXBl
QXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQpAQCAtOTksNDIgKzc0LDIxIEBAIGNsYXNz
IFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsKLSAgICAg
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAg
ICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRO
YXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50
cykKICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAg
ICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1l
dGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZp
c2l0KHRoaXMpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAog
ICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBh
cmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRl
ci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCiAg
ICAgICAgICAgICBmaWVsZC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBl
VmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwg
dGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2Rl
KQotICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKICAg
ICB2aXNpdEZpZWxkKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7
CkBAIC0zNDAsMTQgKzI5NCw2IEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAgICAgICAgdHlwZUFy
Z3VtZW50LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBub2RlLmFy
Z3VtZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUudmlzaXQoYXJndW1lbnQsIHRoaXMpOwotICAg
ICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewot
ICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgICAgICBm
b3IgKGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAg
ICAgICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAg
ICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAg
ICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3Vt
ZW50cyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMp
OwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmV0dXJuVHlwZSwgdGhpcyk7CiAgICAgICAgIE5v
ZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1dTTC5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNiNjY1Njc4MjZhNTFkZDZj
NzU0ZDRlOWIyNGQ3NTc4OTcyYmIzZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQKKysrIC9k
ZXYvbnVsbApAQCAtMSw0NzkgKzAsMCBAQAotIyBXZWJHUFUgU2hhZGluZyBMYW5ndWFnZQotCi1X
ZWJHUFUgU2hhZGluZyBMYW5ndWFnZSwgb3IgV1NMIGZvciBzaG9ydCwgaXMgYSB0eXBlLXNhZmUg
bG93LW92ZXJoZWFkIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciBHUFVzIChncmFwaGljcyBwcm9j
ZXNzaW5nIHVuaXRzKS4gVGhpcyBkb2N1bWVudCBleHBsYWlucyBob3cgV1NMIHdvcmtzLgotCi0j
IEdvYWxzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBhY2hpZXZlIHRoZSBmb2xsb3dpbmcgZ29hbHM6
Ci0KLS0gV1NMIHNob3VsZCBmZWVsICpmYW1pbGlhciogdG8gQysrIHByb2dyYW1tZXJzLgotLSBX
U0wgc2hvdWxkIGJlIGhhdmUgYSAqc291bmQqIGFuZCAqZGVjaWRhYmxlKiB0eXBlIHN5c3RlbS4K
LS0gV1NMIHNob3VsZCBub3QgcGVybWl0ICpvdXQtb2YtYm91bmRzKiBtZW1vcnkgYWNjZXNzZXMu
Ci0tIFdTTCBzaG91bGQgYmUgaGF2ZSAqbG93IG92ZXJoZWFkKi4KLQotVGhlIGNvbWJpbmF0aW9u
IG9mIGEgc291bmQgdHlwZSBzeXN0ZW0gYW5kIGJvdW5kcyBjaGVja2luZyBtYWtlcyBXU0wgYSBz
ZWN1cmUgc2hhZGVyIGxhbmd1YWdlOiB0aGUgbGFuZ3VhZ2UgaXRzZWxmIGlzIHJlc3BvbnNpYmxl
IGZvciBpc29sYXRpbmcgdGhlIHNoYWRlciBmcm9tIHRoZSByZXN0IG9mIHRoZSBHUFUuCi0KLSMg
RmFtaWxpYXIgU3ludGF4Ci0KLVdTTCBpcyBiYXNlZCBvbiBDIHN5bnRheCwgYnV0IGV4Y2x1ZGVz
IGZlYXR1cmVzIHRoYXQgYXJlIGVpdGhlciB1bm5lY2Vzc2FyeSwgaW5zZWN1cmUsIG9yIHJlcGxh
Y2VkIGJ5IG90aGVyIFdTTCBmZWF0dXJlczoKLQotLSBObyBzdHJpbmdzLgotLSBObyBgcmVnaXN0
ZXJgLCBgdm9sYXRpbGVgLCBgY29uc3RgLCBgcmVzdHJpY3RgLCBvciBgZXh0ZXJuYCBrZXl3b3Jk
cy4KLS0gTm8gdW5pb25zLiBgdW5pb25gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGdvdG8gb3Ig
bGFiZWxzLiBgZ290b2AgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gYCpgIHBvaW50ZXJzLgotLSBF
ZmZlY3RsZXNzIGV4cHJlc3Npb25zIGFyZSBub3Qgc3RhdGVtZW50cyAoYGEgKyBiO2AgaXMgYSBw
YXJzZSBlcnJvcikuCi0tIE5vIHVuZGVmaW5lZCB2YWx1ZXMgKGBpbnQgeDtgIGluaXRpYWxpemVz
IHggdG8gMCkuCi0tIE5vIGF1dG9tYXRpYyB0eXBlIGNvbnZlcnNpb25zIChgaW50IHg7IHVpbnQg
eSA9IHg7YCBpcyBhIHR5cGUgZXJyb3IpLgotLSBObyByZWN1cnNpb24uCi0tIE5vIGR5bmFtaWMg
bWVtb3J5IGFsbG9jYXRpb24uCi0tIE5vIG1vZHVsYXJpdHkuIFRoZSB3aG9sZSBwcm9ncmFtIGlz
IG9uZSBmaWxlLgotCi1PbiB0b3Agb2YgdGhpcyBiYXJlIEMtbGlrZSBmb3VuZGF0aW9uLCBXU0wg
YWRkcyBzZWN1cmUgdmVyc2lvbnMgb2YgZmFtaWxpYXIgQysrIGZlYXR1cmVzOgotCi0tIFR5cGUt
c2FmZSBwb2ludGVycyAoYF5gKSBhbmQgYXJyYXkgcmVmZXJlbmNlcyAoYFtdYCkuCi0tIEdlbmVy
aWNzIHRvIHJlcGxhY2UgdGVtcGxhdGVzLgotLSBPcGVyYXRvciBvdmVybG9hZGluZy4gQnVpbHQt
aW4gb3BlcmF0aW9ucyBsaWtlIGBpbnQgb3BlcmF0b3IrKGludCwgaW50KWAgYXJlIGp1c3QgbmF0
aXZlIGZ1bmN0aW9ucy4KLS0gQ2FzdCBvdmVybG9hZGluZy4gQnVpbHQtaW4gY2FzdHMgbGlrZSBg
b3BlcmF0b3IgaW50KGRvdWJsZSlgIGFyZSBqdXN0IG5hdGl2ZSBmdW5jdGlvbnMuCi0tIEdldHRl
cnMgYW5kIHNldHRlcnMuIFByb3BlcnR5IGFjY2Vzc2VzIGxpa2UgYHZlYy54YCByZXNvbHZlIHRv
IG92ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvci5maWVsZChmbG9hdDQpYC4KLS0gQXJyYXkg
YWNjZXNzIG92ZXJsb2FkaW5nLiBBcnJheSBhY2Nlc3NlcyBsaWtlIGB2ZWNbMF1gIHJlc29sdmUg
dG8gdmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3JbXShmbG9hdDQsIHVpbnQpYC4KLQotSW4g
dGhlIGZvbGxvd2luZyBzZWN0aW9ucywgV1NMIGlzIHNob3duIGJ5IGV4YW1wbGUgc3RhcnRpbmcg
d2l0aCBpdHMgQy1saWtlIGZvdW5kYXRpb24gYW5kIHRoZW4gYnVpbGRpbmcgdXAgdG8gaW5jbHVk
ZSBtb3JlIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMgbGlrZSBnZW5lcmljcy4KLQotIyMgQ29tbW9u
IHN1YnNldCBvZiBDIGFuZCBXU0wKLQotVGhlIGZvbGxvd2luZyBpcyBhIHZhbGlkIFdTTCBmdW5j
dGlvbiBkZWZpbml0aW9uOgotCi0gICAgaW50IGZvbyhpbnQgeCwgaW50IHksIGJvb2wgcCkKLSAg
ICB7Ci0gICAgICAgIGlmIChwKQotICAgICAgICAgICAgcmV0dXJuIHggLSB5OwotICAgICAgICBy
ZXR1cm4geCArIHk7Ci0gICAgfQotCi1XU0wgc291cmNlIGZpbGVzIGJlaGF2ZSBzaW1pbGFybHkg
dG8gQyBzb3VyY2UgZmlsZXM6Ci0KLS0gVG9wLWxldmVsIHN0YXRlbWVudHMgbXVzdCBiZSB0eXBl
IG9yIGZ1bmN0aW9uIGRlZmluaXRpb25zLgotLSBXU0wgdXNlcyBzdHJ1Y3R1cmVkIEMgY29udHJv
bCBmbG93IGNvbnN0cnVjdHMsIGxpa2UgYGlmYCwgYHdoaWxlYCwgYGZvcmAsIGBkb2AsIGBicmVh
a2AsIGFuZCBgY29udGludWVgLgotLSBXU0wgdXNlcyBDLWxpa2UgYHN3aXRjaGAgc3RhdGVtZW50
cywgYnV0IGRvZXMgbm90IGFsbG93IHRoZW0gdG8gb3ZlcmxhcCBvdGhlciBjb250cm9sIGZsb3cg
KGkuZS4gbm8gW0R1ZmYncyBkZXZpY2VdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0R1
ZmYlMjdzX2RldmljZSkpLgotLSBXU0wgYWxsb3dzIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBhbnl3
aGVyZSBDKysgd291bGQuCi0KLVdTTCB0eXBlcyBkaWZmZXIgZnJvbSBDIHR5cGVzLiBGb3IgZXhh
bXBsZSwgdGhpcyBpcyBhbiBhcnJheSBvZiA0MiBpbnRlZ2VycyBpbiBXU0w6Ci0KLSAgICBpbnRb
NDJdIGFycmF5OwotCi1UaGUgdHlwZSBuZXZlciBzdXJyb3VuZHMgdGhlIHZhcmlhYmxlLCBsaWtl
IGl0IHdvdWxkIGluIEMgKGBpbnQgYXJyYXlbNDJdYCkuCi0KLSMjIFR5cGUtc2FmZSBwb2ludGVy
cwotCi1XU0wgaW5jbHVkZXMgYSBzZWN1cmUgcG9pbnRlciB0eXBlLiBUbyBlbXBoYXNpemUgdGhh
dCBpdCBpcyBub3QgbGlrZSB0aGUgQyBwb2ludGVyLCBXU0wgdXNlcyBgXmAgZm9yIHRoZSBwb2lu
dGVyIHR5cGUgYW5kIGZvciBkZXJlZmVyZW5jZS4gTGlrZSBpbiBDLCBgJmAgaXMgdXNlZCB0byB0
YWtlIHRoZSBhZGRyZXNzIG9mIGEgdmFsdWUuICBCZWNhdXNlIEdQVXMgaGF2ZSBkaWZmZXJlbnQg
a2luZHMgb2YgbWVtb3JpZXMsIHBvaW50ZXJzIG11c3QgYmUgYW5ub3RhdGVkIHdpdGggYW4gYWRk
cmVzcyBzcGFjZSAob25lIG9mIGB0aHJlYWRgLCBgdGhyZWFkZ3JvdXBgLCBgZGV2aWNlYCwgb3Ig
YGNvbnN0YW50YCkuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBiYXIodGhyZWFkIGludF4gcCkK
LSAgICB7Ci0gICAgICAgIF5wICs9IDQyOwotICAgIH0KLSAgICBpbnQgZm9vKCkKLSAgICB7Ci0g
ICAgICAgIGludCB4ID0gMjQ7Ci0gICAgICAgIGJhcigmeCk7Ci0gICAgICAgIHJldHVybiB4OyAv
LyBSZXR1cm5zIDY2LgotICAgIH0KLQotUG9pbnRlcnMgY2FuIGJlIGBudWxsYC4gRWFjaCBwb2lu
dGVyIGFjY2VzcyBpcyBudWxsLWNoZWNrZWQsIHRob3VnaCBtb3N0IHBvaW50ZXIgYWNjZXNzZXMg
KGxpa2UgdGhpcyBvbmUpIHdpbGwgbm90IGhhdmUgYSBudWxsIGNoZWNrLiBXU0wgcGxhY2VzIGVu
b3VnaCBjb25zdHJhaW50cyBvbiB0aGUgcHJvZ3JhbW1lciB0aGF0IHByb2dyYW1zIGFyZSBlYXN5
IGZvciB0aGUgY29tcGlsZXIgdG8gYW5hbHl6ZS4gVGhlIGNvbXBpbGVyIHdpbGwgYWx3YXlzIGtu
b3cgdGhhdCBgXnAgKz0gNDJgIGFkZHMgYDQyYCB0byBgeGAgaW4gdGhpcyBjYXNlLgotCi1XU0wg
cG9pbnRlcnMgZG8gbm90IHN1cHBvcnQgY2FzdGluZyBvciBwb2ludGVyIGFyaXRobWV0aWMuIEFs
bCBtZW1vcnkgYWNjZXNzaWJsZSB0byBhIHNoYWRlciBvdXRsaXZlcyB0aGUgc2hhZGVyLiBUaGlz
IGlzIGV2ZW4gdHJ1ZSBvZiBsb2NhbCB2YXJpYWJsZXMuIFRoaXMgaXMgcG9zc2libGUgYmVjYXVz
ZSBXU0wgZG9lcyBub3Qgc3VwcG9ydCByZWN1cnNpb24uIFRoZXJlZm9yZSwgbG9jYWwgdmFyaWFi
bGVzIHNpbXBseSBnZXQgZ2xvYmFsIHN0b3JhZ2UuIExvY2FsIHZhcmlhYmxlcyBhcmUgaW5pdGlh
bGl6ZWQgYXQgdGhlIHBvaW50IG9mIHRoZWlyIGRlY2xhcmF0aW9uLiBIZW5jZSwgdGhlIGZvbGxv
d2luZyBpcyBhIHZhbGlkIHByb2dyYW0sIHdoaWNoIHdpbGwgZXhoaWJpdCB0aGUgc2FtZSBiZWhh
dmlvciBvbiBldmVyeSBXU0wgaW1wbGVtZW50YXRpb246Ci0KLSAgICB0aHJlYWQgaW50XiBmb28o
KQotICAgIHsKLSAgICAgICAgaW50IHggPSA0MjsKLSAgICAgICAgcmV0dXJuICZ4OwotICAgIH0K
LSAgICBpbnQgYmFyKCkKLSAgICB7Ci0gICAgICAgIHRocmVhZCBpbnReIHAgPSBmb28oKTsKLSAg
ICAgICAgdGhyZWFkIGludF4gcSA9IGZvbygpOwotICAgICAgICBecCA9IDUzOwotICAgICAgICBy
ZXR1cm4gXnE7IC8vIFJldHVybnMgNTMuCi0gICAgfQotICAgIGludCBiYXooKQotICAgIHsKLSAg
ICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygpOwotICAgICAgICBecCA9IDUzOwotICAgICAgICBm
b28oKTsKLSAgICAgICAgcmV0dXJuIF5wOyAvLyBSZXR1cm5zIDQyLgotICAgIH0KLQotSXQncyBw
b3NzaWJsZSB0byBwb2ludCB0byBhbnkga2luZCBvZiBkYXRhIHR5cGUuIEZvciBleGFtcGxlLCBg
dGhyZWFkIGRvdWJsZVs0Ml1eYCBpcyBhIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2YgNDIgZG91Ymxl
cy4KLQotIyMgVHlwZS1zYWZlIGFycmF5IHJlZmVyZW5jZXMKLQotV1NMIHN1cHBvcnRzIGFycmF5
IHJlZmVyZW5jZXMgdGhhdCBjYXJyeSBhIHBvaW50ZXIgdG8gdGhlIGJhc2Ugb2YgdGhlIGFycmF5
IGFuZCB0aGUgYXJyYXkncyBsZW5ndGguIFRoaXMgYWxsb3dzIGFjY2Vzc2VzIHRvIHRoZSBhcnJh
eSB0byBiZSBib3VuZHMtY2hlY2tlZC4KLQotQW4gYXJyYXkgcmVmZXJlbmNlIGNhbiBiZSBjcmVh
dGVkIHVzaW5nIHRoZSBgQGAgb3BlcmF0b3I6Ci0KLSAgICBpbnRbNDJdIGFycmF5OwotICAgIHRo
cmVhZCBpbnRbXSBhcnJheVJlZiA9IEBhcnJheTsKLQotQm90aCBhcnJheXMgYW5kIGFycmF5IHJl
ZmVyZW5jZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFuZCBzdG9yZWQgdG8gdXNpbmcgYG9wZXJhdG9y
W11gOgotCi0gICAgaW50IHggPSBhcnJheVtpXTsKLSAgICBpbnQgeSA9IGFycmF5UmVmW2ldOwot
Ci1Cb3RoIGFycmF5cyBhbmQgYXJyYXkgcmVmZXJlbmNlcyBrbm93IHRoZWlyIGxlbmd0aDoKLQot
ICAgIHVpbnQgYXJyYXlMZW5ndGggPSBhcnJheS5sZW5ndGg7Ci0gICAgdWludCBhcnJheVJlZkxl
bmd0aCA9IGFycmF5UmVmLmxlbmd0aDsKLQotR2l2ZW4gYW4gYXJyYXkgb3IgYXJyYXkgcmVmZXJl
bmNlLCBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIHBvaW50ZXIgdG8gb25lIG9mIGl0cyBlbGVtZW50
czoKLQotICAgIHRocmVhZCBpbnReIHB0cjEgPSAmYXJyYXlbaV07Ci0gICAgdGhyZWFkIGludF4g
cHRyMiA9ICZhcnJheVJlZltpXTsKLQotQSBwb2ludGVyIGlzIGxpa2UgYW4gYXJyYXkgcmVmZXJl
bmNlIHdpdGggb25lIGVsZW1lbnQuIEl0J3MgcG9zc2libGUgdG8gcGVyZm9ybSB0aGlzIGNvbnZl
cnNpb246Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmID0gQHB0cjE7Ci0gICAgcmVmWzBdIC8vIEVx
dWl2YWxlbnQgdG8gXnB0cjEuCi0gICAgcmVmLmxlbmd0aCAvLyAwIGlmIHB0cjEgd2FzIG51bGws
IDEgaWYgcHRyMSB3YXMgbm90IG51bGwuCi0KLVNpbWlsYXJseSwgdXNpbmcgYEBgIG9uIGEgbm9u
LXBvaW50ZXIgdmFsdWUgcmVzdWx0cyBpbiBhIHJlZmVyZW5jZSBvZiBsZW5ndGggMToKLQotICAg
IGludCB4OwotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAeDsKLSAgICByZWZbMF0gLy8gQWxpYXNl
cyB4LgotICAgIHJlZi5sZW5ndGggLy8gUmV0dXJucyAxLgotCi1JdCdzIG5vdCBsZWdhbCB0byB1
c2UgYEBgIG9uIGFuIGFycmF5IHJlZmVyZW5jZToKLQotICAgIHRocmVhZCBpbnRbXSByZWY7Ci0g
ICAgdGhyZWFkIGludFtdW10gcmVmZXJlZiA9IEByZWY7IC8vIEVycm9yIQotCi0jIyBHZW5lcmlj
cwotCi1XU0wgc3VwcG9ydHMgZ2VuZXJpYyB0eXBlcyB1c2luZyBhIHNpbXBsZSBzeW50YXguIFdT
TCdzIGdlbmVyaWMgYXJlIGRlc2lnbmVkIHRvIGludGVncmF0ZSBjbGVhbmx5IGludG8gdGhlIGNv
bXBpbGVyIHBpcGVsaW5lOgotCi0tIEdlbmVyaWNzIGhhdmUgdW5hbWJpZ3VvdXMgc3ludGF4Lgot
LSBHZW5lcmljIGZ1bmN0aW9ucyBjYW4gYmUgdHlwZSBjaGVja2VkIGJlZm9yZSB0aGV5IGFyZSBp
bnN0YW50aWF0ZWQuCi0KLVNlbWFudGljIGVycm9ycyBpbnNpZGUgZ2VuZXJpYyBmdW5jdGlvbnMg
c2hvdyB1cCBvbmNlIHJlZ2FyZGxlc3Mgb2YgdGhlIG51bWJlciBvZiB0aW1lcyB0aGUgZ2VuZXJp
YyBmdW5jdGlvbiBpcyBpbnN0YW50aWF0ZWQuCi0KLVRoaXMgaXMgYSBzaW1wbGUgZ2VuZXJpYyBm
dW5jdGlvbjoKLQotICAgIFQgaWRlbnRpdHk8VD4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIFQg
dG1wID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0bXA7Ci0gICAgfQotCi1XU0wgYWxzbyBzdXBw
b3J0cyBzdHJ1Y3RzLCB3aGljaCBhcmUgYWxzbyBhbGxvd2VkIHRvIGJlIGdlbmVyaWM6Ci0KLSAg
ICAvLyBOb3QgZ2VuZXJpYy4KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAg
ICAgIGRvdWJsZSB5OwotICAgIH0KLSAgICAvLyBHZW5lcmljLgotICAgIHN0cnVjdCBCYXI8VCwg
VT4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFUgeTsKLSAgICB9Ci0KLVR5cGUgcGFyYW1ldGVy
cyBjYW4gYWxzbyBiZSBjb25zdGFudCBleHByZXNzaW9ucy4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2
b2lkIGluaXRpYWxpemVBcnJheTxULCB1aW50IGxlbmd0aD4odGhyZWFkIFRbbGVuZ3RoXV4gYXJy
YXksIFQgdmFsdWUpCi0gICAgewotICAgICAgICBmb3IgKHVpbnQgaSA9IGxlbmd0aDsgaS0tOykK
LSAgICAgICAgICAgICheYXJyYXkpW2ldID0gdmFsdWU7Ci0gICAgfQotCi1Db25zdGFudCBleHBy
ZXNzaW9ucyBwYXNzZWQgYXMgdHlwZSBhcmd1bWVudHMgbXVzdCBvYmV5IGEgdmVyeSBuYXJyb3cg
ZGVmaW5pdGlvbiBvZiBjb25zdGFudG5lc3MuIE9ubHkgbGl0ZXJhbHMgYW5kIHJlZmVyZW5jZXMg
dG8gb3RoZXIgY29uc3RhbnQgcGFyYW1ldGVycyBxdWFsaWZ5LgotCi1XU0wgaXMgZ3VhcmFudGVl
ZCB0byBjb21waWxlIGdlbmVyaWNzIGJ5IGluc3RhbnRpYXRpb24uIFRoaXMgaXMgb2JzZXJ2YWJs
ZSwgc2luY2UgZnVuY3Rpb25zIGNhbiByZXR1cm4gcG9pbnRlcnMgdG8gdGhlaXIgbG9jYWxzLiBI
ZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhpcyBwaGVub21lbm9uOgotCi0gICAgdGhyZWFkIGludF4g
YWxsb2NhdGU8dWludD4oKQotICAgIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIHJldHVybiAm
eDsKLSAgICB9Ci0KLVRoZSBgYWxsb2NhdGVgIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIGEgZGlmZmVy
ZW50IHBvaW50ZXIgZm9yIGVhY2ggdW5zaWduZWQgaW50ZWdlciBjb25zdGFudCBwYXNzZWQgYXMg
YSB0eXBlIHBhcmFtZXRlci4gVGhpcyBhbGxvY2F0aW9uIGlzIGNvbXBsZXRlbHkgc3RhdGljLCBz
aW5jZSB0aGUgYHVpbnRgIHBhcmFtZXRlciBtdXN0IGJlIGdpdmVuIGEgY29tcGlsZS10aW1lIGNv
bnN0YW50LgotCi1XU0wncyBgdHlwZWRlZmAgdXNlcyBhIHNsaWdodGx5IGRpZmZlcmVudCBzeW50
YXggdGhhbiBDLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAg
ICAgVCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIHR5cGVkZWYgRkNvbXBsZXgg
PSBDb21wbGV4PGZsb2F0PjsKLQotYHR5cGVkZWZgIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBnZW5l
cmljIHR5cGVzOgotCi0gICAgc3RydWN0IEZvbzxULCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAg
ICAgVSB5OwotICAgIH0KLSAgICB0eXBlZGVmIEJhcjxUPiA9IEZvbzxULCBUPjsKLQotIyMgUHJv
dG9jb2xzCi0KLVByb3RvY29scyBlbmFibGUgZ2VuZXJpYyBmdW5jdGlvbnMgdG8gd29yayB3aXRo
IGRhdGEgb2YgZ2VuZXJpYyB0eXBlLiBCZWNhdXNlIGEgZnVuY3Rpb24gbXVzdCBiZSB0eXBlLWNo
ZWNrYWJsZSBiZWZvcmUgaW5zdGFudGlhdGlvbiwgdGhlIGZvbGxvd2luZyB3b3VsZCBub3QgYmUg
bGVnYWw6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAuLi4gfQotICAgIGRvdWJsZSBiYXIoZG91Ymxl
KSB7IC4uLiB9Ci0gICAgCi0gICAgVCBmb288VD4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBiYXIodmFsdWUpOyAvLyBFcnJvciEKLSAgICB9Ci0KLVRoZSBjYWxsIHRvIGBiYXJgIGRv
ZXNuJ3QgdHlwZSBjaGVjayBiZWNhdXNlIHRoZSBjb21waWxlciBjYW5ub3Qga25vdyB0aGF0IGBm
b288VD5gIHdpbGwgYmUgaW5zdGFudGlhdGVkIHdpdGggYFQgPSBpbnRgIG9yIGBUID0gZG91Ymxl
YC4gUHJvdG9jb2xzIGVuYWJsZSB0aGUgcHJvZ3JhbW1lciB0byB0ZWxsIHRoZSBjb21waWxlciB3
aGF0IHRvIGV4cGVjdCBvZiBhIHR5cGUgdmFyaWFibGU6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAu
Li4gfQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7IC4uLiB9Ci0gICAgCi0gICAgcHJvdG9jb2wg
U3VwcG9ydHNCYXIgewotICAgICAgICBTdXBwb3J0c0JhciBiYXIoU3VwcG9ydHNCYXIpOwotICAg
IH0KLSAgICAKLSAgICBUIGZvbzxUOlN1cHBvcnRzQmFyPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGJhcih2YWx1ZSk7Ci0gICAgfQotICAgIAotICAgIGludCB4ID0gZm9vKDQyKTsK
LSAgICBkb3VibGUgeSA9IGZvbyg0LjIpOwotCi1Qcm90b2NvbHMgaGF2ZSBhdXRvbWF0aWMgcmVs
YXRpb25zaGlwcyB0byBvbmUgYW5vdGhlciBiYXNlZCBvbiB3aGF0IGZ1bmN0aW9ucyB0aGV5IGNv
bnRhaW46Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAg
IH0KLSAgICBwcm90b2NvbCBCYXIgewotICAgICAgICB2b2lkIGZvbyhCYXIpOwotICAgICAgICB2
b2lkIGJhcihCYXIpOwotICAgIH0KLSAgICB2b2lkIGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQot
ICAgIHZvaWQgYnV6ejxUOkJhcj4oVCB4KQotICAgIHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ss
IGJlY2F1c2UgQmFyIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiBGb28uICAgIAotICAgIH0KLQotUHJv
dG9jb2xzIGNhbiBhbHNvIG1peCBvdGhlciBwcm90b2NvbHMgaW4gZXhwbGljaXRseS4gTGlrZSBp
biB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGV4YW1wbGUgYmVsb3cgcmVsaWVzIG9uIHRoZSBmYWN0
IHRoYXQgYEJhcmAgaXMgYSBtb3JlIHNwZWNpZmljIHByb3RvY29sIHRoYW4gYEZvb2AuIEhvd2V2
ZXIsIHRoaXMgZXhhbXBsZSBkZWNsYXJlcyB0aGlzIGV4cGxpY2l0bHkgKGBwcm90b2NvbCBCYXIg
OiBGb29gKSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdGhlIGxhbmd1YWdlIHRvIGluZmVyIGl0Ogot
Ci0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsKLSAgICB9Ci0gICAg
cHJvdG9jb2wgQmFyIDogRm9vIHsKLSAgICAgICAgdm9pZCBiYXIoQmFyKTsKLSAgICB9Ci0gICAg
dm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAgICB2b2lkIGJ1eno8VDpCYXI+KFQgeCkK
LSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBiZWNhdXNlIEJhciBpcyBtb3JlIHNwZWNp
ZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLSMjIE92ZXJsb2FkaW5nCi0KLVdTTCBzdXBwb3J0
cyBvdmVybG9hZGluZyB2ZXJ5IHNpbWlsYXJseSB0byBob3cgQysrIGRvZXMgaXQuIEZvciBleGFt
cGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAgIHZvaWQgZm9vKGRvdWJsZSk7
IC8vIDIKLSAgICAKLSAgICBpbnQgeDsKLSAgICBmb28oeCk7IC8vIGNhbGxzIDEKLSAgICAKLSAg
ICBkb3VibGUgeTsKLSAgICBmb28oeSk7IC8vIGNhbGxzIDIKLQotV1NMIGF1dG9tYXRpY2FsbHkg
c2VsZWN0cyB0aGUgbW9zdCBzcGVjaWZpYyBvdmVybG9hZCBpZiBnaXZlbiBtdWx0aXBsZSBjaG9p
Y2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lk
IGZvbyhkb3VibGUpOyAvLyAyCi0gICAgdm9pZCBmb288VD4oVCk7ICAgLy8gMwotCi0gICAgZm9v
KDEpOyAvLyBjYWxscyAxCi0gICAgZm9vKDEuKTsgLy8gY2FsbHMgMgotICAgIGZvbygxdSk7IC8v
IGNhbGxzIDMKLQotR2VuZXJpYyBmdW5jdGlvbnMgbGlrZSBgZm9vPFQ+YCBjYW4gYmUgY2FsbGVk
IHdpdGggb3Igd2l0aG91dCBhbGwgb2YgdGhlaXIgdHlwZSBhcmd1bWVudHMgc3VwcGxpZWQuIElm
IHRoZXkgYXJlIG5vdCBzdXBwbGllZCwgdGhlIGZ1bmN0aW9uIHBhcnRpY2lwYXRlcyBpbiBvdmVy
bG9hZCByZXNvbHV0aW9uIGxpa2UgYW55IG90aGVyIGZ1bmN0aW9uIHdvdWxkLiBGdW5jdGlvbnMg
YXJlIHJhbmtlZCBieSBob3cgc3BlY2lmaWMgdGhleSBhcmU7IGZ1bmN0aW9uIEEgaXMgbW9yZSBz
cGVjaWZpYyB0aGFuIGZ1bmN0aW9uIEIgaWYgQSdzIHBhcmFtZXRlciB0eXBlcyBjYW4gYmUgdXNl
ZCBhcyBhcmd1bWVudCB0eXBlcyBmb3IgYSBjYWxsIHRvIEIgYnV0IG5vdCB2aWNlLXZlcnNhLiBJ
ZiBvbmUgZnVuY3Rpb25zIG1vcmUgc3BlY2lmaWMgdGhhbiBhbGwgb3RoZXJzIHRoZW4gdGhpcyBm
dW5jdGlvbiBpcyBzZWxlY3RlZCwgb3RoZXJ3aXNlIGEgdHlwZSBlcnJvciBpcyBpc3N1ZWQuCi0K
LSMjIE9wZXJhdG9yIE92ZXJsb2FkaW5nCi0KLU1hbnkgV1NMIG9wZXJhdGlvbnMgZGVzdWdhciB0
byBjYWxscyB0byBmdW5jdGlvbnMuIFRob3NlIGZ1bmN0aW9ucyBhcmUgY2FsbGVkICpvcGVyYXRv
ciBvdmVybG9hZHMqIGFuZCBhcmUgZGVjbGFyZWQgdXNpbmcgc3ludGF4IHRoYXQgaW52b2x2ZXMg
dGhlIGtleXdvcmQgYG9wZXJhdG9yYC4gVGhlIGZvbGxvd2luZyBvcGVyYXRpb25zIHJlc3VsdCBp
biBjYWxscyB0byBvcGVyYXRvciBvdmVybG9hZHM6Ci0KLS0gTnVtZXJpY2FsIG9wZXJhdG9ycyAo
YCtgLCBgLWAsIGAqYCwgYC9gLCBldGMuKS4KLS0gSW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgKGAr
K2AsIGAtLWApLgotLSBDYXN0aW5nIChgdHlwZSh2YWx1ZSlgKS4KLS0gQWNjZXNzaW5nIHZhbHVl
cyBpbiBhcnJheXMgKGBbXWAsIGBbXT1gLCBgJltdYCkuCi0tIEFjY2Vzc2luZyBmaWVsZHMgKGAu
ZmllbGRgLCBgLmZpZWxkPWAsIGAmLmZpZWxkYCkuCi0KLVdTTCdzIG9wZXJhdG9yIG92ZXJsb2Fk
aW5nIGlzIGRlc2lnbmVkIHRvIHN5bnRoZXNpemUgbWFueSBvcGVyYXRvcnMgZm9yIHlvdToKLQot
LSBSZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRvcnMgbGlrZSBgKz1gIGFyZSBkZXN1Z2FyZWQgdG8g
YSBsb2FkIG9mIHRoZSBsb2FkIHZhbHVlLCB0aGUgdW5kZXJseWluZyBvcGVyYXRvciAobGlrZSBg
K2ApLCBhbmQgYSBzdG9yZSBvZiB0aGUgbmV3IHZhbHVlLiBJdCdzIG5vdCBwb3NzaWJsZSB0byBv
dmVycmlkZSBgKz1gLCBgLT1gLCBldGMuCi0tIGB4KytgIGFuZCBgKyt4YCBib3RoIGNhbGwgdGhl
IHNhbWUgb3BlcmF0b3Igb3ZlcmxvYWQuIGBvcGVyYXRvcisrYCB0YWtlcyB0aGUgb2xkIHZhbHVl
IGFuZCByZXR1cm5zIGEgbmV3IG9uZTsgZm9yIGV4YW1wbGUgdGhlIGJ1aWx0LWluIGArK2AgZm9y
IGBpbnRgIGNvdWxkIGJlIHdyaXR0ZW4gYXM6IGBpbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsg
cmV0dXJuIHZhbHVlICsgMTsgfWAuCi0tIGBvcGVyYXRvcj09YCBjYW4gYmUgb3ZlcmxvYWRlZCwg
YnV0IGAhPWAgaXMgYXV0b21hdGljYWxseSBzeW50aGVzaXplZCBhbmQgY2Fubm90IGJlIG92ZXJs
b2FkZWQuCi0KLVNvbWUgb3BlcmF0b3JzIGFuZCBvdmVybG9hZHMgYXJlIHJlc3RyaWN0ZWQ6Ci0K
LS0gYCFgLCBgJiZgLCBhbmQgYHx8YCBhcmUgYnVpbHQtaW4gb3BlcmF0aW9ucyBvbiB0aGUgYGJv
b2xgIHR5cGUuCi0tIFNlbGYtY2FzdHMgKGBUKFQpYCkgYXJlIGFsd2F5cyB0aGUgaWRlbnRpdHkg
ZnVuY3Rpb24uCi0tIENhc3RzIHdpdGggbm8gYXJndW1lbnRzIChgVCgpYCkgYWx3YXlzIHJldHVy
biB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhhdCB0eXBlLiBFdmVyeSB0eXBlIGhhcyBhIGRlZmF1
bHQgdmFsdWUgKGAwYCwgYG51bGxgLCBvciB0aGUgZXF1aXZhbGVudCBmb3IgZWFjaCBmaWVsZCku
Ci0KLUNhc3Qgb3ZlcmxvYWRpbmcgYWxsb3dzIGZvciBzdXBwb3J0aW5nIGNvbnZlcnNpb25zIGJl
dHdlZW4gdHlwZXMgYW5kIGZvciBjcmVhdGluZyBjb25zdHJ1Y3RvcnMgZm9yIGN1c3RvbSB0eXBl
cy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGNhc3Qgb3ZlcmxvYWRpbmcgYmVpbmcgdXNlZCB0byBj
cmVhdGUgYSBjb25zdHJ1Y3RvcjoKLQotICAgIHN0cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAgICAg
VCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAgfQotICAgIG9wZXJhdG9yPFQ+IENvbXBsZXg8
VD4oVCByZWFsLCBUIGltYWcpCi0gICAgewotICAgICAgICBDb21wbGV4PFQ+IHJlc3VsdDsKLSAg
ICAgICAgcmVzdWx0LnJlYWwgPSByZWFsOwotICAgICAgICByZXN1bHQuaW1hZyA9IGltYWc7Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIENvbXBsZXg8ZmxvYXQ+IGkg
PSBDb21wbGV4PGZsb2F0PigwLCAxKTsKLQotV1NMIHN1cHBvcnRzIGFjY2Vzc29yIG92ZXJsb2Fk
aW5nIGFzIHBhcnQgb2YgdGhlIG9wZXJhdG9yIG92ZXJsb2FkaW5nIHN5bnRheC4gVGhpcyBnaXZl
cyB0aGUgcHJvZ3JhbW1lciBicm9hZCBwb3dlcnMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0
IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAgICBpbnQgeTsKLSAgICB9Ci0gICAgaW50IG9w
ZXJhdG9yLnN1bShGb28gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7
Ci0gICAgfQotCi1JdCdzIHBvc3NpYmxlIHRvIHNheSBgZm9vLnN1bWAgdG8gY2FsbCB0aGUgYG9w
ZXJhdG9yLnN1bWAgZnVuY3Rpb24uIEJvdGggZ2V0dGVycyBhbmQgc2V0dGVycyBjYW4gYmUgcHJv
dmlkZWQ6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAg
ICBkb3VibGUgb3BlcmF0b3IuZG91YmxlVmFsdWUoRm9vIHZhbHVlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIGRvdWJsZSh2YWx1ZS52YWx1ZSk7Ci0gICAgfQotICAgIEZvbyBvcGVyYXRvci5kb3Vi
bGVWYWx1ZT0oRm9vIHZhbHVlLCBkb3VibGUgZG91YmxlVmFsdWUpCi0gICAgewotICAgICAgICB2
YWx1ZS52YWx1ZSA9IGludChkb3VibGVWYWx1ZSk7Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAg
ICB9Ci0KLVByb3ZpZGluZyBib3RoIGdldHRlciBhbmQgc2V0dGVyIG92ZXJsb2FkcyBtYWtlcyBg
ZG91YmxlVmFsdWVgIGJlaGF2ZSBhbG1vc3QgYXMgaWYgaXQgd2FzIGEgZmllbGQgb2YgYEZvb2Au
IEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRvIHNheToKLQotICAgIEZvbyBmb287Ci0gICAg
Zm9vLnZhbHVlID0gNDI7Ci0gICAgZm9vLmRvdWJsZVZhbHVlICo9IDI7IC8vIE5vdyBmb28udmFs
dWUgaXMgODQKLQotSXQncyBhbHNvIHBvc3NpYmxlIHRvIHByb3ZpZGUgYW4gYWRkcmVzcy1nZXR0
aW5nIG92ZXJsb2FkIGNhbGxlZCBhbiAqYW5kZXIqOgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAg
ICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAgdGhyZWFkIGludF4gb3BlcmF0b3ImLnZhbHVlQWxp
YXModGhyZWFkIEZvb14gZm9vKQotICAgIHsKLSAgICAgICAgcmV0dXJuICZmb28tPnZhbHVlOwot
ICAgIH0KLQotUHJvdmlkaW5nIGp1c3QgdGhpcyBvdmVybG9hZCBmb3IgYSBwb2ludGVyIHR5cGUg
aW4gZXZlcnkgYWRkcmVzcyBzcGFjZSBnaXZlcyB0aGUgc2FtZSBwb3dlciBhcyBvdmVybG9hZGlu
ZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLiBBZGRpdGlvbmFsbHksIGl0IG1ha2VzIGl0IHBvc3NpYmxl
IHRvIGAmZm9vLnZhbHVlQWxpYXNgLgotCi1UaGUgc2FtZSBvdmVybG9hZGluZyBwb3dlciBpcyBw
cm92aWRlZCBmb3IgYXJyYXkgYWNjZXNzZXMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IFZl
Y3RvcjxUPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVCB5OwotICAgIH0KLSAgICB0aHJlYWQg
VF4gb3BlcmF0b3ImW10odGhyZWFkIFReIHB0ciwgdWludCBpbmRleCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBpbmRleCA/ICZwdHItPnkgOiAmcHRyLT54OwotICAgIH0KLQotQWx0ZXJuYXRpdmVs
eSwgaXQncyBwb3NzaWJsZSB0byBvdmVybG9hZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIChgb3BlcmF0
b3JbXWAgYW5kIGBvcGVyYXRvcltdPWApLgotCi0jIE1hcHBpbmcgb2YgQVBJIGNvbmNlcHRzCi0K
LVdTTCBpcyBkZXNpZ25lZCB0byBiZSB1c2VmdWwgYXMgYm90aCBhIGdyYXBoaWNzIHNoYWRpbmcg
bGFuZ3VhZ2UgYW5kIGFzIGEgY29tcHV0YXRpb24gbGFuZ3VhZ2UuIEhvd2V2ZXIsIHRoZXNlIHR3
byBlbnZpcm9ubWVudHMgaGF2ZQotc2xpZ2h0bHkgZGlmZmVyZW50IHNlbWFudGljcy4KLQotV2hl
biB1c2luZyBXU0wgYXMgYSBncmFwaGljcyBzaGFkaW5nIGxhbmd1YWdlLCB0aGVyZSBpcyBhIGRp
c3RpbmN0aW9uIGJldHdlZW4gKmVudHJ5LXBvaW50cyogYW5kICpub24tZW50cnktcG9pbnRzKi4g
RW50cnkgcG9pbnRzIGFyZSB0b3AtbGV2ZWwgZnVuY3Rpb25zIHdoaWNoIGhhdmUgZWl0aGVyIHRo
ZSBgdmVydGV4YCBvciBgZnJhZ21lbnRgIGtleXdvcmQgaW4gZnJvbnQgb2YgdGhlaXIgZGVjbGFy
YXRpb24uIEVudHJ5IHBvaW50cyBtYXkgbm90IGJlIGZvcndhcmQgZGVjbGFyZWQuIEFuIGVudHJ5
IHBvaW50IGFubm90YXRlZCB3aXRoIHRoZSBgdmVydGV4YCBrZXl3b3JkIG1heSBub3QgYmUgdXNl
ZCBhcyBhIGZyYWdtZW50IHNoYWRlciwgYW5kIGFuIGVudHJ5IHBvaW50IGFubm90YXRlZCB3aXRo
IHRoZSBgZnJhZ21lbnRgIGtleXdvcmQgbWF5IG5vdCBiZSB1c2VkIGFzIGEgdmVydGV4IHNoYWRl
ci4gTm8gYXJndW1lbnQgbm9yIHJldHVybiB2YWx1ZSBvZiBhbiBlbnRyeSBwb2ludCBtYXkgYmUg
YSBwb2ludGVyLiBFbnRyeSBwb2ludHMgbXVzdCBub3QgYWNjZXB0IHR5cGUgYXJndW1lbnRzIChh
bHNvIGtub3duIGFzICJnZW5lcmljcyIpLgotCi0jIyBWZXJ0ZXggZW50cnkgcG9pbnRzCi0KLVdl
YkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIFdTTCB2ZXJ0ZXggc2hhZGVyIGluIGZvdXIgd2F5
czoKLQotLSBBdHRyaWJ1dGVzCi0tIEJ1ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNh
bXBsZXJzCi0KLUVhY2ggb2YgdGhlc2UgQVBJIG9iamVjdHMgaXMgcmVmZXJyZWQgdG8gYnkgbmFt
ZSBmcm9tIHRoZSBBUEkuIFZhcmlhYmxlcyBpbiBXU0wgYXJlIG5vdCBhbm5vdGF0ZWQgd2l0aCBl
eHRyYSBBUEktdmlzaWJsZSBuYW1lcyAobGlrZSB0aGV5IGFyZSBpbiBzb21lIG90aGVyIGdyYXBo
aWNzIEFQSXMpLgotCi1WYXJpYWJsZXMgYXJlIHBhc3NlZCB0byB2ZXJ0ZXggc2hhZGVycyBhcyBh
cmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQuIEVhY2ggYnVmZmVyIGlzIHJlcHJlc2Vu
dGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVmZXJlbmNlIHR5cGUgKHVzaW5nIHRo
ZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVycyBhcmUgcmVwcmVzZW50ZWQgYnkg
YXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNhbXBsZXJgIHR5cGVzLCByZXNwZWN0
aXZlbHkuIEFsbCBvdGhlciBub24tYnVpbHRpbiBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkg
cG9pbnQgYXJlIGltcGxpZWQgdG8gYmUgYXR0cmlidXRlcy4KLQotU29tZSBhcmd1bWVudHMgYXJl
IHJlY29nbml6ZWQgYnkgdGhlIGNvbXBpbGVyIGZyb20gdGhlaXIgbmFtZSBhbmQgdHlwZS4gVGhl
c2UgYXJndW1lbnRzIHByb3ZpZGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eSBpbmhlcmVudCBpbiB0
aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIEZvciBleGFtcGxlLCBhbiBhcmd1bWVudCBvZiB0aGUgZm9y
bSBgaW50IHdzbF92ZXJ0ZXhJRGAgcmVmZXJzIHRvIHRoZSBJRCBvZiB0aGUgY3VycmVudCB2ZXJ0
ZXgsIGFuZCBpcyBub3QgcmVjb2duaXplZCBhcyBhbiBhdHRyaWJ1dGUuIEFsbCBub24tYnVpbHRp
biBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQgbXVzdCBiZSBhc3NvY2lhdGVkIHdp
dGggYW4gQVBJIG9iamVjdCB3aGVuZXZlciBhbnkgZHJhdyBjYWxsIHVzaW5nIHRoZSB2ZXJ0ZXgg
ZW50cnkgcG9pbnQgaXMgaW52b2tlZC4gT3RoZXJ3aXNlLCB0aGUgZHJhdyBjYWxsIHdpbGwgZmFp
bC4KLQotVGhlIG9ubHkgd2F5IHRvIHBhc3MgZGF0YSBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc2hhZGVy
IHN0YWdlcyB3aXRoaW4gYSBzaW5nbGUgZHJhdyBjYWxsIGlzIGJ5IHJldHVybiB2YWx1ZS4gQW4g
ZW50cnkgcG9pbnQgbXVzdCBpbmRpY2F0ZSB0aGF0IGl0IHJldHVybnMgYSBjb2xsZWN0aW9uIG9m
IHZhbHVlcyBjb250YWluZWQgd2l0aGluIGEgc3RydWN0dXJlLiBFdmVyeSB2YXJpYWJsZSBpbnNp
ZGUgdGhpcyBzdHJ1Y3R1cmUsIHJlY3Vyc2l2ZWx5LCBpcyBwYXNzZWQgdG8gdGhlIG5leHQgc3Rh
Z2UgaW4gdGhlIGdyYXBoaWNzIHBpcGVsaW5lLiBNZW1iZXJzIG9mIHRoaXMgc3RydWN0IG1heSBh
bHNvIGJlIG91dHB1dCBidWlsdC1pbiB2YXJpYWJsZXMuIEZvciBleGFtcGxlLCBhIHZlcnRleCBl
bnRyeSBwb2ludCBtYXkgcmV0dXJuIGEgc3RydWN0IHdoaWNoIGNvbnRhaW5zIGEgbWVtYmVyIGBm
bG9hdDQgd3NsX1Bvc2l0aW9uYCwgYW5kIHRoaXMgdmFyaWFibGUgd2lsbCByZXByZXNlbnQgdGhl
IHJhc3Rlcml6ZWQgcG9zaXRpb24gb2YgdGhlIHZlcnRleC4gQnVmZmVycyAoYXMgZGVzY3JpYmVk
IGJ5IFdTTCBhcnJheSByZWZlcmVuY2VzKSwgdGV4dHVyZXMsIGFuZCBzYW1wbGVycyBtdXN0IG5v
dCBiZSBwcmVzZW50IGluIHRoaXMgcmV0dXJuZWQgc3RydWN0LiBCdWlsdC1pbiB2YXJpYWJsZXMg
bXVzdCBuZXZlciBhcHBlYXIgdHdpY2UgaW5zaWRlIHRoZSByZXR1cm5lZCBzdHJ1Y3R1cmUuCi0K
LSMjIEZyYWdtZW50IGVudHJ5IHBvaW50cwotCi1GcmFnbWVudCBlbnRyeSBwb2ludHMgbWF5IGFj
Y2VwdCBvbmUgYXJndW1lbnQgd2l0aCB0aGUgdHlwZSB0aGF0IHRoZSBwcmV2aW91cyBzaGFkZXIg
c3RhZ2UgcmV0dXJuZWQuIFRoZSBhcmd1bWVudCBuYW1lIGZvciB0aGlzIGFyZ3VtZW50IG11c3Qg
YmUgYHN0YWdlSW5gLiBJbiBhZGRpdGlvbiB0byB0aGlzIGFyZ3VtZW50LCBmcmFnbWVudCBlbnRy
eSBwb2ludHMgbWF5IGFjY2VwdCBidWZmZXJzLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIGFzIGFy
Z3VtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB2ZXJ0ZXggZW50cnkgcG9pbnRzIGFjY2VwdCB0
aGVtLiBGcmFnbWVudCBlbnRyeSBwb2ludHMgYWxzbyBtdXN0IHJldHVybiBhIHN0cnVjdCwgYW5k
IGFsbCBtZW1iZXJzIG9mIHRoaXMgc3RydWN0IG11c3QgYmUgYnVpbHQtaW4gdmFyaWFibGVzLiBU
aGUgc2V0IG9mIHJlY29nbml6ZWQgYnVpbHQtaW4gdmFyaWFibGVzIHdoaWNoIG1heSBiZSBhY2Nl
cHRlZCBvciByZXR1cm5lZCBmcm9tIGFuIGVudHJ5IHBvaW50IGlzIGRpZmZlcmVudCBiZXR3ZWVu
IGFsbCB0eXBlcyBvZiBlbnRyeSBwb2ludHMuCi0KLUZvciBleGFtcGxlLCB0aGlzIHdvdWxkIGJl
IGEgdmFsaWQgZ3JhcGhpY3MgcHJvZ3JhbToKLQotICAgIHN0cnVjdCBWZXJ0ZXhJbnB1dCB7Ci0g
ICAgICAgIGZsb2F0MiBwb3NpdGlvbjsKLSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAg
ICAKLSAgICBzdHJ1Y3QgVmVydGV4T3V0cHV0IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Qb3NpdGlv
bjsKLSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAgICAKLSAgICBzdHJ1Y3QgRnJhZ21l
bnRPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX0NvbG9yOwotICAgIH0KLSAgICAKLSAgICB2
ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRlcihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkg
ewotICAgICAgICBWZXJ0ZXhPdXRwdXQgcmVzdWx0OwotICAgICAgICByZXN1bHQud3NsX1Bvc2l0
aW9uID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0aW9uLCAwLiwgMS4pOwotICAgICAgICByZXN1
bHQuY29sb3IgPSB2ZXJ0ZXhJbnB1dC5jb2xvcjsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9Ci0gICAgCi0gICAgZnJhZ21lbnQgRnJhZ21lbnRPdXRwdXQgZnJhZ21lbnRTaGFkZXIoVmVy
dGV4T3V0cHV0IHN0YWdlSW4pIHsKLSAgICAgICAgRnJhZ21lbnRPdXRwdXQgcmVzdWx0OwotICAg
ICAgICByZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0KHN0YWdlSW4uY29sb3IsIDEuKTsKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSMjIENvbXB1dGUgZW50cnkgcG9pbnRzCi0KLVdl
YkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIGNvbXB1dGUgc2hhZGVyIGluIHRocmVlIHdheXM6
Ci0KLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEKLS0gU2FtcGxlcnMKLQotQ29tcHV0
ZSBlbnRyeSBwb2ludHMgc3RhcnQgd2l0aCB0aGUga2V5d29yZCBgY29tcHV0ZWAuIFRoZSByZXR1
cm4gdHlwZSBmb3IgYSBjb21wdXRlIGVudHJ5IHBvaW50IG11c3QgYmUgYHZvaWRgLiBFYWNoIGJ1
ZmZlciBpcyByZXByZXNlbnRlZCBhcyBhbiBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5j
ZSB0eXBlICh1c2luZyB0aGUgYFtdYCBzeW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJl
IHJlcHJlc2VudGVkIGJ5IGFyZ3VtZW50cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVy
YCB0eXBlcywgcmVzcGVjdGl2ZWx5LiBDb21wdXRlIGVudHJ5IHBvaW50cyBtYXkgYWxzbyBhY2Nl
cHQgYnVpbHQtaW4gdmFyaWFibGVzIGFzIGFyZ3VtZW50cy4gQXJndW1lbnRzIG9mIGFueSBvdGhl
ciB0eXBlIGFyZSBkaXNhbGxvd2VkLiBBcmd1bWVudHMgbWF5IG5vdCB1c2UgdGhlIGB0aHJlYWRn
cm91cGAgbWVtb3J5IHNwYWNlLgotCi0jIEVycm9yIGhhbmRsaW5nCi0KLUVycm9ycyBtYXkgb2Nj
dXIgZHVyaW5nIHNoYWRlciBwcm9jZXNzaW5nLiBGb3IgZXhhbXBsZSwgdGhlIHNoYWRlciBtYXkg
YXR0ZW1wdCB0byBkZXJlZmVyZW5jZSBhIGBudWxsYCBhcnJheSByZWZlcmVuY2UuIElmIHRoaXMg
b2NjdXJzLCB0aGUgc2hhZGVyIHN0YWdlIGltbWVkaWF0ZWx5IGNvbXBsZXRlcyBzdWNjZXNzZnVs
bHkuIFRoZSBlbnRyeSBwb2ludCBpbW1lZGlhdGVseSByZXR1cm5zIGEgc3RydWN0IHdpdGggYWxs
IGZpZWxkcyBzZXQgdG8gMC4gQWZ0ZXIgdGhpcyBldmVudCwgc3Vic2VxdWVudCBzaGFkZXIgc3Rh
Z2VzIHdpbGwgcHJvY2VlZCBhcyBpZiB0aGVyZSB3YXMgbm8gcHJvYmxlbS4KLQotQnVmZmVyIGFu
ZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYmVmb3JlIHRoZSBlcnJvciBhbGwgY29tcGxldGUs
IGFuZCBoYXZlIHRoZSBzYW1lIHNlbWFudGljcyBhcyBpZiBubyBlcnJvciBoYWQgb2NjdXJyZWQu
IEJ1ZmZlciBhbmQgdGV4dHVyZSByZWFkcyBhbmQgd3JpdGVzIGFmdGVyIHRoZSBlcnJvciBkbyBu
b3Qgb2NjdXIuCi0KLSMgU3VtbWFyeQotCi1XU0wgaXMgYSB0eXBlLXNhZmUgbGFuZ3VhZ2UgYmFz
ZWQgb24gQyBzeW50YXguIEl0IGVsaW1pbmF0ZXMgc29tZSBDIGZlYXR1cmVzLCBsaWtlIHVuaW9u
cyBhbmQgcG9pbnRlciBjYXN0cywgYnV0IGFkZHMgb3RoZXIgbW9kZXJuIGZlYXR1cmVzIGluIHRo
ZWlyIHBsYWNlLCBsaWtlIGdlbmVyaWNzIGFuZCBvdmVybG9hZGluZy4KLQotIyBBZGRpdGlvbmFs
IExpbWl0YXRpb25zCi0KLVRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBsaW1pdGF0aW9ucyBtYXkg
YmUgcGxhY2VkIG9uIGEgV1NMIHByb2dyYW06Ci0KLS0gYGRldmljZWAsIGBjb25zdGFudGAsIGFu
ZCBgdGhyZWFkZ3JvdXBgIHBvaW50ZXJzIGNhbm5vdCBwb2ludCB0byBkYXRhIHRoYXQgbWF5IGhh
dmUgcG9pbnRlcnMgaW4gaXQuIFRoaXMgc2FmZXR5IGNoZWNrIGlzIG5vdCBkb25lIGFzIHBhcnQg
b2YgdGhlIG5vcm1hbCB0eXBlIHN5c3RlbSBjaGVja3MuIEl0J3MgcGVyZm9ybWVkIG9ubHkgYWZ0
ZXIgaW5zdGFudGlhdGlvbi4KLS0gUG9pbnRlcnMgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGNvbGxl
Y3RpdmVseSwgKnJlZmVyZW5jZXMqKSBtYXkgYmUgcmVzdHJpY3RlZCB0byBzdXBwb3J0IGNvbXBp
bGluZyB0byBTUElSLVYgKmxvZ2ljYWwgbW9kZSouIEluIHRoaXMgbW9kZSwgYXJyYXlzIG11c3Qg
bm90IHRyYW5zaXRpdmVseSBob2xkIHJlZmVyZW5jZXMuIFJlZmVyZW5jZXMgbXVzdCBiZSBpbml0
aWFsaXplZCB1cG9uIGRlY2xhcmF0aW9uIGFuZCBuZXZlciByZWFzc2lnbmVkLiBGdW5jdGlvbnMg
dGhhdCByZXR1cm4gcmVmZXJlbmNlcyBtdXN0IGhhdmUgb25lIHJldHVybiBwb2ludC4gVGVybmFy
eSBleHByZXNzaW9ucyBtYXkgbm90IHJldHVybiByZWZlcmVuY2VzLgotLSBHcmFwaGljcyBlbnRy
eSBwb2ludHMgbXVzdCB0cmFuc2l0aXZlbHkgbmV2ZXIgcmVmZXIgdG8gdGhlIGB0aHJlYWRncm91
cGAgbWVtb3J5IHNwYWNlLgotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1dyYXBDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3Jh
cENoZWNrZXIuanMKaW5kZXggNGNhZGM3ZDBkOWU2YTZkZmRhNTU1ZGFiODlkMDI3MTc3MGRiZDlh
Ny4uMGViNGU4MWVjMmZjMzYzOTk3MGQ5YzYzYTNmYmNjZTk5NmNiNDEwYSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKKysrIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKQEAgLTUyLDExICs1Miw2IEBA
IGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRm91bmQgdW53cmFwcGVkICIgKyBub2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIg
KyBvcmlnaW5TdHJpbmcobm9kZSkgKyAiOiAiICsgbm9kZSArICJcbldoaWxlIHZpc2l0aW5nICIg
KyB0aGlzLl9zdGFydE5vZGUuY29uc3RydWN0b3IubmFtZSArICIgYXQgIiArIG9yaWdpblN0cmlu
Zyh0aGlzLl9zdGFydE5vZGUub3JpZ2luKSArICI6ICIgKyB0aGlzLl9zdGFydE5vZGUpOwogICAg
IH0KICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNp
dEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVk
KG5vZGUpOwpAQCAtNzYsMTQgKzcxLDQgQEAgY2xhc3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNp
dG9yIHsKICAgICB7CiAgICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwogICAgIH0K
LSAgICAKLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Zm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAotICAgIC8vIE5PVEU6IFRoaXMgZG9l
cyBub3Qga25vdyBob3cgdG8gaGFuZGxlIE5hdGl2ZVR5cGVJbnN0YW5jZSwgYmVjYXVzZSB0aGlz
IGlzIG5ldmVyIGNhbGxlZCBvbiBpbnN0YW50aWF0ZWQKLSAgICAvLyBjb2RlLiBPbmNlIGNvZGUg
aXMgaW5zdGFudGlhdGVkLCB5b3UgY2Fubm90IGluc3RhbnRpYXRlIGl0IGZ1cnRoZXIuCi0gICAg
Ci0gICAgLy8gTk9URTogVGhpcyBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMgd2l0aCBBdXRvV3Jh
cHBlci4KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4
Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDgw
OTRiMTkzNzgxYjRhYTliMGMzOTA5ZTlhOTFkMjgxNWYyYjJhYmEuLjBkZDA0ZWYyZDE0MTAxOGNk
ZTRkMzA5NWRjOGI3MGYxOWYwMTczMjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbApAQCAtMzYsNyArMzYsNiBAQAogPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnRp
bnVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3Njcmlw
dD4KQEAgLTU1LDcgKzU0LDYgQEAKIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZp
bmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29s
RXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC02
Myw3ICs2MSw2IEBACiA8c2NyaXB0IHNyYz0iRm9yTG9vcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iRnVuYy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iRnVuY0luc3RhbnRpYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iRnVuY1BhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY3Rpb25M
aWtlQmxvY2suanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMi
Pjwvc2NyaXB0PgpAQCAtNzMsNyArNzAsNiBAQAogPHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JD
YWxsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ikluc3RhbnRpYXRl
SW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgpAQCAtOTAsOSArODYsNyBAQAogPHNjcmlw
dCBzcmM9Ik5hbWVGaW5kZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iTmF0aXZlRnVuY0luc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlSW5zdGFu
Y2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMDMsMTAgKzk3LDYgQEAKIDxz
Y3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQ
cm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5
VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9j
b2xSZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjEs
NyBAQAogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5
cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVS
ZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVU
cmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
VWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTM0NCw3ICszMzEsNyBAQCBmdW5jdGlv
biBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZyb21Db21waWxhdGlvbiA9IGZhbHNlKSB7CiAgICAg
Y3VycmVudFZlcnRleFNoYWRlciA9IGF2YWlsYWJsZVZlcnRleFNoYWRlcnNbdmVydGV4U2hhZGVy
U2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAgIGN1cnJlbnRGcmFnbWVudFNoYWRlciA9IGF2YWls
YWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVudFNoYWRlclNlbGVjdC5zZWxlY3RlZEluZGV4XTsK
IAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0
VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIsIFtdKTsKKyAgICBpbmxpbmVkVmVydGV4U2hhZGVy
ID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5s
aW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGN1cnJlbnRWZXJ0ZXhTaGFkZXIpKTsK
IAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBbXTsKQEAgLTQyNiw3ICs0MTMsNyBAQCBmdW5jdGlv
biBydW5TaGFkZXJzKCkgewogICAgICAgICBmdW5jLnBhcmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJv
bShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFyZ3VtZW50RVB0cnNbaV0uc2l6ZSk7CiAgICAgbGV0
IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3JhbSkucnVuRnVuYyhmdW5jKTsKIAotICAgIGlu
bGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUo
Y3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7CisgICAgaW5saW5lZEZyYWdtZW50U2hhZGVyID0g
Y3VycmVudEZyYWdtZW50U2hhZGVyOwogICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxp
bmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChjdXJyZW50RnJhZ21lbnRTaGFkZXIp
KTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdtZW50U2hhZGVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346870</attachid>
            <date>2018-08-09 16:21:48 -0700</date>
            <delta_ts>2018-08-09 17:48:14 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180809162147.patch</filename>
            <type>text/plain</type>
            <size>399152</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzI4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWJlODg0MjNhMjhjN2RlMDNiNWZiNzMzZDBlOTQwYThj
M2I4YmViNS4uNTA5OTQ1NDFhYzQ3OWVkYWJjMTc2ZDkyODczN2UwNzRiZDFiMWFlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjM0NzIwLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzCmluZGV4IDE1ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2
NTguLjQ5YTVmYjY4NjI2YzkwMjQ0ZTg0NjJhZDcxOGZmMWU4NTlmZDYyM2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5q
cyIpOwogbG9hZCgiQ2xvbmVQcm9ncmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMi
KTsKIGxvYWQoIkNvbnN0ZXhwckZvbGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFt
ZXRlci5qcyIpOwogbG9hZCgiQ29udGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5
UmVmRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBA
IC03Nyw3ICs3Niw2IEBAIGxvYWQoIkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVy
bmFsT3JpZ2luLmpzIik7CiBsb2FkKCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVz
LmpzIik7Ci1sb2FkKCJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVu
ZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWxUeXBlLmpzIik7CkBAIC04NSw3ICs4Myw2IEBAIGxvYWQoIkZvbGRD
b25zdGV4cHJzLmpzIik7CiBsb2FkKCJGb3JMb29wLmpzIik7CiBsb2FkKCJGdW5jLmpzIik7CiBs
b2FkKCJGdW5jRGVmLmpzIik7Ci1sb2FkKCJGdW5jSW5zdGFudGlhdG9yLmpzIik7CiBsb2FkKCJG
dW5jUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJGdW5jdGlvbkxpa2VCbG9jay5qcyIpOwogbG9hZCgi
SGlnaFpvbWJpZUZpbmRlci5qcyIpOwpAQCAtOTUsNyArOTIsNiBAQCBsb2FkKCJJbmRleEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkluZmVyVHlwZXNGb3JDYWxsLmpzIik7CiBsb2FkKCJJbmxpbmUu
anMiKTsKIGxvYWQoIklubGluZXIuanMiKTsKLWxvYWQoIkluc3RhbnRpYXRlSW1tZWRpYXRlcy5q
cyIpOwogbG9hZCgiSW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsK
IGxvYWQoIkludHJpbnNpY3MuanMiKTsKQEAgLTExMiw5ICsxMDgsNyBAQCBsb2FkKCJOYW1lQ29u
dGV4dC5qcyIpOwogbG9hZCgiTmFtZUZpbmRlci5qcyIpOwogbG9hZCgiTmFtZVJlc29sdmVyLmpz
Iik7CiBsb2FkKCJOYXRpdmVGdW5jLmpzIik7Ci1sb2FkKCJOYXRpdmVGdW5jSW5zdGFuY2UuanMi
KTsKIGxvYWQoIk5hdGl2ZVR5cGUuanMiKTsKLWxvYWQoIk5hdGl2ZVR5cGVJbnN0YW5jZS5qcyIp
OwogbG9hZCgiTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyIpOwogbG9hZCgiTnVsbExpdGVy
YWwuanMiKTsKIGxvYWQoIk51bGxUeXBlLmpzIik7CkBAIC0xMjUsMTAgKzExOSw2IEBAIGxvYWQo
IlByZXBhcmUuanMiKTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5u
ZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7
Ci1sb2FkKCJQcm90b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbEZ1bmNEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRy
VHlwZS5qcyIpOwogbG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
UmVjdXJzaW9uQ2hlY2tlci5qcyIpOwpAQCAtMTUzLDEwICsxNDMsNyBAQCBsb2FkKCJUcmFwU3Rh
dGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIu
anMiKTsKIGxvYWQoIlR5cGVPclZhcmlhYmxlUmVmLmpzIik7Ci1sb2FkKCJUeXBlUGFyYW1ldGVy
UmV3cml0ZXIuanMiKTsKIGxvYWQoIlR5cGVSZWYuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJsZS5q
cyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlVHJhY2tlci5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5q
cyIpOwogbG9hZCgiVWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFsVHlwZS5qcyIp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwppbmRleCA4
MGFlN2Q5MmE0ZmE2MjY2NmRiMmEyZmY1MjIwZDE0OWE3ZjM4ZTljLi4yMTZhN2UyZTMzZGU5OTFi
MDZhYjYzNmRiNWNmY2FiNDA1ZDhlZTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BdXRvV3JhcHBlci5qcwpAQCAtMzUsMTEgKzM1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIg
ZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBWYXJpYWJsZVJlZi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJh
bWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBWYXJpYWJsZVJlZi53cmFwKG5vZGUp
OwpAQCAtNjAsMTEgKzU1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZp
c2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFw
KG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCmluZGV4IGI1YWUwZmU0OWZjZWRjOGZhNzZhNjY3OTNj
ZmUwY2IxZjA4YjQ1NzEuLmYwNjZhYzMyMGE5ZGNlNDIxZDRmOGVmZDM2MzMzYTI0ZWE3NjJmYmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9u
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
CkBAIC0yNSwxMSArMjUsMTAgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgQ2FsbEV4cHJlc3Np
b24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUs
IGFyZ3VtZW50TGlzdCkKICAgICB7CiAgICAgICAgIHN1cGVyKG9yaWdpbik7CiAgICAgICAgIHRo
aXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlwZUFyZ3Vt
ZW50czsKICAgICAgICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gYXJndW1lbnRMaXN0OwogICAgICAg
ICB0aGlzLmZ1bmMgPSBudWxsOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBmYWxzZTsKQEAgLTM3
LDcxICszNiw0MSBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewog
ICAgIH0KICAgICAKICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBn
ZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICBn
ZXQgYXJndW1lbnRMaXN0KCkgeyByZXR1cm4gdGhpcy5fYXJndW1lbnRMaXN0OyB9CiAgICAgZ2V0
IGlzQ2FzdCgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQogICAgIGdldCByZXR1cm5UeXBlKCkg
eyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQogICAgIAotICAgIHN0YXRpYyByZXNvbHZlKG9y
aWdpbiwgcG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgbmFtZSwgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQorICAg
IHN0YXRpYyByZXNvbHZlKG9yaWdpbiwgcG9zc2libGVPdmVybG9hZHMsIG5hbWUsIGFyZ3VtZW50
TGlzdCwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICB7Ci0gICAgICAgIGxldCBjYWxs
ID0gbmV3IENhbGxFeHByZXNzaW9uKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1l
bnRMaXN0KTsKKyAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBu
YW1lLCBhcmd1bWVudExpc3QpOwogICAgICAgICBjYWxsLmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVu
dFR5cGVzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkp
OwogICAgICAgICBjYWxsLnBvc3NpYmxlT3ZlcmxvYWRzID0gcG9zc2libGVPdmVybG9hZHM7CiAg
ICAgICAgIGlmIChyZXR1cm5UeXBlKQogICAgICAgICAgICAgY2FsbC5zZXRDYXN0RGF0YShyZXR1
cm5UeXBlKTsKLSAgICAgICAgcmV0dXJuIHtjYWxsLCByZXN1bHRUeXBlOiBjYWxsLnJlc29sdmUo
cG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFyZ3VtZW50cyl9
OworICAgICAgICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJs
ZU92ZXJsb2Fkcyl9OwogICAgIH0KICAgICAKLSAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRz
LCB0eXBlUGFyYW1ldGVyc0luU2NvcGUsIHR5cGVBcmd1bWVudHMpCisgICAgcmVzb2x2ZShwb3Nz
aWJsZU92ZXJsb2FkcykKICAgICB7CiAgICAgICAgIGlmICghcG9zc2libGVPdmVybG9hZHMpCiAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJEaWQgbm90IGZpbmQgYW55IGZ1bmN0aW9ucyBuYW1lZCAiICsgdGhpcy5uYW1lKTsKICAgICAg
ICAgCi0gICAgICAgIGxldCBvdmVybG9hZCA9IG51bGw7CiAgICAgICAgIGxldCBmYWlsdXJlcyA9
IFtdOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHR5cGVQYXJhbWV0ZXJzSW5T
Y29wZSkgewotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIFR5cGVW
YXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5
cGVQYXJhbWV0ZXIucHJvdG9jb2wpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBsZXQgc2lnbmF0dXJlcyA9Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlci5wcm90
b2NvbC5wcm90b2NvbERlY2wuc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFyaWFibGUodGhpcy5u
YW1lLCB0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgIGlmICghc2lnbmF0dXJlcykKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJs
b2FkSW1wbChzaWduYXR1cmVzLCB0aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgIGlmIChvdmVybG9hZC5mdW5jKQotICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3Zlcmxv
YWRJbXBsKAorICAgICAgICAgICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKKyAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7CiAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAg
IG92ZXJsb2FkID0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW92ZXJsb2FkKSB7Ci0g
ICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAgICAgICAg
ICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7
Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0g
ICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVk
ICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKLSAgICAgICAgICAgICAgICBpZiAo
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAr
PSAidHlwZSBhcmd1bWVudHMgPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiBhbmQgIjsKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1l
bnRUeXBlcyArICIpIjsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQotICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlICs9IiBhbmQgcmV0dXJuIHR5cGUgIiArIHRoaXMucmV0
dXJuVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpv
aW4oIlxuIikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdp
bi5vcmlnaW5TdHJpbmcsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgbGV0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAg
ICAgICAgbGV0IHR5cGVQYXJhbWV0ZXIgPSBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzW2ld
OwotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIENvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYg
KCF0eXBlUGFyYW1ldGVyLnR5cGUuZXF1YWxzV2l0aENvbW1pdCh0eXBlQXJndW1lbnRUeXBlKSkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmln
aW5TdHJpbmcgKyAiIGNvbnN0ZXhwciB0eXBlIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMg
bm90IGVxdWFsOiBhcmd1bWVudCA9ICIgKyB0eXBlQXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVy
ID0gIiArIHR5cGVQYXJhbWV0ZXIudHlwZSk7CisgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJE
aWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0
aCAiOworICAgICAgICAgICAgbWVzc2FnZSArPSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFy
Z3VtZW50VHlwZXMgKyAiKSI7CisgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQorICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5U
eXBlOworICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpvaW4oIlxuIikKKyAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywg
bWVzc2FnZSk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFy
Z3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5cGUg
PSB0aGlzLmFyZ3VtZW50VHlwZXNbaV07Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9
IG92ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9u
KAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2Fk
LnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9IG92
ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlOwogICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGFyZ3VtZW50VHlwZS5lcXVhbHNXaXRoQ29tbWl0KHBhcmFtZXRlclR5cGUpOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdCAiICsg
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVz
IG5vdCBlcXVhbCBhZnRlciB0eXBlIGFyZ3VtZW50IHN1YnN0aXR1dGlvbjogYXJndW1lbnQgPSAi
ICsgYXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVyID0gIiArIHBhcmFtZXRlclR5cGUpOwpAQCAt
MTEyLDEwICs4MSw3IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgcmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpCiAgICAgewogICAgICAgICB0aGlzLmZ1
bmMgPSBvdmVybG9hZC5mdW5jOwotICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBv
dmVybG9hZC50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGlu
c3RhbmNlb2YgVHlwZSA/IHR5cGVBcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0
eXBlQXJndW1lbnQpOwotICAgICAgICB0aGlzLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVu
dHMgPSB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHM7Ci0gICAgICAgIGxldCByZXN1bHQgPSBvdmVy
bG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAg
ICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRl
eHQpOworICAgICAgICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlOwogICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCByZXR1
cm4gdHlwZSIpOwogICAgICAgICByZXN1bHQgPSByZXN1bHQudmlzaXQobmV3IEF1dG9XcmFwcGVy
KCkpOwpAQCAtMTI1LDExICs5MSwxMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4
cHJlc3Npb24gewogICAgIAogICAgIGJlY29tZUNhc3QocmV0dXJuVHlwZSkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcgVHlwZVJlZih0aGlzLm9yaWdpbiwgdGhpcy5uYW1l
LCB0aGlzLl90eXBlQXJndW1lbnRzKTsKKyAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBU
eXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBl
LnR5cGUgPSByZXR1cm5UeXBlOwogICAgICAgICB0aGlzLl9uYW1lID0gIm9wZXJhdG9yIGNhc3Qi
OwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSB0cnVlOwotICAgICAgICB0aGlzLl90eXBlQXJndW1l
bnRzID0gW107CiAgICAgfQogICAgIAogICAgIHNldENhc3REYXRhKHJldHVyblR5cGUpCkBAIC0x
NDEsOCArMTA2LDYgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsK
ICAgICB0b1N0cmluZygpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMuaXNDYXN0ID8gIm9w
ZXJhdG9yICIgKyB0aGlzLnJldHVyblR5cGUgOiB0aGlzLm5hbWUpICsKLSAgICAgICAgICAgICI8
IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IiArCi0gICAgICAgICAgICAodGhpcy5hY3R1YWxU
eXBlQXJndW1lbnRzID8gIjw8IiArIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyArICI+PiIgOiAi
IikgKwogICAgICAgICAgICAgIigiICsgdGhpcy5hcmd1bWVudExpc3QgKyAiKSI7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9u
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCmluZGV4
IGYwZjAzOWY1NDYyZDA3ODFkODJiMzQ2NGM4NzQ3ODcxNGMwYTE3MzcuLjc0OTU3NjBmMmM1ZDgx
ZDgzOTQ1NmNkZTRjNDU5NzcwYmNjMzMwZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKQEAgLTI1LDE3ICsyNSwxNyBAQAogInVzZSBzdHJpY3Qi
OwogCiAvLyBUaGlzIGFsbG93cyB5b3UgdG8gcGFzcyBzdHJ1Y3RzIGFuZCBhcnJheXMgaW4tcGxh
Y2UsIGJ1dCBpdCdzIGEgbW9yZSBhbm5veWluZyBBUEkuCi1mdW5jdGlvbiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorZnVuY3Rpb24gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50TGlzdCkKIHsKICAgICBsZXQgYXJndW1l
bnRUeXBlcyA9IGFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudHlwZSk7Ci0g
ICAgbGV0IGZ1bmNPckZhaWx1cmVzID0gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCB0cnVlKTsKKyAgICBsZXQgZnVuY09y
RmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50
VHlwZXMsIHRydWUpOwogICAgIGlmICghKGZ1bmNPckZhaWx1cmVzIGluc3RhbmNlb2YgRnVuYykp
IHsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gZnVuY09yRmFpbHVyZXM7Ci0gICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlv
biBjYWxsICIgKyBuYW1lICsgIjwiICsgdHlwZUFyZ3VtZW50cyArICI+KCIgKyBhcmd1bWVudExp
c3QgKyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9p
bigiXG4iKSA6ICIiKSk7CisgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0
aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlvbiBjYWxsICIgKyBuYW1lICsgIigiICsgYXJn
dW1lbnRMaXN0ICsgIikiICsgKGZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1
cmVzLmpvaW4oIlxuIikgOiAiIikpOwogICAgIH0KICAgICBsZXQgZnVuYyA9IGZ1bmNPckZhaWx1
cmVzOwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXS5pbnN0YW50aWF0ZWRUeXBl
OworICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNbaV07CiAgICAgICAgIHR5cGUudmlz
aXQobmV3IFN0cnVjdExheW91dEJ1aWxkZXIoKSk7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tp
XS5lUHRyLmNvcHlGcm9tKGFyZ3VtZW50TGlzdFtpXS5lUHRyLCB0eXBlLnNpemUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCmluZGV4IDhkNTVjNTBkODM2
YzE1NDg2ZmQyNTgwYzU4ZTk2MDZjYWQ1OTZlY2IuLjVkY2E0NjBmYjk2YzE0ODM5Y2I4OWYwNWYx
NzM0ZDQzOWNlOTViNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5q
cwpAQCAtNDMsOCArNDMsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
ICAgIAogICAgICAgICBmb3IgKGxldCB0eXBlIG9mIG5vZGUudHlwZXMudmFsdWVzKCkpCiAgICAg
ICAgICAgICBkb1N0YXRlbWVudCh0eXBlKTsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Yg
bm9kZS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgICAgICBkb1N0YXRlbWVudChwcm90b2Nv
bCk7CiAgICAgICAgIGZvciAobGV0IGZ1bmNzIG9mIG5vZGUuZnVuY3Rpb25zLnZhbHVlcygpKSB7
CiAgICAgICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmNzKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy52aXNpdEZ1bmMoZnVuYyk7CkBAIC01OSw4ICs1Nyw2IEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICBfY2hlY2tTaGFkZXJUeXBlKG5vZGUpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogUmVsYXggdGhlc2UgY2hlY2tzIG9uY2Ugd2UgaGF2ZSBpbXBsZW1lbnRlZCBz
dXBwb3J0IGZvciB0ZXh0dXJlcyBhbmQgc2FtcGxlcnMuCi0gICAgICAgIGlmIChub2RlLnR5cGVQ
YXJhbWV0ZXJzLmxlbmd0aCAhPSAwKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRW50cnkgcG9pbnQgIiArIG5vZGUubmFtZSArICIg
bXVzdCBub3QgaGF2ZSB0eXBlIGFyZ3VtZW50cy4iKTsKICAgICAgICAgbGV0IHNoYWRlckZ1bmMg
PSBub2RlOwogICAgICAgICBzd2l0Y2ggKG5vZGUuc2hhZGVyVHlwZSkgewogICAgICAgICBjYXNl
ICJ2ZXJ0ZXgiOgpAQCAtODQsMTUgKzgwLDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICBpZiAoIWZ1bmMubmFtZS5zdGFydHNXaXRoKCJvcGVyYXRvciIpKQogICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3BlcmF0b3Igb3ZlcmxvYWQgbmFtZTogIiAr
IGZ1bmMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9
IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5
cGUgb2YgZnVuYy5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgIHBhcmFtZXRlclR5cGUudmlz
aXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIE5vZGUudmlzaXQoZnVuYy5yZXR1cm5U
eXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAg
Zm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAg
ICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5v
cmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlciArICIgdG8gb3Bl
cmF0b3IgIiArIGZ1bmMudG9EZWNsU3RyaW5nKCkgKyAiIGlzIG5vdCBpbmZlcnJhYmxlIGZyb20g
dmFsdWUgcGFyYW1ldGVycyIpOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBsZXQgY2hl
Y2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAgICAgICAgICAgbGV0IG51bUV4cGVjdGVkUGFyYW1l
dGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIgOiAxOwogICAgICAgICAgICAgaWYgKGZ1bmMucGFy
YW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzKQpAQCAtMTE1LDExICsxMDIs
MTAgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgaWYgKCFn
ZXR0ZXJGdW5jcykKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0
dGVyLCBidXQgZGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbiBuYW1lZCAiICsgZ2V0dGVyTmFtZSAr
ICIgdG8gbWF0Y2ggIiArIGZ1bmMubmFtZSk7CiAgICAgICAgICAgICBsZXQgYXJndW1lbnRUeXBl
cyA9IGZ1bmMucGFyYW1ldGVyVHlwZXMuc2xpY2UoMCwgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzIC0g
MSk7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRl
ckZ1bmNzLCBbXSwgYXJndW1lbnRUeXBlcywgbnVsbCk7CisgICAgICAgICAgICBsZXQgb3Zlcmxv
YWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRlckZ1bmNzLCBhcmd1bWVudFR5cGVzLCBudWxs
KTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQg
ZnVuY3Rpb24gbmFtZWQgIiArIGZ1bmMubmFtZSArICIgd2l0aCBhcmd1bWVudHMgIiArIGFyZ3Vt
ZW50VHlwZXMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgb3Zl
cmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0
VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigK
LSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51
bmlmaWNhdGlvbkNvbnRleHQpOworICAgICAgICAgICAgbGV0IHJlc3VsdFR5cGUgPSBvdmVybG9h
ZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdFR5cGUuZXF1YWxzKHZh
bHVlVHlwZSkpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0
eXBlIChnZXR0ZXIgYXQgIiArIG92ZXJsb2FkLmZ1bmMub3JpZ2luLm9yaWdpblN0cmluZyArICIg
c2F5cyAiICsgcmVzdWx0VHlwZSArICIgd2hpbGUgdGhpcyBzZXR0ZXIgc2F5cyAiICsgdmFsdWVU
eXBlICsgIikiKTsKICAgICAgICAgfTsKQEAgLTIxMSwyMyArMTk3LDYgQEAgY2xhc3MgQ2hlY2tl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2Nv
bERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNp
Z25hdHVyZXMpIHsKLSAgICAgICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5
cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAgICAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5cGUg
b2Ygc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzKQotICAgICAgICAgICAgICAgIHBhcmFtZXRlclR5
cGUudmlzaXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgICAgICBOb2RlLnZpc2l0KHNp
Z25hdHVyZS5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFj
a2VyKTsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygc2lnbmF0dXJlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXModHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IFdUeXBl
RXJyb3IodHlwZVBhcmFtZXRlci5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXJhbWV0ZXIg
dG8gcHJvdG9jb2wgc2lnbmF0dXJlIG5vdCBpbmZlcnJhYmxlIGZyb20gdmFsdWUgcGFyYW1ldGVy
cyIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXMobm9kZS50eXBlVmFyaWFibGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKHNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUHJvdG9jb2wncyB0eXBl
IHZhcmlhYmxlICgiICsgbm9kZS5uYW1lICsgIikgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmU6
ICIgKyBzaWduYXR1cmUpOwotICAgICAgICAgICAgdGhpcy5fY2hlY2tPcGVyYXRvck92ZXJsb2Fk
KHNpZ25hdHVyZSwgbmFtZSA9PiBub2RlLnNpZ25hdHVyZXNCeU5hbWUobmFtZSkpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0RW51bVR5cGUobm9kZSkKICAgICB7CiAgICAgICAg
IG5vZGUuYmFzZVR5cGUudmlzaXQodGhpcyk7CkBAIC0yNzgsMjkgKzI0NywxMiBAQCBjbGFzcyBD
aGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnVtIGRvZXMgbm90IGhhdmUgYSBtZW1iZXIg
d2l0aCB0aGUgdmFsdWUgemVybyIpOwogICAgIH0KICAgICAKLSAgICBfY2hlY2tUeXBlQXJndW1l
bnRzKG9yaWdpbiwgdHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBsZXQgYXJndW1lbnRJc1R5cGUgPSB0eXBlQXJndW1lbnRzW2ldIGluc3RhbmNlb2Yg
VHlwZTsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnRzW2ldLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgaWYgKGFyZ3VtZW50SXNUeXBlKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0uaW5oZXJpdHModHlwZVBhcmFtZXRlcnNbaV0u
cHJvdG9jb2wpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIlR5
cGUgYXJndW1lbnQgZG9lcyBub3QgaW5oZXJpdCBwcm90b2NvbDogIiArIHJlc3VsdC5yZWFzb24p
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVh
bHNXaXRoQ29tbWl0KHR5cGVQYXJhbWV0ZXJzW2ldLnR5cGUpKQotICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgdHlwZSBm
b3IgY29uc3RleHByIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBpZiAoIW5vZGUudHlwZSkKICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHlwZSByZWZlcmVuY2Ugd2l0aG91dCBhIHR5cGUg
aW4gY2hlY2tlcjogIiArIG5vZGUgKyAiIGF0ICIgKyBub2RlLm9yaWdpbik7CiAgICAgICAgIGlm
ICghKG5vZGUudHlwZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpKQogICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9jaGVja1R5cGVBcmd1bWVudHMobm9kZS5v
cmlnaW4sIG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywgbm9kZS50eXBlQXJndW1lbnRzKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkKQEAgLTQyNiw4ICszNzgsOCBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIAogICAgICAgICB0cnkgewog
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAg
ICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMsIHRoaXMuX2N1
cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5nZXRG
dW5jTmFtZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlc10sIG51bGwpOworICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBv
c3NpYmxlR2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuZ2V0RnVuY05hbWUsIFtu
b2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0cmFBcmdUeXBlc10sIG51
bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yR2V0ID0gcmVzdWx0LmNhbGw7CiAgICAgICAg
ICAgICBub2RlLnJlc3VsdFR5cGVGb3JHZXQgPSByZXN1bHQucmVzdWx0VHlwZTsKICAgICAgICAg
fSBjYXRjaCAoZSkgewpAQCAtNDQwLDggKzM5Miw4IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgICAgIGxldCBiYXNlRm9yQW5kID0gYmFzZVR5cGUuYXJndW1lbnRG
b3JBbmRPdmVybG9hZChub2RlLm9yaWdpbiwgbm9kZS5iYXNlKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVBbmRPdmVybG9hZHMsIHRoaXMuX2N1cnJl
bnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5j
TmFtZSwgW10sIFtiYXNlRm9yQW5kLCAuLi5leHRyYUFyZ3NdLCBbdHlwZUZvckFuZCwgLi4uZXh0
cmFBcmdUeXBlc10sCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVB
bmRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5jTmFtZSwgW2Jhc2VGb3JB
bmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKICAgICAg
ICAgICAgICAgICBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvckFuZCA9IHJlc3VsdC5j
YWxsOwogICAgICAgICAgICAgbm9kZS5yZXN1bHRUeXBlRm9yQW5kID0gcmVzdWx0LnJlc3VsdFR5
cGUudW5pZnlOb2RlLnJldHVyblR5cGVGcm9tQW5kT3ZlcmxvYWQobm9kZS5vcmlnaW4pOwpAQCAt
NDY1LDkgKzQxNyw5IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3Vs
dCB0eXBlIHJlc29sdmVkIGJ5LXZhbHVlICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yR2V0ICsgIikg
ZG9lcyBub3QgbWF0Y2ggcmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktcG9pbnRlciAoIiArIG5vZGUu
cmVzdWx0VHlwZUZvckFuZCArICIpIik7CiAgICAgICAgIAogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsIHRoaXMuX2N1cnJlbnRT
dGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFt
ZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CisgICAgICAgIGxldCByZXN1bHQg
PSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAorICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuc2V0RnVuY05h
bWUsIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0cmFB
cmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxG
b3JTZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdFR5cGUu
ZXF1YWxzKGJhc2VUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihu
b2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZXN1bHQgdHlwZSBvZiBzZXR0ZXIgIiArIHJlc3Vs
dC5jYWxsLmZ1bmMgKyAiIGlzIG5vdCB0aGUgYmFzZSB0eXBlICIgKyBiYXNlVHlwZSk7CkBAIC02
NzUsNyArNjI3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAg
IHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1l
bnRzID0gbm9kZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50
LnZpc2l0KHRoaXMpKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50
TGlzdC5tYXAoYXJndW1lbnQgPT4gewogICAgICAgICAgICAgbGV0IG5ld0FyZ3VtZW50ID0gYXJn
dW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgICAgICBpZiAoIW5ld0FyZ3VtZW50KQpAQCAtNjg3
LDcgKzYzOCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYg
KG5vZGUucmV0dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlz
KTsKIAotICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMsIHRoaXMuX2N1cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVu
dHMpOworICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwppbmRleCAxZTVhZDY2MTVi
MzkyNDNjMDZhMGM0NWFlZjc2MzRmNjM3NjUzNzUwLi4xZmQ1MjMxMTE0NDY1MmJhNmY4OGVjYjEy
NmI3ODU3OWNjN2I2ODViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Db25zdGV4cHJGb2xkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Q29uc3RleHByRm9sZGVyLmpzCkBAIC0zNCw3ICszNCw2IEBAIGNsYXNzIENvbnN0ZXhwckZvbGRl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5v
ZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKG5vZGUubmFtZSA9PSAib3BlcmF0b3ItIgotICAg
ICAgICAgICAgJiYgIW5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgKICAgICAgICAgICAgICYmIG5v
ZGUuYXJndW1lbnRMaXN0Lmxlbmd0aCA9PSAxCiAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50
TGlzdFswXS51bmlmeU5vZGUuaXNDb25zdGV4cHIKICAgICAgICAgICAgICYmIG5vZGUuYXJndW1l
bnRMaXN0WzBdLnVuaWZ5Tm9kZS5uZWdDb25zdGV4cHIpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2MxODI2ZWQ1NWYzZmU1NmY3ZTBlZDJhMDNkZmRhMDI4
ZGE1YjM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIENvbnN0ZXhwclR5cGVQYXJh
bWV0ZXIgZXh0ZW5kcyBWYWx1ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBl
KQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2lu
OwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7
Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0K
LSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZSgpIHsg
cmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCB2YXJJ
c0xWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxlVW5pZnko
dW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGlu
c3RhbmNlb2YgVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlm
ICghdGhpcy50eXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZSkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhpcy5fdHlw
ZVZhcmlhYmxlVW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAg
ICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3Ro
ZXIpOwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0g
ICAgdmVyaWZ5QXNQYXJhbWV0ZXIodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJh
bFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlw
ZS5qcwppbmRleCAxMjkxNGRhMzEzN2ZkNmI5MGZlZGE3MjU4NjI3ZWZmZmZiZDRlNTQxLi5hOWQ3
NDUzMzNlZDhmZjYxZWM2ZWZjZDI4MjdlMDg0OTNlNmFlNGE5IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwpAQCAtMzIsNyArMzIs
NyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgICAgICBzdXBl
cigpOwogICAgICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICAgICAgdGhp
cy5fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBU
eXBlUmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1lLCBbXSk7CisgICAgICAgICAg
ICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4sIGNvbmZpZy5wcmVmZXJy
ZWRUeXBlTmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGdldCBvcmlnaW4oKSB7
IHJldHVybiB0aGlzLl9vcmlnaW47IH0KQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gY3JlYXRl
TGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICBwcmVwYXJlVG9WZXJpZnkodW5pZmljYXRpb25D
b250ZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlv
bkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcyBpbnN0YW5jZW9m
IFR5cGVWYXJpYWJsZSB8fCByZWFsVGhpcy5pc0xpdGVyYWwpIHsKKyAgICAgICAgICAgIGlmIChy
ZWFsVGhpcy5pc0xpdGVyYWwpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAg
ICAgICAgICAgICAgICAgICBpZiAocmVhbFRoaXMudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCB0
aGlzLnByZWZlcnJlZFR5cGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwpAQCAtNzcsMTQgKzc3LDYgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUo
Y29uZmlnKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJhbFR5cGUg
c2hvdWxkIG5ldmVyIGJlIHVzZWQgYXMgYSB0eXBlIHBhcmFtZXRlciIpOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5k
KHRoaXMpOwotICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmVxdWFscyh0aGlzLnByZWZlcnJlZFR5
cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0g
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGNvbW1pdFVuaWZpY2F0aW9uKHVuaWZpY2F0aW9u
Q29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgdGhpcy50eXBlID0gdW5pZmljYXRpb25D
b250ZXh0LmZpbmQodGhpcykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKaW5kZXggMzBlNmIw
MzFhNmRkNjY1OTc0MDdmM2Y2YjdmZTcxM2VkOGZkY2M0YS4uMDI5NDc4MmMwZTc5M2FhMzc5NTcz
ZjUyODhjNmVlOWU4ZjkwMDY5YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCkBAIC0zNSw4ICszNSw2IEBAIGNsYXNzIEV4cHJlc3Np
b25GaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdEZ1bmMobm9kZSkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgIGZvciAobGV0
IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQ
YXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2Rl
LnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQpA
QCAtNDYsMTEgKzQ0LDYgQEAgY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Nh
bGxiYWNrKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QXNzaWdubWVudChub2Rl
KQogICAgIHsKICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxNzJkOThkMWUyYzAwOGVkYjVkODE4M2Y1ZWVm
ZDY3OGRjOGVlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBmbGF0dGVuUHJv
dG9jb2xFeHRlbmRzKHByb2dyYW0pCi17Ci0gICAgbGV0IHZpc2l0aW5nID0gbmV3IFZpc2l0aW5n
U2V0KCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZmxhdHRlbihwcm90b2NvbCkKLSAgICB7Ci0gICAg
ICAgIGlmICghcHJvdG9jb2wuZXh0ZW5kcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAotICAgICAgICB2aXNpdGluZy5kb1Zpc2l0KHByb3RvY29sLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2YgcHJvdG9jb2wuZXh0ZW5kcykgewotICAgICAgICAg
ICAgICAgIHBhcmVudCA9IHBhcmVudC5wcm90b2NvbERlY2w7Ci0gICAgICAgICAgICAgICAgZmxh
dHRlbihwYXJlbnQpOwotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBwYXJl
bnQuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2lnbmF0dXJlID0g
c2lnbmF0dXJlLnZpc2l0KAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN1YnN0aXR1dGlv
bihbcGFyZW50LnR5cGVWYXJpYWJsZV0sIFtwcm90b2NvbC50eXBlVmFyaWFibGVdKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHByb3RvY29sLmFkZChuZXdTaWduYXR1cmUpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb3RvY29sLmV4dGVuZHMgPSBbXTsK
LSAgICAgICAgfSk7Ci0gICAgfQotICAgIAotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dy
YW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBmbGF0dGVuKHByb3RvY29sKTsKLX0KLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCmluZGV4IGU2
YzU3MzdkZTE2YTRhNjQ4ZDg1YWRjYTE2OTM0NTRiNjE0MDcyN2UuLmQ1ZDFiMTUyMzBmMDljMTBh
MGJjMTI1ZjAzY2Y1YWQ0Y2UzZGQyZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbG9hdExpdGVyYWwuanMKQEAgLTMwLDcgKzMwLDcgQEAgbGV0IEZsb2F0TGl0ZXJhbCA9
IGNyZWF0ZUxpdGVyYWwoewogICAgIAogICAgIG5lZ0NvbnN0ZXhwcihvcmlnaW4pCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IEludExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CisgICAg
ICAgIHJldHVybiBuZXcgRmxvYXRMaXRlcmFsKG9yaWdpbiwgLXRoaXMudmFsdWUpOwogICAgIH0s
CiAgICAgCiAgICAgY3JlYXRlVHlwZShvcmlnaW4sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmMuanMKaW5kZXggNmZhN2M5ZDFiNmY0Yjk1ODMzNTk4MWMyNzI4YmU4NjVhNTZl
NzNhZS4uNmZjNzMzMjc2MWQ0NjNjMzVhOGM0MGMyYTc2ZjJmNGIzNmMyMzIyMyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAidXNlIHN0cmlj
dCI7CiAKIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNo
YWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewogICAgICAgICBpZiAoIShvcmlnaW4g
aW5zdGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG9yaWdpbjogIiArIG9yaWdpbik7CkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZ1bmMgZXh0ZW5k
cyBOb2RlIHsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9u
YW1lID0gbmFtZTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7Ci0gICAg
ICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMu
X3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBpc0Nhc3Q7
CiAgICAgICAgIHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwpAQCAtNDgsOCArNDcsNiBA
QCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAg
IGdldCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAgIGdldCB0
eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0gICAgZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKSB7IHJldHVybiB0aGlzLnR5cGVQYXJh
bWV0ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJz
OyB9CiAgICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLm1h
cChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9CiAgICAgZ2V0IGlzQ2FzdCgpIHsgcmV0
dXJuIHRoaXMuX2lzQ2FzdDsgfQpAQCAtNjUsOSArNjIsOSBAQCBjbGFzcyBGdW5jIGV4dGVuZHMg
Tm9kZSB7CiAgICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCiAgICAgICAgICAgICByZXN1bHQg
Kz0gdGhpcy5zaGFkZXJUeXBlICsgIiAiOwogICAgICAgICBpZiAodGhpcy5pc0Nhc3QpCi0gICAg
ICAgICAgICByZXN1bHQgKz0gIm9wZXJhdG9yPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4g
IiArIHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3IgIiAr
IHRoaXMucmV0dXJuVHlwZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9IHRo
aXMucmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRl
cnMgKyAiPiI7CisgICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsgIiAiICsg
dGhpcy5uYW1lOwogICAgICAgICByZXR1cm4gcmVzdWx0ICsgIigiICsgdGhpcy5wYXJhbWV0ZXJz
ICsgIikiOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVm
LmpzCmluZGV4IDExZmEwOTJlM2IyMjc4ZTIxNWEwYTY3ZTk1MWUxN2RhYmExMzZhODMuLmNhMDU5
N2ZjZDI5NGRmYWI2MDQ0MjE0ZTA3NTRmN2VmOTQ0Yjg3OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRnVuY0RlZi5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJpY3QiOwog
CiBjbGFzcyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0
LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwg
cGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3Vw
ZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywg
aXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5U
eXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLl9ib2R5
ID0gYm9keTsKICAgICAgICAgdGhpcy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICB9CkBAIC0z
Niw4ICszNiw2IEBAIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKICAgICAKICAgICByZXdy
aXRlKHJld3JpdGVyKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxl
bmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgYW4gdW5p
bnN0YW50aWF0ZWQgZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHRoaXMu
X3JldHVyblR5cGUudmlzaXQocmV3cml0ZXIpOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0g
dGhpcy5fcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChyZXdyaXRl
cikpOwogICAgICAgICB0aGlzLl9ib2R5ID0gdGhpcy5ib2R5LnZpc2l0KHJld3JpdGVyKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3Iu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTI4NjJhNmRkODU2NWVlMzdlNDIwNjMxZDdh
ZjcwZDUyMjdlNTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jSW5zdGFudGlhdG9y
IHsKLSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZ3Jh
bSA9IHByb2dyYW07Ci0gICAgICAgIHRoaXMuX2luc3RhbmNlcyA9IG5ldyBNYXAoKTsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IGluc3RhbmNlcygpIHsgcmV0dXJuIHRoaXMuX2luc3RhbmNlczsgfQot
ICAgIAotICAgIC8vIFJldHVybnMgYSBGdW5jIG9iamVjdCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZp
ZXMgYSBwYXJ0aWN1bGFyIHN5c3RlbSBvZiB0eXBlIGFyZ3VtZW50cy4gWW91IG11c3QKLSAgICAv
LyBpbnRhbnRpYXRlIHRoaW5ncyB3aXRoIGNvbmNyZXRlIHR5cGVzLCBiZWNhdXNlIHRoaXMgY29k
ZSBjYXN1YWxseSBhc3N1bWVzIHRoaXMuIE5vdGUgdGhhdCB0aGlzCi0gICAgLy8gd2lsbCByZXR1
cm4gYSBkaWZmZXJlbnQgZnVuYyBmcm9tIGBmdW5jYCBubyBtYXR0ZXIgd2hhdC4gVGhpcyBlbnN1
cmVzIHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAgICAvLyByZXR1cm5lZCBmdW5jIGZvciByZXdyaXRl
cyB0aGF0IGluc3RhbnRpYXRlIHR5cGVzIHdpdGhvdXQgZGVzdHJveWluZyBvdXIgYWJpbGl0eSB0
byBkbyBvdmVybG9hZAotICAgIC8vIHJlc29sdXRpb25zIG9uIHRoZSBvcmlnaW5hbCBQcm9ncmFt
LgotICAgIGdldFVuaXF1ZShmdW5jLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgY2xh
c3MgRmluZFR5cGVWYXJpYWJsZSBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICAgICAgdmlzaXRU
eXBlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdHlw
ZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgdHlw
ZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgICAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgdmFyaWFibGU6ICIgKyBub2RlICsgIiB3aGVuIGlu
c3RhbnRpYXRpbmcgIiArIGZ1bmMgKyAiIHdpdGggYXJndW1lbnRzICIgKyB0eXBlQXJndW1lbnRz
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1l
bnQgb2YgdHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdChuZXcg
RmluZFR5cGVWYXJpYWJsZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW5jZXMgPSB0
aGlzLl9pbnN0YW5jZXMuZ2V0KGZ1bmMpOwotICAgICAgICBpZiAoIWluc3RhbmNlcykKLSAgICAg
ICAgICAgIHRoaXMuX2luc3RhbmNlcy5zZXQoZnVuYywgaW5zdGFuY2VzID0gW10pOwotICAgICAg
ICAKLSAgICAgICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7Ci0gICAgICAgICAg
ICBsZXQgb2sgPSB0cnVlOwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc3RhbmNlLnR5cGVB
cmd1bWVudHMubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS50
eXBlQXJndW1lbnRzW2ldLmVxdWFscyh0eXBlQXJndW1lbnRzW2ldKSkgewotICAgICAgICAgICAg
ICAgICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmZ1bmM7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCB0aGlzSW5zdGFudGlhdG9yID0gdGhpczsKLSAg
ICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24gZXh0ZW5kcyBT
dWJzdGl0dXRpb24gewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdENhbGxF
eHByZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFdl
IG1heSBoYXZlIHRvIHJlLXJlc29sdmUgdGhlIGZ1bmN0aW9uIGNhbGwsIGlmIGl0IHdhcyBhIGNh
bGwgdG8gYSBwcm90b2NvbAotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZS4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0LmZ1bmMgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwocmVz
dWx0LnBvc3NpYmxlT3ZlcmxvYWRzLCByZXN1bHQudHlwZUFyZ3VtZW50cywgcmVzdWx0LmFyZ3Vt
ZW50VHlwZXMsIHJlc3VsdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFv
dmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
b3VsZCBub3QgcmVzb2x2ZSBwcm90b2NvbCBzaWduYXR1cmUgZnVuY3Rpb24gY2FsbCBkdXJpbmcg
aW5zdGFudGlhdGlvbjogIiArIHJlc3VsdC5mdW5jICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0
aCA/ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwot
ICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYXRpdmVG
dW5jSW5zdGFuY2UgPSB0aGlzSW5zdGFudGlhdG9yLmdldFVuaXF1ZShyZXN1bHQuZnVuYywgcmVz
dWx0LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbihm
dW5jLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLQotICAgICAgICBjbGFzcyBJbnN0
YW50aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgSW5zdGFudGlhdGVJbW1lZGlh
dGVzIHsKLSAgICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGNlcnRhaW4gdGhpbmdz
IHRoYXQgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQsIGJ1dCB0aGF0IHdlIGNhbm5vdAotICAgICAg
ICAgICAgICAgIC8vIGluc3RhbnRpYXRlIHdpdGhvdXQgYnJlYWtpbmcgY2hhaW4taW5zdGFudGlh
dGlvbnMgKGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgZ2VuZXJpYwotICAgICAgICAgICAgICAgIC8v
IGZ1bmN0aW9uIHNvIHRoZXJlZm9yZSB0aGUgaW5zdGFudGlhdGVkIGdlbmVyaWMgZnVuY3Rpb24g
bXVzdCBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIC8vICh1bmluc3Rh
bnRpYXRlZCkgdHlwZXMgdG8gaW5zdGFudGlhdGUgdGhlIGdlbmVyaWMgZnVuY3Rpb24gdGhhdCBp
dCBjYWxscykuCi0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lv
bigKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
QXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJn
dW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSB0aGlzLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9IEFycmF5
LmZyb20obm9kZS5hcmd1bWVudFR5cGVzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0Nh
c3QpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2RlLnJldHVyblR5
cGUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gQXJyYXku
ZnJvbShub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRpb25JbnN0YW50
aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRlIHsK
LSAgICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGxldCByZXR1cm5UeXBlID0gZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlv
bik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHJldHVyblR5cGUudmlzaXQoaW5zdGFu
dGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IGZ1bmMu
cGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24p
KTsKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5tYXAocGFyYW1ldGVy
ID0+IHBhcmFtZXRlci52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKTsKLSAgICAgICAgICAg
ICAgICBsZXQgYm9keSA9IGZ1bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAg
ICAgICAgIGJvZHkgPSBib2R5LnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKAotICAgICAgICAgICAgICAgICAgICBmdW5jLm9y
aWdpbiwgZnVuYy5uYW1lLCByZXR1cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgYm9keSwgZnVuYy5p
c0Nhc3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhmdW5jKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuY0luc3RhbmNl
KAotICAgICAgICAgICAgICAgICAgICBmdW5jLAotICAgICAgICAgICAgICAgICAgICBmdW5jLnJl
dHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMp
LAotICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBw
YXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMp
KSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbnN0YW50aWF0ZUlt
cGxlbWVudGF0aW9uKHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChuZXcgSW5zdGFudGlhdGUoKSk7
Ci0gICAgICAgIHJlc3VsdGluZ0Z1bmMudW5pbnN0YW50aWF0ZWRSZXR1cm5UeXBlID0gZnVuYy5y
ZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgIGxldCBpbnN0YW5jZSA9IHtm
dW5jOiByZXN1bHRpbmdGdW5jLCB0eXBlQXJndW1lbnRzfTsKLSAgICAgICAgaW5zdGFuY2VzLnB1
c2goaW5zdGFuY2UpOwotICAgICAgICByZXR1cm4gcmVzdWx0aW5nRnVuYzsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JD
YWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwu
anMKaW5kZXggNDQ2YjM1MWRhNTcxNWM2OGEzNWQ3Njk3OTY5ZDY5OGVjNzNlNzRmOC4uNjA0OTE1
MzYyNTFkMDliY2UwM2ExNGVkNjc3NTIyYTAyZDEzYTY0MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKQEAgLTI0LDE5ICsyNCwx
MSBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1
bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCitmdW5jdGlvbiBp
bmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogewotICAg
IGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCAmJiB0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBmdW5j
LnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3Zl
cmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1l
bnRzIChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVu
Yy50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBpZiAoYXJndW1lbnRUeXBlcy5s
ZW5ndGggIT0gZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJl
OiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIGFy
Z3VtZW50cyAocGFzc2VkICIgKyBhcmd1bWVudFR5cGVzLmxlbmd0aCArICIsIHJlcXVpcmUgIiAr
IGZ1bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKLSAgICBsZXQgdW5pZmljYXRpb25Db250
ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChmdW5jLnR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJl
c29sdXRpb24pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7
ICsraSkgewotICAgICAgICBsZXQgYXJndW1lbnQgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAg
ICBsZXQgcGFyYW1ldGVyID0gZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAgaWYgKCFh
cmd1bWVudC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHBhcmFtZXRlcikpCi0gICAgICAgICAg
ICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJU
eXBlIGFyZ3VtZW50ICMiICsgKGkgKyAxKSArICIgZm9yIHBhcmFtZXRlciAiICsgcGFyYW1ldGVy
Lm5hbWUgKyAiIGRvZXMgbm90IG1hdGNoIChwYXNzZWQgIiArIGFyZ3VtZW50ICsgIiwgcmVxdWly
ZSAiICsgcGFyYW1ldGVyICsgIikiKX07Ci0gICAgfQorICAgIGxldCB1bmlmaWNhdGlvbkNvbnRl
eHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBh
cmd1bWVudFR5cGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIGlmICghYXJndW1lbnRUeXBlc1tp
XSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBhcmd1bWVudCB0eXBlIGF0IGkg
PSAiICsgaSk7CkBAIC00OCwxNiArNDAsNiBAQCBmdW5jdGlvbiBpbmZlclR5cGVzRm9yQ2FsbChm
dW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogICAgIGxldCB2
ZXJpZmljYXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7CiAgICAgaWYg
KCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQogICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5l
dyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsIHZlcmlmaWNhdGlvblJlc3VsdC5yZWFz
b24pfTsKLSAgICBsZXQgc2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzID0gIXR5cGVBcmd1bWVudHMu
bGVuZ3RoOwotICAgIGlmIChzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMpCi0gICAgICAgIHR5cGVB
cmd1bWVudHMgPSBbXTsKLSAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMudHlwZVBh
cmFtZXRlcnMpIHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudCA9IHVuaWZpY2F0aW9uQ29udGV4
dC5maW5kKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICBpZiAodHlwZUFyZ3VtZW50ID09IHR5cGVQ
YXJhbWV0ZXIpCi0gICAgICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29s
dXRpb25GYWlsdXJlKGZ1bmMsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlciArICIg
ZGlkIG5vdCBnZXQgYXNzaWduZWQgYSB0eXBlIil9OwotICAgICAgICBpZiAoc2hvdWxkQnVpbGRU
eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50cy5wdXNoKHR5cGVBcmd1bWVu
dCk7Ci0gICAgfQotICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0LCB0eXBlQXJn
dW1lbnRzfTsKKyAgICByZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dH07CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwppbmRleCBmMDI4NzNiZDI3M2Q5MTBi
M2RmMDRmZDJhNTFhM2M3YzBhNDY3Y2VmLi4wOTA3NDY5OTI2ZjhjMDdkNTMzNGJiMDMwN2RkMzUx
ODViOGU1MjNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCkBAIC0y
OCwxOCArMjgsMTMgQEAgZnVuY3Rpb24gaW5saW5lKHByb2dyYW0pCiB7CiAgICAgZm9yIChsZXQg
ZnVuY0xpc3Qgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgZm9yIChs
ZXQgZnVuYyBvZiBmdW5jTGlzdCkgewotICAgICAgICAgICAgaWYgKCFmdW5jLnR5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0YW50
aWF0b3IuZ2V0VW5pcXVlKGZ1bmMsIFtdKQotICAgICAgICAgICAgICAgIF9pbmxpbmVGdW5jdGlv
bihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQoZnVuYykpOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1Nl
dChmdW5jKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKIGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlv
bihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKIHsKLSAgICBpZiAoZnVuYy50eXBlUGFyYW1ldGVy
cy5sZW5ndGgpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGlubGluZSBmdW5jdGlv
biB0aGF0IGhhcyB0eXBlIHBhcmFtZXRlcnMiKTsKICAgICBpZiAoZnVuYy5pbmxpbmVkIHx8IGZ1
bmMuaXNOYXRpdmUpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTU1LDE0ICs1MCwxMCBAQCBm
dW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgdmlzaXRpbmcpCiAgICAgZnVu
Yy5pbmxpbmVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihw
cm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9p
bnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFt
ZSwgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7Ci0gICAgbGV0IG92
ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5h
bWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBv
aW50KTsKKyAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29s
dmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5
UG9pbnQpOwogICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgcmV0dXJuIG92ZXJsb2Fk
LmZhaWx1cmVzOwotICAgIGlmICghb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycykKLSAgICAg
ICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7Ci0gICAgbGV0IGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0
YW50aWF0b3IuZ2V0VW5pcXVlKG92ZXJsb2FkLmZ1bmMsIG92ZXJsb2FkLnR5cGVBcmd1bWVudHMp
OwotICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQob3Zl
cmxvYWQuZnVuYykpOwotICAgIHJldHVybiBmdW5jOworICAgIHJldHVybiBvdmVybG9hZC5mdW5j
OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKaW5kZXggNDkxZWYz
ZTIyMWZjMDYzMThlZTAzNjdhMzgxNjk5ZTU3MjNiZmU1YS4uZDkwNmY3NmRkNTMzZTZkZTZlMzVj
YWRmNDBiMzQxYzAxOTM1Zjg2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvSW5saW5lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmVyLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIElubGluZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgICAgIGlmIChyZXN1bHQubmF0aXZlRnVuY0luc3RhbmNlKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZS5m
dW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRoaXMuX3Byb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1l
bnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1bmM7CiAgICAgICAgICAgICBp
ZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhw
ZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAgICAgIF9pbmxpbmVGdW5jdGlv
bih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEzNDhhYmMxMjc2OTZiNmVlMzFl
MGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBJbnN0YW50aWF0ZUltbWVk
aWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewot
ICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICBpZiAoIW5v
ZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50
cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBlIGRvZXMgbm90
IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgiICsgdHlwZS5jb25zdHJ1Y3Rv
ci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50eXBlQXJndW1lbnRzKS52aXNp
dChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmVmZXJlbmNlVHlw
ZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCA5MzNkZmUwMTEzMDJi
MGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi5kNjM2ODg5OTdlMDdmYjk3NTRmZTVkMjI0Y2Jh
MjlhOTVkZDZlMDg5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAvLyBG
b3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVjbGFyZWQgdXNpbmcgImludCIg
cmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAgICAgIC8vIHVzZSAiaW50IiBo
ZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkgYXJlIHRoZSBzYW1lIHR5cGUu
CiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB0
eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0
aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNCaXR3aXNlRXF1aXZhbGVudChs
ZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0IGRvdWJsZUFycmF5ID0gbmV3
IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5MyArNDcsMzE4IEBAIGNsYXNzIEludHJpbnNpY3Mg
ewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yLCBudW1i
ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29u
c3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsKKyAgICAgICAgICAg
IHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0gICAgICAgICAgICB0eXBlID0+
IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0
eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRW
YWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09
PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVy
LCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBl
LmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVl
IHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsgCi0g
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7CisgICAg
ICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQorICAgICAgICB7CisgICAgICAgICAgICAv
LyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KKyAgICAgICAgICAgIGlmIChO
dW1iZXIuaXNOYU4obnVtYmVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyCisgICAg
ICAgICAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgICAgIGlmIChudW1iZXIgPCAtNjU1MDQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICAgICAg
ICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8IE1hdGgucG93KDIsIC0yNCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIg
PiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTA7CisgICAgICAg
ICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEpOworICAgICAgICAgICAg
bGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAg
ICAgICAgICBkb3VibGVBcnJheVswXSA9IG51bWJlcjsKKyAgICAgICAgICAgIGxldCBzaWduID0g
dWludEFycmF5WzddICYgMHg4MDsKKyAgICAgICAgICAgIGxldCBleHBvbmVudCA9ICgodWludEFy
cmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKKyAg
ICAgICAgICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYgMHgwZikgPDwgNikg
fCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKIAotICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQzMjw+IiwKLSAgICAgICAgICAgIHR5
cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDMyID0gdHlwZTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5S
ZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1
ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBl
LmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSA+Pj4g
MCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+
ICh2YWx1ZSArIDEpID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAo
YSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUg
Pj4+IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgeyAKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmZmZmZjsgKytpKQotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBp
LCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7CisgICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7CisgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1aW50ODw+IiwKLSAgICAgICAgICAg
IHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDggPSB0eXBlOwotICAgICAgICAg
ICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIg
PSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQo
dmFsdWUgJiAweGZmLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAg
dHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKLSAgICAgICAgICAg
ICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQotICAgICAgICAgICAgICAgICAgICAgICAg
eWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IDA7CiAKKyAgICAgICAgICAgIHVp
bnRBcnJheVs3XSB8PSBzaWduOworICAgICAgICAgICAgdWludEFycmF5WzddIHw9IChleHBvbmVu
dCA+Pj4gNCk7CisgICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAm
IDB4ZjApOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4gNik7
CisgICAgICAgICAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMp
OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07CisgICAg
ICAgIH0KKyAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIHR5cGVkZWYgZmxvYXQzMjw+IiwKKyAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB2b2lk
IiwKICAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMuZmxvYXQgPSB0
eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoTWF0
aC5mcm91bmQodmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURl
ZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwot
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+
IHZhbHVlOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZs
b2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICB0aGlzLnZvaWQgPSB0eXBlOworICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7CisgICAg
ICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsKICAgICAg
ICAgICAgIH0pOwotCisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIGJvb2w8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYg
Ym9vbCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLmJvb2wg
PSB0eXBlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURl
ZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIGZhbHNl
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMih1aW50MzIpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiBpbnQzMih1aW50OCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSB8IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGludDMyKGZsb2F0KSIs
Ci0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDMyKGludDMyKSIsCi0gICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8
PiB1aW50MzIodWludDgpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZh
bHVlKCkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQzMihmbG9hdCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDgoaW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8
PiB1aW50OCh1aW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZh
bHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50OChmbG9hdCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZsb2F0KGludDMyKSIsCi0gICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9w
ZXJhdG9yPD4gZmxvYXQodWludDMyKSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGgu
ZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0g
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gZmxv
YXQodWludDgpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUu
bG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yKzw+KGludCxpbnQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcis8Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcis8PihmbG9hdCxm
bG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLTw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
LSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci08
Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDAp
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci08PihmbG9hdCxmbG9hdCkiLAotICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yKjw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcio8Pih1aW50LHVpbnQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxl
ZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBmbG9hdCBvcGVyYXRvcio8PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1
ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yLzw+
KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdWludCBvcGVyYXRvci88Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
LyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAot
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3Im
PD4oaW50LGludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSB1aW50IG9wZXJhdG9yJjw+KHVpbnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJp
Z2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcnw8Pihp
bnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIHVpbnQgb3BlcmF0b3J8PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQu
bG9hZFZhbHVlKCkpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXjw+KGludCxp
bnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3gobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcl48Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PDw+KGludCx1aW50
KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yPDw8Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPj48PihpbnQsdWlu
dCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcj4+PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0Lmxv
YWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfjw+KGludCkiLAotICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IG9wZXJhdG9yfjw+KHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1
ZS5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci88Pihm
bG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVl
KCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09PD4oaW50LGludCkiLAotICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAK
LSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRv
cj09PD4odWludCx1aW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08Pihib29sLGJvb2wpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUo
KSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PTw+
KGZsb2F0LGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw8Pih1aW50LHVp
bnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
Ym9vbCBvcGVyYXRvcjw8PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0g
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgot
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9h
ZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PTw+KGludCxpbnQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVjaGFyIiwKKyAgICAgICAgICAg
ICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy51Y2hhciA9IHR5cGU7CisgICAgICAg
ICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBl
LmlzSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYg
MHhmZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAg
ICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3Jl
YXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdp
biwgdmFsdWUgJiAweGZmLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JW
YWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpICYgMHhmZjsKKyAgICAgICAgICAgICAgICAgdHlw
ZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBl
LnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9m
ZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKKyAgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPD08Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5s
b2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIHVzaG9ydCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAg
ICAgICAgIHRoaXMudXNob3J0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1p
dGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5p
c1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZh
bHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmZmYsIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0
VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2lu
LCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZmZmLCB0
eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2
YWx1ZSArIDEpICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0g
KGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0
VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFs
dWUgJiAweGZmZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExp
dGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5h
bGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8PSAweGZmZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7
dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0p
OworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3Bl
cmF0b3I8PTw+KGZsb2F0LGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVl
KCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiB1aW50IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhp
cy51aW50ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZh
bHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0
d2lzZUVxdWl2YWxlbnQodmFsdWUgPj4+IDAsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlID4+PiAwLCB0eXBlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpID4+PiAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7Cisg
ICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZz
ZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7CisgICAgICAgICAg
ICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+
Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7Cisg
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kp
CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKKyAg
ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPjw+KGludCxpbnQpIiwKLSAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAg
ICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgY2hhciIsCisgICAgICAgICAgICAgdHlw
ZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuY2hhciA9IHR5cGU7CisgICAgICAgICAgICAg
ICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAg
ICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNh
blJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXks
IHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUu
Y3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9y
aWdpbiwgY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5
cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUgKyAxKTsK
KyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwor
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZh
bHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAw
OyBpIDw9IDB4ZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9
IGNhc3QoSW50OEFycmF5LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFs
dWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48Pih1aW50LHVpbnQpIiwKLSAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAK
KyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2hvcnQiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLnNob3J0ID0gdHlwZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2Fu
UmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDE2QXJyYXks
IHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAg
ICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUu
Y3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9y
aWdpbiwgY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0
eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSArIDEp
OworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7
CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBv
ZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5h
bGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
ID0gMDsgaSA8PSAweGZmZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2
YWx1ZSA9IGNhc3QoSW50MTZBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgeWll
bGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PD4oZmxvYXQsZmxvYXQp
IiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50IiwKKyAgICAgICAgICAg
ICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5pbnQgPSB0eXBlOworICAgICAgICAg
ICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5p
c0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAg
ICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlIHwgMCwg
dmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFs
dWUgfCAwLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZh
bHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVh
bCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVm
YXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+
IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0
ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1
ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8PSAweGZmZmZmZmZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFs
dWUgPSBpIHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVl
LCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgIm5hdGl2ZSB0eXBlZGVmIGhhbGYiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLmhhbGYgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0g
dmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9IYWxmKHZhbHVlKSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zm
c2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9y
bWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4g
Y2FzdFRvSGFsZih2YWx1ZSk7CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGZsb2F0IiwKKyAgICAgICAgICAg
ICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5mbG9hdCA9IHR5cGU7CisgICAgICAg
ICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBl
LnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmlzRmxvYXRpbmcgPSB0cnVlOworICAg
ICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KE1hdGguZnJvdW5k
KHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVl
OworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFs
dWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRM
aXRlcmFsID0gdmFsdWUgPT4gTWF0aC5mcm91bmQodmFsdWUpOworICAgICAgICAgICAgIH0pOwor
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0
b3I+PTw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGF0
b21pY19pbnQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlz
LmF0b21pY19pbnQgPSB0eXBlOworICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91
dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PTw+KHVpbnQsdWludCki
LAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAorICAg
ICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0g
dHlwZTsKKyAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQg
aGVyZS4KKyAgICAgICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBl
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBp
IDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3ByaW1pdGl2ZVR5cGV9JHtpfWAsCisgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtw
cmltaXRpdmVUeXBlfSR7aX1gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2
ZVR5cGUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAyOyBqIDw9IDQ7
ICsraikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9eCR7an1gLAor
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHtwcmltaXRpdmVUeXBlfSR7aX14JHtqfWBdID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJl
LgorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcj49PD4oZmxvYXQsZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1
bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+
PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAg
IGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRyZXNzU3BhY2V9
IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAgICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgcmVmID0g
cmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWYpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cg
bmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgaW5kZXggIiAr
IGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5vZGUuaW5zdGFu
dGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAgICAgICAgICAg
IH07Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHNh
bXBsZXIiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnNh
bXBsZXIgPSB0eXBlOworICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0
IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgIH0pOwogCi0gICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oVFtd
ICR7YWRkcmVzc1NwYWNlfSlgLAotICAgICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtyZWZdLCBub2RlKSA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZhbHVlKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RVB0ci5ib3goMCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3gocmVm
Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZTFEIiwgIlJXVGV4dHVyZTFE
IiwgIlRleHR1cmUxREFycmF5IiwgIlJXVGV4dHVyZTFEQXJyYXkiLCAiVGV4dHVyZTJEIiwgIlJX
VGV4dHVyZTJEIiwgIlRleHR1cmUyREFycmF5IiwgIlJXVGV4dHVyZTJEQXJyYXkiLCAiVGV4dHVy
ZTNEIiwgIlJXVGV4dHVyZTNEIiwgIlRleHR1cmVDdWJlIl0pIHsKKyAgICAgICAgICAgIGZvciAo
bGV0IHR5cGVBcmd1bWVudCBvZiBbImJvb2wiLCAidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAi
Y2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7
dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fT5gLAorICAgICAgICAgICAgICAgICAgICB0eXBl
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlw
ZUFyZ3VtZW50fT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTog
RmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMjsgaSA8PSA0OyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUg
dHlwZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmAsCisgICAgICAgICAg
ICAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlz
W2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0ke2l9PmBdID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJl
LgorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgZm9yIChsZXQgc3dpenpsZSBvZiBTd2l6emxl
T3AuYWxsU3dpenpsZU9wZXJhdG9ycygpKSB7Ci0gICAgICAgICAgICB0aGlzLl9tYXAuc2V0KHN3
aXp6bGUudG9TdHJpbmcoKSwgCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWNdLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbnN0IG91dHB1dEJ1ZmZlciA9IG5ldyBFQnVmZmVyKHN3aXp6bGUub3V0U2l6ZSk7
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRJbmRpY2VzID0geyAneCc6IDAsICd5Jzog
MSwgJ3onOiAyLCAndyc6IDMgfTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCBzd2l6emxlLm91dFNpemU7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dEJ1ZmZlci5zZXQoaSwgdmVjLmdldChyZWFkSW5kaWNlc1tzd2l6emxlLmNvbXBvbmVudHNbaV1d
KSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5ldyBFUHRyKG91dHB1dEJ1ZmZlciwgMCk7Ci0gICAgICAgICAg
ICAgICAgfSwKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHN3aXp6
bGU7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKHN3aXp6bGUudG9T
dHJpbmcoKSk7CisgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZURlcHRo
MkQiLCAiUldUZXh0dXJlRGVwdGgyRCIsICJUZXh0dXJlRGVwdGgyREFycmF5IiwgIlJXVGV4dHVy
ZURlcHRoMkRBcnJheSIsICJUZXh0dXJlRGVwdGhDdWJlIl0pIHsKKyAgICAgICAgICAgIGZvciAo
bGV0IHR5cGVBcmd1bWVudCBvZiBbImZsb2F0IiwgImhhbGYiXSkgeworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVB
cmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9NeWxlcy5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTXlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWQ4ZjEzYjMwODJkZDYzNjhkMTRkMGQ4NjFl
ZjMwYTI1MjU2NjdlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTXlsZXMuaHRtbApAQCAtMCwwICsxLDE1MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRs
ZT5NeWxlczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iTm9kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJld3JpdGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJWaXNpdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJD
cmVhdGVMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBbm9ueW1v
dXNWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBcnJheVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkFzc2lnbm1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iQm9vbExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iQ2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVjay5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNr
UmVjdXJzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JlY3Vyc2l2ZVR5cGVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JldHVybnMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkNoZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJDaGVja1dyYXBwZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb25z
dGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJEb3RFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEZXJlZmVyZW5j
ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVBcnJheVJlZi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
RUJ1ZmZlckJ1aWxkZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVQdHIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkVudW1MaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJFbnVtTWVtYmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtVHlwZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXZhbHVhdGlvbkNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iRXZhbHVhdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHByZXNzaW9u
RmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZp
bmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0
T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iRm9sZENvbnN0ZXhwcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkZvckxvb3AuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmNQYXJh
bWV0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJJZGVudGl0eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IklmU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmRleEV4cHJlc3Npb24u
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklubGlu
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJ
bnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ikxl
eGVyVG9rZW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkxvZ2ljYWxOb3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ikxv
b3BDaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ik5hbWVGaW5kZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTm9ybWFsVXNl
UHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJPcmlnaW5LaW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPdmVybG9hZFJl
c29sdXRpb25GYWlsdXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJlcGFyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92
ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vy
c2l2ZVR5cGVDaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlTmFtZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlc29sdmVPdmVybG9hZEltcGwuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJSZXNvbHZlVHlwZURlZnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVy
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJTdGFuZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YXRlbWVudENs
b25lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iU3Vic3RpdHV0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hDYXNl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlRGVm
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbmlmaWNh
dGlvbkNvbnRleHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlVucmVhY2hhYmxlQ29kZUNo
ZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlZhcmlhYmxlRGVjbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlZpc2l0aW5nU2V0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXU3ludGF4RXJyb3IuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldUcmFwRXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IldUeXBlRXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldoaWxlTG9vcC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV3JhcENoZWNrZXIuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0IHNyYz0iVGVzdC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgeworICAgIHByZXBhcmUoKTsKK30pOworPC9z
Y3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0ibWVzc2FnZXMiPjwvZGl2PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZUNvbnRleHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4
dC5qcwppbmRleCBjMzFiYzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNj
ZTcxMjM0ZjVhYWNkZWYzZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xh
c3MgTmFtZUNvbnRleHQgewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAg
cmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJs
b2FkKG5hbWUsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZh
bHNlKQogICAgIHsKICAgICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUp
OwogICAgICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6
IFtdfTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0
aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRy
eVBvaW50KTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBh
cmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAK
ICAgICBnZXQgY3VycmVudFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qcwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIx
ZWU5YzdkLi40M2U0NzFhYWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2
IEBAIGNsYXNzIE5hbWVGaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29y
a2xpc3QucHVzaChuYW1lKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2Rl
KQotICAgIHsKLSAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlz
aXRQcm90b2NvbFJlZihub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUp
CiAgICAgewogICAgICAgICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4
OTgxMjUyMjMyNTAzYmNmYWJjMzAuLjNhMjg3NDUzZjg5ZmNhM2VkOWFkMjhjMDI4OTBiNWQ2OGQ3
M2I5Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNv
bHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIu
anMKQEAgLTQxLDE5ICs0MSwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICAgICAgdGhpcy5fbmFtZUNvbnRleHQuZG9TdGF0ZW1lbnQoc3RhdGVtZW50LCAoKSA9
PiBzdGF0ZW1lbnQudmlzaXQodGhpcykpOwogICAgIH0KICAgICAKLSAgICBfdmlzaXRUeXBlUGFy
YW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkKKyAgICBfYnVpbGROYW1lQ29udGV4dCgp
CiAgICAgewotICAgICAgICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5f
bmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlw
ZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVy
KTsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLSAg
ICAgICAgcmV0dXJuIG5hbWVDb250ZXh0OworICAgICAgICByZXR1cm4gbmV3IE5hbWVDb250ZXh0
KHRoaXMuX25hbWVDb250ZXh0KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5jKG5vZGUpCiAg
ICAgewotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fdmlzaXRU
eXBlUGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkpOworICAgICAgICBsZXQgY2hl
Y2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fYnVpbGROYW1lQ29udGV4dChub2RlKSk7CiAg
ICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQg
cGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNp
dChjaGVja2VyKTsKQEAgLTYxLDE2ICs1NiwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAgICAg
IGxldCBjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzID0gdGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVy
c0FuZEJ1aWxkTmFtZUNvbnRleHQobm9kZSk7Ci0gICAgICAgIGxldCBjaGVja2VyV2l0aFR5cGVQ
YXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsK
LSAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMp
OwotICAgICAgICBsZXQgY29udGV4dFdpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVDb250ZXh0KGNv
bnRleHRXaXRoVHlwZVBhcmFtZXRlcnMpOworICAgICAgICBsZXQgaW5uZXJDb250ZXh0ID0gdGhp
cy5fYnVpbGROYW1lQ29udGV4dCgpOworICAgICAgICBsZXQgaW5uZXJDaGVja2VyID0gbmV3IE5h
bWVSZXNvbHZlcihpbm5lckNvbnRleHQpOworICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQo
aW5uZXJDaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1l
dGVycykgewotICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFt
ZXRlcnMpOwotICAgICAgICAgICAgY29udGV4dFdpdGhQYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIp
OworICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGlubmVyQ2hlY2tlcik7CisgICAgICAgICAg
ICBuZXdDb250ZXh0LmFkZChwYXJhbWV0ZXIpOwogICAgICAgICB9Ci0gICAgICAgIGxldCBjaGVj
a2VyV2l0aFBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRleHRXaXRoUGFyYW1ldGVy
cyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdChjaGVja2VyV2l0aFBhcmFtZXRlcnMpOworICAg
ICAgICBub2RlLmJvZHkudmlzaXQoaW5uZXJDaGVja2VyKTsKICAgICB9CiAgICAgCiAgICAgdmlz
aXRCbG9jayhub2RlKQpAQCAtMTE1LDQxICsxMDgsOSBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5ld1Jlc29sdmVyKTsKICAg
ICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGZv
ciAobGV0IHBhcmVudCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwYXJlbnQudmlzaXQo
dGhpcyk7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9u
YW1lQ29udGV4dCk7Ci0gICAgICAgIG5hbWVDb250ZXh0LmFkZChub2RlLnR5cGVWYXJpYWJsZSk7
Ci0gICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7Ci0g
ICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAg
ICBzaWduYXR1cmUudmlzaXQoY2hlY2tlcik7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9j
b2xSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9uYW1lQ29udGV4
dC5nZXQoUHJvdG9jb2wsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQ291
bGQgbm90IGZpbmQgcHJvdG9jb2wgbmFtZWQgIiArIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUu
cHJvdG9jb2xEZWNsID0gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRnVu
Y0RlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwotICAgICAg
ICBsZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVuYywgbm9kZS5uYW1lKTsKLSAg
ICAgICAgaWYgKCFmdW5jcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGFueSBmdW5jdGlvbnMgbmFtZWQgIiAr
IG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBmdW5jczsKLSAg
ICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgbmFt
ZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBm
b3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAg
ICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5h
ZGQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcg
TmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0KGNoZWNr
ZXIpOwogICAgIH0KQEAgLTE1NywxNSArMTE4LDIyIEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRl
bmRzIFZpc2l0b3IgewogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKICAgICAgICAg
bGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsKLSAg
ICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKSB7Ci0g
ICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgbmFtZUNv
bnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxldCBjaGVja2Vy
ID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIGZvciAobGV0IGZpZWxk
IG9mIG5vZGUuZmllbGRzKQogICAgICAgICAgICAgZmllbGQudmlzaXQoY2hlY2tlcik7CiAgICAg
fQogICAgIAorICAgIHZpc2l0VHlwZVJlZihub2RlKQorICAgIHsKKyAgICAgICAgbGV0IHR5cGUg
PSBub2RlLnR5cGU7CisgICAgICAgIGlmICghdHlwZSkgeworICAgICAgICAgICAgdHlwZSA9IHRo
aXMuX25hbWVDb250ZXh0LmdldChUeXBlLCBub2RlLm5hbWUpOworICAgICAgICAgICAgaWYgKCF0
eXBlKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgbmFtZWQgIiArIG5vZGUubmFtZSk7Cisg
ICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOworICAgICAgICB9CisgICAgfQorCiAgICAgX3Jl
c29sdmVUeXBlQXJndW1lbnRzKHR5cGVBcmd1bWVudHMpCiAgICAgewogICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKQEAgLTE4MSwzNiArMTQ5
LDE2IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFy
Z3VtZW50Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IHJlc29sdmVkIHRvIHdy
b25nIGtpbmQgb2YgdGhpbmc6ICIgKyB0aGluZy5raW5kKTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIAotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudFtpXSBpbnN0YW5jZW9mIFZhbHVl
Ci0gICAgICAgICAgICAgICAgJiYgIXR5cGVBcmd1bWVudFtpXS5pc0NvbnN0ZXhwcikKKyAgICAg
ICAgICAgIGlmICh0eXBlQXJndW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZSAmJiAhdHlwZUFyZ3Vt
ZW50W2ldLmlzQ29uc3RleHByKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHR5cGVBcmd1bWVudFtpXS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgY29uc3RleHBy
Iik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCisgICAg
dmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNvbHZlVHlwZUFy
Z3VtZW50cyhub2RlLnR5cGVBcmd1bWVudHMpOwotICAgICAgICAKLSAgICAgICAgbGV0IHR5cGUg
PSBub2RlLnR5cGU7Ci0gICAgICAgIGlmICghdHlwZSkgewotICAgICAgICAgICAgdHlwZSA9IHRo
aXMuX25hbWVDb250ZXh0LmdldChUeXBlLCBub2RlLm5hbWUpOwotICAgICAgICAgICAgaWYgKCF0
eXBlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgbmFtZWQgIiArIG5vZGUubmFtZSk7Ci0g
ICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggIT0gbm9kZS50eXBlQXJndW1lbnRzLmxl
bmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdp
blN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyBub2Rl
LnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgZXhwZWN0ZWQgIiArIHR5cGUudHlwZVBhcmFtZXRl
cnMubGVuZ3RoICsgIikiKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlLnR5cGVQ
YXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVySXNUeXBl
ID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBpbnN0YW5jZW9mIFR5cGVWYXJpYWJsZTsKLSAgICAg
ICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IG5vZGUudHlwZUFyZ3VtZW50c1tpXSBpbnN0YW5j
ZW9mIFR5cGU7Ci0gICAgICAgICAgICBub2RlLnR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7
Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVySXNUeXBlICYmICFhcmd1bWVudElzVHlwZSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJp
bmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290IHZhbHVlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0g
ICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklzVHlwZSAmJiBhcmd1bWVudElzVHlwZSkKLSAgICAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0gICAg
ICAgIH0KKyAgICAgICAgZm9yKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRz
KQorICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKICAg
ICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKQEAgLTI3OSw4ICsyMjcsNiBAQCBjbGFzcyBOYW1l
UmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9u
KG5vZGUpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvbHZlVHlwZUFyZ3VtZW50cyhub2RlLnR5
cGVBcmd1bWVudHMpOwotICAgICAgICAKICAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNv
bnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7CiAgICAgICAgIGlmIChmdW5jcykKICAgICAgICAg
ICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBmdW5jczsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCmluZGV4IGE1NTMzNTJkOWFlZTYwYmNhNjJhZDZlMTIz
Mjg4Yjg5MDUxODI0ODcuLmRjMGZmNzgxYjY5MmUxODQ2Mjc4NjQ4NTBlZjY4ZGQzNWI5YThmMDUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAtMjUs
MTMgKzI1LDEyIEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZUZ1bmMgZXh0ZW5kcyBG
dW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJh
bWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Io
b3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUp
CiAgICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJh
bWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihv
cmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7
CiAgICAgICAgIHRoaXMuaXNSZXN0cmljdGVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuaW1wbGVt
ZW50YXRpb24gPSBudWxsOwogICAgICAgICB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGEgPSBudWxs
OwotICAgICAgICB0aGlzLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24gPSAoc3Vic3RpdHV0aW9u
KSA9PiB7fTsKICAgICAgICAgdGhpcy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBsZW1l
bnRhdGlvbkRhdGEsIHZpc2l0b3IpID0+IG51bGw7CiAgICAgICAgIHRoaXMuZGlkTGF5b3V0U3Ry
dWN0c0luSW1wbGVtZW50YXRpb25EYXRhID0gaW1wbGVtZW50YXRpb25EYXRhID0+IG51bGw7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVu
Y0luc3RhbmNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0lu
c3RhbmNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTliNzgyNjM1MzVhNzBk
OTMwOTYyNmQ1ODUwMzU5MDAxMDVkNDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJ
bnN0YW5jZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTmF0
aXZlRnVuY0luc3RhbmNlIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3IoZnVuYywgcmV0
dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlLCBpbXBsZW1lbnRhdGlvbkRh
dGEpCi0gICAgewotICAgICAgICBzdXBlcihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCByZXR1cm5U
eXBlLCBbXSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKLSAgICAgICAgdGhpcy5f
ZnVuYyA9IGZ1bmM7Ci0gICAgICAgIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YSA9IGltcGxlbWVu
dGF0aW9uRGF0YTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGZ1bmMoKSB7IHJldHVybiB0aGlzLl9m
dW5jOyB9Ci0gICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBpbXBs
ZW1lbnRhdGlvbkRhdGEoKSB7IHJldHVybiB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGE7IH0KLQot
ICAgIHRvRGVjbFN0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gIm5hdGl2ZSAiICsgc3Vw
ZXIudG9EZWNsU3RyaW5nKCk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmF0aXZlVHlwZS5qcwppbmRleCBiOGIxYTQ3MzMwYjVmZDUxZmYwMjFhZjA2NTg2ODQ0
YzJhY2JhOGVhLi41Y2MxODQ5Mzg5ZWJhMWNmMmEyNjFlYWNmZDg5OGEzMjVkZmI5YzE1IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKQEAgLTI1LDE0ICsy
NSwxNCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7
Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCiAgICAgewotICAgICAgICBpZiAo
ISh0eXBlUGFyYW1ldGVycyBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgICAgIHRocm93IG5l
dyBFcnJvcigidHlwZSBwYXJhbWV0ZXJzIG5vdCBhcnJheTogIiArIHR5cGVQYXJhbWV0ZXJzKTsK
KyAgICAgICAgaWYgKCEodHlwZUFyZ3VtZW50cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBwYXJhbWV0ZXJzIG5vdCBhcnJheTogIiArIHR5cGVB
cmd1bWVudHMpOwogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmln
aW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1l
dGVycyA9IHR5cGVQYXJhbWV0ZXJzOworICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlw
ZUFyZ3VtZW50czsKICAgICAgICAgdGhpcy5faXNOdW1iZXIgPSBmYWxzZTsKICAgICAgICAgdGhp
cy5faXNJbnQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faXNGbG9hdGluZyA9IGZhbHNlOwpAQCAt
NDAsOCArNDAsMTUgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIH0KICAg
ICAKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IG5h
bWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyBy
ZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KKyAgICBnZXQgYmFzZU5hbWUoKSB7IHJldHVy
biB0aGlzLl9uYW1lOyB9CisgICAgZ2V0IG5hbWUoKQorICAgIHsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IHRoaXMuX25hbWU7CisgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQor
ICAgICAgICAgICAgcmVzdWx0ICs9ICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJl
dHVybiB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIAogICAgIC8vIFdlIGxldCBJbnRyaW5zaWNzLmpzIHNldCB0aGVzZSBhcyBp
dCBsaWtlcy4KQEAgLTU0LDE4ICs2MSw5IEBAIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBl
IHsKICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc1ByaW1pdGl2ZTsgfQog
ICAgIHNldCBpc1ByaW1pdGl2ZSh2YWx1ZSkgeyB0aGlzLl9pc1ByaW1pdGl2ZSA9IHZhbHVlOyB9
CiAgICAgCi0gICAgaW5zdGFudGlhdGUodHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGlm
ICh0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRz
IHRvIGluc3RhbnRpYXRpb24iKTsKLSAgICAgICAgaWYgKCF0eXBlQXJndW1lbnRzLmxlbmd0aCkK
LSAgICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJ
bnN0YW5jZSh0aGlzLCB0eXBlQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCiAgICAgdG9TdHJpbmco
KQogICAgIHsKLSAgICAgICAgcmV0dXJuICJuYXRpdmUgdHlwZWRlZiAiICsgdGhpcy5uYW1lICsg
IjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsKKyAgICAgICAgcmV0dXJuICJuYXRpdmUg
dHlwZWRlZiAiICsgdGhpcy5uYW1lOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjYTM5ZTc3Nzg3MDA0OWVkMjJkNzA0MWE1MjAxNGNjOGU2OWNiYzRmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0YW5jZS5qcworKysgL2Rldi9udWxsCkBA
IC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0g
Ki8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTmF0aXZlVHlwZUluc3RhbmNlIGV4dGVuZHMgVHlw
ZSB7Ci0gICAgY29uc3RydWN0b3IodHlwZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgICAgICB0aGlzLl90eXBl
QXJndW1lbnRzID0gdHlwZUFyZ3VtZW50czsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHR5cGUoKSB7
IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJldHVybiB0
aGlzLl90eXBlQXJndW1lbnRzOyB9Ci0gICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gdGhp
cy5fdHlwZS5pc1ByaW1pdGl2ZTsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7
IH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7
Ci0gICAgICAgIGlmICh0aGlzLnR5cGUgIT0gb3RoZXIudHlwZSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIu
dHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0gICAg
dG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICI8IiArIHRoaXMu
dHlwZUFyZ3VtZW50cyArICI+IjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Ob2RlLmpzCmluZGV4IDg4MTAzMDEzMDc3M2U3MGVhODhlMGFiNTk3OTc0Y2Y1NjFmOWQ1ZTQu
LjZkMjExYjc2MmIwYTI1OGQzNTU1MTkzNGQ2MDhhNTM4Y2UzMDM3OWQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwpAQCAtODksOCArODksNiBAQCBjbGFzcyBOb2RlIHsKICAg
ICAKICAgICBnZXQgaXNOYXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIAotICAgIGNvbnZl
cnNpb25Db3N0KHVuaWZpY2F0aW9uQ29udGV4dCkgeyByZXR1cm4gMDsgfQotICAgIAogICAgIGVx
dWFscyhvdGhlcikKICAgICB7CiAgICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcg
VW5pZmljYXRpb25Db250ZXh0KCk7CkBAIC0xMDQsNyArMTAyLDYgQEAgY2xhc3MgTm9kZSB7CiAg
ICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSB0aGlzLmVxdWFscyhvdGhlcik7CiAgICAg
ICAgIGlmICghdW5pZmljYXRpb25Db250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB1bmlmaWNhdGlvbkNvbnRleHQuY29tbWl0KCk7CiAgICAgICAgIHJldHVybiB1bmlm
aWNhdGlvbkNvbnRleHQ7CiAgICAgfQogICAgIApAQCAtMTE1LDcgKzExMiw2IEBAIGNsYXNzIE5v
ZGUgewogICAgICAgICBsZXQgcmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwog
ICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAgICB0aHJvdyBuZXcgV0Vycm9y
KG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBpbmZlciB0eXBlOiAiICsgcmVz
dWx0LnJlYXNvbik7Ci0gICAgICAgIHVuaWZpY2F0aW9uQ29udGV4dC5jb21taXQoKTsKICAgICAg
ICAgcmV0dXJuIHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwogICAgIH0KICAgICAKQEAg
LTEyMywxMSArMTE5LDQgQEAgY2xhc3MgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4gdGhp
cy52aXNpdChuZXcgU3Vic3RpdHV0aW9uKHBhcmFtZXRlcnMsIGFyZ3VtZW50TGlzdCkpOwogICAg
IH0KLSAgICAKLSAgICBzdWJzdGl0dXRlVG9VbmlmaWNhdGlvbihwYXJhbWV0ZXJzLCB1bmlmaWNh
dGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5zdWJzdGl0dXRlKAotICAg
ICAgICAgICAgcGFyYW1ldGVycywKLSAgICAgICAgICAgIHBhcmFtZXRlcnMubWFwKHR5cGUgPT4g
dW5pZmljYXRpb25Db250ZXh0LmZpbmQodHlwZSkpKTsKLSAgICB9CiB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1BhcnNlLmpzCmluZGV4IDZkMmI0MzE2MTU2MDFhYjlkZDNkMDkzOGZiZmIz
ODVlZTJhNGRhZjEuLmQ4Mzg2NWNkNDBlMzRiMzc1NjhlZjVmMjdjZTg0YTEzZjUyMDhhMjYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzCkBAIC0xMjEsMTIgKzEyMSw2IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgZnVu
Y3Rpb24gcGFyc2VQcm90b2NvbFJlZigpCi0gICAgewotICAgICAgICBsZXQgcHJvdG9jb2xUb2tl
biA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvdG9j
b2xSZWYocHJvdG9jb2xUb2tlbiwgcHJvdG9jb2xUb2tlbi50ZXh0KTsKLSAgICB9Ci0gICAgCiAg
ICAgZnVuY3Rpb24gY29uc3VtZUVuZE9mVHlwZUFyZ3MoKQogICAgIHsKICAgICAgICAgbGV0IHJp
Z2h0U2hpZnQgPSB0cnlDb25zdW1lKCI+PiIpOwpAQCAtMTM2LDM0ICsxMzAsNiBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgICAgICBjb25zdW1lKCI+Iik7CiAgICAgfQogICAgIAotICAgIGZ1bmN0aW9u
IHBhcnNlVHlwZVBhcmFtZXRlcnMoKQotICAgIHsKLSAgICAgICAgaWYgKCF0ZXN0KCI8IikpCi0g
ICAgICAgICAgICByZXR1cm4gW107Ci0gICAgICAgIAotICAgICAgICBsZXQgcmVzdWx0ID0gW107
Ci0gICAgICAgIGNvbnN1bWUoIjwiKTsKLSAgICAgICAgd2hpbGUgKCF0ZXN0KCI+IikpIHsKLSAg
ICAgICAgICAgIGxldCBjb25zdGV4cHIgPSBsZXhlci5iYWNrdHJhY2tpbmdTY29wZSgoKSA9PiB7
Ci0gICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBwYXJzZVR5cGUoKTsKLSAgICAgICAgICAgICAg
ICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICAgICAg
YXNzZXJ0TmV4dCgiLCIsICI+IiwgIj4+Iik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBuYW1lLnRleHQsIHR5cGUpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBpZiAoY29uc3RleHByKQotICAgICAgICAgICAgICAg
IHJlc3VsdC5wdXNoKGNvbnN0ZXhwcik7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICAg
ICAgbGV0IHByb3RvY29sID0gdHJ5Q29uc3VtZSgiOiIpID8gcGFyc2VQcm90b2NvbFJlZigpIDog
bnVsbDsKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChuZXcgVHlwZVZhcmlhYmxlKG5hbWUs
IG5hbWUudGV4dCwgcHJvdG9jb2wpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICgh
dHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAg
ICAgIGNvbnN1bWVFbmRPZlR5cGVBcmdzKCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
fQotICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlVGVybSgpCiAgICAgewogICAgICAgICBsZXQgdG9r
ZW47CkBAIC0yMjIsNyArMTg4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBv
cmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IHRv
a2VuOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCItIikpCi0gICAgICAgICAgICBy
ZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwg
W10sIFtwYXJzZVRlcm0oKV0pOworICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtwYXJzZVRlcm0oKV0pOwogICAgICAg
ICBsZXQgbGVmdCA9IHBhcnNlVGVybSgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1l
KCIuIikpCiAgICAgICAgICAgICBsZWZ0ID0gbmV3IERvdEV4cHJlc3Npb24odG9rZW4sIGxlZnQs
IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dCk7CkBAIC0yODIsOCArMjQ4LDcgQEAgZnVu
Y3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0
LCB0ZXh0KQogICAgICAgICAgICAgYWRkcmVzc1NwYWNlID0gdG9rZW4udGV4dDsKICAgICAgICAg
CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAg
bGV0IHR5cGVBcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKLSAgICAgICAgbGV0IHR5
cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBuYW1lLnRleHQsIHR5cGVBcmd1bWVudHMpOworICAgICAg
ICBsZXQgdHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsIG5hbWUudGV4dCk7CiAgICAgICAgIAogICAg
ICAgICBmdW5jdGlvbiBnZXRBZGRyZXNzU3BhY2UoKQogICAgICAgICB7CkBAIC0zMTgsMTEgKzI4
MywxMCBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVO
dW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgi
dHlwZWRlZiIpOwogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIiku
dGV4dDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygp
OwogICAgICAgICBjb25zdW1lKCI9Iik7CiAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBlKCk7
CiAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBUeXBlRGVmKG9yaWdp
biwgbmFtZSwgdHlwZVBhcmFtZXRlcnMsIHR5cGUpOworICAgICAgICByZXR1cm4gbmV3IFR5cGVE
ZWYob3JpZ2luLCBuYW1lLCB0eXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gZ2VuZXJp
Y1BhcnNlTGVmdCh0ZXh0cywgbmV4dFBhcnNlciwgY29uc3RydWN0b3IpCkBAIC0zMzksMTMgKzMw
MywxMiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVO
dW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAg
ICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCiAgICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJp
Z2h0KSA9PgotICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJh
dG9yIiArIHRva2VuLnRleHQsIFtdLCBbbGVmdCwgcmlnaHRdKSk7CisgICAgICAgICAgICAgICAg
bmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW2xlZnQs
IHJpZ2h0XSkpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZUNhbGxFeHByZXNzaW9u
KCkKICAgICB7CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsK
LSAgICAgICAgbGV0IHR5cGVBcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAg
ICAgY29uc3VtZSgiKCIpOwogICAgICAgICBsZXQgYXJndW1lbnRMaXN0ID0gW107CiAgICAgICAg
IHdoaWxlICghdGVzdCgiKSIpKSB7CkBAIC0zNTUsNyArMzE4LDcgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNvbnN1bWUoIikiKTsKLSAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihuYW1lLCBuYW1lLnRleHQsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2Fs
bEV4cHJlc3Npb24obmFtZSwgbmFtZS50ZXh0LCBhcmd1bWVudExpc3QpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICAKQEAgLTM2Myw3ICszMjYsNiBAQCBmdW5jdGlvbiBwYXJz
ZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAg
ICAgewogICAgICAgICByZXR1cm4gbGV4ZXIudGVzdFNjb3BlKCgpID0+IHsKICAgICAgICAgICAg
IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICBwYXJzZVR5cGVBcmd1bWVu
dHMoKTsKICAgICAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgfSk7CiAgICAgfQpAQCAt
MzgxLDcgKzM0Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgaWYgKG5hbWUgPT0gIm9wZXJhdG9y
IikKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW52YWxpZCBuYW1lOiAiICsgbmFtZSk7
CiAgICAgICAgIAotICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCBuYW1l
LCBbXSwgYXJncyk7CisgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sIG5h
bWUsIGFyZ3MpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBmaW5pc2hQYXJzaW5nUG9zdElu
Y3JlbWVudCh0b2tlbiwgbGVmdCkKQEAgLTQ1NCw3ICs0MTYsNyBAQCBmdW5jdGlvbiBwYXJzZShw
cm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAg
ICAgIGlmICh0ZXN0KCIrKyIsICItLSIpKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlUHJlSW5j
cmVtZW50KCk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIisiLCAiLSIsICJ+Iikp
Ci0gICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3Ii
ICsgdG9rZW4udGV4dCwgW10sIFtwYXJzZVBvc3NpYmxlUHJlZml4KCldKTsKKyAgICAgICAgICAg
IHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0
LCBbcGFyc2VQb3NzaWJsZVByZWZpeCgpXSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1
bWUoIioiKSkKICAgICAgICAgICAgIHJldHVybiBuZXcgRGVyZWZlcmVuY2VFeHByZXNzaW9uKHRv
a2VuLCBwYXJzZVBvc3NpYmxlUHJlZml4KCkpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25z
dW1lKCImIikpCkBAIC00NjMsNyArNDI1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3Jp
Z2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgcmV0
dXJuIG5ldyBNYWtlQXJyYXlSZWZFeHByZXNzaW9uKHRva2VuLCBwYXJzZVBvc3NpYmxlUHJlZml4
KCkpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIhIikpIHsKICAgICAgICAgICAg
IGxldCByZW1haW5kZXIgPSBwYXJzZVBvc3NpYmxlUHJlZml4KCk7Ci0gICAgICAgICAgICByZXR1
cm4gbmV3IExvZ2ljYWxOb3QodG9rZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5kZXIub3Jp
Z2luLCAiYm9vbCIsIFtdLCBbcmVtYWluZGVyXSkpOworICAgICAgICAgICAgcmV0dXJuIG5ldyBM
b2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJv
b2wiLCBbcmVtYWluZGVyXSkpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZVBvc3Np
YmxlU3VmZml4KCk7CiAgICAgfQpAQCAtNDkzLDcgKzQ1NSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAg
ICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAgICAgICAgICAgICBbIj09IiwgIiE9Il0sIHBh
cnNlUG9zc2libGVSZWxhdGlvbmFsSW5lcXVhbGl0eSwKICAgICAgICAgICAgICh0b2tlbiwgbGVm
dCwgcmlnaHQpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHBy
ZXNzaW9uKHRva2VuLCAib3BlcmF0b3I9PSIsIFtdLCBbbGVmdCwgcmlnaHRdKTsKKyAgICAgICAg
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3I9
PSIsIFtsZWZ0LCByaWdodF0pOwogICAgICAgICAgICAgICAgIGlmICh0b2tlbi50ZXh0ID09ICIh
PSIpCiAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyBMb2dpY2FsTm90KHRva2VuLCBy
ZXN1bHQpOwogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC01MTksNyArNDgxLDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQYXJzZUxlZnQoCiAg
ICAgICAgICAgICB0ZXh0cywgbmV4dFBhcnNlciwKLSAgICAgICAgICAgICh0b2tlbiwgbGVmdCwg
cmlnaHQpID0+IG5ldyBMb2dpY2FsRXhwcmVzc2lvbih0b2tlbiwgdG9rZW4udGV4dCwgbmV3IENh
bGxFeHByZXNzaW9uKGxlZnQub3JpZ2luLCAiYm9vbCIsIFtdLCBbbGVmdF0pLCBuZXcgQ2FsbEV4
cHJlc3Npb24ocmlnaHQub3JpZ2luLCAiYm9vbCIsIFtdLCBbcmlnaHRdKSkpOworICAgICAgICAg
ICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gbmV3IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0
b2tlbi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Npb24obGVmdC5vcmlnaW4sICJib29sIiwgW2xlZnRd
KSwgbmV3IENhbGxFeHByZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbcmlnaHRdKSkpOwog
ICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZVBvc3NpYmxlTG9naWNhbEFuZCgpCkBAIC02
NTYsNyArNjE4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5k
LCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgZWxzZUJvZHk7CiAgICAgICAg
IGlmICh0cnlDb25zdW1lKCJlbHNlIikpCiAgICAgICAgICAgICBlbHNlQm9keSA9IHBhcnNlU3Rh
dGVtZW50KCk7Ci0gICAgICAgIHJldHVybiBuZXcgSWZTdGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2Fs
bEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxd
KSwgYm9keSwgZWxzZUJvZHkpOworICAgICAgICByZXR1cm4gbmV3IElmU3RhdGVtZW50KG9yaWdp
biwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0
aW9uYWxdKSwgYm9keSwgZWxzZUJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9uIHBhcnNlV2hp
bGUoKQpAQCAtNjY2LDcgKzYyOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwg
b3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IGNvbmRpdGlv
bmFsID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgIGNvbnN1bWUoIikiKTsKICAgICAgICAg
bGV0IGJvZHkgPSBwYXJzZVN0YXRlbWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IFdoaWxlTG9v
cChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwg
W10sIFtjb25kaXRpb25hbF0pLCBib2R5KTsKKyAgICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Ao
b3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtj
b25kaXRpb25hbF0pLCBib2R5KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZUZvcigpCkBA
IC02ODcsNyArNjQ5LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IGNvbmRpdGlvbiA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICAgICAgY29uc3VtZSgiOyIp
OwotICAgICAgICAgICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbi5v
cmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25dKTsKKyAgICAgICAgICAgIGNvbmRpdGlvbiA9
IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtjb25kaXRpb25d
KTsKICAgICAgICAgfQogICAgICAgICBsZXQgaW5jcmVtZW50OwogICAgICAgICBpZiAodHJ5Q29u
c3VtZSgiKSIpKQpAQCAtNzA4LDcgKzY3MCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9y
aWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgY29uc3Vt
ZSgiKCIpOwogICAgICAgICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4cHJlc3Npb24oKTsKICAg
ICAgICAgY29uc3VtZSgiKSIpOwotICAgICAgICByZXR1cm4gbmV3IERvV2hpbGVMb29wKG9yaWdp
biwgYm9keSwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBb
XSwgW2NvbmRpdGlvbmFsXSkpOworICAgICAgICByZXR1cm4gbmV3IERvV2hpbGVMb29wKG9yaWdp
biwgYm9keSwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBb
Y29uZGl0aW9uYWxdKSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlVmFyaWFibGVE
ZWNscygpCkBAIC04NTgsMTMgKzgyMCwxMSBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBvcmln
aW47CiAgICAgICAgIGxldCByZXR1cm5UeXBlOwogICAgICAgICBsZXQgbmFtZTsKLSAgICAgICAg
bGV0IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICBsZXQgaXNDYXN0OwogICAgICAgICBsZXQgc2hh
ZGVyVHlwZTsKICAgICAgICAgbGV0IG9wZXJhdG9yVG9rZW4gPSB0cnlDb25zdW1lKCJvcGVyYXRv
ciIpOwogICAgICAgICBpZiAob3BlcmF0b3JUb2tlbikgewogICAgICAgICAgICAgb3JpZ2luID0g
b3BlcmF0b3JUb2tlbjsKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFy
YW1ldGVycygpOwogICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAg
ICAgICAgbmFtZSA9ICJvcGVyYXRvciBjYXN0IjsKICAgICAgICAgICAgIGlzQ2FzdCA9IHRydWU7
CkBAIC04NzcsNDQgKzgzNywxNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9y
aWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICBvcmlnaW4gPSByZXR1cm5UeXBlLm9yaWdpbjsKICAgICAgICAgICAgIG5h
bWUgPSBwYXJzZUZ1bmNOYW1lKCk7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IHBhcnNl
VHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgIGlzQ2FzdCA9IGZhbHNlOwogICAgICAgICB9
CiAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gcGFyc2VQYXJhbWV0ZXJzKCk7Ci0gICAgICAgIHJl
dHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBw
YXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICByZXR1cm4gbmV3IEZ1bmMo
b3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUp
OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgpCi0gICAgewot
ICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVuY0RlY2woKTsKLSAgICAgICAgcmV0dXJuIG5ldyBQ
cm90b2NvbEZ1bmNEZWNsKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwg
ZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5z
aGFkZXJUeXBlKTsKLSAgICB9Ci0gICAgCiAgICAgZnVuY3Rpb24gcGFyc2VGdW5jRGVmKCkKICAg
ICB7CiAgICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAgICAgICBsZXQgYm9k
eSA9IHBhcnNlQmxvY2soKTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMub3JpZ2lu
LCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5w
YXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICB9Ci0g
ICAgCi0gICAgZnVuY3Rpb24gcGFyc2VQcm90b2NvbERlY2woKQotICAgIHsKLSAgICAgICAgbGV0
IG9yaWdpbiA9IGNvbnN1bWUoInByb3RvY29sIik7Ci0gICAgICAgIGxldCBuYW1lID0gY29uc3Vt
ZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3Rv
Y29sRGVjbChvcmlnaW4sIG5hbWUpOwotICAgICAgICBpZiAodHJ5Q29uc3VtZSgiOiIpKSB7Ci0g
ICAgICAgICAgICB3aGlsZSAoIXRlc3QoInsiKSkgewotICAgICAgICAgICAgICAgIHJlc3VsdC5h
ZGRFeHRlbmRzKHBhcnNlUHJvdG9jb2xSZWYoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF0cnlD
b25zdW1lKCIsIikpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0gICAgICAgIGNvbnN1bWUoInsiKTsKLSAgICAgICAgd2hpbGUgKCF0cnlDb25z
dW1lKCJ9IikpIHsKLSAgICAgICAgICAgIHJlc3VsdC5hZGQocGFyc2VQcm90b2NvbEZ1bmNEZWNs
KCkpOwotICAgICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7CisgICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5u
YW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3Qs
IGZ1bmMuc2hhZGVyVHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlRmllbGQo
KQpAQCAtOTI5LDggKzg2Miw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmln
aW4gPSBjb25zdW1lKCJzdHJ1Y3QiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgi
aWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlw
ZVBhcmFtZXRlcnMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdp
biwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVj
dFR5cGUob3JpZ2luLCBuYW1lKTsKICAgICAgICAgY29uc3VtZSgieyIpOwogICAgICAgICB3aGls
ZSAoIXRyeUNvbnN1bWUoIn0iKSkKICAgICAgICAgICAgIHJlc3VsdC5hZGQocGFyc2VGaWVsZCgp
KTsKQEAgLTk0MSw3ICs4NzMsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9y
aWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgZnVu
YyA9IHBhcnNlRnVuY0RlY2woKTsKICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICByZXR1
cm4gbmV3IE5hdGl2ZUZ1bmMoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBl
LCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0LCBmdW5j
LnNoYWRlclR5cGUpOworICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZUZ1bmMoZnVuYy5vcmlnaW4s
IGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMuaXNDYXN0
LCBmdW5jLnNoYWRlclR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZU5hdGl2
ZSgpCkBAIC05NDksOSArODgxLDkgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBv
cmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2luID0g
Y29uc3VtZSgibmF0aXZlIik7CiAgICAgICAgIGlmICh0cnlDb25zdW1lKCJ0eXBlZGVmIikpIHsK
ICAgICAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAg
ICAgICAgIGxldCBwYXJhbWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOworICAgICAgICAg
ICAgbGV0IHBhcnNlZEFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICAg
ICAgY29uc3VtZSgiOyIpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdp
biwgbmFtZS50ZXh0LCBwYXJhbWV0ZXJzKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZl
VHlwZShvcmlnaW4sIG5hbWUudGV4dCwgcGFyc2VkQXJndW1lbnRzKTsKICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gcGFyc2VOYXRpdmVGdW5jKCk7CiAgICAgfQpAQCAtOTg1LDcgKzkxNyw3IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkKICAgICAgICAgICAgIGJh
c2VUeXBlID0gcGFyc2VUeXBlKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGJhc2VUeXBl
ID0gbmV3IFR5cGVSZWYobmFtZSwgImludCIsIFtdKTsKKyAgICAgICAgICAgIGJhc2VUeXBlID0g
bmV3IFR5cGVSZWYobmFtZSwgImludCIpOwogICAgICAgICBjb25zdW1lKCJ7Iik7CiAgICAgICAg
IGxldCByZXN1bHQgPSBuZXcgRW51bVR5cGUobmFtZSwgbmFtZS50ZXh0LCBiYXNlVHlwZSk7CiAg
ICAgICAgIHdoaWxlICghdGVzdCgifSIpKSB7CkBAIC0xMDEzLDEwICs5NDUsNyBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZVN0cnVjdFR5cGUoKSk7CiAgICAgICAg
IGVsc2UgaWYgKHRva2VuLnRleHQgPT0gImVudW0iKQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQo
cGFyc2VFbnVtVHlwZSgpKTsKLSAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAicHJvdG9j
b2wiKQotICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VQcm90b2NvbERlY2woKSk7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRnVuY0RlZigpKTsKICAgICB9
CiB9Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCmluZGV4IGEyMDQ4
YTlhZDNlODNiZDE4Yjc2NDQ0Y2E1NTQ2ZTQ4ZmUwMTE5YTAuLmU3YzNmMjM2NjA0ZjhiYTA4N2Fj
MWU2NmY1OGQ2Nzg2MDFjNTc2YzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1ByZXBhcmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJl
cGFyZS5qcwpAQCAtNDIsMTYgKzQyLDEzIEBAIGxldCBwcmVwYXJlID0gKCgpID0+IHsKICAgICAg
ICAgZm9sZENvbnN0ZXhwcnMocHJvZ3JhbSk7CiAgICAgICAgIGxldCBuYW1lUmVzb2x2ZXIgPSBj
cmVhdGVOYW1lUmVzb2x2ZXIocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVOYW1lc0luVHlwZXMo
cHJvZ3JhbSwgbmFtZVJlc29sdmVyKTsKLSAgICAgICAgcmVzb2x2ZU5hbWVzSW5Qcm90b2NvbHMo
cHJvZ3JhbSwgbmFtZVJlc29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5UeXBlcyhw
cm9ncmFtKTsKLSAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5Qcm90b2NvbHMocHJvZ3JhbSk7CiAg
ICAgICAgIGNoZWNrUmVjdXJzaXZlVHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSk7CiAgICAgICAgIHN5bnRoZXNpemVFbnVtRnVuY3Rpb25z
KHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFtZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBuYW1l
UmVzb2x2ZXIpOwogICAgICAgICByZXNvbHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKTsK
LSAgICAgICAgCi0gICAgICAgIGZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMocHJvZ3JhbSk7CisKICAg
ICAgICAgY2hlY2socHJvZ3JhbSk7CiAgICAgICAgIGNoZWNrTGl0ZXJhbFR5cGVzKHByb2dyYW0p
OwogICAgICAgICByZXNvbHZlUHJvcGVydGllcyhwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCmluZGV4IGJiYzRiMjRhNjIyN2IxY2U1YjA2ZDczM2FjMjBk
OTJiNTk2YTRjNzMuLjhmYzZmNzkzZWU2ZTczZWVjYTVhNmFhNzRhNDQwYTY3Yjg2YmU2ZmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcwpAQCAtMzEsOCArMzEsNiBA
QCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3Rh
dGVtZW50cyA9IFtdOwogICAgICAgICB0aGlzLl9mdW5jdGlvbnMgPSBuZXcgTWFwKCk7CiAgICAg
ICAgIHRoaXMuX3R5cGVzID0gbmV3IE1hcCgpOwotICAgICAgICB0aGlzLl9wcm90b2NvbHMgPSBu
ZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX2Z1bmNJbnN0YW50aWF0b3IgPSBuZXcgRnVuY0luc3Rh
bnRpYXRvcih0aGlzKTsKICAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNvbnRleHQgPSBuZXcgTmFt
ZUNvbnRleHQoKTsKICAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNvbnRleHQucHJvZ3JhbSA9IHRo
aXM7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0LnJlY29nbml6ZUludHJpbnNpY3Mo
KTsKQEAgLTQyLDggKzQwLDYgQEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgIGdl
dCB0b3BMZXZlbFN0YXRlbWVudHMoKSB7IHJldHVybiB0aGlzLl90b3BMZXZlbFN0YXRlbWVudHM7
IH0KICAgICBnZXQgZnVuY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5fZnVuY3Rpb25zOyB9CiAgICAg
Z2V0IHR5cGVzKCkgeyByZXR1cm4gdGhpcy5fdHlwZXM7IH0KLSAgICBnZXQgcHJvdG9jb2xzKCkg
eyByZXR1cm4gdGhpcy5fcHJvdG9jb2xzOyB9Ci0gICAgZ2V0IGZ1bmNJbnN0YW50aWF0b3IoKSB7
IHJldHVybiB0aGlzLl9mdW5jSW5zdGFudGlhdG9yOyB9CiAgICAgZ2V0IGdsb2JhbE5hbWVDb250
ZXh0KCkgeyByZXR1cm4gdGhpcy5fZ2xvYmFsTmFtZUNvbnRleHQ7IH0KICAgICAKICAgICBhZGQo
c3RhdGVtZW50KQpAQCAtNTYsOCArNTIsNiBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7
CiAgICAgICAgICAgICBhcnJheS5wdXNoKHN0YXRlbWVudCk7CiAgICAgICAgIH0gZWxzZSBpZiAo
c3RhdGVtZW50IGluc3RhbmNlb2YgVHlwZSkKICAgICAgICAgICAgIHRoaXMuX3R5cGVzLnNldChz
dGF0ZW1lbnQubmFtZSwgc3RhdGVtZW50KTsKLSAgICAgICAgZWxzZSBpZiAoc3RhdGVtZW50IGlu
c3RhbmNlb2YgUHJvdG9jb2wpCi0gICAgICAgICAgICB0aGlzLl9wcm90b2NvbHMuc2V0KHN0YXRl
bWVudC5uYW1lLCBzdGF0ZW1lbnQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlN0YXRlbWVudCBpcyBub3QgYSBmdW5jdGlvbiBvciB0eXBlOiAiICsgc3RhdGVt
ZW50KTsKICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzLnB1c2goc3RhdGVtZW50KTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMzZjg0NTY0NzdlY2EyZThkY2Y2NmNmNDVjMmQ0NzNjYTA4NTdkODgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sIGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5f
b3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBraW5kKCkgeyByZXR1cm4gUHJvdG9j
b2w7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5u
YW1lOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRGVjbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29s
RGVjbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUwYmNmY2YzM2JhNzM5NWM1
NmQ5NTJhNTc5ZDA5OTI3YjBiZTc2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbERl
Y2wgZXh0ZW5kcyBQcm90b2NvbCB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAg
IHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgdGhpcy5leHRlbmRzID0g
W107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0
dXJlTWFwID0gbmV3IE1hcCgpOwotICAgICAgICB0aGlzLl90eXBlVmFyaWFibGUgPSBuZXcgVHlw
ZVZhcmlhYmxlKG9yaWdpbiwgbmFtZSwgbnVsbCk7Ci0gICAgfQotICAgIAotICAgIGFkZEV4dGVu
ZHMocHJvdG9jb2wpCi0gICAgewotICAgICAgICB0aGlzLmV4dGVuZHMucHVzaChwcm90b2NvbCk7
Ci0gICAgfQotICAgIAotICAgIGFkZChzaWduYXR1cmUpCi0gICAgewotICAgICAgICBpZiAoIShz
aWduYXR1cmUgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSkKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiU2lnbmF0dXJlIGlzbid0IGEgUHJvdG9jb2xGdW5jRGVjbCBidXQgYSAiICsg
c2lnbmF0dXJlLmNvbnN0cnVjdG9yLm5hbWUpOwotICAgICAgICAKLSAgICAgICAgc2lnbmF0dXJl
LnByb3RvY29sRGVjbCA9IHRoaXM7Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWdu
YXR1cmUpOwotICAgICAgICBsZXQgb3ZlcmxvYWRzID0gdGhpcy5fc2lnbmF0dXJlTWFwLmdldChz
aWduYXR1cmUubmFtZSk7Ci0gICAgICAgIGlmICghb3ZlcmxvYWRzKQotICAgICAgICAgICAgdGhp
cy5fc2lnbmF0dXJlTWFwLnNldChzaWduYXR1cmUubmFtZSwgb3ZlcmxvYWRzID0gW10pOwotICAg
ICAgICBvdmVybG9hZHMucHVzaChzaWduYXR1cmUpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2ln
bmF0dXJlcygpIHsgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZXM7IH0KLSAgICBzaWduYXR1cmVzQnlO
YW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQobmFtZSk7IH0KLSAgICBn
ZXQgdHlwZVZhcmlhYmxlKCkgeyByZXR1cm4gdGhpcy5fdHlwZVZhcmlhYmxlOyB9Ci0gICAgCi0g
ICAgc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFyaWFibGUobmFtZSwgdHlwZVZhcmlhYmxlKQot
ICAgIHsKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24oW3RoaXMu
dHlwZVZhcmlhYmxlXSwgW3R5cGVWYXJpYWJsZV0pOwotICAgICAgICBsZXQgcmVzdWx0ID0gdGhp
cy5zaWduYXR1cmVzQnlOYW1lKG5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcChzaWduYXR1cmUgPT4g
c2lnbmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbikpOwotICAgIH0KLSAgICAKLSAgICBpbmhlcml0
cyhvdGhlclByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFvdGhlclByb3RvY29sKQotICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICAKLSAgICAgICAgaWYgKG90
aGVyUHJvdG9jb2wgaW5zdGFuY2VvZiBQcm90b2NvbFJlZikKLSAgICAgICAgICAgIG90aGVyUHJv
dG9jb2wgPSBvdGhlclByb3RvY29sLnByb3RvY29sRGVjbDsKLSAgICAgICAgCi0gICAgICAgIGZv
ciAobGV0IG90aGVyU2lnbmF0dXJlIG9mIG90aGVyUHJvdG9jb2wuc2lnbmF0dXJlcykgewotICAg
ICAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUob3RoZXJTaWdu
YXR1cmUubmFtZSk7Ci0gICAgICAgICAgICBpZiAoIXNpZ25hdHVyZXMpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5uYW1l
ICsgIiBkb2VzIG5vdCBoYXZlIGEgZnVuY3Rpb24gbmFtZWQgIiArIG90aGVyU2lnbmF0dXJlLm5h
bWUgKyAiIChsb29raW5nIGF0IHNpZ25hdHVyZSAiICsgb3RoZXJTaWduYXR1cmUgKyAiKSJ9Owot
ICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAg
ICAgICAgICBzaWduYXR1cmVzLCBbXSwKLSAgICAgICAgICAgICAgICBvdGhlclNpZ25hdHVyZS5w
YXJhbWV0ZXJUeXBlcywKLSAgICAgICAgICAgICAgICBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBl
Rm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykK
LSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkRpZCBub3Qg
ZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIgKyBvdGhlclNpZ25hdHVyZSArICIgaW4gIiAr
IHRoaXMubmFtZSArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92
ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsgIikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgbGV0
IHN1YnN0aXR1dGVkUmV0dXJuVHlwZSA9Ci0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy5y
ZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgICAgICBv
dmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQp
OwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlZFJldHVyblR5cGUuZXF1YWxzKG90aGVyU2ln
bmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxz
ZSwgcmVhc29uOiAiUmV0dXJuIHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAiICsgb3RoZXJTaWduYXR1
cmUucmV0dXJuVHlwZSArICIgYW5kICIgKyBzdWJzdGl0dXRlZFJldHVyblR5cGV9OwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgaGFz
SGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0
dXRpb24oW3RoaXMuX3R5cGVWYXJpYWJsZV0sIFt0eXBlXSk7Ci0gICAgICAgIGxldCBzaWduYXR1
cmVzID0gdGhpcy5zaWduYXR1cmVzOwotICAgICAgICBmb3IgKGxldCBvcmlnaW5hbFNpZ25hdHVy
ZSBvZiBzaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlID0gb3JpZ2luYWxT
aWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9
IHJlc29sdmVPdmVybG9hZEltcGwoc2lnbmF0dXJlLnBvc3NpYmxlT3ZlcmxvYWRzLCBzaWduYXR1
cmUudHlwZVBhcmFtZXRlcnMsIHNpZ25hdHVyZS5wYXJhbWV0ZXJUeXBlcywgc2lnbmF0dXJlLnJl
dHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwotICAgICAgICAgICAgaWYgKCFvdmVybG9h
ZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAi
RGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBmb3IgIiArIG9yaWdpbmFsU2lnbmF0dXJl
ICsgIiAoYXQgIiArIG9yaWdpbmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKSB3
aXRoIHR5cGUgIiArIHR5cGUgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6
ICIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGVkUmV0dXJuVHlwZSA9IG92ZXJsb2FkLmZ1
bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICBv
dmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQp
OwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlZFJldHVyblR5cGUuZXF1YWxzKHNpZ25hdHVy
ZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIkF0IHNpZ25hdHVyZSAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3Jp
Z2luYWxTaWduYXR1cmUub3JpZ2luLm9yaWdpblN0cmluZyArICIpOiByZXR1cm4gdHlwZSBtaXNt
YXRjaCBiZXR3ZWVuICIgKyBzaWduYXR1cmUucmV0dXJuVHlwZSArICIgYW5kICIgKyBzdWJzdGl0
dXRlZFJldHVyblR5cGUgKyAiIGluIGZvdW5kIGZ1bmN0aW9uICIgKyBvdmVybG9hZC5mdW5jLnRv
RGVjbFN0cmluZygpfTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAicHJv
dG9jb2wgIiArIHRoaXMubmFtZSArICIgeyAiICsgdGhpcy5zaWduYXR1cmVzLmpvaW4oIjsgIikg
KyAiOyB9IjsKLSAgICB9Ci19Ci0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Byb3RvY29sRnVuY0RlY2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5
YjVjOWI4ZTcxNjE4NjhhMWNlNDVkNTg4NjYzOTJjMDIyMjQ0ZDMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJvdG9jb2xGdW5jRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotY2xhc3MgUHJvdG9jb2xGdW5jRGVjbCBleHRlbmRzIEZ1bmMgewotICAgIGdldCB0eXBlUGFy
YW1ldGVyc0ZvckNhbGxSZXNvbHV0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5
cGVQYXJhbWV0ZXJzLmNvbmNhdCh0aGlzLnByb3RvY29sRGVjbC50eXBlVmFyaWFibGUpOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9j
b2xSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNjMGVhMzBkNzQ4ZDhiOWUxNjEwN2E5Zjgw
OGMyM2IzMjg2NWU2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xSZWYgZXh0ZW5kcyBQ
cm90b2NvbCB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAg
c3VwZXIob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgdGhpcy5wcm90b2NvbERlY2wgPSBudWxsOwot
ICAgIH0KLSAgICAKLSAgICBpbmhlcml0cyhvdGhlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLnByb3RvY29sRGVjbC5pbmhlcml0cyhvdGhlcik7Ci0gICAgfQotICAgIAotICAgIGhhc0hl
aXIodHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5oYXNIZWly
KHR5cGUpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaXNQcmltaXRpdmUoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmlzUHJpbWl0aXZlOwotICAgIH0KLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcwppbmRleCAxOTIyZThl
YzI3ZmMzOWQ5NWI0YWE4YmZhOWE1NmM5MTBmNmU2OGIyLi40OWRjODYzN2Q0ZTE0M2E5YjA3ZDU5
Y2YzZmI5NzVjZjg0YTY1ZTE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlTmFtZXMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UmVzb2x2ZU5hbWVzLmpzCkBAIC0zNSwxMiArMzUsNiBAQCBmdW5jdGlvbiByZXNvbHZlTmFtZXNJ
blR5cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKICAgICAgICAgbmFtZVJlc29sdmVyLmRvU3Rh
dGVtZW50KHR5cGUpOwogfQogCi1mdW5jdGlvbiByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9n
cmFtLCBuYW1lUmVzb2x2ZXIpCi17Ci0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5w
cm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIG5hbWVSZXNvbHZlci5kb1N0YXRlbWVudChwcm90
b2NvbCk7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5h
bWVSZXNvbHZlcikKIHsKICAgICBmb3IgKGxldCBmdW5jcyBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52
YWx1ZXMoKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVz
b2x2ZU92ZXJsb2FkSW1wbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29s
dmVPdmVybG9hZEltcGwuanMKaW5kZXggN2UyMjE1NmRlMWFjNWUyYTZjNzI0YWQzNDY5ZGM5MWU3
NDZmMjU2Ni4uYWM3MjQ5NGVlMjBiODQ3MmI1ODg3MzI5MDRiYTgyMDAzNDA1NDc0MSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBs
LmpzCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gcmVz
b2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMs
IHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZU92
ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50
cnlQb2ludCA9IGZhbHNlKQogewogICAgIGlmICghZnVuY3Rpb25zKQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIk51bGwgZnVuY3Rpb25zOyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gY2F1Z2h0IGJ5
IHRoZSBjYWxsZXIuIik7CkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9h
ZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBl
CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
KGZ1bmMsICJGdW5jdGlvbiBpcyBhICIgKyBmdW5jLnNoYWRlclR5cGUgKyAiIHNoYWRlciwgc28g
aXQgY2Fubm90IGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBleGlzdGluZyBzaGFkZXIuIikpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBsZXQgb3ZlcmxvYWQgPSBp
bmZlclR5cGVzRm9yQ2FsbChmdW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1
cm5UeXBlKTsKKyAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSk7CiAgICAgICAgIGlmIChvdmVybG9hZC5mYWlsdXJl
KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaChvdmVybG9hZC5mYWlsdXJlKTsKICAgICAgICAg
ZWxzZQpAQCAtNDYsMTIgKzQ2LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5j
dGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICBpZiAo
IXN1Y2Nlc3Nlcy5sZW5ndGgpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IGZhaWx1cmVzfTsK
ICAgICAKLSAgICBsZXQgbWluaW11bUNvbnZlcnNpb25Db3N0ID0gc3VjY2Vzc2VzLnJlZHVjZSgK
LSAgICAgICAgKHJlc3VsdCwgb3ZlcmxvYWQpID0+IE1hdGgubWluKHJlc3VsdCwgb3ZlcmxvYWQu
dW5pZmljYXRpb25Db250ZXh0LmNvbnZlcnNpb25Db3N0KSwKLSAgICAgICAgSW5maW5pdHkpOwot
ICAgIHN1Y2Nlc3NlcyA9IHN1Y2Nlc3Nlcy5maWx0ZXIoCi0gICAgICAgIG92ZXJsb2FkID0+IG92
ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dC5jb252ZXJzaW9uQ29zdCA9PSBtaW5pbXVtQ29udmVy
c2lvbkNvc3QpOwotICAgIAogICAgIC8vIElmIGFueSBvZiB0aGUgc2lnbmF0dXJlcyBhcmUgcmVz
dHJpY3RlZCB0aGVuIHdlIGNvbnNpZGVyIHRob3NlIGZpcnN0LiBUaGlzIGlzIGFuIGVzY2FwZSBt
ZWNoYW5pc20gZm9yCiAgICAgLy8gYnVpbHQtaW4gdGhpbmdzLgogICAgIC8vIEZJWE1FOiBJdCBz
aG91bGQgYmUgYW4gZXJyb3IgdG8gZGVjbGFyZSBhIGZ1bmN0aW9uIHRoYXQgaXMgYXQgbGVhc3Qg
YXMgc3BlY2lmaWMgYXMgYSByZXN0cmljdGVkIGZ1bmN0aW9uLgpAQCAtNzQsNyArNjgsNiBAQCBm
dW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRUeXBlcywgcmV0dXJuVHlwZQogICAgICAgICAgICAgbGV0IHBhcmFtZXRlckZ1bmMgPSBz
dWNjZXNzZXNbal0uZnVuYzsKICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNG
b3JDYWxsKAogICAgICAgICAgICAgICAgIHBhcmFtZXRlckZ1bmMsCi0gICAgICAgICAgICAgICAg
dHlwZUFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudEZ1bmMudHlwZVBhcmFtZXRlcnMgOiBbXSwK
ICAgICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMucGFyYW1ldGVyVHlwZXMsCiAgICAgICAgICAg
ICAgICAgYXJndW1lbnRGdW5jLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwogICAg
ICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKaW5kZXggM2JkMmE0ZDY1ZjU2NGY3MDhiMGVm
NDc1OWU0M2IyYzg4ZDQ4YzIzNC4uZTg3YmRjM2MzNDgzMTk5NTJmZjlkOGYwMzk5ZjM0OGVhOTUw
ZDYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5
cGVEZWZzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBl
RGVmcy5qcwpAQCAtMzEsMTMgKzMxLDYgQEAgZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5UeXBl
cyhwcm9ncmFtKQogICAgICAgICB0eXBlLnZpc2l0KHJlc29sdmVyKTsKIH0KIAotZnVuY3Rpb24g
cmVzb2x2ZVR5cGVEZWZzSW5Qcm90b2NvbHMocHJvZ3JhbSkKLXsKLSAgICBsZXQgcmVzb2x2ZXIg
PSBuZXcgVHlwZURlZlJlc29sdmVyKCk7Ci0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3Jh
bS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIHByb3RvY29sLnZpc2l0KHJlc29sdmVyKTsK
LX0KLQogZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5GdW5jdGlvbnMocHJvZ3JhbSkKIHsKICAg
ICBsZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJlc29sdmVyKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4IGY0MGQ2Yjg4YjI2ZWVkY2JmODI5ZjFiYWJi
MTBhMjA0NWI3YThlODMuLjE3MTVhZDBmYWI3OTk5Yjk2NWJiMDM5MDIyNTQwMTdkMTdiMzliMWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCkBAIC01Myw0MSAr
NTMsMTEgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgIC8vIHRoYXQuCiAgICAgdmlzaXRGdW5jRGVm
KG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdE5hdGl2ZUZ1bmMobm9kZSkgeyByZXR1
cm4gbm9kZTsgfQotICAgIHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUpIHsgcmV0dXJuIG5v
ZGU7IH0KICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZp
c2l0VHlwZURlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5v
ZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9k
ZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpIHsgcmV0dXJu
IG5vZGU7IH0KICAgICB2aXNpdEVudW1UeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KIAotICAg
IC8vIFRoaXMgaXMgYWxtb3N0IHdyb25nLiBXZSBpbnN0YW50aWF0ZSBGdW5jIGluIFN1YnN0aXR1
dGlvbiBpbiBQcm90b2NvbERlY2wuIFRoZW4sIHdlIGVuZCB1cAotICAgIC8vIG5vdCByZXdyaXRp
bmcgdHlwZSB2YXJpYWJsZXMuIEkgdGhpbmsgdGhhdCBqdXN0IHdvcmtzIGJlY2F1c2Ugbm90IHJl
d3JpdGluZyB0aGVtIHRoZXJlIGlzIE9LLgotICAgIC8vIEV2ZXJ5d2hlcmUgZWxzZSwgaXQncyBt
YW5kYXRvcnkgdGhhdCB3ZSBkb24ndCByZXdyaXRlIHRoZXNlIGJlY2F1c2Ugd2UgYWx3YXlzIGFz
c3VtZSB0aGF0Ci0gICAgLy8gdHlwZSB2YXJpYWJsZXMgYXJlIG91dHNpZGUgdGhlIHNjb3BlIG9m
IHJld3JpdGluZy4KLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7IHJldHVybiBub2RlOyB9
Ci0KLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgUHJvdG9jb2xGdW5jRGVjbCgKLSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyksCi0gICAg
ICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZp
c2l0KHRoaXMpKSwKLSAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLmlzQ2FzdCwKLSAgICAg
ICAgICAgIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAgICAgIHJlc3VsdC5wcm90b2NvbERlY2wgPSBu
b2RlLnByb3RvY29sRGVjbDsKLSAgICAgICAgcmVzdWx0LnBvc3NpYmxlT3ZlcmxvYWRzID0gbm9k
ZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAg
Ci0gICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKAotICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRo
aXMpLAotICAgICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzLm1hcChhcmd1bWVudCA9PiBhcmd1
bWVudC52aXNpdCh0aGlzKSkpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIo
bm9kZSkKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRnVuY1BhcmFtZXRlcihub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGUudmlzaXQodGhpcykpOwpAQCAtMTI1LDE0ICs5
NSw5IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAgfSkpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbm9kZTsKLSAgICB9
Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlQXJndW1lbnRz
Lm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7CisgICAgICAg
IGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKICAgICAg
ICAgcmVzdWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUudHlwZSwgdGhpcyk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQpAQCAtMzE3LDE0ICsyODIsNiBAQCBjbGFzcyBSZXdyaXRlciB7
CiAKICAgICBwcm9jZXNzRGVyaXZlZENhbGxEYXRhKG5vZGUsIHJlc3VsdCkKICAgICB7Ci0gICAg
ICAgIGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0g
ICAgICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICByZXR1
cm4gYWN0dWFsVHlwZUFyZ3VtZW50cy5tYXAoYWN0dWFsVHlwZUFyZ3VtZW50ID0+IGFjdHVhbFR5
cGVBcmd1bWVudC52aXNpdCh0aGlzKSk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIH0KLSAgICAgICAgcmVzdWx0LmFjdHVhbFR5cGVBcmd1
bWVudHMgPSBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0g
ICAgICAgIHJlc3VsdC5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzID0gaGFuZGxlVHlw
ZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMpOwogICAgICAg
ICBsZXQgYXJndW1lbnRUeXBlcyA9IG5vZGUuYXJndW1lbnRUeXBlczsKICAgICAgICAgaWYgKGFy
Z3VtZW50VHlwZXMpCiAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50
VHlwZXMubWFwKGFyZ3VtZW50VHlwZSA9PiBhcmd1bWVudFR5cGUudmlzaXQodGhpcykpOwpAQCAt
MzQyLDcgKzI5OSw2IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICB7CiAgICAgICAgIGxldCByZXN1
bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24oCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5u
YW1lLAotICAgICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4g
dHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0
Lm1hcChhcmd1bWVudCA9PiBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKSkpOwogICAgICAgICBy
ZXR1cm4gdGhpcy5wcm9jZXNzRGVyaXZlZENhbGxEYXRhKG5vZGUsIHJlc3VsdCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKaW5kZXggOTNmNmI5YjkzMmQy
NzJkNzdhM2RjMzE2N2Y1MjVmYTQwYTYxZWQyMy4uMzY4NjE4Zjg1MWM5ZDhlNTAyZmM1ZjlkNjdi
MTA5MTAzNGEzOTY3YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1s
CkBAIC00Miw3ICs0Miw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLSAgICA8
c2NyaXB0IHNyYz0iQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udmVy
dFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
RG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNjEsNyArNjAsNiBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
RmllbGQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTY5
LDcgKzY3LDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJGb3JMb29wLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iRnVuYy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1
bmNEZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJGdW5jSW5zdGFudGlhdG9yLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVuY1BhcmFtZXRlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+CkBAIC03OSw3ICs3Niw2
IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJbW1l
ZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC05Niw5ICs5Miw3IEBA
IHRkIHsKICAgICA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5h
dGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jSW5zdGFu
Y2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTA5LDEwICsxMDMsNiBAQCB0ZCB7CiAgICAg
PHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhV
bm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQ
cm90b2NvbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sRGVjbC5qcyI+
PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0
PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5
V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUmVjdXJzaW9u
Q2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0xNDEsMTAgKzEzMSw3IEBAIHRkIHsKICAgICA8c2Ny
aXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWZS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVm
LmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJld3JpdGVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Ci0gICAg
PHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlR5cGVWYXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBl
ZFZhbHVlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCmluZGV4IGI0
ZjUwODU5YTg3YWZiNjBlNTRiMzYwYzYwNTljNGFhYzhjMjNiY2EuLmE5ZmRlZWNlNDc1ODY2ODY2
M2VkMTAzMmY3MmIyMDNlODIwNTJhYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanMKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24gZ2VuZXJhdGVT
UElSVihzcGlydiwgcHJvZ3JhbSkKICAgICB0eXBlTWFwLnNldChwcm9ncmFtLmludHJpbnNpY3Mu
dWludDMyLCBjdXJyZW50SWQrKyk7CiAKICAgICBmb3IgKGxldCBlbnRyeVBvaW50IG9mIGZpbmRF
bnRyeVBvaW50cygpKSB7Ci0gICAgICAgIGxldCBpbmxpbmVkU2hhZGVyID0gcHJvZ3JhbS5mdW5j
SW5zdGFudGlhdG9yLmdldFVuaXF1ZShlbnRyeVBvaW50LCBbXSk7CisgICAgICAgIGxldCBpbmxp
bmVkU2hhZGVyID0gZW50cnlQb2ludDsKICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0s
IGlubGluZWRTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChlbnRyeVBvaW50KSk7CiAKICAgICAgICAg
bGV0IHR5cGVBbmFseXplciA9IG5ldyBTUElSVlR5cGVBbmFseXplcihwcm9ncmFtLCB0eXBlTWFw
LCBjdXJyZW50SWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRh
cmRMaWJyYXJ5LmpzCmluZGV4IDE5ODg3MjNjMzU0ODA4MWM2NjdmYWM3ODYyZjQwMjY3ZjlmOGI4
NTcuLjg4OTNiNTcxODg1YmZjOTM4ODQzMzg3ZjhmNjU5YmJhMjg1NzU2NDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKQEAgLTI5LDM2
MSArMjksNDY4IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSBgCiAvLyBUaGlzIGlzIHRoZSBXU0wg
c3RhbmRhcmQgbGlicmFyeS4gSW1wbGVtZW50YXRpb25zIG9mIGFsbCBvZiB0aGVzZSB0aGluZ3Mg
YXJlIGluCiAvLyBJbnRyaW5zaWNzLmpzLgogCi0vLyBOZWVkIHRvIGJvb3RzdHJhcCB2b2lkIGZp
cnN0LgogbmF0aXZlIHR5cGVkZWYgdm9pZDsKLQotbmF0aXZlIHR5cGVkZWYgdWludDg7Ci1uYXRp
dmUgdHlwZWRlZiBpbnQzMjsKLW5hdGl2ZSB0eXBlZGVmIHVpbnQzMjsKIG5hdGl2ZSB0eXBlZGVm
IGJvb2w7Ci10eXBlZGVmIGludCA9IGludDMyOwotdHlwZWRlZiB1aW50ID0gdWludDMyOwotCi1u
YXRpdmUgdHlwZWRlZiBmbG9hdDMyOwotdHlwZWRlZiBmbG9hdCA9IGZsb2F0MzI7Ci0KLW5hdGl2
ZSBvcGVyYXRvciBpbnQzMih1aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIGludDMyKHVpbnQ4KTsK
LW5hdGl2ZSBvcGVyYXRvciBpbnQzMihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDMyKGlu
dDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIodWludDgpOwotbmF0aXZlIG9wZXJhdG9yIHVp
bnQzMihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDgoaW50MzIpOwotbmF0aXZlIG9wZXJh
dG9yIHVpbnQ4KHVpbnQzMik7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDgoZmxvYXQpOwotbmF0aXZl
IG9wZXJhdG9yIGZsb2F0KGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50MzIpOwot
bmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQ4KTsKLQotbmF0aXZlIGludCBvcGVyYXRvcisoaW50
LCBpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0
b3IrKHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgKyB1aW50KGIpKTsg
fQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yKyhmbG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yKyso
aW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH0KLXVpbnQgb3BlcmF0b3IrKyh1aW50IHZh
bHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH0KLXVpbnQ4IG9wZXJhdG9yKysodWludDggdmFsdWUp
IHsgcmV0dXJuIHZhbHVlICsgMTsgfQotbmF0aXZlIGludCBvcGVyYXRvci0oaW50LCBpbnQpOwot
bmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0b3ItKHVpbnQ4
IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgLSB1aW50KGIpKTsgfQotbmF0aXZl
IGZsb2F0IG9wZXJhdG9yLShmbG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yLS0oaW50IHZhbHVl
KSB7IHJldHVybiB2YWx1ZSAtIDE7IH0KLXVpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVlKSB7IHJl
dHVybiB2YWx1ZSAtIDE7IH0KLXVpbnQ4IG9wZXJhdG9yLS0odWludDggdmFsdWUpIHsgcmV0dXJu
IHZhbHVlIC0gMTsgfQotbmF0aXZlIGludCBvcGVyYXRvciooaW50LCBpbnQpOwotbmF0aXZlIHVp
bnQgb3BlcmF0b3IqKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0b3IqKHVpbnQ4IGEsIHVpbnQ4
IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgKiB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9w
ZXJhdG9yKihmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGludCBvcGVyYXRvci8oaW50LCBpbnQpOwot
bmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0b3IvKHVpbnQ4
IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgLyB1aW50KGIpKTsgfQotbmF0aXZl
IGludCBvcGVyYXRvciYoaW50LCBpbnQpOwotbmF0aXZlIGludCBvcGVyYXRvcnwoaW50LCBpbnQp
OwotbmF0aXZlIGludCBvcGVyYXRvcl4oaW50LCBpbnQpOwotbmF0aXZlIGludCBvcGVyYXRvcn4o
aW50KTsKLW5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQsIHVpbnQpOwotbmF0aXZlIGludCBvcGVy
YXRvcj4+KGludCwgdWludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvciYodWludCwgdWludCk7Ci1u
YXRpdmUgdWludCBvcGVyYXRvcnwodWludCwgdWludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcl4o
dWludCwgdWludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcn4odWludCk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvcjw8KHVpbnQsIHVpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LCB1aW50
KTsKLXVpbnQ4IG9wZXJhdG9yJih1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50
KGEpICYgdWludChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yfCh1aW50OCBhLCB1aW50OCBiKSB7IHJl
dHVybiB1aW50OCh1aW50KGEpIHwgdWludChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yXih1aW50OCBh
LCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIF4gdWludChiKSk7IH0KLXVpbnQ4IG9w
ZXJhdG9yfih1aW50OCB2YWx1ZSkgeyByZXR1cm4gdWludDgofnVpbnQodmFsdWUpKTsgfQotdWlu
dDggb3BlcmF0b3I8PCh1aW50OCBhLCB1aW50IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgPDwg
KGIgJiA3KSk7IH0KLXVpbnQ4IG9wZXJhdG9yPj4odWludDggYSwgdWludCBiKSB7IHJldHVybiB1
aW50OCh1aW50KGEpID4+IChiICYgNykpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0
LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwgaW50KTsKLW5hdGl2ZSBib29s
IG9wZXJhdG9yPT0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPT0odWludDggYSwgdWludDgg
YikgeyByZXR1cm4gdWludChhKSA9PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09
KGJvb2wsIGJvb2wpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShmbG9hdCwgZmxvYXQpOwotbmF0
aXZlIGJvb2wgb3BlcmF0b3I8KGludCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPCh1aW50
LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQo
YSkgPCB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwoZmxvYXQsIGZsb2F0KTsKLW5h
dGl2ZSBib29sIG9wZXJhdG9yPD0oaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PSh1
aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8PSh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1
aW50KGEpIDw9IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0oZmxvYXQsIGZsb2F0
KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRv
cj4odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPih1aW50OCBhLCB1aW50OCBiKSB7IHJldHVy
biB1aW50KGEpID4gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9h
dCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJh
dG9yPj0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPj0odWludDggYSwgdWludDggYikgeyBy
ZXR1cm4gdWludChhKSA+PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KGZsb2F0
LCBmbG9hdCk7Ci0KLWJvb2wgb3BlcmF0b3ImKGJvb2wgYSwgYm9vbCBiKQotewotICAgIGlmIChh
KQotICAgICAgICByZXR1cm4gYjsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgb3BlcmF0
b3J8KGJvb2wgYSwgYm9vbCBiKQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBpZiAoYikKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1ib29sIG9wZXJhdG9yXihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAg
cmV0dXJuICFiOwotICAgIHJldHVybiBiOwotfQotCi1ib29sIG9wZXJhdG9yfihib29sIHZhbHVl
KQotewotICAgIHJldHVybiAhdmFsdWU7Ci19Ci0KLXByb3RvY29sIEFkZGFibGUgewotICAgIEFk
ZGFibGUgb3BlcmF0b3IrKEFkZGFibGUsIEFkZGFibGUpOwotfQotCi1wcm90b2NvbCBFcXVhdGFi
bGUgewotICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7Ci19Ci0KLXJl
c3RyaWN0ZWQgb3BlcmF0b3I8VD4gVCgpCi17Ci0gICAgVCBkZWZhdWx0VmFsdWU7Ci0gICAgcmV0
dXJuIGRlZmF1bHRWYWx1ZTsKLX0KLQotcmVzdHJpY3RlZCBvcGVyYXRvcjxUPiBUKFQgeCkKLXsK
LSAgICByZXR1cm4geDsKLX0KLQotb3BlcmF0b3I8VDpFcXVhdGFibGU+IGJvb2woVCB4KQotewot
ICAgIHJldHVybiB4ICE9IFQoKTsKLX0KLQotc3RydWN0IHZlYzI8VD4gewotICAgIFQgeDsKLSAg
ICBUIHk7Ci19Ci0KLXR5cGVkZWYgaW50MiA9IHZlYzI8aW50PjsKLXR5cGVkZWYgdWludDIgPSB2
ZWMyPHVpbnQ+OwotdHlwZWRlZiBmbG9hdDIgPSB2ZWMyPGZsb2F0PjsKLQotb3BlcmF0b3I8VD4g
dmVjMjxUPihUIHgsIFQgeSkKLXsKLSAgICB2ZWMyPFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9
IHg7Ci0gICAgcmVzdWx0LnkgPSB5OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgb3Bl
cmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMjxUPiBhLCB2ZWMyPFQ+IGIpCi17Ci0gICAgcmV0dXJu
IGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKLX0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+
KHRocmVhZCB2ZWMyPFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDAp
Ci0gICAgICAgIHJldHVybiAmZm9vLT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKLSAgICB0cmFwOwotfQotCi1zdHJ1Y3QgdmVjMzxUPiB7Ci0gICAgVCB4
OwotICAgIFQgeTsKLSAgICBUIHo7Ci19Ci0KLXR5cGVkZWYgaW50MyA9IHZlYzM8aW50PjsKLXR5
cGVkZWYgdWludDMgPSB2ZWMzPHVpbnQ+OwotdHlwZWRlZiBmbG9hdDMgPSB2ZWMzPGZsb2F0PjsK
LQotb3BlcmF0b3I8VD4gdmVjMzxUPihUIHgsIFQgeSwgVCB6KQotewotICAgIHZlYzM8VD4gcmVz
dWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHk7Ci0gICAgcmVzdWx0Lnog
PSB6OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLW9wZXJhdG9yPFQ+IHZlYzM8VD4odmVjMjxU
PiB2MiwgVCB6KQotewotICAgIHZlYzM8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjIueDsK
LSAgICByZXN1bHQueSA9IHYyLnk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLW9wZXJhdG9yPFQ+IHZlYzM8VD4oVCB4LCB2ZWMyPFQ+IHYyKQotewotICAgIHZl
YzM8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHYyLng7Ci0g
ICAgcmVzdWx0LnogPSB2Mi55OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLWJvb2wgb3BlcmF0
b3I9PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwotfQotCi10aHJlYWQgVCogb3Bl
cmF0b3ImW108VD4odGhyZWFkIHZlYzM8VD4qIGZvbywgdWludCBpbmRleCkKLXsKLSAgICBpZiAo
aW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgaWYgKGluZGV4ID09IDEp
Ci0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIGlmIChpbmRleCA9PSAyKQotICAgICAgICBy
ZXR1cm4gJmZvby0+ejsKLSAgICB0cmFwOwotfQotCi1zdHJ1Y3QgdmVjNDxUPiB7Ci0gICAgVCB4
OwotICAgIFQgeTsKLSAgICBUIHo7Ci0gICAgVCB3OwotfQotCi10eXBlZGVmIGludDQgPSB2ZWM0
PGludD47Ci10eXBlZGVmIHVpbnQ0ID0gdmVjNDx1aW50PjsKLXR5cGVkZWYgZmxvYXQ0ID0gdmVj
NDxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIFQgeiwgVCB3KQotewot
ICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHk7
Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4gdjIsIFQgeiwgVCB3KQotewotICAg
IHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjIueDsKLSAgICByZXN1bHQueSA9IHYy
Lnk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsKLSAgICByZXR1cm4gcmVz
dWx0OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgdmVjMjxUPiB2MiwgVCB3KQotewot
ICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHYy
Lng7Ci0gICAgcmVzdWx0LnogPSB2Mi55OwotICAgIHJlc3VsdC53ID0gdzsKLSAgICByZXR1cm4g
cmVzdWx0OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgVCB5LCB2ZWMyPFQ+IHYyKQot
ewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9
IHk7Ci0gICAgcmVzdWx0LnogPSB2Mi54OwotICAgIHJlc3VsdC53ID0gdjIueTsKLSAgICByZXR1
cm4gcmVzdWx0OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4gdjJhLCB2ZWMyPFQ+
IHYyYikKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHYyYS54OwotICAg
IHJlc3VsdC55ID0gdjJhLnk7Ci0gICAgcmVzdWx0LnogPSB2MmIueDsKLSAgICByZXN1bHQudyA9
IHYyYi55OwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4odmVj
MzxUPiB2MywgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjMu
eDsKLSAgICByZXN1bHQueSA9IHYzLnk7Ci0gICAgcmVzdWx0LnogPSB2My56OwotICAgIHJlc3Vs
dC53ID0gdzsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQg
eCwgdmVjMzxUPiB2MykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHg7
Ci0gICAgcmVzdWx0LnkgPSB2My54OwotICAgIHJlc3VsdC56ID0gdjMueTsKLSAgICByZXN1bHQu
dyA9IHYzLno7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYm9vbCBvcGVyYXRvcj09PFQ6RXF1
YXRhYmxlPih2ZWM0PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKLX0KLQotdGhyZWFkIFQq
IG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWM0PFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAg
aWYgKGluZGV4ID09IDApCi0gICAgICAgIHJldHVybiAmZm9vLT54OwotICAgIGlmIChpbmRleCA9
PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICBpZiAoaW5kZXggPT0gMikKLSAgICAg
ICAgcmV0dXJuICZmb28tPno7Ci0gICAgaWYgKGluZGV4ID09IDMpCi0gICAgICAgIHJldHVybiAm
Zm9vLT53OwotICAgIHRyYXA7Ci19Ci0KLW5hdGl2ZSB0aHJlYWQgVCogb3BlcmF0b3ImW108VD4o
dGhyZWFkIFRbXSwgdWludCk7Ci1uYXRpdmUgdGhyZWFkZ3JvdXAgVCogb3BlcmF0b3ImW108VD4o
dGhyZWFkZ3JvdXAgVFtdLCB1aW50KTsKLW5hdGl2ZSBkZXZpY2UgVCogb3BlcmF0b3ImW108VD4o
ZGV2aWNlIFRbXSwgdWludCk7Ci1uYXRpdmUgY29uc3RhbnQgVCogb3BlcmF0b3ImW108VD4oY29u
c3RhbnQgVFtdLCB1aW50KTsKLQotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KHRocmVh
ZCBUW10pOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KHRocmVhZGdyb3VwIFRbXSk7
Ci1uYXRpdmUgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oZGV2aWNlIFRbXSk7Ci1uYXRpdmUgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oY29uc3RhbnQgVFtdKTsKLQotdWludCBvcGVyYXRvci5sZW5n
dGg8VCwgdWludCBsZW5ndGg+KFRbbGVuZ3RoXSkKLXsKLSAgICByZXR1cm4gbGVuZ3RoOwotfQor
bmF0aXZlIHR5cGVkZWYgdWNoYXI7CituYXRpdmUgdHlwZWRlZiB1c2hvcnQ7CituYXRpdmUgdHlw
ZWRlZiB1aW50OworbmF0aXZlIHR5cGVkZWYgY2hhcjsKK25hdGl2ZSB0eXBlZGVmIHNob3J0Owor
bmF0aXZlIHR5cGVkZWYgaW50OworbmF0aXZlIHR5cGVkZWYgaGFsZjsKK25hdGl2ZSB0eXBlZGVm
IGZsb2F0OworbmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludDsKK25hdGl2ZSB0eXBlZGVmIGF0b21p
Y191aW50OworbmF0aXZlIHR5cGVkZWYgYm9vbDI7CituYXRpdmUgdHlwZWRlZiBib29sMzsKK25h
dGl2ZSB0eXBlZGVmIGJvb2w0OworbmF0aXZlIHR5cGVkZWYgdWNoYXIyOworbmF0aXZlIHR5cGVk
ZWYgdWNoYXIzOworbmF0aXZlIHR5cGVkZWYgdWNoYXI0OworbmF0aXZlIHR5cGVkZWYgdXNob3J0
MjsKK25hdGl2ZSB0eXBlZGVmIHVzaG9ydDM7CituYXRpdmUgdHlwZWRlZiB1c2hvcnQ0OworbmF0
aXZlIHR5cGVkZWYgdWludDI7CituYXRpdmUgdHlwZWRlZiB1aW50MzsKK25hdGl2ZSB0eXBlZGVm
IHVpbnQ0OworbmF0aXZlIHR5cGVkZWYgY2hhcjI7CituYXRpdmUgdHlwZWRlZiBjaGFyMzsKK25h
dGl2ZSB0eXBlZGVmIGNoYXI0OworbmF0aXZlIHR5cGVkZWYgc2hvcnQyOworbmF0aXZlIHR5cGVk
ZWYgc2hvcnQzOworbmF0aXZlIHR5cGVkZWYgc2hvcnQ0OworbmF0aXZlIHR5cGVkZWYgaW50MjsK
K25hdGl2ZSB0eXBlZGVmIGludDM7CituYXRpdmUgdHlwZWRlZiBpbnQ0OworbmF0aXZlIHR5cGVk
ZWYgaGFsZjI7CituYXRpdmUgdHlwZWRlZiBoYWxmMzsKK25hdGl2ZSB0eXBlZGVmIGhhbGY0Owor
bmF0aXZlIHR5cGVkZWYgZmxvYXQyOworbmF0aXZlIHR5cGVkZWYgZmxvYXQzOworbmF0aXZlIHR5
cGVkZWYgZmxvYXQ0OworbmF0aXZlIHR5cGVkZWYgaGFsZjJ4MjsKK25hdGl2ZSB0eXBlZGVmIGhh
bGYyeDM7CituYXRpdmUgdHlwZWRlZiBoYWxmMng0OworbmF0aXZlIHR5cGVkZWYgaGFsZjN4MjsK
K25hdGl2ZSB0eXBlZGVmIGhhbGYzeDM7CituYXRpdmUgdHlwZWRlZiBoYWxmM3g0OworbmF0aXZl
IHR5cGVkZWYgaGFsZjR4MjsKK25hdGl2ZSB0eXBlZGVmIGhhbGY0eDM7CituYXRpdmUgdHlwZWRl
ZiBoYWxmNHg0OworbmF0aXZlIHR5cGVkZWYgZmxvYXQyeDI7CituYXRpdmUgdHlwZWRlZiBmbG9h
dDJ4MzsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0Mng0OworbmF0aXZlIHR5cGVkZWYgZmxvYXQzeDI7
CituYXRpdmUgdHlwZWRlZiBmbG9hdDN4MzsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0M3g0OworbmF0
aXZlIHR5cGVkZWYgZmxvYXQ0eDI7CituYXRpdmUgdHlwZWRlZiBmbG9hdDR4MzsKK25hdGl2ZSB0
eXBlZGVmIGZsb2F0NHg0OworbmF0aXZlIHR5cGVkZWYgc2FtcGxlcjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sMj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJv
b2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8
dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXI0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxo
YWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Zmxv
YXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2w0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVj
aGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9y
dD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hh
cjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aGFsZjM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMUQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMURBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxib29sND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXIzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNo
b3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXI0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9y
dDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxp
bnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEQXJyYXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxo
YWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9v
bDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxREFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
QXJyYXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXIzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyMj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGlu
dD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxREFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFy
cmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGZsb2F0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8
Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8
dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxo
YWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29s
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXIzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0Mj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludD47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
RDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1aW50ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxp
bnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZs
b2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJv
b2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8
dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRB
cnJheTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydD47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmMj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9h
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2w+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFy
cmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVjaGFyND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJh
eTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVp
bnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkRBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxo
YWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkRBcnJheTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJh
eTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2w+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTNEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sMz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTNEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTNEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVp
bnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludDQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTNEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTNEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmMz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlM0Q8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNE
PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNE
PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlM0Q8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUzRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxm
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2wyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJl
PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVDdWJlPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hh
cjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmVDdWJlPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8
Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcjM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVDdWJlPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlQ3ViZTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGY+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZjQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0Mz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRo
MkQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkQ8aGFsZj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZURlcHRoMkQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlRGVwdGgyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoQ3ViZTxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGhhbGY+OwogYDsKLQotZnVu
Y3Rpb24gaW50VG9TdHJpbmcoeCkKLXsKLSAgICBzd2l0Y2ggKHgpIHsKLSAgICBjYXNlIDA6Ci0g
ICAgICAgIHJldHVybiAieCI7Ci0gICAgY2FzZSAxOgotICAgICAgICByZXR1cm4gInkiOwotICAg
IGNhc2UgMjoKLSAgICAgICAgcmV0dXJuICJ6IjsKLSAgICBjYXNlIDM6Ci0gICAgICAgIHJldHVy
biAidyI7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3Qg
Z2VuZXJhdGUgc3RhbmRhcmQgbGlicmFyeS4iKTsKLSAgICB9Ci19Ci0KLS8vIFRoZXJlIGFyZSA0
ODEgc3dpenpsZSBvcGVyYXRvcnMsIHNvIHdlIGNvbXBpbGUgdGhlbSBhcyBuYXRpdmUgZnVuY3Rp
b25zCi1zdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmFsbFN3aXp6bGVPcGVyYXRvcnMoKS5q
b2luKCI7XG4iKSArICI7IjsKLWNvbnNvbGUubG9nKHN0YW5kYXJkTGlicmFyeSk7ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhdGVtZW50Q2xvbmVyLmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3ZjdmYzFhNjNi
YzcxY2YzMTYuLjNiODQ4ODhhNzA1NTc2MGQ2MGVhNjgzMjFjNTQzODFkNmJmNDQ3NjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKQEAg
LTI3LDExICsyNyw5IEBACiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZVBhcmFtZXRl
cnMgPSBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0
ZXIudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNEZWYoCiAgICAg
ICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5U
eXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAg
ICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykp
LAogICAgICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5p
c0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNzIFN0YXRlbWVu
dENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOYXRp
dmVGdW5jKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAg
IG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFt
ZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAg
ICAgICAgICAgICBub2RlLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlz
aXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CiAg
ICAgICAgIHJlc3VsdC5pc1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKQEAgLTU0LDUy
ICs1MSwyNCBAQCBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAg
dmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5
cGUoCi0gICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVQYXJhbWV0
ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpKTsKKyAg
ICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLmJhc2VOYW1lLCBub2RlLnR5cGVBcmd1bWVudHMu
bWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKICAgICB9CiAg
ICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFR5
cGVEZWYoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAg
bm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZp
c2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CiAgICAgfQog
ICAgIAogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3Vs
dCA9IG5ldyBTdHJ1Y3RUeXBlKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwK
LSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlw
ZVBhcmFtZXRlci52aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVj
dFR5cGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSk7CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9m
IG5vZGUuZmllbGRzKQogICAgICAgICAgICAgcmVzdWx0LmFkZChmaWVsZC52aXNpdCh0aGlzKSk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHBy
VHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBDb25zdGV4cHJU
eXBlUGFyYW1ldGVyKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlz
KSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRGVjbChub2RlLm9yaWdpbiwgbm9kZS5uYW1l
KTsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAg
ICAgcmVzdWx0LmFkZEV4dGVuZHMocHJvdG9jb2wudmlzaXQodGhpcykpOwotICAgICAgICBmb3Ig
KGxldCBzaWduYXR1cmUgb2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgcmVzdWx0LmFk
ZChzaWduYXR1cmUudmlzaXQodGhpcykpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LQotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3
IFR5cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBOb2RlLnZpc2l0KG5vZGUucHJv
dG9jb2wsIHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBQcm90b2NvbFJlZihub2RlLm9yaWdpbiwgbm9kZS5u
YW1lKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRCb29sTGl0ZXJhbChub2RlKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIG5ldyBCb29sTGl0ZXJhbChub2RlLm9yaWdpbiwgbm9kZS52YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWls
ZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRl
ci5qcwppbmRleCA0Zjk4YzU3M2ExYTM4MjM3ZTE2NDUwYWUxMGI4NmNiMmU2MWQxMjMwLi43NDQx
ZGVlZWQ0M2QwNjJkYjEzMDM2NzY0OTBmMzY4Y2ViNmQ4M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKQEAgLTM5LDgg
KzM5LDYgQEAgY2xhc3MgU3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAg
IHsKICAgICAgICAgaWYgKG5vZGUuc2l6ZSAhPSBudWxsKQogICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBpZiAobm9kZS50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkNhbm5vdCBkbyBsYXlvdXQgZm9yIGdlbmVyaWMgdHlwZTogIiArIG5vZGUp
OwogICAgICAgICBsZXQgb2xkT2Zmc2V0ID0gdGhpcy5fb2Zmc2V0OwogICAgICAgICB0aGlzLl9v
ZmZzZXQgPSAwOwogICAgICAgICBzdXBlci52aXNpdFN0cnVjdFR5cGUobm9kZSk7CkBAIC02MCwx
MiArNTgsNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgICAgIHRoaXMuX29mZnNldCArPSBzaXplOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5hdGl2
ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXROYXRpdmVGdW5j
SW5zdGFuY2Uobm9kZSk7Ci0gICAgICAgIG5vZGUuZnVuYy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBs
ZW1lbnRhdGlvbkRhdGEobm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEpOwotICAgIH0KLSAgICAKICAg
ICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnZpc2l0VHlwZVJlZihu
b2RlKTsKQEAgLTc2LDEzICs2OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICB7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJn
dW1lbnRMaXN0KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAg
ICAgIGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0g
ICAgICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZv
ciAobGV0IGFyZ3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAg
ICAgIGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAg
ICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3Vt
ZW50cyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMp
OwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKaW5kZXggZjlkOGM3ZGE0
ODU4MzIxNjFlNTVkMjJhNDM4NzYyOTkzMzdjYjkzNi4uMzk0N2ZkYmFjMDcwMDBkZTgwZmZmNjVm
ZDY2YzZlMDA1OGEyN2VjMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RydWN0VHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1
Y3RUeXBlLmpzCkBAIC0yNSwxMiArMjUsMTEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgU3Ry
dWN0VHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlw
ZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAg
ICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlz
Ll9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1l
dGVyczsKICAgICAgICAgdGhpcy5fZmllbGRzID0gbmV3IE1hcCgpOwogICAgIH0KICAgICAKQEAg
LTQ0LDcgKzQzLDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAg
IGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBvcmlnaW4oKSB7IHJl
dHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0
aGlzLl90eXBlUGFyYW1ldGVyczsgfQogICAgIAogICAgIGdldCBmaWVsZE5hbWVzKCkgeyByZXR1
cm4gdGhpcy5fZmllbGRzLmtleXMoKTsgfQogICAgIGZpZWxkQnlOYW1lKG5hbWUpIHsgcmV0dXJu
IHRoaXMuX2ZpZWxkcy5nZXQobmFtZSk7IH0KQEAgLTU4LDMyICs1Niw2IEBAIGNsYXNzIFN0cnVj
dFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAg
Ci0gICAgaW5zdGFudGlhdGUodHlwZUFyZ3VtZW50cyA9IG51bGwpCi0gICAgewotICAgICAgICBs
ZXQgc3Vic3RpdHV0aW9uID0gbnVsbDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gdGhp
cy50eXBlUGFyYW1ldGVyczsKLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlQXJndW1lbnRzKSB7
Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1l
dGVycy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRvIGlu
c3RhbnRpYXRpb24iKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0g
bmV3IFN1YnN0aXR1dGlvbih0aGlzLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLSAg
ICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gW107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGxldCBpbnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVz
KCk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZSh0aGlzLm9yaWdpbiwgdGhp
cy5uYW1lLCB0eXBlUGFyYW1ldGVycyk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMu
ZmllbGRzKSB7Ci0gICAgICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZDsKLSAgICAgICAgICAg
IGlmIChzdWJzdGl0dXRpb24pCi0gICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52
aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNp
dChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChuZXdGaWVs
ZCk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
ICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKICAg
ICAgICAgaWYgKHRoaXMuc2l6ZSA9PSBudWxsKQpAQCAtOTQsNiArNjYsNiBAQCBjbGFzcyBTdHJ1
Y3RUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuICJzdHJ1Y3QgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRl
cnMgKyAiPiB7ICIgKyBBcnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7
CisgICAgICAgIHJldHVybiAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIEFycmF5LmZy
b20odGhpcy5maWVsZHMpLmpvaW4oIjsgIikgKyAiOyB9IjsKICAgICB9CiB9CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMKaW5kZXggNmEyMjNmNjc5NGE4
NTZjNjQzMDhkZjQwYWI5MThhY2EyMDg2ZmIyOS4uNGFjZGZmY2VjYzU2MWEyMzM0MjAzM2UxYjhk
ZDMxYmFlMzM1NjZiOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3Vic3RpdHV0aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0
aXR1dGlvbi5qcwpAQCAtNDAsMTIgKzQwLDggQEAgY2xhc3MgU3Vic3RpdHV0aW9uIGV4dGVuZHMg
UmV3cml0ZXIgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IHJl
cGxhY2VtZW50ID0gdGhpcy5fbWFwLmdldChub2RlLnR5cGUpOwotICAgICAgICBpZiAocmVwbGFj
ZW1lbnQpIHsKLSAgICAgICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGFyZ3VtZW50cyBv
biB0eXBlIHZhcmlhYmxlIik7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVwbGFjZW1lbnQu
dmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQorICAgICAgICBpZiAocmVwbGFjZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gcmVw
bGFjZW1lbnQudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICAKICAgICAgICAgbGV0
IHJlc3VsdCA9IHN1cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVF
bnVtRnVuY3Rpb25zLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6
ZUVudW1GdW5jdGlvbnMuanMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhjMjlmMWVhMDUxMGNlMjll
MjgwYTU2Zi4uMTdiNjE4NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0MDAxNzliMiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlv
bnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1G
dW5jdGlvbnMuanMKQEAgLTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBzeW50aGVzaXplRW51bUZ1
bmN0aW9ucyhwcm9ncmFtKQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsKICAgICAgICAgCiAgICAg
ICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2lu
LCAib3BlcmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIsIFtdKSwgW10s
CisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBl
Lm9yaWdpbiwgImJvb2wiKSwKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBuZXcgRnVu
Y1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5
cGUubmFtZSwgW10pKSwKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9y
aWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKQorICAg
ICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlw
ZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSksCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUpKQogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7
CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4g
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAg
IHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9
IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1
ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAg
IFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5v
cmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJh
dG9yLnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAg
ICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5
cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUp
OwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVl
OwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5h
dGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3Bl
cmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAg
ICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVS
ZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdp
biwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwK
KyAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5
cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hh
ZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAg
ICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmln
aW4sICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwg
W10pLCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBU
eXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFy
YW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRl
cigpKSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZl
RnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3Jz
LmpzCmluZGV4IGY3ODE2ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1ZTRiZmUzYTkuLjBhYTc1
NjBlYTUzZmVhYmM5Nzc5ZDIwOGJjNGFkZTY5YjE5Yzg4NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5q
cwpAQCAtMzEsMjggKzMxLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhw
cm9ncmFtKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBmb3IgKGxl
dCBmaWVsZCBvZiB0eXBlLmZpZWxkcykgewotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlw
ZVBhcmFtZXRlcnMoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB0eXBl
LnR5cGVQYXJhbWV0ZXJzLm1hcCgKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlciA9
PiB0eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3cml0ZXIoKSkpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBl
QXJndW1lbnRzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZVBh
cmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgQXV0
b1dyYXBwZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBm
dW5jdGlvbiBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCBpbXBsZW1lbnRhdGlv
bikKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLmluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24gPSBzdWJzdGl0dXRpb24gPT4gewotICAgICAgICAgICAgICAgICAgICBs
ZXQgbmV3VHlwZSA9IHR5cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50eXBlUGFyYW1ldGVycy5t
YXAodHlwZVBhcmFtZXRlciA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic3Rp
dHV0ZSA9IHN1YnN0aXR1dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRocm93IG5ldyBFcnJvcigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBlIHBhcmFtZXRlciAiICsg
dHlwZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0
ZTsKLSAgICAgICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
e3R5cGU6IG5ld1R5cGUsIGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0gICAgICAgICAgICAgICAg
fTsKICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0g
KGltcGxlbWVudGF0aW9uRGF0YSwgdmlzaXRvcikgPT4gewogICAgICAgICAgICAgICAgICAgICAv
LyBWaXNpdGluZyB0aGUgdHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHN0cnVjdCBsYXlvdXQg
YnVpbGRlciBmaWd1cmVzIG91dCB0aGUgZmllbGQncwogICAgICAgICAgICAgICAgICAgICAvLyBv
ZmZzZXQuCkBAIC04OSwyMyArNjksMjEgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycyhwcm9ncmFtKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVG
aWVsZFR5cGUoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC50
eXBlLnZpc2l0KG5ldyBTdWJzdGl0dXRpb24odHlwZS50eXBlUGFyYW1ldGVycywgdHlwZVBhcmFt
ZXRlcnMpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgUmV3
cml0ZXIoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0
aW9uIGNyZWF0ZVR5cGVSZWYoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVy
biBUeXBlUmVmLmluc3RhbnRpYXRlKHR5cGUsIGNyZWF0ZVR5cGVBcmd1bWVudHMoKSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxldCBpc0Nhc3QgPSBmYWxzZTsKICAgICAg
ICAgICAgIGxldCBzaGFkZXJUeXBlOwotICAgICAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzOwog
ICAgICAgICAgICAgbGV0IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXI6
IG9wZXJhdG9yLmZpZWxkCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQ
YXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0g
ICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUsIGNy
ZWF0ZUZpZWxkVHlwZSgpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5v
cmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAgICAg
ICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRl
VHlwZVJlZigpKV0sIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cEltcGxl
bWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUsIGZp
ZWxkU2l6ZSkgPT4gewogICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcg
RUJ1ZmZlcihmaWVsZFNpemUpLCAwKTsKQEAgLTExNSw5ICs5Myw4IEBAIGZ1bmN0aW9uIHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRkKG5h
dGl2ZUZ1bmMpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBvcGVy
YXRvci5maWVsZD0KLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFt
ZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAg
ICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9Iiwg
Y3JlYXRlVHlwZVJlZigpLCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5v
cmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigpLAog
ICAgICAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIo
ZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAgICAg
ICBuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlwZSgp
KQpAQCAtMTM0LDEwICsxMTEsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3Jz
KHByb2dyYW0pCiAgICAgICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAogICAg
ICAgICAgICAgZnVuY3Rpb24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygp
OwogICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAg
ICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBuZXcg
UHRyVHlwZShmaWVsZC5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkpLAot
ICAgICAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAg
WwogICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5odG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2ZDBi
ZGQ0NDFiYmMuLjdhZDRhZDdiNDUwNTY1ZTRjNTZkYjU5MGE2MjA5ZjhlNzEyZTJkMGIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxz
Y3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1h
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNy
Yz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJh
bFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjMsNyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxv
b3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0
b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxz
Y3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
SW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxU
eXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4K
QEAgLTkwLDkgKzg2LDcgQEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5h
dGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
b3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxs
TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0
PgpAQCAtMTAzLDEwICs5Nyw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERl
Y2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHBy
ZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48
L3NjcmlwdD4KQEAgLTEzMSwxMCArMTIxLDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJU
eXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCAyYjA1NjkwMmE2NmNjMzJkMDRh
MWVhNzIwZDI1MWUzZjcwY2Y5NjQ4Li43NmNjYTg3OWFiMmZhZmIxMDU1OWZlY2Y4ZTg0MzMxNTc2
MWUxNzU5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4Nyw3ICsx
ODcsNyBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBydW5z
IG92ZXIgbXVsdGlwbGUgbGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVybiB0cnVl
OyB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgKICAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKQEAgLTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNvbW1lbnRQYXJz
aW5nID0gZnVuY3Rpb24oKSB7CiAKIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfSIpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1bmN0aW9uKCkg
ewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsgcmV0dXJuIHg7
IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBsZU1hdGggPSBm
dW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50
IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
MTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVy
biB4IC0geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSks
IG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBm
b28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcp
LCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCAtNSldKSwgLTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
IC8geTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1wbGVNYXRoID0g
ZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwg
dWludCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVp
bnQgeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCA3KV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
NDI5NDk2NzI5NCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50
IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgMzUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5
KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMild
KSwgMyk7CiB9CiAKIHRlc3RzLnVpbnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4g
eCArIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1
KV0pLCAxMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAx
Mik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsg
cmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJv
Z3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNyldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUp
XSksIDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyBy
ZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9n
cmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1
KV0pLCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4
IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9n
cmFtLCAyKV0pLCAzKTsKIH0KIAogdGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHgg
PT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHBy
b2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggPT0g
eTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwg
ZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ID09
IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRy
dWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRy
dWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkK
IHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAh
eDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1YWxpdHkgPSBm
dW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1
aW50IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50
KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgZmFsc2UpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4
IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50
OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHBy
b2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFt
LCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGlu
dCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJu
IHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5VHlw
ZUZhaWx1cmUgPSBmdW5jdGlvbigpCkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0cy5lcXVhbGl0
eVR5cGVGYWlsdXJlID0gZnVuY3Rpb24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9uID0gZnVuY3Rp
b24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCkgeyByZXR1
cm4gIXg7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAwKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMCldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsKICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA0MildKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAog
dGVzdHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHRl
c3RzLnNpbXBsZUdlbmVyaWMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxUPihUIHgpIHsg
cmV0dXJuIHg7IH0KICAgICAgICAgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQoeCkgKyAxOyB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0p
LCA0Myk7CiB9CiAKIHRlc3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAg
LTMzMSw3ICszMzEsNyBAQCB0ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxl
QXNzaWdubWVudCA9IGZ1bmN0aW9uKCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0cy5zaW1wbGVB
c3NpZ25tZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
MildKSwgNDIpOwogfQogCiB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQpAQCAtMzU2
LDcgKzM1Niw3IEBAIHRlc3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRl
c3RzLnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2OSw3IEBAIHRl
c3RzLnNpbXBsZURlcmVmZXJlbmNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZm
ZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0
clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIp
LCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVmZXJlbmNlU3Rv
cmUgPSBmdW5jdGlvbigpCkBAIC0zODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VTdG9y
ZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7
CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNl
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAg
ICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlw
ZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5l
dyBFUHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCiAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0
IGNvbnRhaW5zOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgdGVz
dHMuc2ltcGxlTWFrZVB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAmeDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pOwogICAgIGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5l
dyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsK
ICAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpKQpAQCAtNDE4LDcgKzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5TG9hZCA9IGZ1
bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAg
YnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3Jp
Z2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihu
ZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5h
bE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlS
ZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVz
dWx0LCA4OSk7CiB9CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWRJ
bnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1
ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQg
PSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlS
ZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0lu
dChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBAIHRlc3RzLmRl
dmljZUFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3
IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlS
ZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVz
dWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFy
cmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5p
bnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYzLDEwIEBAIHRl
c3RzLnRocmVhZEFycmF5U3RvcmUgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlw
ZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0
aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVm
KG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAg
ICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgw
KSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtl
SW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
YXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgw
KSAhPSAtMTExKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50
byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC00ODQs
MTAgKzQ4NCwxMCBAQCB0ZXN0cy5kZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxl
dCBhcnJheVJlZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4
dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAg
ICAgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0p
OworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHBy
b2dyYW0sIDY1KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTog
IiArIGJ1ZmZlci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAg
aWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
dmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQo
MCkpOwogfQpAQCAtNTA1LDMyICs1MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZUludExp
dGVyYWwgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAg
ICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZl
ciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlS
ZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5n
ZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0x
MTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVj
dGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBsZVByb3RvY29s
ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJv
dG9jb2wgTXlBZGRhYmxlIHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRh
YmxlLCBNeUFkZGFibGUpOwotICAgICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlBZGRhYmxlPihU
IGEsIFQgYikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwotICAgICAgICB9
Ci0gICAgICAgIGludCBmb28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBh
ZGQoeCwgNzMpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDUpXSksIDQ1
ICsgNzMpOwotfQotCiB0ZXN0cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCiB7CiAg
ICAgY2hlY2tGYWlsKApAQCAtNjY2LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1
bmN0aW9uKCkKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAgYnVmZmVyLnNl
dCgwLCA2Mik7CiAgICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pOwogICAgIGlmICghcmVzdWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUpKQogICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwog
ICAgIGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTksNiBAQCB0ZXN0
cy5zaW1wbGVTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jv
bmcgcmVzdWx0IGZvciB5OiAiICsgeSArICIgKHggKyAiICsgeCArICIpIik7CiB9CiAKLXRlc3Rz
LmdlbmVyaWNTdHJ1Y3RJbnN0YW5jZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVCB4OwotICAg
ICAgICAgICAgVCB5OwotICAgICAgICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhGb288aW50PiBm
b28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAgICAgICAgICAg
IHJlc3VsdC54ID0gZm9vLnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54OwotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBzdHJ1Y3RU
eXBlID0gVHlwZVJlZi5pbnN0YW50aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9vIiksIFtwcm9n
cmFtLmludHJpbnNpY3MuaW50MzJdKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7
Ci0gICAgYnVmZmVyLnNldCgwLCA2Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0
IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1
ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4ID0gcmVzdWx0
LmVQdHIuZ2V0KDApOwotICAgIGxldCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwotICAgIGlmICh4
ICE9IDI0KQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeDogIiAr
IHggKyAiICh5ID0gIiArIHkgKyAiKSIpOwotICAgIGlmICh5ICE9IDYyKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAi
KSIpOwotfQotCiB0ZXN0cy5kb3VibGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmljID0gZnVuY3Rp
b24oKQogewogICAgIGRvUHJlcChgCkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMucmV0dXJuTnVs
bCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVh
ZCBpbnQqIGZvbygpIHsgcmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlz
UHRyKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50
ZXI6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5l
cXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAsNyBAQCB0ZXN0
cy5kZXJlZmVyZW5jZURlZmF1bHROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7
CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03
ODAsNyArNzM0LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJh
cEVycm9yKTsKIH0KIApAQCAtNzk3LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25v
bW9ycGhpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUp
ID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgxMSw3IEBAIHRl
c3RzLnJldHVybk51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCiAgICAgICAgIHRocmVhZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAg
YCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAg
ICAgaWYgKCFyZXN1bHQudHlwZS5pc0FycmF5UmVmKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlJldHVybiB0eXBlIGlzIG5vdCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7
CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSkKQEAgLTg3Niw3ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHRO
dWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwK
KyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAg
IChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3ICs4NDQsNyBA
QCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAg
ICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJv
cik7CiB9CiAKQEAgLTkwNCw3ICs4NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxs
QXJyYXlSZWZJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAog
ICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05MjEsNyAr
ODc1LDcgQEAgdGVzdHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlv
bigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2Yg
V1RyYXBFcnJvcik7CiB9CiAKQEAgLTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBhc3NOdWxsVG9Q
dHJQb2x5bW9ycGhpY0FycmF5UmVmID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJuSW50TGl0ZXJh
bFVpbnQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9v
KCkgeyByZXR1cm4gNDI7IH0iKTsKLSAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5yZXR1
cm5JbnRMaXRlcmFsRmxvYXQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoImZsb2F0IGZvbygpIHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tO
dW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0K
IAogdGVzdHMuYmFkSW50TGl0ZXJhbEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4OCw3ICs5NDIs
NyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAg
bGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBl
ZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJv
eChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2lj
cy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMucGFzc051
bGxBbmROb3ROdWxsRnVsbFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1OSw3IEBAIHRl
c3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAg
IGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlw
ZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NO
dWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEwMjIsNjUgKzk3
Niw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9u
KCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVy
LnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgMTMpOwotfQotCi10ZXN0cy5udWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IGxlZnQgPSBuZXcgTnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwotICAgIGxldCBy
aWdodCA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAg
aWYgKGxlZnQuZXF1YWxzKHJpZ2h0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQg
bm90IGJlIGVxdWFsIGJ1dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICBp
ZiAocmlnaHQuZXF1YWxzKGxlZnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBu
b3QgYmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQpOwotICAgIAot
ICAgIGZ1bmN0aW9uIGV2ZXJ5T3JkZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAg
ZnVuY3Rpb24gcmVjdXJzZShhcnJheSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpZiAoIWFycmF5Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2suY2FsbChudWxsLCBvcmRlcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgbmV4
dEFycmF5ID0gYXJyYXkuY29uY2F0KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFycmF5LnNwbGlj
ZShpLCAxKTsKLSAgICAgICAgICAgICAgICByZWN1cnNlKG5leHRBcnJheSwgY2FsbGJhY2ssIG9y
ZGVyLmNvbmNhdChbYXJyYXlbaV1dKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIHJlY3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAgfQotICAgIAot
ICAgIGZ1bmN0aW9uIGV2ZXJ5UGFpcih0aGluZ3MpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gW107Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7ICsraikgewot
ICAgICAgICAgICAgICAgIGlmIChpICE9IGopCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5w
dXNoKFt0aGluZ3NbaV0sIHRoaW5nc1tqXV0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3JkZXIoCi0gICAg
ICAgIGV2ZXJ5UGFpcihbIm51bGxUeXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJUeXBlIl0pLAot
ICAgICAgICBvcmRlciA9PiB7Ci0gICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsKLSAgICAgICAg
ICAgIHR5cGVzLm51bGxUeXBlID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICAg
ICAgICAgIHR5cGVzLnZhcmlhYmxlVHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmln
aW4sICJUIiwgbnVsbCk7Ci0gICAgICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJjb25zdGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZm9vX3QiLCBbXSkpOwotICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5l
dyBVbmlmaWNhdGlvbkNvbnRleHQoW3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAgICAgICAgICAg
Zm9yIChsZXQgW2xlZnROYW1lLCByaWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAgICAgICAgICAg
ICAgbGV0IGxlZnQgPSB0eXBlc1tsZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJpZ2h0
ID0gdHlwZXNbcmlnaHROYW1lXTsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbGVmdC51
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJl
c3VsdCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBvcmRlciAiICsg
b3JkZXIgKyAiIGNhbm5vdCB1bmlmeSAiICsgbGVmdCArICIgd2l0aCAiICsgcmlnaHQpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCku
cmVzdWx0KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9y
ZGVyLm1hcCh2YWx1ZSA9PiAiKCIgKyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2ZXJpZnkiKTsK
LSAgICAgICAgfSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZp
Y2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAx
Myk7CiB9CiAKIHRlc3RzLmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEsOCArOTg3LDgg
QEAgdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuICEheDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuc2lt
cGxlUmVjdXJzaW9uID0gZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBAQCB0ZXN0cy5z
aW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvcik7CiB9CiAKLXRlc3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5k
PFQ+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAg
ICAgICB9Ci0gICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJl
c3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsK
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wg
SW50QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50QW5kYWJsZSwg
aW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwg
aW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0g
aW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCAr
IHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCks
IG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbFBv
bHlTaWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAg
ICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+
KGludCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiBy
ZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJl
c3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAg
ICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQ+
IGludEFuZDxUPihJbnRBbmRhYmxlLCBUKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6
SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwot
fQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0gZnVuY3Rpb24o
KQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxU
LCBVPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAg
ICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFu
ZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnRBbmQ8VCwgVT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmly
c3Q7Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVz
dWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9
Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+
IGludEFuZDxULCBVPihJbnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQg
Zm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwg
c2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0
LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0
ICsgMTIgKyAzOSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlE
ZWZFeHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAg
ICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAg
ICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGly
ZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAg
ICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNl
Y29uZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAg
ICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNv
bmQsIGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiBy
ZXN1bHQgPSBpbnRBbmQ8aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwot
ICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0s
IDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQogdGVzdHMu
dmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYApAQCAtMTIyOSw3ICsxMDE3LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgOCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkKICAgICAgICAg
ewpAQCAtMTI0Miw3ICsxMDMwLDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcp
OwogfQogCiB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcsMTMgKzEwNDUs
MTMgQEAgdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZVN0YXRlbWVu
dCA9IGZ1bmN0aW9uKCkKQEAgLTEyODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZFbHNlU3RhdGVt
ZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA5KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDkpXSksIDkpOwogfQogCiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAg
LTEzMDMsMTMgKzEwOTEsMTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0p
LCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAK
IHRlc3RzLmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMjgsMTMgKzEx
MTYsMTMgQEAgdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0p
LCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
OCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKIH0K
IAogdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1LDEzIEBAIHRl
c3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDkpXSksIDEwKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRv
UHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyArMTIwNywxMyBA
QCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCld
KSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA5KV0pLCA5KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRv
UHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsxMjM3LDcgQEAg
dGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgNik7CiB9CiAKIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAtMTQ2MiwzOSAr
MTI1MCw3IEBAIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19
Ci0KLXRlc3RzLnByb3RvY29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBmdW5j
dGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICBs
ZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBV
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAg
VCBzZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBU
IHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAg
IEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9
IGZpcnN0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAg
ICAgICAgICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJv
dG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGlu
dEFuZDxUPihJbnRBbmRhYmxlLCBULCBpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRo
aXJkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwg
aW50PiByZXN1bHQgPSBpbnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0
LnRoaXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGApOwotICAgICAgICAgICAg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBt
YWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAgICAgICAgfSwK
LSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEp
XSksIDE2KTsKIH0KIAogdGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBmdW5jdGlvbigp
CkBAIC0xNTM3LDcgKzEyOTMsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb24gPSBmdW5j
dGlvbigpCiAgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAgICAgICAgaW50
IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVz
dHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQpAQCAtMTU0
OCw3ICsxMzA0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0g
ZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQogICAgICAgICBp
bnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0
ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU1OCw3
ICsxMzE0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9u
KCkKICAgICAgICAgaW50IGZvbzxUPihUKSB7IHJldHVybiAyOyB9CiAgICAgICAgIGludCBiYXIo
KSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmlu
dExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3IEBAIHRlc3Rz
LmludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQgeCkg
eyByZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW10sIFtdKSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmljV2l0aFByb3Rv
Y29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHByb3RvY29sIE15Q29udmVydGlibGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBpbnQo
TXlDb252ZXJ0aWJsZVRvSW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6TXlDb252
ZXJ0aWJsZVRvSW50PihUIHgpIHsgcmV0dXJuIGludCh4KTsgfQotICAgICAgICBpbnQgYmFyKCkg
eyByZXR1cm4gZm9vKDQyKTsgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMu
dWludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMzMiw3IEBAIHRl
c3RzLnVpbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihU
IHgpIHsgcmV0dXJuIDM0Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUp
OyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxHZW5lcmljV2l0
aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb1VpbnQgewotICAgICAgICAgICAgb3BlcmF0
b3IgdWludChNeUNvbnZlcnRpYmxlVG9VaW50KTsKLSAgICAgICAgfQotICAgICAgICB1aW50IGZv
bzxUOk15Q29udmVydGlibGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsgfQotICAgICAg
ICB1aW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4
KTsKIH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKQEAg
LTE2MDksNyArMTM0MSw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5j
dGlvbigpCiAgICAgICAgIFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQg
YmFyKCkgeyByZXR1cm4gZm9vKGludCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDQyKTsKIH0K
IAogdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3ICsxMzU2LDcg
QEAgdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGZvbzw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwg
NTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmJyZWFr
ID0gZnVuY3Rpb24oKQpAQCAtMTY0MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJl
cChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgsOCArMTM5MCw4
IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgCiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwg
MTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOwogICAg
IGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28o
aW50IHgpCkBAIC0xNjk1LDcgKzE0MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgICAgIHsKQEAgLTE3
MDUsNyArMTQzNyw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAg
IHJldHVybiB4OwogICAgICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSks
IDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAg
ICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0Niw3IEBAIHRl
c3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1LDcgQEAgdGVz
dHMuY29udGludWUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSks
IDE4KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAg
ICBpbnQgZm9vKGludCB4KQpAQCAtMTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9XaGlsZSA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3ODIsNyArMTUx
NCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50
IHgpCiAgICAgICAgIHsKQEAgLTE3OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgOSldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwogfQogCiB0ZXN0
cy5mb3JMb29wID0gZnVuY3Rpb24oKQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVzdHMuZm9yTG9v
cCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBk
b1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODI3LDkgKzE1
NTksOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1
bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAx
MCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAg
ICAgIHsKQEAgLTE4NDEsOSArMTU3Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEx
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9ncmFtID0gZG9Q
cmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3MiwxMSArMTYw
NCwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1
bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKICAgICBw
cm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAt
MTg4OSwxMSArMTYyMSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSks
IDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAg
ICAgICAgewpAQCAtMTkwNywxMSArMTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZv
byhpbnQgeCkKICAgICAgICAgewpAQCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0cy5mb3JMb29w
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgp
ID0+IGRvUHJlcChgCiAgICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5NTAsMTEgKzE2
ODIsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYp
XSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAg
ICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTk3Mywx
MSArMTcwNSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0p
LCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0ZXN0cy5jaGFp
bkNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRlc3RzLmNoYWlu
Q29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0Mj4oYik7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChw
cm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0
aW9uKCkKQEAgLTIwMTUsNyArMTc0Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMzcpXSksIDM3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CiB9CiAKIHRl
c3RzLmNoYWluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcgQEAgdGVzdHMu
Y2hhaW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKCZ4KTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJv
Z3JhbSwgNDY1NyldKSwgNDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9
IGZ1bmN0aW9uKCkKQEAgLTIwNjMsNyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3RydWN0TmV3bHlW
YWxpZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIo
MSk7CiAgICAgYnVmZmVyLnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIo
YnVmZmVyLCAwKSldKSwgNzg0NTMpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1
bmN0aW9uKCkKQEAgLTIwODgsNyArMTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0RGV2aWNlID0g
ZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAg
ICBidWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJu
YWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihi
dWZmZXIsIDApKV0pLCA3OTIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmln
aW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pLCA3OTIwMSk7CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5j
dGlvbigpCkBAIC0yMTEzLDg5ICsxODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0cnVjdERldmlj
ZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7
CiAgICAgYnVmZmVyLnNldCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4
dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQ
dHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90b2NvbEV4dGVu
ZHMgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAg
ICB9Ci0gICAgICAgIHByb3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0
aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9vPih0aHJlYWQg
VCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHApOwotICAgICAgICB9Ci0gICAgICAg
IHZvaWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1
enoocCk7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28o
dGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAg
ICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAg
ICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQg
YSkKLSAgICAgICAgewotICAgICAgICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4g
YTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGhpbmd5IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsg
NzQzICsgOTEpOwotfQotCi10ZXN0cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEJhciB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0K
LSAgICAgICAgcHJvdG9jb2wgQmF6IDogRm9vLCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXoo
dGhyZWFkIEJheiopOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFk
IFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAg
ICB2b2lkIGJ1eno8VDpCYXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBi
YXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJlYWQgVCogcCkK
LSAgICAgICAgewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1enoocCk7Ci0g
ICAgICAgICAgICBiYXoocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGlu
dCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQot
ICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAq
cCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFkIGludCogcCkK
LSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9Ci0gICAgICAg
IGludCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHh1enooJmEpOwotICAg
ICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NDIpXSksIDY0MiArIDc0MyArIDkxICsgMzkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4
dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQ
dHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1
bmN0aW9uKCkKQEAgLTIyMDcsNyArMTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVz
dHMucHJlZml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcgKzE4NjgsNyBA
QCB0ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiArK3g7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzID0g
ZnVuY3Rpb24oKQpAQCAtMjIzMCw3ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAog
dGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0MSw3ICsxODkx
LDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHgrKzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0p
LCA2NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01p
bnVzID0gZnVuY3Rpb24oKQpAQCAtMjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJlZml4TWludXNN
aW51cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7
CiB9CiAKIHRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjY0
LDcgKzE5MTQsNyBAQCB0ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIC0teDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0
Zml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBAIHRlc3RzLnBv
c3RmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlv
bigpCkBAIC0yMjg3LDcgKzE5MzcsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51c1Jlc3VsdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LS07CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0K
IAogdGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0OSw3IEBAIHRl
c3RzLnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBm
dW5jdGlvbigpCkBAIC0yMzEwLDcgKzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSld
KSwgMzg1ICsgNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIz
MjIsNyArMTk3Miw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSks
IDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy5t
aW51c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3IEBAIHRlc3Rz
Lm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggLT0g
NDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFs
cyA9IGZ1bmN0aW9uKCkKQEAgLTIzNDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1
ICogNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIz
NTYsNyArMjAwNiw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHggKj0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwog
fQogCiB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcgKzIwMTgsNyBA
QCB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8
IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLmRp
dmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3IEBAIHRlc3Rz
LmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC89
IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8g
NDIpIHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKIH0KIAogdGVz
dHMudHdvSW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAsNyBAQCB0ZXN0
cy50d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0MiA9PSA0
MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLnVu
aWZ5RGlmZmVyZW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIxMjksNyBAQCB0
ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0
MiAqIDUgKyA0MiAqIDQxIC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2lu
Z0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcgQEAgdGVzdHMu
YnVpbGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gYmFyKEBhcnJheSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICog
NSArIDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5vdmVy
cmlkZVN1YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3Niw3IEBAIHRl
c3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIGZvb1swXSArIGZvb1sxXSAqIDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5
ICogMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDQ5OCArIDE5ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0
QW5kRG9TdG9yZXMgPSBmdW5jdGlvbigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0ZXN0cy5vdmVy
cmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIGZvby54ICsgZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
NDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50
ZXJzID0gZnVuY3Rpb24oKQpAQCAtMjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJz
Y3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBiYXIoJmZvbyk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkp
OwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzSW5jb3Jy
ZWN0bHkgPSBmdW5jdGlvbigpCkBAIC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5tYWtlQXJyYXlS
ZWZGcm9tTG9jYWwgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZy
b21Qb2ludGVyID0gZnVuY3Rpb24oKQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVzdHMubWFrZUFy
cmF5UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmF6KCZ4
KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJh
eVJlZkZyb21BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3IEBAIHRlc3Rz
LnNpbXBsZUxlbmd0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQGFycmF5KS5s
ZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMu
bm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0yNjk0LDcgKzIz
NDQsNyBAQCB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgPSBm
dW5jdGlvbigpCkBAIC0yNzkzLDcgKzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0ZXIgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDc4MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA3ODA0KTsKIH0KIAogdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQpAQCAt
MjgxOCw3ICsyNDY4LDcgQEAgdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZvby54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7
CiB9CiAKIHRlc3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0yOTAzLDM1NCAr
MjU1MywxMDMgQEAgdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBmb28uc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdLCBbXSksIDEg
KyAyICsgMyArIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtdKSwgNTMgKyA5
MzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpH
ZXR0ZXIiLCBbXSwgW10pLCAxICsgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSArIDIgKyAzICog
NSArIDQpOwotfQotCi10ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Qml0bWFza2Fi
bGUgOiBFcXVhdGFibGUgewotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvciYoTXlC
aXRtYXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9w
ZXJhdG9yfChNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0
bWFza2FibGUgb3BlcmF0b3J+KE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNr
YWJsZSBvcGVyYXRvcjw8KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgTXlCaXRt
YXNrYWJsZSBvcGVyYXRvcj4+KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgb3Bl
cmF0b3IgTXlCaXRtYXNrYWJsZShpbnQpOwotICAgICAgICB9Ci0gICAgICAgIFQgbWFza0ZvckJp
dEluZGV4PFQ6TXlCaXRtYXNrYWJsZT4odWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAg
ICAgcmV0dXJuIFQoMSkgPDwgaW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCBvcGVyYXRv
cltdPFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGJvb2wodmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpKTsK
LSAgICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1
ZSwgdWludCBpbmRleCwgYm9vbCBiaXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFQgbWFzayA9
IG1hc2tGb3JCaXRJbmRleDxUPihpbmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0KQotICAgICAg
ICAgICAgICAgIHZhbHVlIHw9IG1hc2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgdmFsdWUgJj0gfm1hc2s7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0K
LSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4gMzI7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgodWlu
dCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAg
IGludCB0ZXN0SW50U2V0Qml0MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0g
ICAgICAgICAgICBmb29bM10gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAg
ICAgfQotICAgICAgICBib29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAgICAgICAgICBy
ZXR1cm4gZm9vWzVdOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdldEJpdDEoKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0dXJuIGZvb1sx
XTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAg
ICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgICAgIGlmIChmb29baV0pCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBp
bnQgdGVzdFVpbnRTd2FwQml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0
MjsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGggLyAyOyArK2kp
IHsKLSAgICAgICAgICAgICAgICBib29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAgICAgICAgICBm
b29baV0gPSBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAgICBmb29bZm9v
Lmxlbmd0aCAtIGkgLSAxXSA9IHRtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVy
biBmb287Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB1aW50
IGY7Ci0gICAgICAgICAgICB1aW50IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgRm9v
KHVpbnQgZiwgdWludCBnKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAg
ICAgICAgICAgcmVzdWx0LmYgPSBmOwotICAgICAgICAgICAgcmVzdWx0LmcgPSBnOwotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuaChG
b28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gaW50KChmb28uZiAmIDB4ZmZm
ZikgfCAoKGZvby5nICYgMHhmZmZmKSA8PCAxNikpOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBv
cGVyYXRvci5oPShGb28gZm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZv
by5mICY9IH4weGZmZmZ1OwotICAgICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1ZSkgJiAweGZm
ZmY7Ci0gICAgICAgICAgICBmb28uZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5nIHw9
ICh1aW50KHZhbHVlKSA+PiAxNikgJiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwot
ICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0gICAgICAgICAg
ICBmb28uZyA9IDM3OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmgubGVu
Z3RoOyArK2kpCi0gICAgICAgICAgICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAg
IHJldHVybiBpbnQoZm9vLmYgKyBmb28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJh
ciB7Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICB9Ci0g
ICAgICAgIEZvbyBvcGVyYXRvci5jKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBGb28odWludChiYXIuYS5oKSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgQmFyIG9wZXJhdG9yLmM9KEJhciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGJhci5hLmggPSBpbnQoZm9vLmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9IGludChmb28u
Zyk7Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0
Q3JhenlMVmFsdWVFbXVsYXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXIgYmFyOwot
ICAgICAgICAgICAgYmFyLmEuZiA9IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0gMjsKLSAgICAg
ICAgICAgIGJhci5iLmYgPSAzOwotICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0gICAgICAgICAg
ICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAg
ICAgICAgIGJhci5jLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoYmFyLmEu
ZiArIGJhci5hLmcgKyBiYXIuYi5mICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRTZXRCaXQz
IiwgW10sIFtdKSwgOCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEludFNldEdldEJpdDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIsIFtdLCBbXSks
IGZhbHNlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RVaW50U3VtQml0cyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0MDkyODYxNDQp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1
ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCA0
MzY5Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
U3VwZXJCYXNpYyIsIFtdKSwgMSArIDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSksIDkzMik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIs
IFtdKSwgNTMgKyA5MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdFpHZXR0ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSksIDEgKyAyICsg
MyAqIDUgKyA0KTsKIH0KIAogdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uU2lt
cGxlID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
c3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9w
ZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIGZv
bzsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgc3VtKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1
bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQotICAg
ICAgICAgICAgICAgIHJlc3VsdCArPSBmb29baV07Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vWzZdIGFy
cmF5OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwotICAgICAgICB9
Ci0gICAgICAgIEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXIgYmFyKQotICAgICAgICB7
Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0g
YmFyLmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBC
YXogewotICAgICAgICAgICAgQmFyWzVdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIEJhciBv
cGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiYXouYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJheiBvcGVyYXRvcltd
PShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXo7Ci0gICAg
ICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAg
aW50IHN1bShCYXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsK
LSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAg
ICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKLSAgICAg
ICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewotICAg
ICAgICAgICAgICAgIGZvciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewotICAg
ICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTsp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBr
KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
aW50IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6
OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgcmV0dXJuIHN1bShi
YXopOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5k
U3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAgIHNldFZh
bHVlcygmYmF6KTsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykg
ewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewot
ICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5ndGg7IGstLTsp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBiYXpbaV1bal1ba10gKj0gaW50KGspOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZh
bHVlc0FuZFN1bSIsIFtdLCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRTdWJzY3JpcHRM
VmFsdWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBUWzddIGFycmF5
OworICAgICAgICAgICAgaW50WzddIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0
b3JbXTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4KQorICAgICAgICBpbnQgb3BlcmF0b3JbXShG
b28gZm9vLCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFy
cmF5W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXT08VD4oRm9v
PFQ+IGZvbywgdWludCBpbmRleCwgVCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJhdG9yW109KEZv
byBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgZm9v
LmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGZvbzsKICAgICAgICAg
fQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQorICAgICAgICB1
aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1
cm4gZm9vLmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUFkZGFi
bGUgewotICAgICAgICAgICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJs
ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxUPiBmb28pCisg
ICAgICAgIGludCBzdW0oRm9vIGZvbykKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7
CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0g
Zm9vLmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyPFQ+
IHsKLSAgICAgICAgICAgIEZvbzxUPls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJhciB7Cisg
ICAgICAgICAgICBGb29bNl0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRv
ci5sZW5ndGg8VD4oQmFyPFQ+IGJhcikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmFy
IGJhcikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5sZW5ndGg7CiAg
ICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJhciwgdWludCBp
bmRleCkKKyAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRleCkKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAg
ICAgICAgQmFyPFQ+IG9wZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgsIEZvbzxU
PiB2YWx1ZSkKKyAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZv
byB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVl
OwogICAgICAgICAgICAgcmV0dXJuIGJhcjsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15
QWRkYWJsZT4oQmFyPFQ+IGJhcikKKyAgICAgICAgaW50IHN1bShCYXIgYmFyKQogICAgICAgICB7
Ci0gICAgICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAg
ICAgICAgICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAg
IHJlc3VsdCArPSBzdW0oYmFyW2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
ICAgIH0KLSAgICAgICAgc3RydWN0IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8VD5bNV0gYXJy
YXk7CisgICAgICAgIHN0cnVjdCBCYXogeworICAgICAgICAgICAgQmFyWzVdIGFycmF5OwogICAg
ICAgICB9Ci0gICAgICAgIEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXosIHVpbnQgaW5k
ZXgpCisgICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAg
ICAgIEJhejxUPiBvcGVyYXRvcltdPTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4LCBCYXI8VD4g
dmFsdWUpCisgICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIg
dmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsK
ICAgICAgICAgICAgIHJldHVybiBiYXo7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRv
ci5sZW5ndGg8VD4oQmF6PFQ+IGJheikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6
IGJheikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7CiAg
ICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXopCisgICAgICAg
IGludCBzdW0oQmF6IGJheikKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAg
ICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxl
bmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7CiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIE15Q29u
dmVydGlibGVGcm9tVWludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZlcnRpYmxlRnJv
bVVpbnQodWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFsdWFibGUgOiBN
eUFkZGFibGUsIE15Q29udmVydGlibGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9pZCBzZXRWYWx1
ZXM8VDpTZXRWYWx1YWJsZT4odGhyZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2b2lkIHNldFZh
bHVlcyh0aHJlYWQgQmF6KiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAodWludCBp
ID0gYmF6LT5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgq
YmF6KVtpXS5sZW5ndGg7IGotLTspIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsg
PSAoKmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpi
YXopW2ldW2pdW2tdID0gVChpICsgaiArIGspOworICAgICAgICAgICAgICAgICAgICAgICAgKCpi
YXopW2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKICAg
ICAgICAgewotICAgICAgICAgICAgQmF6PGludD4gYmF6OworICAgICAgICAgICAgQmF6IGJhejsK
ICAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6
KTsKICAgICAgICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1
bSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJh
eiBiYXo7CiAgICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICBmb3IgKHVp
bnQgaSA9IGJhei5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9
IGJheltpXS5sZW5ndGg7IGotLTspIHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRlc3RzLm5lc3Rl
ZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10p
LCAxNTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0i
LCBbXSksIDE1NzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7CiB9CiAKIHRl
c3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEwIEBAIHRlc3Rz
LmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSks
IG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRP
ciA9IGZ1bmN0aW9uKCkKQEAgLTMyODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9vbEJpdE9yID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCkBA
IC0zMzAxLDEwICsyNzAwLDEwIEBAIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFs
c2UpOwogfQogCiB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMxNSw4ICsyNzE0
LDggQEAgdGVzdHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+
YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMu
aW50Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0ZXN0cy5pbnRC
aXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUlu
dChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0s
IC03KV0pLCAtNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwg
MCk7CiB9CiAKIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwxMCArMjc0MCwx
MCBAQCB0ZXN0cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwg
YjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0
MildKSwgNjU1MzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyld
KSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4
NTczMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXRYb3IgPSBm
dW5jdGlvbigpCkBAIC0zMzU1LDEwICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhvciA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtl
SW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dy
YW0sIDQyKV0pLCA2NTQ5Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcp
XSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMy
KTsKIH0KIAogdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwxMCArMjc2OCwx
MCBAQCB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNjU1MzUpXSksIC02NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDApXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0yKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY1NTM1KV0pLCAtNjU1MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMCldKSwgLTEpOwogfQogCiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0z
MzgzLDEwICsyNzgyLDEwIEBAIHRlc3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3
KV0pLCAxMjgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAy
NjIxNDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5p
bnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRlc3RzLmludFJT
aGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0p
LCAwKTsKIH0KIAogdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0MTEsMTAgKzI4
MTAsMTAgQEAgdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChw
cm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
NDIpXSksIDQyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwg
NDI5NDk2NzI4OSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMild
KSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0MjUsMTAgKzI4
MjQsMTAgQEAgdGVzdHMudWludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJv
Z3JhbSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCAtNyldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQpA
QCAtMzQzOSwxMCArMjgzOCwxMCBAQCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChw
cm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAt
MzQ1MywxMCArMjg1MiwxMCBAQCB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAx
KV0pLCA0Mjk0OTY3Mjk0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYw
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApXSks
IDQyOTQ5NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNjU1MzUpXSksIDQyOTQ5MDE3NjApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50TFNoaWZ0ID0g
ZnVuY3Rpb24oKQpAQCAtMzQ2NywxMCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNoaWZ0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRSU2hpZnQg
PSBmdW5jdGlvbigpCkBAIC0zNDgxLDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRSU2hpZnQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0QW5kID0gZnVu
Y3Rpb24oKQpAQCAtMzQ5NSwxMCArMjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwotICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKLSAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50
OEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0cy51aW50OEJp
dE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwg
Nyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0p
LCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyld
KSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTcz
MildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSks
IDcpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAy
NTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7
CiB9CiAKIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywxMCArMjkyMiwx
MCBAQCB0ZXN0cy51aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBh
IF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VV
aW50OChwcm9ncmFtLCA0MildKSwgMjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtl
VWludDgocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNDIpXSksIDIxMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJv
Z3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwg
ODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAt
MzUzNywxMCArMjkzNiwxMCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAxKV0pLCAyNTQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KV0pLCAw
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1
KTsKIH0KIAogdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUxLDEwICsyOTUw
LDEwIEBAIHRlc3RzLnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDI1Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAyMjQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAw
KTsKIH0KIAogdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1LDEwICsyOTY0
LDEwIEBAIHRlc3RzLnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dy
YW0sIDcpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwog
fQogCiB0ZXN0cy5mbG9hdE1hdGggPSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICszMDIzLDE3IEBA
IHRlc3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmbG9hdCh4
KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIs
IFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCA3LjUpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW10s
IFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcuNSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsKKyAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgNy41KTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtd
KSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEyIiwgW10pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tGYWlsKAogICAg
ICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKQEAgLTM3Mjks
NyArMzEyOCw3IEBAIHRlc3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4geC5yZWFsICsgeC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
Myk7CiB9CiAKIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2OCwxNCArMzE2
NywxNCBAQCB0ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBmYWxzZSB8fCBmYWxzZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIs
IFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzgiLCBbXSwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBb
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRl
c3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2LDEwICszMjE1
LDEwIEBAIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCiAgICAgICAg
IH0KICAgICBgKTsKIAotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYW5kVHJ1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYW5kRmFsc2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdLCBbXSks
IDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1
ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJhbmRGYWxzZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJvclRydWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3RzLnR5cGVkZWZB
cnJheSA9IGZ1bmN0aW9uKCkKQEAgLTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5cGVkZWZBcnJh
eSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZbMF07CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlwZXMgPSBmdW5j
dGlvbigpCkBAIC00MDg0LDI0ICszNDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0b3JzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28zIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIs
IFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvb3UyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10sIFtdKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTYi
LCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2YiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSwg
W10pLCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b29mNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvb2Y2IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1KTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vdTIiLCBbXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb2YiLCBbXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb29mMiIsIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdKSwgZmFs
c2UpOwogfQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQpA
QCAtNDEyMSw3ICszNTIwLDcgQEAgdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50
MiA9IGZ1bmN0aW9uKCkKQEAgLTQxMzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3Ry
dWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Lngu
eDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUVu
dW0gPSBmdW5jdGlvbigpCkBAIC00MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNpbXBsZUVudW0g
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKGludERlYXRoKCkpOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwg
Myk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNp
bXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIs
IFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIs
IFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSksIDApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10s
IFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJp
bnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwg
Mik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZh
bHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIs
IFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBb
XSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
ciIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5v
dGhlckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1p
bmUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNl
VmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10p
LCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtd
KSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50
RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJk
cyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24o
KQpAQCAtNDMxNywxMCArMzcxNiwxMCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBb
XSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIC00Mik7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3
Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
IiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlIiwgW10pLCAyMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVudW1XaXRob3V0
WmVybyA9IGZ1bmN0aW9uKCkKQEAgLTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMuZW51bVdpdGhT
b21lTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0
aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSks
IDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRo
IiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEpOwogfQogCiB0
ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpAQCAtNDM5MSw4
ICszNzkwLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9u
KCkKICAgICAgICAgaW50IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsgfQogICAgICAg
ICBpbnQgdGVzdFkoKSB7IHJldHVybiBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBb
XSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNT
dHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5lbnVtQ29uc3Rl
eHByR2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28oZik7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQog
CiB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBAQCB0ZXN0cy50
cmFwID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgNCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKKyAgICAg
ICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAgICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10p
LAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksCiAgICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcwLDkgKzM4Njks
OSBAQCB0ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHF1aXgu
ejsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgNCk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
Myk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW10pLCA0KTsKIH0KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBm
dW5jdGlvbigpCkBAIC00NTk3LDMyICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJ
bnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90
RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWlu
ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVW
YWx1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVy
YWwiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtd
LCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNr
d2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMi
LCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFs
IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIi
LCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50RmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBb
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJh
bCIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2Fy
ZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhC
YWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rp
b24oKQpAQCAtNDc0NywzMiArNDE0NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3
YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxl
RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10s
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10s
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10s
IFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dWludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDAp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0
ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwi
LCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFt
aW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhC
YWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVF
cXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBs
ZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIs
IFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidWludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFs
dWUiLCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0
ZXJhbCIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZh
bHVlTGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidWludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwg
MSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBl
c3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRl
c3RzLmVudW1GbG9hdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcsNyBAQCB0ZXN0
cy5lbXB0eVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0NjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1Y3RCYXNlID0g
ZnVuY3Rpb24oKQpAQCAtNDg1Nyw5ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dpdGNoID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjkpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5leGhhdXN0
aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBAQCB0ZXN0cy5l
eGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4
ZmY7ICsraSkKLSAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKIH0KIAogdGVzdHMubm90UXVpdGVFeGhhdXN0
aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBAQCB0ZXN0cy5u
b3RRdWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAg
IHRleHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0p
LCBpICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRl
c3RzLnN3aXRjaEZhbGxUaHJvdWdoID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0MzEyLDkgQEAg
dGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyAr
IDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsK
IH0KIAogdGVzdHMuc3dpdGNoQnJlYWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkgKzQzMzcsOSBA
QCB0ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUg
PSBmdW5jdGlvbigpCkBAIC00OTY2LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtF
eGhhdXN0aXZlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VF
bnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9v
IiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSks
IDQ5KTsKIH0KIAogdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlID0gZnVu
Y3Rpb24oKQpAQCAtNTAyMSw5ICs0NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVp
dGVFeGhhdXN0aXZlV2l0aERlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIp
XSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVt
KHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0p
LCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwg
IkZvbyIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVTdHJ1Y3QgPSBm
dW5jdGlvbigpCkBAIC01MDcyLDcgKzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0
cnVjdFdpdGhQb2ludGVyc0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwog
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkgPT4gY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpLAogICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5OCw3ICs0NDk3
LDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAtNTExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxpbmtlZExpc3Qg
PSBmdW5jdGlvbigpCkBAIC01MTE5LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRMaXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9pbnRlciA9IGZ1
bmN0aW9uKCkKQEAgLTUxNDIsNyArNDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5hcnJheVJlZlRv
QXJyYXlSZWYgPSBmdW5jdGlvbigpCkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0cy5hcnJheVJl
ZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0
ZXN0cy5wb2ludGVyR2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0NSw2IEBAIHRl
c3RzLnNldHRlcldpdGhNYXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKIH0KIAotdGVz
dHMub3BlcmF0b3JXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVj
dCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgRm9vIG9wZXJhdG9yKzxUPihGb28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIu
eDsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3Rz
Lm9wZXJhdG9yV2l0aG91dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsK
LSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9v
IGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1
bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0K
LSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAg
ICAgICAgYS54ID0gNjQ1OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAgICBiLnggPSAt
MzU7Ci0gICAgICAgICAgICByZXR1cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCA2NDUgLSAzNSk7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVycmFibGVUeXBl
VmFyaWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBk
b1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50IHgpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQueCA9IHg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwot
fQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRGcm9tUmV0dXJu
VHlwZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgcHJv
dG9jb2wgQmFyYWJsZSB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyYWJsZSosIGlu
dCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiByZXN1bHQsIGlu
dCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0KHZhbHVlKTsK
LSAgICAgICAgfQotICAgICAgICBvcGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZvbykKLSAgICAg
ICAgewotICAgICAgICAgICAgVCByZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJlc3VsdCwgZm9v
LngpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQg
Zm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby54
ID0gNzU7Ci0gICAgICAgICAgICBmbG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAgICAgICAgIHJl
dHVybiBpbnQoeCAqIDEuNSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7Ci19Ci0KIHRl
c3RzLmluY1dyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWls
KApAQCAtNTgyMyw3ICs1MTM0LDcgQEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHguZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDEzKTsKIH0KIAogdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9
IGZ1bmN0aW9uKCkKQEAgLTU4OTcsNyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0aEFycmF5UmVm
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0dGVyID0gZnVu
Y3Rpb24oKQpAQCAtNjA4Myw3ICs1Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5n
V3JvbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geFs2NjZdOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051
bWJlck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcgQEAgdGVzdHMu
aW5kZXhBbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAo
QHgpW2Zsb2F0KC0xKV07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0
ZXN0cy5kZXZpY2VQdHJQdHIgPSBmdW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUxOCw2IEBAIHRl
c3RzLmNvbnN0YW50UHRyUHRyID0gZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9u
LXByaW1pdGl2ZSB0eXBlOiBpbnQzMiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0gLTEpOwogfQog
Ci10ZXN0cy5wb2ludGVySW5kZXhHZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAg
IGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgcHJvdG9j
b2wgRm9vIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oJHthZGRyZXNzU3Bh
Y2V9IEZvbyosIHVpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyBy
ZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIGApLAotICAgICAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgZ2V0dGVyIGZv
ciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0
ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
Rm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQp
IHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBp
bnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0ZXIgbXVzdCBo
YXZlIGEgbWF0Y2hpbmcgZ2V0dGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RMb25lSW5kZXhT
ZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAg
ICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAg
ICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsg
cmV0dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyBy
ZXR1cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0
Y2hlZFR5cGVJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgZmxvYXQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgICAgIEZvbyBv
cGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJl
dHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7
IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBh
Z3JlZSBvbiB2YWx1ZSB0eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yV3Jv
bmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAg
ICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXSgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkg
eyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAo
Rm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50
KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJh
bWV0ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9y
W10oRm9vLCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEp
OwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aEluUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXT0oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0g
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAg
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRp
b25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXT0oRm9vKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBC
YXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQy
OyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJu
IEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMi
KSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAg
ICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9v
LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAg
ICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAg
ICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNz
YWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2Nv
bCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28sIGludCwgaW50LCBp
bnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAg
ICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQot
dGVzdHMubG9uZUluZGV4U2V0dGVyUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9j
b2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltdPSh0aHJlYWQg
Rm9vKiBwdHIsIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3Qg
QmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0
MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVy
biBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVy
IHR5cGUiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3Zlcmxv
YWRJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
aW50IG9wZXJhdG9yW10oaW50LCBGb28pOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltd
PShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBC
YXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkIG9wZXJh
dG9yW109IHdpdGggYXJndW1lbnRzIEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmlu
ZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBmdW5jdGlvbigp
Ci17Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGlu
dCBvcGVyYXRvcltdKEZvbywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9v
LCB1aW50LCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAg
IGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9w
ZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQot
Ci10ZXN0cy5pbmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50
KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiB4WzQyXTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsg
fQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAg
ICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1
cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIGJhcihCYXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQp
OwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHNJblByb3Rv
Y29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGlu
dCogb3BlcmF0b3ImW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWlu
dCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4
T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25h
dHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9w
ZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFk
IEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9
IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVz
c2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9y
JltdIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3Bl
cmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRv
ciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBm
b3Igb3BlcmF0b3ImW10iKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRSZXR1
cm5Qb2ludGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAg
ICAgICAgIGludCBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQq
IG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0
OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2YgYW5kZXIgaXMg
bm90IGEgcG9pbnRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRvZXNudFRha2VS
ZWZlcmVuY2VJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCog
b3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5kZXIgaXMgbm90
IGEgcmVmZXJlbmNlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVm
SW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZb
XSh0aHJlYWQgRm9vW10gYXJyYXksIGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBp
bnQgYmFyPFQ6Rm9vPih0aHJlYWQgVFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biB4WzEuNV07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsK
LSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFy
IHg7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
MTIzNCk7Ci19Ci0KIHRlc3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAgdGVzdHMuYW5k
UmV0dXJuZWRBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAqcHRyOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCAzNTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVzdCA9IHRydWU7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4NzkxODk1M2E1YjFk
NWUzNWU4NTBlMzMwZjM4OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNiZGE4MWZjY2Nj
MWVmYjQ0YzZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTI1LDcg
KzI1LDYgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewotICAg
IGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtpbmQoKSB7IHJl
dHVybiBUeXBlOyB9CiAgICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQg
aXNBcnJheSgpIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBjbGFzcyBUeXBl
IGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Z2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBpbmhlcml0cyhw
cm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1
cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNIZWlyKHRoaXMp
OwotICAgIH0KLSAgICAKLSAgICBnZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0dXJuIHRoaXMu
dmlzaXQobmV3IEluc3RhbnRpYXRlSW1tZWRpYXRlcygpKTsgfQotICAgIAogICAgIC8vIEhhdmUg
dG8gY2FsbCB0aGVzZSBvbiB0aGUgdW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9yQW5kT3Zlcmxv
YWQob3JpZ2luLCB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlRGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlw
ZURlZi5qcwppbmRleCA2YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFiMjdjMTQzLi5k
N2IwMGNkMmM3M2ViM2E1YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAogInVzZSBzdHJp
Y3QiOwogCiBjbGFzcyBUeXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3Jp
Z2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHR5cGUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmln
aW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90
eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90eXBlID0gdHlw
ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsg
fQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFy
YW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHR5cGUo
KSB7IHJldHVybiB0aGlzLl90eXBlOyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAg
ICAgICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJh
bWV0ZXJzICsgIj4gPSAiICsgdGhpcy50eXBlOworICAgICAgICByZXR1cm4gInR5cGVkZWYgIiAr
IHRoaXMubmFtZSArICIgPSAiICsgdGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4IGE4MWVhYjQy
ZDk0OGZjYTNlOTMwYzY4NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1OTFkZmYyMmQw
YTY1YTM1NDliOGNjZTAxZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1R5cGVEZWZSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UeXBlRGVmUmVzb2x2ZXIuanMKQEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5cGVEZWZSZXNv
bHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAg
ICAgICAgdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAgICAgICAgICBm
b3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAg
ICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmIChub2RlLnR5cGUg
aW5zdGFuY2VvZiBUeXBlRGVmKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzKTsK
LSAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBub2RlLnR5
cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoImFyZ3VtZW50L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUgYmVlbiBjYXVn
aHQgZWFybGllcikiKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUu
dHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBl
QXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBlLnR5cGVQYXJh
bWV0ZXJzW2ldKTsKLSAgICAgICAgICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5p
ZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwotICAgICAgICAgICAgICAgIGlmICghdmVyaWZpY2F0
aW9uUmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8gYSB0eXBlIGRl
ZmluaXRpb24gdmlvbGF0ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJpZmljYXRpb25S
ZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBsZXQgbmV3
VHlwZSA9IG5vZGUudHlwZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5vZGUudHlwZS50
eXBlUGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBuZXdU
eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFuZEFyZ3VtZW50
cyhuZXdUeXBlLCBbXSk7CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwor
ICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICov
Ci0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAgdmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3
IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
LnZpc2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlh
YmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9y
aWdpbiwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQxZTU2
ZDY5M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYwOWIw
NWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUsNjkg
KzI1LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsK
LSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29uc3Ry
dWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAg
dGhpcy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1
bWVudHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAgICAg
ICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykKKyAg
ICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJuIHR5
cGU7CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0
eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgaW5z
dGFudGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlw
ZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwg
dHlwZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBl
UmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7IHJl
dHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7
IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7
IH0KICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50
eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5pZnlO
b2RlOwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51bmlm
eU5vZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zm
c2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9m
ZnNldCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZhbHVl
IG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9w
dWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBnZXQg
c2l6ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJl
dHVybiB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkK
ICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAg
ICAgIHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1pdGl2
ZTogIiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwogICAg
IH0KICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCisg
ICAgc2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAg
ICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBl
QXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0
LCBvdGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnko
dW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlwZUFy
Z3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAg
ICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQs
IG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksOSAr
OTIsNyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBpZiAo
IXRoaXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKLSAg
ICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJu
IHRoaXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFy
Z3VtZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3MmZh
MGI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
LSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBlIHsK
LSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAgICAg
c3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9u
YW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBu
YW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJu
IHRoaXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1pdGl2
ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2Nv
bCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0aGlz
LnByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJU
eXBlIHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsKLSAg
ICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0KLSAg
ICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAg
IHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVV
bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVu
aWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJu
IHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAg
fQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsK
LSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0g
ICAgICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0IGJl
IGEgdHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAgICAv
LyB0aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2VvZiBU
eXBlVmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246
ICJUeXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRv
IG5vbi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAg
IAotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFsVGhp
cy5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNv
bjogIlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90IGJl
IHBhc3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyByZWFs
VGhpcy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmluaGVy
aXRzKHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhp
cy5wcm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMucHJv
dG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxUaGlz
ICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQp
Ci0gICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4g
e3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4
dC5maW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHModGhp
cy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJl
dHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRvZXMg
bm90IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUg
IiArIHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29u
fTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0
cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9jb2wg
PyAiOiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4NTIz
OTFmODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVUcmFj
a2VyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAg
c3VwZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAKLSAg
ICBnZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVyKHRo
aW5nKQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAgICAg
dGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2Rl
KQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAg
ICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAg
ICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAgfQot
ICAgIAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Nv
bnNpZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBhMTNkZTQzZDUz
MjZlMTM1N2M4N2Y4ODU5ZDlkNjAxNWUwY2FkNDcuLmZlYzUzNTE0NTk2Mzg2MmM1YmUwNDJjOGRm
YmU0M2Y0OTVlNDJiODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1VuaWZpY2F0aW9uQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9VbmlmaWNhdGlvbkNvbnRleHQuanMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ugc3RyaWN0IjsK
IAogY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlUGFyYW1l
dGVycykKKyAgICBjb25zdHJ1Y3RvcigpCiAgICAgewotICAgICAgICB0aGlzLl90eXBlUGFyYW1l
dGVycyA9IG5ldyBTZXQodHlwZVBhcmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9uZXh0TWFwID0g
bmV3IE1hcCgpOwogICAgICAgICB0aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgpOwogICAgIH0K
QEAgLTQ1LDEwICs0NCw2IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJsZSB0aGluZ3Mg
IiArIGEgKyAiIGFuZCAiICsgYik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIE1h
a2Ugc3VyZSB0aGF0IHR5cGUgcGFyYW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcgcm9vdHMuCi0g
ICAgICAgIGlmIChhLmlzVW5pZmlhYmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhpcy5fdHlwZVBh
cmFtZXRlcnMuaGFzKGIpKQotICAgICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwotICAgICAgICAK
ICAgICAgICAgdGhpcy5fbmV4dE1hcC5zZXQoYSwgYik7CiAgICAgfQogICAgIApAQCAtODUsMTgg
KzgwLDYgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAgICAgCi0gICAgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBl
UGFyYW1ldGVyczsgfQotICAgICp0eXBlQXJndW1lbnRzKCkKLSAgICB7Ci0gICAgICAgIGZvciAo
bGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLm5vZGVzKSB7Ci0gICAgICAgICAgICBpZiAoIXR5cGVB
cmd1bWVudC5pc1VuaWZpYWJsZSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
ICAgIGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5oYXModHlwZUFyZ3VtZW50KSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHlpZWxkIHR5cGVBcmd1bWVudDsKLSAgICAg
ICAgfQotICAgIH0KLSAgICAKICAgICB2ZXJpZnkoKQogICAgIHsKICAgICAgICAgLy8gV2UgZG8g
YSB0d28tcGhhc2UgcHJlLXZlcmlmaWNhdGlvbi4gVGhpcyBnaXZlcyBsaXRlcmFscyBhIGNoYW5j
ZSB0byBzZWxlY3QgYSBtb3JlIHNwZWNpZmljIHR5cGUuCkBAIC0xMTEsNDAgKzk0LDcgQEAgY2xh
c3MgVW5pZmljYXRpb25Db250ZXh0IHsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkK
ICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7Ci0g
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZVBhcmFtZXRlci52ZXJpZnlBc1BhcmFtZXRlcih0
aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGxldCBudW1UeXBlVmFyaWFibGVBcmd1
bWVudHMgPSAwOwotICAgICAgICBsZXQgYXJndW1lbnRTZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAg
IGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkgewotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudC52ZXJpZnlBc0FyZ3VtZW50KHRoaXMpOwot
ICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50LmlzTGl0ZXJhbCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGFyZ3VtZW50U2V0LmFkZCh0aGlzLmZpbmQo
dHlwZUFyZ3VtZW50KSk7Ci0gICAgICAgICAgICBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMrKzsK
LSAgICAgICAgfQotICAgICAgICBpZiAoYXJndW1lbnRTZXQuc2l6ZSA9PSBudW1UeXBlVmFyaWFi
bGVBcmd1bWVudHMpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZXMgdXNlZCBhcyBh
cmd1bWVudHMgZ290IHVuaWZpZWQgd2l0aCBlYWNoIG90aGVyIn07Ci0gICAgfQotICAgIAotICAg
IGdldCBjb252ZXJzaW9uQ29zdCgpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gMDsKLSAg
ICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIHRoaXMudHlwZUFyZ3VtZW50cygpKQotICAg
ICAgICAgICAgcmVzdWx0ICs9IHR5cGVBcmd1bWVudC5jb252ZXJzaW9uQ29zdCh0aGlzKTsKLSAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgY29tbWl0KCkKLSAgICB7Ci0g
ICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkKLSAg
ICAgICAgICAgIHR5cGVBcmd1bWVudC5jb21taXRVbmlmaWNhdGlvbih0aGlzKTsKKyAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IHRydWV9OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBk
ZWY1MzM2ZC4uNDY2ZWU3NzA1NWRkZGJlYjEyNzY3NTAwODcwZmEzNmI3NDQyODM5NiAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAg
Y2xhc3MgVmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2Rl
LnJldHVyblR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIg
b2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQo
dGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAg
ICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0
UHJvdG9jb2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9k
ZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAg
ICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAgY2xhc3MgVmlz
aXRvciB7CiAgICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1
bmMobm9kZSk7Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YShub2Rl
LmltcGxlbWVudGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QmxvY2so
bm9kZSkKICAgICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVu
dHMpCkBAIC03OSw2MiArNjYsMjcgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICBleHBy
ZXNzaW9uLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5v
ZGUpCi0gICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAg
IHsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAg
ICAgcHJvdG9jb2wudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBu
b2RlLnNpZ25hdHVyZXMpCi0gICAgICAgICAgICBzaWduYXR1cmUudmlzaXQodGhpcyk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQg
dHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1
bWVudC52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUp
CiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFt
ZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgIH0KLSAg
ICAKLSAgICB2aXNpdE5hdGl2ZVR5cGVJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgbm9k
ZS50eXBlLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9k
ZS50eXBlQXJndW1lbnRzKQogICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwog
ICAgIH0KICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAo
bGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5
cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsK
ICAgICB9CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBm
b3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAg
ICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBu
b2RlLmZpZWxkcykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAK
LSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChu
b2RlLnByb3RvY29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlw
ZS52aXNpdCh0aGlzKTsKQEAgLTMzNiwxOCArMjg4LDggQEAgY2xhc3MgVmlzaXRvciB7CiAgICAg
CiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQg
dHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1
bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1
bWVudExpc3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAg
ICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAg
ICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAg
ICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAg
ICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAg
ICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVu
dHMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0luc3RhbmNlLCB0aGlzKTsK
ICAgICAgICAgTm9kZS52aXNpdChub2RlLnJldHVyblR5cGUsIHRoaXMpOwogICAgICAgICBOb2Rl
LnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9X
U0wubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjY2NTY3ODI2YTUxZGQ2Yzc1
NGQ0ZTliMjRkNzU3ODk3MmJiM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kCisrKyAvZGV2
L251bGwKQEAgLTEsNDc5ICswLDAgQEAKLSMgV2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2UKLQotV2Vi
R1BVIFNoYWRpbmcgTGFuZ3VhZ2UsIG9yIFdTTCBmb3Igc2hvcnQsIGlzIGEgdHlwZS1zYWZlIGxv
dy1vdmVyaGVhZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBmb3IgR1BVcyAoZ3JhcGhpY3MgcHJvY2Vz
c2luZyB1bml0cykuIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93IFdTTCB3b3Jrcy4KLQotIyBH
b2FscwotCi1XU0wgaXMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgZm9sbG93aW5nIGdvYWxzOgot
Ci0tIFdTTCBzaG91bGQgZmVlbCAqZmFtaWxpYXIqIHRvIEMrKyBwcm9ncmFtbWVycy4KLS0gV1NM
IHNob3VsZCBiZSBoYXZlIGEgKnNvdW5kKiBhbmQgKmRlY2lkYWJsZSogdHlwZSBzeXN0ZW0uCi0t
IFdTTCBzaG91bGQgbm90IHBlcm1pdCAqb3V0LW9mLWJvdW5kcyogbWVtb3J5IGFjY2Vzc2VzLgot
LSBXU0wgc2hvdWxkIGJlIGhhdmUgKmxvdyBvdmVyaGVhZCouCi0KLVRoZSBjb21iaW5hdGlvbiBv
ZiBhIHNvdW5kIHR5cGUgc3lzdGVtIGFuZCBib3VuZHMgY2hlY2tpbmcgbWFrZXMgV1NMIGEgc2Vj
dXJlIHNoYWRlciBsYW5ndWFnZTogdGhlIGxhbmd1YWdlIGl0c2VsZiBpcyByZXNwb25zaWJsZSBm
b3IgaXNvbGF0aW5nIHRoZSBzaGFkZXIgZnJvbSB0aGUgcmVzdCBvZiB0aGUgR1BVLgotCi0jIEZh
bWlsaWFyIFN5bnRheAotCi1XU0wgaXMgYmFzZWQgb24gQyBzeW50YXgsIGJ1dCBleGNsdWRlcyBm
ZWF0dXJlcyB0aGF0IGFyZSBlaXRoZXIgdW5uZWNlc3NhcnksIGluc2VjdXJlLCBvciByZXBsYWNl
ZCBieSBvdGhlciBXU0wgZmVhdHVyZXM6Ci0KLS0gTm8gc3RyaW5ncy4KLS0gTm8gYHJlZ2lzdGVy
YCwgYHZvbGF0aWxlYCwgYGNvbnN0YCwgYHJlc3RyaWN0YCwgb3IgYGV4dGVybmAga2V5d29yZHMu
Ci0tIE5vIHVuaW9ucy4gYHVuaW9uYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBnb3RvIG9yIGxh
YmVscy4gYGdvdG9gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGAqYCBwb2ludGVycy4KLS0gRWZm
ZWN0bGVzcyBleHByZXNzaW9ucyBhcmUgbm90IHN0YXRlbWVudHMgKGBhICsgYjtgIGlzIGEgcGFy
c2UgZXJyb3IpLgotLSBObyB1bmRlZmluZWQgdmFsdWVzIChgaW50IHg7YCBpbml0aWFsaXplcyB4
IHRvIDApLgotLSBObyBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9ucyAoYGludCB4OyB1aW50IHkg
PSB4O2AgaXMgYSB0eXBlIGVycm9yKS4KLS0gTm8gcmVjdXJzaW9uLgotLSBObyBkeW5hbWljIG1l
bW9yeSBhbGxvY2F0aW9uLgotLSBObyBtb2R1bGFyaXR5LiBUaGUgd2hvbGUgcHJvZ3JhbSBpcyBv
bmUgZmlsZS4KLQotT24gdG9wIG9mIHRoaXMgYmFyZSBDLWxpa2UgZm91bmRhdGlvbiwgV1NMIGFk
ZHMgc2VjdXJlIHZlcnNpb25zIG9mIGZhbWlsaWFyIEMrKyBmZWF0dXJlczoKLQotLSBUeXBlLXNh
ZmUgcG9pbnRlcnMgKGBeYCkgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGBbXWApLgotLSBHZW5lcmlj
cyB0byByZXBsYWNlIHRlbXBsYXRlcy4KLS0gT3BlcmF0b3Igb3ZlcmxvYWRpbmcuIEJ1aWx0LWlu
IG9wZXJhdGlvbnMgbGlrZSBgaW50IG9wZXJhdG9yKyhpbnQsIGludClgIGFyZSBqdXN0IG5hdGl2
ZSBmdW5jdGlvbnMuCi0tIENhc3Qgb3ZlcmxvYWRpbmcuIEJ1aWx0LWluIGNhc3RzIGxpa2UgYG9w
ZXJhdG9yIGludChkb3VibGUpYCBhcmUganVzdCBuYXRpdmUgZnVuY3Rpb25zLgotLSBHZXR0ZXJz
IGFuZCBzZXR0ZXJzLiBQcm9wZXJ0eSBhY2Nlc3NlcyBsaWtlIGB2ZWMueGAgcmVzb2x2ZSB0byBv
dmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3IuZmllbGQoZmxvYXQ0KWAuCi0tIEFycmF5IGFj
Y2VzcyBvdmVybG9hZGluZy4gQXJyYXkgYWNjZXNzZXMgbGlrZSBgdmVjWzBdYCByZXNvbHZlIHRv
IHZlcmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yW10oZmxvYXQ0LCB1aW50KWAuCi0KLUluIHRo
ZSBmb2xsb3dpbmcgc2VjdGlvbnMsIFdTTCBpcyBzaG93biBieSBleGFtcGxlIHN0YXJ0aW5nIHdp
dGggaXRzIEMtbGlrZSBmb3VuZGF0aW9uIGFuZCB0aGVuIGJ1aWxkaW5nIHVwIHRvIGluY2x1ZGUg
bW9yZSBzb3BoaXN0aWNhdGVkIGZlYXR1cmVzIGxpa2UgZ2VuZXJpY3MuCi0KLSMjIENvbW1vbiBz
dWJzZXQgb2YgQyBhbmQgV1NMCi0KLVRoZSBmb2xsb3dpbmcgaXMgYSB2YWxpZCBXU0wgZnVuY3Rp
b24gZGVmaW5pdGlvbjoKLQotICAgIGludCBmb28oaW50IHgsIGludCB5LCBib29sIHApCi0gICAg
ewotICAgICAgICBpZiAocCkKLSAgICAgICAgICAgIHJldHVybiB4IC0geTsKLSAgICAgICAgcmV0
dXJuIHggKyB5OwotICAgIH0KLQotV1NMIHNvdXJjZSBmaWxlcyBiZWhhdmUgc2ltaWxhcmx5IHRv
IEMgc291cmNlIGZpbGVzOgotCi0tIFRvcC1sZXZlbCBzdGF0ZW1lbnRzIG11c3QgYmUgdHlwZSBv
ciBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLS0gV1NMIHVzZXMgc3RydWN0dXJlZCBDIGNvbnRyb2wg
ZmxvdyBjb25zdHJ1Y3RzLCBsaWtlIGBpZmAsIGB3aGlsZWAsIGBmb3JgLCBgZG9gLCBgYnJlYWtg
LCBhbmQgYGNvbnRpbnVlYC4KLS0gV1NMIHVzZXMgQy1saWtlIGBzd2l0Y2hgIHN0YXRlbWVudHMs
IGJ1dCBkb2VzIG5vdCBhbGxvdyB0aGVtIHRvIG92ZXJsYXAgb3RoZXIgY29udHJvbCBmbG93IChp
LmUuIG5vIFtEdWZmJ3MgZGV2aWNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EdWZm
JTI3c19kZXZpY2UpKS4KLS0gV1NMIGFsbG93cyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgYW55d2hl
cmUgQysrIHdvdWxkLgotCi1XU0wgdHlwZXMgZGlmZmVyIGZyb20gQyB0eXBlcy4gRm9yIGV4YW1w
bGUsIHRoaXMgaXMgYW4gYXJyYXkgb2YgNDIgaW50ZWdlcnMgaW4gV1NMOgotCi0gICAgaW50WzQy
XSBhcnJheTsKLQotVGhlIHR5cGUgbmV2ZXIgc3Vycm91bmRzIHRoZSB2YXJpYWJsZSwgbGlrZSBp
dCB3b3VsZCBpbiBDIChgaW50IGFycmF5WzQyXWApLgotCi0jIyBUeXBlLXNhZmUgcG9pbnRlcnMK
LQotV1NMIGluY2x1ZGVzIGEgc2VjdXJlIHBvaW50ZXIgdHlwZS4gVG8gZW1waGFzaXplIHRoYXQg
aXQgaXMgbm90IGxpa2UgdGhlIEMgcG9pbnRlciwgV1NMIHVzZXMgYF5gIGZvciB0aGUgcG9pbnRl
ciB0eXBlIGFuZCBmb3IgZGVyZWZlcmVuY2UuIExpa2UgaW4gQywgYCZgIGlzIHVzZWQgdG8gdGFr
ZSB0aGUgYWRkcmVzcyBvZiBhIHZhbHVlLiAgQmVjYXVzZSBHUFVzIGhhdmUgZGlmZmVyZW50IGtp
bmRzIG9mIG1lbW9yaWVzLCBwb2ludGVycyBtdXN0IGJlIGFubm90YXRlZCB3aXRoIGFuIGFkZHJl
c3Mgc3BhY2UgKG9uZSBvZiBgdGhyZWFkYCwgYHRocmVhZGdyb3VwYCwgYGRldmljZWAsIG9yIGBj
b25zdGFudGApLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgYmFyKHRocmVhZCBpbnReIHApCi0g
ICAgewotICAgICAgICBecCArPSA0MjsKLSAgICB9Ci0gICAgaW50IGZvbygpCi0gICAgewotICAg
ICAgICBpbnQgeCA9IDI0OwotICAgICAgICBiYXIoJngpOwotICAgICAgICByZXR1cm4geDsgLy8g
UmV0dXJucyA2Ni4KLSAgICB9Ci0KLVBvaW50ZXJzIGNhbiBiZSBgbnVsbGAuIEVhY2ggcG9pbnRl
ciBhY2Nlc3MgaXMgbnVsbC1jaGVja2VkLCB0aG91Z2ggbW9zdCBwb2ludGVyIGFjY2Vzc2VzIChs
aWtlIHRoaXMgb25lKSB3aWxsIG5vdCBoYXZlIGEgbnVsbCBjaGVjay4gV1NMIHBsYWNlcyBlbm91
Z2ggY29uc3RyYWludHMgb24gdGhlIHByb2dyYW1tZXIgdGhhdCBwcm9ncmFtcyBhcmUgZWFzeSBm
b3IgdGhlIGNvbXBpbGVyIHRvIGFuYWx5emUuIFRoZSBjb21waWxlciB3aWxsIGFsd2F5cyBrbm93
IHRoYXQgYF5wICs9IDQyYCBhZGRzIGA0MmAgdG8gYHhgIGluIHRoaXMgY2FzZS4KLQotV1NMIHBv
aW50ZXJzIGRvIG5vdCBzdXBwb3J0IGNhc3Rpbmcgb3IgcG9pbnRlciBhcml0aG1ldGljLiBBbGwg
bWVtb3J5IGFjY2Vzc2libGUgdG8gYSBzaGFkZXIgb3V0bGl2ZXMgdGhlIHNoYWRlci4gVGhpcyBp
cyBldmVuIHRydWUgb2YgbG9jYWwgdmFyaWFibGVzLiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2Ug
V1NMIGRvZXMgbm90IHN1cHBvcnQgcmVjdXJzaW9uLiBUaGVyZWZvcmUsIGxvY2FsIHZhcmlhYmxl
cyBzaW1wbHkgZ2V0IGdsb2JhbCBzdG9yYWdlLiBMb2NhbCB2YXJpYWJsZXMgYXJlIGluaXRpYWxp
emVkIGF0IHRoZSBwb2ludCBvZiB0aGVpciBkZWNsYXJhdGlvbi4gSGVuY2UsIHRoZSBmb2xsb3dp
bmcgaXMgYSB2YWxpZCBwcm9ncmFtLCB3aGljaCB3aWxsIGV4aGliaXQgdGhlIHNhbWUgYmVoYXZp
b3Igb24gZXZlcnkgV1NMIGltcGxlbWVudGF0aW9uOgotCi0gICAgdGhyZWFkIGludF4gZm9vKCkK
LSAgICB7Ci0gICAgICAgIGludCB4ID0gNDI7Ci0gICAgICAgIHJldHVybiAmeDsKLSAgICB9Ci0g
ICAgaW50IGJhcigpCi0gICAgewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAg
ICAgIHRocmVhZCBpbnReIHEgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgcmV0
dXJuIF5xOyAvLyBSZXR1cm5zIDUzLgotICAgIH0KLSAgICBpbnQgYmF6KCkKLSAgICB7Ci0gICAg
ICAgIHRocmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgZm9v
KCk7Ci0gICAgICAgIHJldHVybiBecDsgLy8gUmV0dXJucyA0Mi4KLSAgICB9Ci0KLUl0J3MgcG9z
c2libGUgdG8gcG9pbnQgdG8gYW55IGtpbmQgb2YgZGF0YSB0eXBlLiBGb3IgZXhhbXBsZSwgYHRo
cmVhZCBkb3VibGVbNDJdXmAgaXMgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDQyIGRvdWJsZXMu
Ci0KLSMjIFR5cGUtc2FmZSBhcnJheSByZWZlcmVuY2VzCi0KLVdTTCBzdXBwb3J0cyBhcnJheSBy
ZWZlcmVuY2VzIHRoYXQgY2FycnkgYSBwb2ludGVyIHRvIHRoZSBiYXNlIG9mIHRoZSBhcnJheSBh
bmQgdGhlIGFycmF5J3MgbGVuZ3RoLiBUaGlzIGFsbG93cyBhY2Nlc3NlcyB0byB0aGUgYXJyYXkg
dG8gYmUgYm91bmRzLWNoZWNrZWQuCi0KLUFuIGFycmF5IHJlZmVyZW5jZSBjYW4gYmUgY3JlYXRl
ZCB1c2luZyB0aGUgYEBgIG9wZXJhdG9yOgotCi0gICAgaW50WzQyXSBhcnJheTsKLSAgICB0aHJl
YWQgaW50W10gYXJyYXlSZWYgPSBAYXJyYXk7Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZl
cmVuY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSBhbmQgc3RvcmVkIHRvIHVzaW5nIGBvcGVyYXRvcltd
YDoKLQotICAgIGludCB4ID0gYXJyYXlbaV07Ci0gICAgaW50IHkgPSBhcnJheVJlZltpXTsKLQot
Qm90aCBhcnJheXMgYW5kIGFycmF5IHJlZmVyZW5jZXMga25vdyB0aGVpciBsZW5ndGg6Ci0KLSAg
ICB1aW50IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoOwotICAgIHVpbnQgYXJyYXlSZWZMZW5n
dGggPSBhcnJheVJlZi5sZW5ndGg7Ci0KLUdpdmVuIGFuIGFycmF5IG9yIGFycmF5IHJlZmVyZW5j
ZSwgaXQncyBwb3NzaWJsZSB0byBnZXQgYSBwb2ludGVyIHRvIG9uZSBvZiBpdHMgZWxlbWVudHM6
Ci0KLSAgICB0aHJlYWQgaW50XiBwdHIxID0gJmFycmF5W2ldOwotICAgIHRocmVhZCBpbnReIHB0
cjIgPSAmYXJyYXlSZWZbaV07Ci0KLUEgcG9pbnRlciBpcyBsaWtlIGFuIGFycmF5IHJlZmVyZW5j
ZSB3aXRoIG9uZSBlbGVtZW50LiBJdCdzIHBvc3NpYmxlIHRvIHBlcmZvcm0gdGhpcyBjb252ZXJz
aW9uOgotCi0gICAgdGhyZWFkIGludFtdIHJlZiA9IEBwdHIxOwotICAgIHJlZlswXSAvLyBFcXVp
dmFsZW50IHRvIF5wdHIxLgotICAgIHJlZi5sZW5ndGggLy8gMCBpZiBwdHIxIHdhcyBudWxsLCAx
IGlmIHB0cjEgd2FzIG5vdCBudWxsLgotCi1TaW1pbGFybHksIHVzaW5nIGBAYCBvbiBhIG5vbi1w
b2ludGVyIHZhbHVlIHJlc3VsdHMgaW4gYSByZWZlcmVuY2Ugb2YgbGVuZ3RoIDE6Ci0KLSAgICBp
bnQgeDsKLSAgICB0aHJlYWQgaW50W10gcmVmID0gQHg7Ci0gICAgcmVmWzBdIC8vIEFsaWFzZXMg
eC4KLSAgICByZWYubGVuZ3RoIC8vIFJldHVybnMgMS4KLQotSXQncyBub3QgbGVnYWwgdG8gdXNl
IGBAYCBvbiBhbiBhcnJheSByZWZlcmVuY2U6Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmOwotICAg
IHRocmVhZCBpbnRbXVtdIHJlZmVyZWYgPSBAcmVmOyAvLyBFcnJvciEKLQotIyMgR2VuZXJpY3MK
LQotV1NMIHN1cHBvcnRzIGdlbmVyaWMgdHlwZXMgdXNpbmcgYSBzaW1wbGUgc3ludGF4LiBXU0wn
cyBnZW5lcmljIGFyZSBkZXNpZ25lZCB0byBpbnRlZ3JhdGUgY2xlYW5seSBpbnRvIHRoZSBjb21w
aWxlciBwaXBlbGluZToKLQotLSBHZW5lcmljcyBoYXZlIHVuYW1iaWd1b3VzIHN5bnRheC4KLS0g
R2VuZXJpYyBmdW5jdGlvbnMgY2FuIGJlIHR5cGUgY2hlY2tlZCBiZWZvcmUgdGhleSBhcmUgaW5z
dGFudGlhdGVkLgotCi1TZW1hbnRpYyBlcnJvcnMgaW5zaWRlIGdlbmVyaWMgZnVuY3Rpb25zIHNo
b3cgdXAgb25jZSByZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdlbmVyaWMg
ZnVuY3Rpb24gaXMgaW5zdGFudGlhdGVkLgotCi1UaGlzIGlzIGEgc2ltcGxlIGdlbmVyaWMgZnVu
Y3Rpb246Ci0KLSAgICBUIGlkZW50aXR5PFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICBUIHRt
cCA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdG1wOwotICAgIH0KLQotV1NMIGFsc28gc3VwcG9y
dHMgc3RydWN0cywgd2hpY2ggYXJlIGFsc28gYWxsb3dlZCB0byBiZSBnZW5lcmljOgotCi0gICAg
Ly8gTm90IGdlbmVyaWMuCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAg
ICBkb3VibGUgeTsKLSAgICB9Ci0gICAgLy8gR2VuZXJpYy4KLSAgICBzdHJ1Y3QgQmFyPFQsIFU+
IHsKLSAgICAgICAgVCB4OwotICAgICAgICBVIHk7Ci0gICAgfQotCi1UeXBlIHBhcmFtZXRlcnMg
Y2FuIGFsc28gYmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuIEZvciBleGFtcGxlOgotCi0gICAgdm9p
ZCBpbml0aWFsaXplQXJyYXk8VCwgdWludCBsZW5ndGg+KHRocmVhZCBUW2xlbmd0aF1eIGFycmF5
LCBUIHZhbHVlKQotICAgIHsKLSAgICAgICAgZm9yICh1aW50IGkgPSBsZW5ndGg7IGktLTspCi0g
ICAgICAgICAgICAoXmFycmF5KVtpXSA9IHZhbHVlOwotICAgIH0KLQotQ29uc3RhbnQgZXhwcmVz
c2lvbnMgcGFzc2VkIGFzIHR5cGUgYXJndW1lbnRzIG11c3Qgb2JleSBhIHZlcnkgbmFycm93IGRl
ZmluaXRpb24gb2YgY29uc3RhbnRuZXNzLiBPbmx5IGxpdGVyYWxzIGFuZCByZWZlcmVuY2VzIHRv
IG90aGVyIGNvbnN0YW50IHBhcmFtZXRlcnMgcXVhbGlmeS4KLQotV1NMIGlzIGd1YXJhbnRlZWQg
dG8gY29tcGlsZSBnZW5lcmljcyBieSBpbnN0YW50aWF0aW9uLiBUaGlzIGlzIG9ic2VydmFibGUs
IHNpbmNlIGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHBvaW50ZXJzIHRvIHRoZWlyIGxvY2Fscy4gSGVy
ZSBpcyBhbiBleGFtcGxlIG9mIHRoaXMgcGhlbm9tZW5vbjoKLQotICAgIHRocmVhZCBpbnReIGFs
bG9jYXRlPHVpbnQ+KCkKLSAgICB7Ci0gICAgICAgIGludCB4OwotICAgICAgICByZXR1cm4gJng7
Ci0gICAgfQotCi1UaGUgYGFsbG9jYXRlYCBmdW5jdGlvbiB3aWxsIHJldHVybiBhIGRpZmZlcmVu
dCBwb2ludGVyIGZvciBlYWNoIHVuc2lnbmVkIGludGVnZXIgY29uc3RhbnQgcGFzc2VkIGFzIGEg
dHlwZSBwYXJhbWV0ZXIuIFRoaXMgYWxsb2NhdGlvbiBpcyBjb21wbGV0ZWx5IHN0YXRpYywgc2lu
Y2UgdGhlIGB1aW50YCBwYXJhbWV0ZXIgbXVzdCBiZSBnaXZlbiBhIGNvbXBpbGUtdGltZSBjb25z
dGFudC4KLQotV1NMJ3MgYHR5cGVkZWZgIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgc3ludGF4
IHRoYW4gQy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAg
IFQgcmVhbDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICB0eXBlZGVmIEZDb21wbGV4ID0g
Q29tcGxleDxmbG9hdD47Ci0KLWB0eXBlZGVmYCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgZ2VuZXJp
YyB0eXBlczoKLQotICAgIHN0cnVjdCBGb288VCwgVT4gewotICAgICAgICBUIHg7Ci0gICAgICAg
IFUgeTsKLSAgICB9Ci0gICAgdHlwZWRlZiBCYXI8VD4gPSBGb288VCwgVD47Ci0KLSMjIFByb3Rv
Y29scwotCi1Qcm90b2NvbHMgZW5hYmxlIGdlbmVyaWMgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aCBk
YXRhIG9mIGdlbmVyaWMgdHlwZS4gQmVjYXVzZSBhIGZ1bmN0aW9uIG11c3QgYmUgdHlwZS1jaGVj
a2FibGUgYmVmb3JlIGluc3RhbnRpYXRpb24sIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IGJlIGxl
Z2FsOgotCi0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAgICBkb3VibGUgYmFyKGRvdWJsZSkg
eyAuLi4gfQotICAgIAotICAgIFQgZm9vPFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1
cm4gYmFyKHZhbHVlKTsgLy8gRXJyb3IhCi0gICAgfQotCi1UaGUgY2FsbCB0byBgYmFyYCBkb2Vz
bid0IHR5cGUgY2hlY2sgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2Fubm90IGtub3cgdGhhdCBgZm9v
PFQ+YCB3aWxsIGJlIGluc3RhbnRpYXRlZCB3aXRoIGBUID0gaW50YCBvciBgVCA9IGRvdWJsZWAu
IFByb3RvY29scyBlbmFibGUgdGhlIHByb2dyYW1tZXIgdG8gdGVsbCB0aGUgY29tcGlsZXIgd2hh
dCB0byBleHBlY3Qgb2YgYSB0eXBlIHZhcmlhYmxlOgotCi0gICAgaW50IGJhcihpbnQpIHsgLi4u
IH0KLSAgICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4gfQotICAgIAotICAgIHByb3RvY29sIFN1
cHBvcnRzQmFyIHsKLSAgICAgICAgU3VwcG9ydHNCYXIgYmFyKFN1cHBvcnRzQmFyKTsKLSAgICB9
Ci0gICAgCi0gICAgVCBmb288VDpTdXBwb3J0c0Jhcj4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBiYXIodmFsdWUpOwotICAgIH0KLSAgICAKLSAgICBpbnQgeCA9IGZvbyg0Mik7Ci0g
ICAgZG91YmxlIHkgPSBmb28oNC4yKTsKLQotUHJvdG9jb2xzIGhhdmUgYXV0b21hdGljIHJlbGF0
aW9uc2hpcHMgdG8gb25lIGFub3RoZXIgYmFzZWQgb24gd2hhdCBmdW5jdGlvbnMgdGhleSBjb250
YWluOgotCi0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsKLSAgICB9
Ci0gICAgcHJvdG9jb2wgQmFyIHsKLSAgICAgICAgdm9pZCBmb28oQmFyKTsKLSAgICAgICAgdm9p
ZCBiYXIoQmFyKTsKLSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAg
ICB2b2lkIGJ1eno8VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBi
ZWNhdXNlIEJhciBpcyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLVByb3Rv
Y29scyBjYW4gYWxzbyBtaXggb3RoZXIgcHJvdG9jb2xzIGluIGV4cGxpY2l0bHkuIExpa2UgaW4g
dGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBleGFtcGxlIGJlbG93IHJlbGllcyBvbiB0aGUgZmFjdCB0
aGF0IGBCYXJgIGlzIGEgbW9yZSBzcGVjaWZpYyBwcm90b2NvbCB0aGFuIGBGb29gLiBIb3dldmVy
LCB0aGlzIGV4YW1wbGUgZGVjbGFyZXMgdGhpcyBleHBsaWNpdGx5IChgcHJvdG9jb2wgQmFyIDog
Rm9vYCkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBsYW5ndWFnZSB0byBpbmZlciBpdDoKLQot
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7Ci0gICAgfQotICAgIHBy
b3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZv
aWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4uLiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0g
ICAgewotICAgICAgICBmdXp6KHgpOyAvLyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZp
YyB0aGFuIEZvby4gICAgCi0gICAgfQotCi0jIyBPdmVybG9hZGluZwotCi1XU0wgc3VwcG9ydHMg
b3ZlcmxvYWRpbmcgdmVyeSBzaW1pbGFybHkgdG8gaG93IEMrKyBkb2VzIGl0LiBGb3IgZXhhbXBs
ZToKLQotICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lkIGZvbyhkb3VibGUpOyAv
LyAyCi0gICAgCi0gICAgaW50IHg7Ci0gICAgZm9vKHgpOyAvLyBjYWxscyAxCi0gICAgCi0gICAg
ZG91YmxlIHk7Ci0gICAgZm9vKHkpOyAvLyBjYWxscyAyCi0KLVdTTCBhdXRvbWF0aWNhbGx5IHNl
bGVjdHMgdGhlIG1vc3Qgc3BlY2lmaWMgb3ZlcmxvYWQgaWYgZ2l2ZW4gbXVsdGlwbGUgY2hvaWNl
cy4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBm
b28oZG91YmxlKTsgLy8gMgotICAgIHZvaWQgZm9vPFQ+KFQpOyAgIC8vIDMKLQotICAgIGZvbygx
KTsgLy8gY2FsbHMgMQotICAgIGZvbygxLik7IC8vIGNhbGxzIDIKLSAgICBmb28oMXUpOyAvLyBj
YWxscyAzCi0KLUdlbmVyaWMgZnVuY3Rpb25zIGxpa2UgYGZvbzxUPmAgY2FuIGJlIGNhbGxlZCB3
aXRoIG9yIHdpdGhvdXQgYWxsIG9mIHRoZWlyIHR5cGUgYXJndW1lbnRzIHN1cHBsaWVkLiBJZiB0
aGV5IGFyZSBub3Qgc3VwcGxpZWQsIHRoZSBmdW5jdGlvbiBwYXJ0aWNpcGF0ZXMgaW4gb3Zlcmxv
YWQgcmVzb2x1dGlvbiBsaWtlIGFueSBvdGhlciBmdW5jdGlvbiB3b3VsZC4gRnVuY3Rpb25zIGFy
ZSByYW5rZWQgYnkgaG93IHNwZWNpZmljIHRoZXkgYXJlOyBmdW5jdGlvbiBBIGlzIG1vcmUgc3Bl
Y2lmaWMgdGhhbiBmdW5jdGlvbiBCIGlmIEEncyBwYXJhbWV0ZXIgdHlwZXMgY2FuIGJlIHVzZWQg
YXMgYXJndW1lbnQgdHlwZXMgZm9yIGEgY2FsbCB0byBCIGJ1dCBub3QgdmljZS12ZXJzYS4gSWYg
b25lIGZ1bmN0aW9ucyBtb3JlIHNwZWNpZmljIHRoYW4gYWxsIG90aGVycyB0aGVuIHRoaXMgZnVu
Y3Rpb24gaXMgc2VsZWN0ZWQsIG90aGVyd2lzZSBhIHR5cGUgZXJyb3IgaXMgaXNzdWVkLgotCi0j
IyBPcGVyYXRvciBPdmVybG9hZGluZwotCi1NYW55IFdTTCBvcGVyYXRpb25zIGRlc3VnYXIgdG8g
Y2FsbHMgdG8gZnVuY3Rpb25zLiBUaG9zZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCAqb3BlcmF0b3Ig
b3ZlcmxvYWRzKiBhbmQgYXJlIGRlY2xhcmVkIHVzaW5nIHN5bnRheCB0aGF0IGludm9sdmVzIHRo
ZSBrZXl3b3JkIGBvcGVyYXRvcmAuIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyByZXN1bHQgaW4g
Y2FsbHMgdG8gb3BlcmF0b3Igb3ZlcmxvYWRzOgotCi0tIE51bWVyaWNhbCBvcGVyYXRvcnMgKGAr
YCwgYC1gLCBgKmAsIGAvYCwgZXRjLikuCi0tIEluY3JlbWVudCBhbmQgZGVjcmVtZW50IChgKytg
LCBgLS1gKS4KLS0gQ2FzdGluZyAoYHR5cGUodmFsdWUpYCkuCi0tIEFjY2Vzc2luZyB2YWx1ZXMg
aW4gYXJyYXlzIChgW11gLCBgW109YCwgYCZbXWApLgotLSBBY2Nlc3NpbmcgZmllbGRzIChgLmZp
ZWxkYCwgYC5maWVsZD1gLCBgJi5maWVsZGApLgotCi1XU0wncyBvcGVyYXRvciBvdmVybG9hZGlu
ZyBpcyBkZXNpZ25lZCB0byBzeW50aGVzaXplIG1hbnkgb3BlcmF0b3JzIGZvciB5b3U6Ci0KLS0g
UmVhZC1tb2RpZnktd3JpdGUgb3BlcmF0b3JzIGxpa2UgYCs9YCBhcmUgZGVzdWdhcmVkIHRvIGEg
bG9hZCBvZiB0aGUgbG9hZCB2YWx1ZSwgdGhlIHVuZGVybHlpbmcgb3BlcmF0b3IgKGxpa2UgYCtg
KSwgYW5kIGEgc3RvcmUgb2YgdGhlIG5ldyB2YWx1ZS4gSXQncyBub3QgcG9zc2libGUgdG8gb3Zl
cnJpZGUgYCs9YCwgYC09YCwgZXRjLgotLSBgeCsrYCBhbmQgYCsreGAgYm90aCBjYWxsIHRoZSBz
YW1lIG9wZXJhdG9yIG92ZXJsb2FkLiBgb3BlcmF0b3IrK2AgdGFrZXMgdGhlIG9sZCB2YWx1ZSBh
bmQgcmV0dXJucyBhIG5ldyBvbmU7IGZvciBleGFtcGxlIHRoZSBidWlsdC1pbiBgKytgIGZvciBg
aW50YCBjb3VsZCBiZSB3cml0dGVuIGFzOiBgaW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7IHJl
dHVybiB2YWx1ZSArIDE7IH1gLgotLSBgb3BlcmF0b3I9PWAgY2FuIGJlIG92ZXJsb2FkZWQsIGJ1
dCBgIT1gIGlzIGF1dG9tYXRpY2FsbHkgc3ludGhlc2l6ZWQgYW5kIGNhbm5vdCBiZSBvdmVybG9h
ZGVkLgotCi1Tb21lIG9wZXJhdG9ycyBhbmQgb3ZlcmxvYWRzIGFyZSByZXN0cmljdGVkOgotCi0t
IGAhYCwgYCYmYCwgYW5kIGB8fGAgYXJlIGJ1aWx0LWluIG9wZXJhdGlvbnMgb24gdGhlIGBib29s
YCB0eXBlLgotLSBTZWxmLWNhc3RzIChgVChUKWApIGFyZSBhbHdheXMgdGhlIGlkZW50aXR5IGZ1
bmN0aW9uLgotLSBDYXN0cyB3aXRoIG5vIGFyZ3VtZW50cyAoYFQoKWApIGFsd2F5cyByZXR1cm4g
dGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoYXQgdHlwZS4gRXZlcnkgdHlwZSBoYXMgYSBkZWZhdWx0
IHZhbHVlIChgMGAsIGBudWxsYCwgb3IgdGhlIGVxdWl2YWxlbnQgZm9yIGVhY2ggZmllbGQpLgot
Ci1DYXN0IG92ZXJsb2FkaW5nIGFsbG93cyBmb3Igc3VwcG9ydGluZyBjb252ZXJzaW9ucyBiZXR3
ZWVuIHR5cGVzIGFuZCBmb3IgY3JlYXRpbmcgY29uc3RydWN0b3JzIGZvciBjdXN0b20gdHlwZXMu
IEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBjYXN0IG92ZXJsb2FkaW5nIGJlaW5nIHVzZWQgdG8gY3Jl
YXRlIGEgY29uc3RydWN0b3I6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAgIFQg
cmVhbDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICBvcGVyYXRvcjxUPiBDb21wbGV4PFQ+
KFQgcmVhbCwgVCBpbWFnKQotICAgIHsKLSAgICAgICAgQ29tcGxleDxUPiByZXN1bHQ7Ci0gICAg
ICAgIHJlc3VsdC5yZWFsID0gcmVhbDsKLSAgICAgICAgcmVzdWx0LmltYWcgPSBpbWFnOwotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBDb21wbGV4PGZsb2F0PiBpID0g
Q29tcGxleDxmbG9hdD4oMCwgMSk7Ci0KLVdTTCBzdXBwb3J0cyBhY2Nlc3NvciBvdmVybG9hZGlu
ZyBhcyBwYXJ0IG9mIHRoZSBvcGVyYXRvciBvdmVybG9hZGluZyBzeW50YXguIFRoaXMgZ2l2ZXMg
dGhlIHByb2dyYW1tZXIgYnJvYWQgcG93ZXJzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBG
b28gewotICAgICAgICBpbnQgeDsKLSAgICAgICAgaW50IHk7Ci0gICAgfQotICAgIGludCBvcGVy
YXRvci5zdW0oRm9vIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiBmb28ueCArIGZvby55Owot
ICAgIH0KLQotSXQncyBwb3NzaWJsZSB0byBzYXkgYGZvby5zdW1gIHRvIGNhbGwgdGhlIGBvcGVy
YXRvci5zdW1gIGZ1bmN0aW9uLiBCb3RoIGdldHRlcnMgYW5kIHNldHRlcnMgY2FuIGJlIHByb3Zp
ZGVkOgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAg
ZG91YmxlIG9wZXJhdG9yLmRvdWJsZVZhbHVlKEZvbyB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBkb3VibGUodmFsdWUudmFsdWUpOwotICAgIH0KLSAgICBGb28gb3BlcmF0b3IuZG91Ymxl
VmFsdWU9KEZvbyB2YWx1ZSwgZG91YmxlIGRvdWJsZVZhbHVlKQotICAgIHsKLSAgICAgICAgdmFs
dWUudmFsdWUgPSBpbnQoZG91YmxlVmFsdWUpOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAg
fQotCi1Qcm92aWRpbmcgYm90aCBnZXR0ZXIgYW5kIHNldHRlciBvdmVybG9hZHMgbWFrZXMgYGRv
dWJsZVZhbHVlYCBiZWhhdmUgYWxtb3N0IGFzIGlmIGl0IHdhcyBhIGZpZWxkIG9mIGBGb29gLiBG
b3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0byBzYXk6Ci0KLSAgICBGb28gZm9vOwotICAgIGZv
by52YWx1ZSA9IDQyOwotICAgIGZvby5kb3VibGVWYWx1ZSAqPSAyOyAvLyBOb3cgZm9vLnZhbHVl
IGlzIDg0Ci0KLUl0J3MgYWxzbyBwb3NzaWJsZSB0byBwcm92aWRlIGFuIGFkZHJlc3MtZ2V0dGlu
ZyBvdmVybG9hZCBjYWxsZWQgYW4gKmFuZGVyKjoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAg
ICBpbnQgdmFsdWU7Ci0gICAgfQotICAgIHRocmVhZCBpbnReIG9wZXJhdG9yJi52YWx1ZUFsaWFz
KHRocmVhZCBGb29eIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiAmZm9vLT52YWx1ZTsKLSAg
ICB9Ci0KLVByb3ZpZGluZyBqdXN0IHRoaXMgb3ZlcmxvYWQgZm9yIGEgcG9pbnRlciB0eXBlIGlu
IGV2ZXJ5IGFkZHJlc3Mgc3BhY2UgZ2l2ZXMgdGhlIHNhbWUgcG93ZXIgYXMgb3ZlcmxvYWRpbmcg
Z2V0dGVycyBhbmQgc2V0dGVycy4gQWRkaXRpb25hbGx5LCBpdCBtYWtlcyBpdCBwb3NzaWJsZSB0
byBgJmZvby52YWx1ZUFsaWFzYC4KLQotVGhlIHNhbWUgb3ZlcmxvYWRpbmcgcG93ZXIgaXMgcHJv
dmlkZWQgZm9yIGFycmF5IGFjY2Vzc2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBWZWN0
b3I8VD4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFQgeTsKLSAgICB9Ci0gICAgdGhyZWFkIFRe
IG9wZXJhdG9yJltdKHRocmVhZCBUXiBwdHIsIHVpbnQgaW5kZXgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gaW5kZXggPyAmcHRyLT55IDogJnB0ci0+eDsKLSAgICB9Ci0KLUFsdGVybmF0aXZlbHks
IGl0J3MgcG9zc2libGUgdG8gb3ZlcmxvYWQgZ2V0dGVycyBhbmQgc2V0dGVycyAoYG9wZXJhdG9y
W11gIGFuZCBgb3BlcmF0b3JbXT1gKS4KLQotIyBNYXBwaW5nIG9mIEFQSSBjb25jZXB0cwotCi1X
U0wgaXMgZGVzaWduZWQgdG8gYmUgdXNlZnVsIGFzIGJvdGggYSBncmFwaGljcyBzaGFkaW5nIGxh
bmd1YWdlIGFuZCBhcyBhIGNvbXB1dGF0aW9uIGxhbmd1YWdlLiBIb3dldmVyLCB0aGVzZSB0d28g
ZW52aXJvbm1lbnRzIGhhdmUKLXNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MuCi0KLVdoZW4g
dXNpbmcgV1NMIGFzIGEgZ3JhcGhpY3Mgc2hhZGluZyBsYW5ndWFnZSwgdGhlcmUgaXMgYSBkaXN0
aW5jdGlvbiBiZXR3ZWVuICplbnRyeS1wb2ludHMqIGFuZCAqbm9uLWVudHJ5LXBvaW50cyouIEVu
dHJ5IHBvaW50cyBhcmUgdG9wLWxldmVsIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGVpdGhlciB0aGUg
YHZlcnRleGAgb3IgYGZyYWdtZW50YCBrZXl3b3JkIGluIGZyb250IG9mIHRoZWlyIGRlY2xhcmF0
aW9uLiBFbnRyeSBwb2ludHMgbWF5IG5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLiBBbiBlbnRyeSBw
b2ludCBhbm5vdGF0ZWQgd2l0aCB0aGUgYHZlcnRleGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQg
YXMgYSBmcmFnbWVudCBzaGFkZXIsIGFuZCBhbiBlbnRyeSBwb2ludCBhbm5vdGF0ZWQgd2l0aCB0
aGUgYGZyYWdtZW50YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBhcyBhIHZlcnRleCBzaGFkZXIu
IE5vIGFyZ3VtZW50IG5vciByZXR1cm4gdmFsdWUgb2YgYW4gZW50cnkgcG9pbnQgbWF5IGJlIGEg
cG9pbnRlci4gRW50cnkgcG9pbnRzIG11c3Qgbm90IGFjY2VwdCB0eXBlIGFyZ3VtZW50cyAoYWxz
byBrbm93biBhcyAiZ2VuZXJpY3MiKS4KLQotIyMgVmVydGV4IGVudHJ5IHBvaW50cwotCi1XZWJH
UFUncyBBUEkgcGFzc2VzIGRhdGEgdG8gYSBXU0wgdmVydGV4IHNoYWRlciBpbiBmb3VyIHdheXM6
Ci0KLS0gQXR0cmlidXRlcwotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1w
bGVycwotCi1FYWNoIG9mIHRoZXNlIEFQSSBvYmplY3RzIGlzIHJlZmVycmVkIHRvIGJ5IG5hbWUg
ZnJvbSB0aGUgQVBJLiBWYXJpYWJsZXMgaW4gV1NMIGFyZSBub3QgYW5ub3RhdGVkIHdpdGggZXh0
cmEgQVBJLXZpc2libGUgbmFtZXMgKGxpa2UgdGhleSBhcmUgaW4gc29tZSBvdGhlciBncmFwaGlj
cyBBUElzKS4KLQotVmFyaWFibGVzIGFyZSBwYXNzZWQgdG8gdmVydGV4IHNoYWRlcnMgYXMgYXJn
dW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50LiBFYWNoIGJ1ZmZlciBpcyByZXByZXNlbnRl
ZCBhcyBhbiBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0eXBlICh1c2luZyB0aGUg
YFtdYCBzeW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFy
Z3VtZW50cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0eXBlcywgcmVzcGVjdGl2
ZWx5LiBBbGwgb3RoZXIgbm9uLWJ1aWx0aW4gYXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBv
aW50IGFyZSBpbXBsaWVkIHRvIGJlIGF0dHJpYnV0ZXMuCi0KLVNvbWUgYXJndW1lbnRzIGFyZSBy
ZWNvZ25pemVkIGJ5IHRoZSBjb21waWxlciBmcm9tIHRoZWlyIG5hbWUgYW5kIHR5cGUuIFRoZXNl
IGFyZ3VtZW50cyBwcm92aWRlIGJ1aWx0LWluIGZ1bmN0aW9uYWxpdHkgaW5oZXJlbnQgaW4gdGhl
IGdyYXBoaWNzIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0g
YGludCB3c2xfdmVydGV4SURgIHJlZmVycyB0byB0aGUgSUQgb2YgdGhlIGN1cnJlbnQgdmVydGV4
LCBhbmQgaXMgbm90IHJlY29nbml6ZWQgYXMgYW4gYXR0cmlidXRlLiBBbGwgbm9uLWJ1aWx0aW4g
YXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRo
IGFuIEFQSSBvYmplY3Qgd2hlbmV2ZXIgYW55IGRyYXcgY2FsbCB1c2luZyB0aGUgdmVydGV4IGVu
dHJ5IHBvaW50IGlzIGludm9rZWQuIE90aGVyd2lzZSwgdGhlIGRyYXcgY2FsbCB3aWxsIGZhaWwu
Ci0KLVRoZSBvbmx5IHdheSB0byBwYXNzIGRhdGEgYmV0d2VlbiBzdWNjZXNzaXZlIHNoYWRlciBz
dGFnZXMgd2l0aGluIGEgc2luZ2xlIGRyYXcgY2FsbCBpcyBieSByZXR1cm4gdmFsdWUuIEFuIGVu
dHJ5IHBvaW50IG11c3QgaW5kaWNhdGUgdGhhdCBpdCByZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB2
YWx1ZXMgY29udGFpbmVkIHdpdGhpbiBhIHN0cnVjdHVyZS4gRXZlcnkgdmFyaWFibGUgaW5zaWRl
IHRoaXMgc3RydWN0dXJlLCByZWN1cnNpdmVseSwgaXMgcGFzc2VkIHRvIHRoZSBuZXh0IHN0YWdl
IGluIHRoZSBncmFwaGljcyBwaXBlbGluZS4gTWVtYmVycyBvZiB0aGlzIHN0cnVjdCBtYXkgYWxz
byBiZSBvdXRwdXQgYnVpbHQtaW4gdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwgYSB2ZXJ0ZXggZW50
cnkgcG9pbnQgbWF5IHJldHVybiBhIHN0cnVjdCB3aGljaCBjb250YWlucyBhIG1lbWJlciBgZmxv
YXQ0IHdzbF9Qb3NpdGlvbmAsIGFuZCB0aGlzIHZhcmlhYmxlIHdpbGwgcmVwcmVzZW50IHRoZSBy
YXN0ZXJpemVkIHBvc2l0aW9uIG9mIHRoZSB2ZXJ0ZXguIEJ1ZmZlcnMgKGFzIGRlc2NyaWJlZCBi
eSBXU0wgYXJyYXkgcmVmZXJlbmNlcyksIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMgbXVzdCBub3Qg
YmUgcHJlc2VudCBpbiB0aGlzIHJldHVybmVkIHN0cnVjdC4gQnVpbHQtaW4gdmFyaWFibGVzIG11
c3QgbmV2ZXIgYXBwZWFyIHR3aWNlIGluc2lkZSB0aGUgcmV0dXJuZWQgc3RydWN0dXJlLgotCi0j
IyBGcmFnbWVudCBlbnRyeSBwb2ludHMKLQotRnJhZ21lbnQgZW50cnkgcG9pbnRzIG1heSBhY2Nl
cHQgb25lIGFyZ3VtZW50IHdpdGggdGhlIHR5cGUgdGhhdCB0aGUgcHJldmlvdXMgc2hhZGVyIHN0
YWdlIHJldHVybmVkLiBUaGUgYXJndW1lbnQgbmFtZSBmb3IgdGhpcyBhcmd1bWVudCBtdXN0IGJl
IGBzdGFnZUluYC4gSW4gYWRkaXRpb24gdG8gdGhpcyBhcmd1bWVudCwgZnJhZ21lbnQgZW50cnkg
cG9pbnRzIG1heSBhY2NlcHQgYnVmZmVycywgdGV4dHVyZXMsIGFuZCBzYW1wbGVycyBhcyBhcmd1
bWVudHMgaW4gdGhlIHNhbWUgd2F5IHRoYXQgdmVydGV4IGVudHJ5IHBvaW50cyBhY2NlcHQgdGhl
bS4gRnJhZ21lbnQgZW50cnkgcG9pbnRzIGFsc28gbXVzdCByZXR1cm4gYSBzdHJ1Y3QsIGFuZCBh
bGwgbWVtYmVycyBvZiB0aGlzIHN0cnVjdCBtdXN0IGJlIGJ1aWx0LWluIHZhcmlhYmxlcy4gVGhl
IHNldCBvZiByZWNvZ25pemVkIGJ1aWx0LWluIHZhcmlhYmxlcyB3aGljaCBtYXkgYmUgYWNjZXB0
ZWQgb3IgcmV0dXJuZWQgZnJvbSBhbiBlbnRyeSBwb2ludCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBh
bGwgdHlwZXMgb2YgZW50cnkgcG9pbnRzLgotCi1Gb3IgZXhhbXBsZSwgdGhpcyB3b3VsZCBiZSBh
IHZhbGlkIGdyYXBoaWNzIHByb2dyYW06Ci0KLSAgICBzdHJ1Y3QgVmVydGV4SW5wdXQgewotICAg
ICAgICBmbG9hdDIgcG9zaXRpb247Ci0gICAgICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAg
Ci0gICAgc3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfUG9zaXRpb247
Ci0gICAgICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAgc3RydWN0IEZyYWdtZW50
T3V0cHV0IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Db2xvcjsKLSAgICB9Ci0gICAgCi0gICAgdmVy
dGV4IFZlcnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQgdmVydGV4SW5wdXQpIHsK
LSAgICAgICAgVmVydGV4T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LndzbF9Qb3NpdGlv
biA9IGZsb2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICAgICAgcmVzdWx0
LmNvbG9yID0gdmVydGV4SW5wdXQuY29sb3I7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
fQotICAgIAotICAgIGZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdtZW50U2hhZGVyKFZlcnRl
eE91dHB1dCBzdGFnZUluKSB7Ci0gICAgICAgIEZyYWdtZW50T3V0cHV0IHJlc3VsdDsKLSAgICAg
ICAgcmVzdWx0LndzbF9Db2xvciA9IGZsb2F0NChzdGFnZUluLmNvbG9yLCAxLik7Ci0gICAgICAg
IHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0jIyBDb21wdXRlIGVudHJ5IHBvaW50cwotCi1XZWJH
UFUncyBBUEkgcGFzc2VzIGRhdGEgdG8gYSBjb21wdXRlIHNoYWRlciBpbiB0aHJlZSB3YXlzOgot
Ci0tIEJ1ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBsZXJzCi0KLUNvbXB1dGUg
ZW50cnkgcG9pbnRzIHN0YXJ0IHdpdGggdGhlIGtleXdvcmQgYGNvbXB1dGVgLiBUaGUgcmV0dXJu
IHR5cGUgZm9yIGEgY29tcHV0ZSBlbnRyeSBwb2ludCBtdXN0IGJlIGB2b2lkYC4gRWFjaCBidWZm
ZXIgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2Ug
dHlwZSAodXNpbmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSBy
ZXByZXNlbnRlZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAg
dHlwZXMsIHJlc3BlY3RpdmVseS4gQ29tcHV0ZSBlbnRyeSBwb2ludHMgbWF5IGFsc28gYWNjZXB0
IGJ1aWx0LWluIHZhcmlhYmxlcyBhcyBhcmd1bWVudHMuIEFyZ3VtZW50cyBvZiBhbnkgb3RoZXIg
dHlwZSBhcmUgZGlzYWxsb3dlZC4gQXJndW1lbnRzIG1heSBub3QgdXNlIHRoZSBgdGhyZWFkZ3Jv
dXBgIG1lbW9yeSBzcGFjZS4KLQotIyBFcnJvciBoYW5kbGluZwotCi1FcnJvcnMgbWF5IG9jY3Vy
IGR1cmluZyBzaGFkZXIgcHJvY2Vzc2luZy4gRm9yIGV4YW1wbGUsIHRoZSBzaGFkZXIgbWF5IGF0
dGVtcHQgdG8gZGVyZWZlcmVuY2UgYSBgbnVsbGAgYXJyYXkgcmVmZXJlbmNlLiBJZiB0aGlzIG9j
Y3VycywgdGhlIHNoYWRlciBzdGFnZSBpbW1lZGlhdGVseSBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5
LiBUaGUgZW50cnkgcG9pbnQgaW1tZWRpYXRlbHkgcmV0dXJucyBhIHN0cnVjdCB3aXRoIGFsbCBm
aWVsZHMgc2V0IHRvIDAuIEFmdGVyIHRoaXMgZXZlbnQsIHN1YnNlcXVlbnQgc2hhZGVyIHN0YWdl
cyB3aWxsIHByb2NlZWQgYXMgaWYgdGhlcmUgd2FzIG5vIHByb2JsZW0uCi0KLUJ1ZmZlciBhbmQg
dGV4dHVyZSByZWFkcyBhbmQgd3JpdGVzIGJlZm9yZSB0aGUgZXJyb3IgYWxsIGNvbXBsZXRlLCBh
bmQgaGF2ZSB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgaWYgbm8gZXJyb3IgaGFkIG9jY3VycmVkLiBC
dWZmZXIgYW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBhZnRlciB0aGUgZXJyb3IgZG8gbm90
IG9jY3VyLgotCi0jIFN1bW1hcnkKLQotV1NMIGlzIGEgdHlwZS1zYWZlIGxhbmd1YWdlIGJhc2Vk
IG9uIEMgc3ludGF4LiBJdCBlbGltaW5hdGVzIHNvbWUgQyBmZWF0dXJlcywgbGlrZSB1bmlvbnMg
YW5kIHBvaW50ZXIgY2FzdHMsIGJ1dCBhZGRzIG90aGVyIG1vZGVybiBmZWF0dXJlcyBpbiB0aGVp
ciBwbGFjZSwgbGlrZSBnZW5lcmljcyBhbmQgb3ZlcmxvYWRpbmcuCi0KLSMgQWRkaXRpb25hbCBM
aW1pdGF0aW9ucwotCi1UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbGltaXRhdGlvbnMgbWF5IGJl
IHBsYWNlZCBvbiBhIFdTTCBwcm9ncmFtOgotCi0tIGBkZXZpY2VgLCBgY29uc3RhbnRgLCBhbmQg
YHRocmVhZGdyb3VwYCBwb2ludGVycyBjYW5ub3QgcG9pbnQgdG8gZGF0YSB0aGF0IG1heSBoYXZl
IHBvaW50ZXJzIGluIGl0LiBUaGlzIHNhZmV0eSBjaGVjayBpcyBub3QgZG9uZSBhcyBwYXJ0IG9m
IHRoZSBub3JtYWwgdHlwZSBzeXN0ZW0gY2hlY2tzLiBJdCdzIHBlcmZvcm1lZCBvbmx5IGFmdGVy
IGluc3RhbnRpYXRpb24uCi0tIFBvaW50ZXJzIGFuZCBhcnJheSByZWZlcmVuY2VzIChjb2xsZWN0
aXZlbHksICpyZWZlcmVuY2VzKikgbWF5IGJlIHJlc3RyaWN0ZWQgdG8gc3VwcG9ydCBjb21waWxp
bmcgdG8gU1BJUi1WICpsb2dpY2FsIG1vZGUqLiBJbiB0aGlzIG1vZGUsIGFycmF5cyBtdXN0IG5v
dCB0cmFuc2l0aXZlbHkgaG9sZCByZWZlcmVuY2VzLiBSZWZlcmVuY2VzIG11c3QgYmUgaW5pdGlh
bGl6ZWQgdXBvbiBkZWNsYXJhdGlvbiBhbmQgbmV2ZXIgcmVhc3NpZ25lZC4gRnVuY3Rpb25zIHRo
YXQgcmV0dXJuIHJlZmVyZW5jZXMgbXVzdCBoYXZlIG9uZSByZXR1cm4gcG9pbnQuIFRlcm5hcnkg
ZXhwcmVzc2lvbnMgbWF5IG5vdCByZXR1cm4gcmVmZXJlbmNlcy4KLS0gR3JhcGhpY3MgZW50cnkg
cG9pbnRzIG11c3QgdHJhbnNpdGl2ZWx5IG5ldmVyIHJlZmVyIHRvIHRoZSBgdGhyZWFkZ3JvdXBg
IG1lbW9yeSBzcGFjZS4KLQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBD
aGVja2VyLmpzCmluZGV4IDRjYWRjN2QwZDllNmE2ZGZkYTU1NWRhYjg5ZDAyNzE3NzBkYmQ5YTcu
LjBlYjRlODFlYzJmYzM2Mzk5NzBkOWM2M2EzZmJjY2U5OTZjYjQxMGEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCkBAIC01MiwxMSArNTIsNiBAQCBj
bGFzcyBXcmFwQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkZvdW5kIHVud3JhcHBlZCAiICsgbm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsg
b3JpZ2luU3RyaW5nKG5vZGUpICsgIjogIiArIG5vZGUgKyAiXG5XaGlsZSB2aXNpdGluZyAiICsg
dGhpcy5fc3RhcnROb2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIgKyBvcmlnaW5TdHJpbmco
dGhpcy5fc3RhcnROb2RlLm9yaWdpbikgKyAiOiAiICsgdGhpcy5fc3RhcnROb2RlKTsKICAgICB9
CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAg
ICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRG
dW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChu
b2RlKTsKQEAgLTc2LDE0ICs3MSw0IEBAIGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9Ci0g
ICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Zv
dW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICAvLyBOT1RFOiBUaGlzIGRvZXMg
bm90IGtub3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBp
cyBuZXZlciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCi0gICAgLy8gY29kZS4gT25jZSBjb2RlIGlz
IGluc3RhbnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgotICAgIAot
ICAgIC8vIE5PVEU6IFRoaXMgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggQXV0b1dyYXBw
ZXIuCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5o
dG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA4MDk0
YjE5Mzc4MWI0YWE5YjBjMzkwOWU5YTkxZDI4MTVmMmIyYWJhLi4wZGQwNGVmMmQxNDEwMThjZGU0
ZDMwOTVkYzhiNzBmMTlmMDE3MzIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2lu
ZGV4Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJD
b25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+
CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5k
SGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4
dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdh
dGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjMs
NyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlr
ZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48
L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2Fs
bC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2LDcgQEAKIDxzY3JpcHQg
c3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
TmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5Nyw2IEBACiA8c2Ny
aXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJv
Z3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRo
aW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29s
UmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEzMSwxMCArMTIxLDcg
QEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBl
RGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVm
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJh
Y2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVp
bnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0zNDQsNyArMzMxLDcgQEAgZnVuY3Rpb24g
c2VsZWN0ZWRTaGFkZXJzQ2hhbmdlZChmcm9tQ29tcGlsYXRpb24gPSBmYWxzZSkgewogICAgIGN1
cnJlbnRWZXJ0ZXhTaGFkZXIgPSBhdmFpbGFibGVWZXJ0ZXhTaGFkZXJzW3ZlcnRleFNoYWRlclNl
bGVjdC5zZWxlY3RlZEluZGV4XTsKICAgICBjdXJyZW50RnJhZ21lbnRTaGFkZXIgPSBhdmFpbGFi
bGVGcmFnbWVudFNoYWRlcnNbZnJhZ21lbnRTaGFkZXJTZWxlY3Quc2VsZWN0ZWRJbmRleF07CiAK
LSAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVu
aXF1ZShjdXJyZW50VmVydGV4U2hhZGVyLCBbXSk7CisgICAgaW5saW5lZFZlcnRleFNoYWRlciA9
IGN1cnJlbnRWZXJ0ZXhTaGFkZXI7CiAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGlubGlu
ZWRWZXJ0ZXhTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChjdXJyZW50VmVydGV4U2hhZGVyKSk7CiAK
ICAgICBhbGxBcmd1bWVudEluZm9zID0gW107CkBAIC00MjYsNyArNDEzLDcgQEAgZnVuY3Rpb24g
cnVuU2hhZGVycygpIHsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20o
YXJndW1lbnRFUHRyc1tpXS5lUHRyLCBhcmd1bWVudEVQdHJzW2ldLnNpemUpOwogICAgIGxldCBy
ZXN1bHQgPSBuZXcgRXZhbHVhdG9yKHByb2dyYW0pLnJ1bkZ1bmMoZnVuYyk7CiAKLSAgICBpbmxp
bmVkRnJhZ21lbnRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1
cnJlbnRGcmFnbWVudFNoYWRlciwgW10pOworICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IGN1
cnJlbnRGcmFnbWVudFNoYWRlcjsKICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5l
ZEZyYWdtZW50U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudEZyYWdtZW50U2hhZGVyKSk7
CiAgICAgZnVuYyA9IGlubGluZWRGcmFnbWVudFNoYWRlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346880</attachid>
            <date>2018-08-09 17:48:16 -0700</date>
            <delta_ts>2018-08-09 23:32:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180809174815.patch</filename>
            <type>text/plain</type>
            <size>433131</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzI4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWJlODg0MjNhMjhjN2RlMDNiNWZiNzMzZDBlOTQwYThj
M2I4YmViNS4uNTA5OTQ1NDFhYzQ3OWVkYWJjMTc2ZDkyODczN2UwNzRiZDFiMWFlZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBmb2xsb3ctdXAgZml4IGZvciByMjM0NzIwLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzCmluZGV4IDE1ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2
NTguLjQ5YTVmYjY4NjI2YzkwMjQ0ZTg0NjJhZDcxOGZmMWU4NTlmZDYyM2YgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5q
cyIpOwogbG9hZCgiQ2xvbmVQcm9ncmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMi
KTsKIGxvYWQoIkNvbnN0ZXhwckZvbGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFt
ZXRlci5qcyIpOwogbG9hZCgiQ29udGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5
UmVmRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBA
IC03Nyw3ICs3Niw2IEBAIGxvYWQoIkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVy
bmFsT3JpZ2luLmpzIik7CiBsb2FkKCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVz
LmpzIik7Ci1sb2FkKCJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVu
ZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWxUeXBlLmpzIik7CkBAIC04NSw3ICs4Myw2IEBAIGxvYWQoIkZvbGRD
b25zdGV4cHJzLmpzIik7CiBsb2FkKCJGb3JMb29wLmpzIik7CiBsb2FkKCJGdW5jLmpzIik7CiBs
b2FkKCJGdW5jRGVmLmpzIik7Ci1sb2FkKCJGdW5jSW5zdGFudGlhdG9yLmpzIik7CiBsb2FkKCJG
dW5jUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJGdW5jdGlvbkxpa2VCbG9jay5qcyIpOwogbG9hZCgi
SGlnaFpvbWJpZUZpbmRlci5qcyIpOwpAQCAtOTUsNyArOTIsNiBAQCBsb2FkKCJJbmRleEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkluZmVyVHlwZXNGb3JDYWxsLmpzIik7CiBsb2FkKCJJbmxpbmUu
anMiKTsKIGxvYWQoIklubGluZXIuanMiKTsKLWxvYWQoIkluc3RhbnRpYXRlSW1tZWRpYXRlcy5q
cyIpOwogbG9hZCgiSW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsK
IGxvYWQoIkludHJpbnNpY3MuanMiKTsKQEAgLTExMiw5ICsxMDgsNyBAQCBsb2FkKCJOYW1lQ29u
dGV4dC5qcyIpOwogbG9hZCgiTmFtZUZpbmRlci5qcyIpOwogbG9hZCgiTmFtZVJlc29sdmVyLmpz
Iik7CiBsb2FkKCJOYXRpdmVGdW5jLmpzIik7Ci1sb2FkKCJOYXRpdmVGdW5jSW5zdGFuY2UuanMi
KTsKIGxvYWQoIk5hdGl2ZVR5cGUuanMiKTsKLWxvYWQoIk5hdGl2ZVR5cGVJbnN0YW5jZS5qcyIp
OwogbG9hZCgiTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyIpOwogbG9hZCgiTnVsbExpdGVy
YWwuanMiKTsKIGxvYWQoIk51bGxUeXBlLmpzIik7CkBAIC0xMjUsMTAgKzExOSw2IEBAIGxvYWQo
IlByZXBhcmUuanMiKTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5u
ZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7
Ci1sb2FkKCJQcm90b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbEZ1bmNEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRy
VHlwZS5qcyIpOwogbG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
UmVjdXJzaW9uQ2hlY2tlci5qcyIpOwpAQCAtMTUzLDEwICsxNDMsNyBAQCBsb2FkKCJUcmFwU3Rh
dGVtZW50LmpzIik7CiBsb2FkKCJUeXBlRGVmLmpzIik7CiBsb2FkKCJUeXBlRGVmUmVzb2x2ZXIu
anMiKTsKIGxvYWQoIlR5cGVPclZhcmlhYmxlUmVmLmpzIik7Ci1sb2FkKCJUeXBlUGFyYW1ldGVy
UmV3cml0ZXIuanMiKTsKIGxvYWQoIlR5cGVSZWYuanMiKTsKLWxvYWQoIlR5cGVWYXJpYWJsZS5q
cyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlVHJhY2tlci5qcyIpOwogbG9hZCgiVHlwZWRWYWx1ZS5q
cyIpOwogbG9hZCgiVWludExpdGVyYWwuanMiKTsKIGxvYWQoIlVpbnRMaXRlcmFsVHlwZS5qcyIp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQXV0b1dyYXBwZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcwppbmRleCA4
MGFlN2Q5MmE0ZmE2MjY2NmRiMmEyZmY1MjIwZDE0OWE3ZjM4ZTljLi4yMTZhN2UyZTMzZGU5OTFi
MDZhYjYzNmRiNWNmY2FiNDA1ZDhlZTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9BdXRvV3JhcHBlci5qcwpAQCAtMzUsMTEgKzM1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIg
ZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIHJldHVybiBub2RlOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBWYXJpYWJsZVJlZi53cmFwKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJh
bWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIHJldHVybiBWYXJpYWJsZVJlZi53cmFwKG5vZGUp
OwpAQCAtNjAsMTEgKzU1LDYgQEAgY2xhc3MgQXV0b1dyYXBwZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZp
c2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gVHlwZVJlZi53cmFw
KG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEdlbmVyaWNMaXRlcmFsVHlwZShub2RlKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCmluZGV4IGI1YWUwZmU0OWZjZWRjOGZhNzZhNjY3OTNj
ZmUwY2IxZjA4YjQ1NzEuLmYwNjZhYzMyMGE5ZGNlNDIxZDRmOGVmZDM2MzMzYTI0ZWE3NjJmYmUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9u
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
CkBAIC0yNSwxMSArMjUsMTAgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgQ2FsbEV4cHJlc3Np
b24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5
cGVBcmd1bWVudHMsIGFyZ3VtZW50TGlzdCkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUs
IGFyZ3VtZW50TGlzdCkKICAgICB7CiAgICAgICAgIHN1cGVyKG9yaWdpbik7CiAgICAgICAgIHRo
aXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0gdHlwZUFyZ3Vt
ZW50czsKICAgICAgICAgdGhpcy5fYXJndW1lbnRMaXN0ID0gYXJndW1lbnRMaXN0OwogICAgICAg
ICB0aGlzLmZ1bmMgPSBudWxsOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBmYWxzZTsKQEAgLTM3
LDcxICszNiw0MSBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewog
ICAgIH0KICAgICAKICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBn
ZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICBn
ZXQgYXJndW1lbnRMaXN0KCkgeyByZXR1cm4gdGhpcy5fYXJndW1lbnRMaXN0OyB9CiAgICAgZ2V0
IGlzQ2FzdCgpIHsgcmV0dXJuIHRoaXMuX2lzQ2FzdDsgfQogICAgIGdldCByZXR1cm5UeXBlKCkg
eyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQogICAgIAotICAgIHN0YXRpYyByZXNvbHZlKG9y
aWdpbiwgcG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgbmFtZSwgdHlw
ZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQorICAg
IHN0YXRpYyByZXNvbHZlKG9yaWdpbiwgcG9zc2libGVPdmVybG9hZHMsIG5hbWUsIGFyZ3VtZW50
TGlzdCwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKICAgICB7Ci0gICAgICAgIGxldCBjYWxs
ID0gbmV3IENhbGxFeHByZXNzaW9uKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1l
bnRMaXN0KTsKKyAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBu
YW1lLCBhcmd1bWVudExpc3QpOwogICAgICAgICBjYWxsLmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVu
dFR5cGVzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkp
OwogICAgICAgICBjYWxsLnBvc3NpYmxlT3ZlcmxvYWRzID0gcG9zc2libGVPdmVybG9hZHM7CiAg
ICAgICAgIGlmIChyZXR1cm5UeXBlKQogICAgICAgICAgICAgY2FsbC5zZXRDYXN0RGF0YShyZXR1
cm5UeXBlKTsKLSAgICAgICAgcmV0dXJuIHtjYWxsLCByZXN1bHRUeXBlOiBjYWxsLnJlc29sdmUo
cG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFyZ3VtZW50cyl9
OworICAgICAgICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJs
ZU92ZXJsb2Fkcyl9OwogICAgIH0KICAgICAKLSAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRz
LCB0eXBlUGFyYW1ldGVyc0luU2NvcGUsIHR5cGVBcmd1bWVudHMpCisgICAgcmVzb2x2ZShwb3Nz
aWJsZU92ZXJsb2FkcykKICAgICB7CiAgICAgICAgIGlmICghcG9zc2libGVPdmVybG9hZHMpCiAg
ICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcs
ICJEaWQgbm90IGZpbmQgYW55IGZ1bmN0aW9ucyBuYW1lZCAiICsgdGhpcy5uYW1lKTsKICAgICAg
ICAgCi0gICAgICAgIGxldCBvdmVybG9hZCA9IG51bGw7CiAgICAgICAgIGxldCBmYWlsdXJlcyA9
IFtdOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIHR5cGVQYXJhbWV0ZXJzSW5T
Y29wZSkgewotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIFR5cGVW
YXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5
cGVQYXJhbWV0ZXIucHJvdG9jb2wpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBsZXQgc2lnbmF0dXJlcyA9Ci0gICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlci5wcm90
b2NvbC5wcm90b2NvbERlY2wuc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFyaWFibGUodGhpcy5u
YW1lLCB0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgIGlmICghc2lnbmF0dXJlcykKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJs
b2FkSW1wbChzaWduYXR1cmVzLCB0aGlzLnR5cGVBcmd1bWVudHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgIGlmIChvdmVybG9hZC5mdW5jKQotICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3Zlcmxv
YWRJbXBsKAorICAgICAgICAgICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMuYXJndW1lbnRUeXBl
cywgdGhpcy5yZXR1cm5UeXBlKTsKKyAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7CiAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAg
IG92ZXJsb2FkID0gbnVsbDsKLSAgICAgICAgfQotICAgICAgICBpZiAoIW92ZXJsb2FkKSB7Ci0g
ICAgICAgICAgICBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAgICAgICAg
ICAgcG9zc2libGVPdmVybG9hZHMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7
Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMucHVzaCguLi5vdmVybG9hZC5mYWlsdXJlcyk7Ci0g
ICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSAiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVk
ICIgKyB0aGlzLm5hbWUgKyAiIGZvciBjYWxsIHdpdGggIjsKLSAgICAgICAgICAgICAgICBpZiAo
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSAr
PSAidHlwZSBhcmd1bWVudHMgPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiBhbmQgIjsKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1l
bnRUeXBlcyArICIpIjsKLSAgICAgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQotICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlICs9IiBhbmQgcmV0dXJuIHR5cGUgIiArIHRoaXMucmV0
dXJuVHlwZTsKLSAgICAgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpv
aW4oIlxuIikKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdp
bi5vcmlnaW5TdHJpbmcsIG1lc3NhZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgbGV0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAg
ICAgICAgbGV0IHR5cGVQYXJhbWV0ZXIgPSBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzW2ld
OwotICAgICAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlciBpbnN0YW5jZW9mIENvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYg
KCF0eXBlUGFyYW1ldGVyLnR5cGUuZXF1YWxzV2l0aENvbW1pdCh0eXBlQXJndW1lbnRUeXBlKSkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmln
aW5TdHJpbmcgKyAiIGNvbnN0ZXhwciB0eXBlIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMg
bm90IGVxdWFsOiBhcmd1bWVudCA9ICIgKyB0eXBlQXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVy
ID0gIiArIHR5cGVQYXJhbWV0ZXIudHlwZSk7CisgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJE
aWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0
aCAiOworICAgICAgICAgICAgbWVzc2FnZSArPSAiYXJndW1lbnQgdHlwZXMgKCIgKyB0aGlzLmFy
Z3VtZW50VHlwZXMgKyAiKSI7CisgICAgICAgICAgICBpZiAodGhpcy5yZXR1cm5UeXBlKQorICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5U
eXBlOworICAgICAgICAgICAgaWYgKGZhaWx1cmVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBt
ZXNzYWdlICs9ICIsIGJ1dCBjb25zaWRlcmVkOlxuIiArIGZhaWx1cmVzLmpvaW4oIlxuIikKKyAg
ICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywg
bWVzc2FnZSk7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFy
Z3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5cGUg
PSB0aGlzLmFyZ3VtZW50VHlwZXNbaV07Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9
IG92ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9u
KAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2Fk
LnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAgICBsZXQgcGFyYW1ldGVyVHlwZSA9IG92
ZXJsb2FkLmZ1bmMucGFyYW1ldGVyc1tpXS50eXBlOwogICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGFyZ3VtZW50VHlwZS5lcXVhbHNXaXRoQ29tbWl0KHBhcmFtZXRlclR5cGUpOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJBdCAiICsg
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBhcmd1bWVudCBhbmQgcGFyYW1ldGVyIHR5cGVz
IG5vdCBlcXVhbCBhZnRlciB0eXBlIGFyZ3VtZW50IHN1YnN0aXR1dGlvbjogYXJndW1lbnQgPSAi
ICsgYXJndW1lbnRUeXBlICsgIiwgcGFyYW1ldGVyID0gIiArIHBhcmFtZXRlclR5cGUpOwpAQCAt
MTEyLDEwICs4MSw3IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgcmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpCiAgICAgewogICAgICAgICB0aGlzLmZ1
bmMgPSBvdmVybG9hZC5mdW5jOwotICAgICAgICB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPSBv
dmVybG9hZC50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50IGlu
c3RhbmNlb2YgVHlwZSA/IHR5cGVBcmd1bWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkgOiB0
eXBlQXJndW1lbnQpOwotICAgICAgICB0aGlzLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVu
dHMgPSB0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHM7Ci0gICAgICAgIGxldCByZXN1bHQgPSBvdmVy
bG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAg
ICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRl
eHQpOworICAgICAgICBsZXQgcmVzdWx0ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlOwogICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCByZXR1
cm4gdHlwZSIpOwogICAgICAgICByZXN1bHQgPSByZXN1bHQudmlzaXQobmV3IEF1dG9XcmFwcGVy
KCkpOwpAQCAtMTI1LDExICs5MSwxMCBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4
cHJlc3Npb24gewogICAgIAogICAgIGJlY29tZUNhc3QocmV0dXJuVHlwZSkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3JldHVyblR5cGUgPSBuZXcgVHlwZVJlZih0aGlzLm9yaWdpbiwgdGhpcy5uYW1l
LCB0aGlzLl90eXBlQXJndW1lbnRzKTsKKyAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBU
eXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBl
LnR5cGUgPSByZXR1cm5UeXBlOwogICAgICAgICB0aGlzLl9uYW1lID0gIm9wZXJhdG9yIGNhc3Qi
OwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSB0cnVlOwotICAgICAgICB0aGlzLl90eXBlQXJndW1l
bnRzID0gW107CiAgICAgfQogICAgIAogICAgIHNldENhc3REYXRhKHJldHVyblR5cGUpCkBAIC0x
NDEsOCArMTA2LDYgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsK
ICAgICB0b1N0cmluZygpCiAgICAgewogICAgICAgICByZXR1cm4gKHRoaXMuaXNDYXN0ID8gIm9w
ZXJhdG9yICIgKyB0aGlzLnJldHVyblR5cGUgOiB0aGlzLm5hbWUpICsKLSAgICAgICAgICAgICI8
IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IiArCi0gICAgICAgICAgICAodGhpcy5hY3R1YWxU
eXBlQXJndW1lbnRzID8gIjw8IiArIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyArICI+PiIgOiAi
IikgKwogICAgICAgICAgICAgIigiICsgdGhpcy5hcmd1bWVudExpc3QgKyAiKSI7CiAgICAgfQog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9u
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCmluZGV4
IGYwZjAzOWY1NDYyZDA3ODFkODJiMzQ2NGM4NzQ3ODcxNGMwYTE3MzcuLjc0OTU3NjBmMmM1ZDgx
ZDgzOTQ1NmNkZTRjNDU5NzcwYmNjMzMwZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKQEAgLTI1LDE3ICsyNSwxNyBAQAogInVzZSBzdHJpY3Qi
OwogCiAvLyBUaGlzIGFsbG93cyB5b3UgdG8gcGFzcyBzdHJ1Y3RzIGFuZCBhcnJheXMgaW4tcGxh
Y2UsIGJ1dCBpdCdzIGEgbW9yZSBhbm5veWluZyBBUEkuCi1mdW5jdGlvbiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorZnVuY3Rpb24gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50TGlzdCkKIHsKICAgICBsZXQgYXJndW1l
bnRUeXBlcyA9IGFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudHlwZSk7Ci0g
ICAgbGV0IGZ1bmNPckZhaWx1cmVzID0gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCB0cnVlKTsKKyAgICBsZXQgZnVuY09y
RmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIGFyZ3VtZW50
VHlwZXMsIHRydWUpOwogICAgIGlmICghKGZ1bmNPckZhaWx1cmVzIGluc3RhbmNlb2YgRnVuYykp
IHsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gZnVuY09yRmFpbHVyZXM7Ci0gICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlv
biBjYWxsICIgKyBuYW1lICsgIjwiICsgdHlwZUFyZ3VtZW50cyArICI+KCIgKyBhcmd1bWVudExp
c3QgKyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9p
bigiXG4iKSA6ICIiKSk7CisgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKCI8Y2FsbEZ1bmN0
aW9uPiIsICJDYW5ub3QgcmVzb2x2ZSBmdW5jdGlvbiBjYWxsICIgKyBuYW1lICsgIigiICsgYXJn
dW1lbnRMaXN0ICsgIikiICsgKGZhaWx1cmVzLmxlbmd0aCA/ICI7IHRyaWVkOlxuIiArIGZhaWx1
cmVzLmpvaW4oIlxuIikgOiAiIikpOwogICAgIH0KICAgICBsZXQgZnVuYyA9IGZ1bmNPckZhaWx1
cmVzOwogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXS5pbnN0YW50aWF0ZWRUeXBl
OworICAgICAgICBsZXQgdHlwZSA9IGFyZ3VtZW50VHlwZXNbaV07CiAgICAgICAgIHR5cGUudmlz
aXQobmV3IFN0cnVjdExheW91dEJ1aWxkZXIoKSk7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tp
XS5lUHRyLmNvcHlGcm9tKGFyZ3VtZW50TGlzdFtpXS5lUHRyLCB0eXBlLnNpemUpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCmluZGV4IDhkNTVjNTBkODM2
YzE1NDg2ZmQyNTgwYzU4ZTk2MDZjYWQ1OTZlY2IuLjVkY2E0NjBmYjk2YzE0ODM5Y2I4OWYwNWYx
NzM0ZDQzOWNlOTViNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5q
cwpAQCAtNDMsOCArNDMsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
ICAgIAogICAgICAgICBmb3IgKGxldCB0eXBlIG9mIG5vZGUudHlwZXMudmFsdWVzKCkpCiAgICAg
ICAgICAgICBkb1N0YXRlbWVudCh0eXBlKTsKLSAgICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Yg
bm9kZS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgICAgICBkb1N0YXRlbWVudChwcm90b2Nv
bCk7CiAgICAgICAgIGZvciAobGV0IGZ1bmNzIG9mIG5vZGUuZnVuY3Rpb25zLnZhbHVlcygpKSB7
CiAgICAgICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmNzKSB7CiAgICAgICAgICAgICAgICAg
dGhpcy52aXNpdEZ1bmMoZnVuYyk7CkBAIC01OSw4ICs1Nyw2IEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICBfY2hlY2tTaGFkZXJUeXBlKG5vZGUpCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogUmVsYXggdGhlc2UgY2hlY2tzIG9uY2Ugd2UgaGF2ZSBpbXBsZW1lbnRlZCBz
dXBwb3J0IGZvciB0ZXh0dXJlcyBhbmQgc2FtcGxlcnMuCi0gICAgICAgIGlmIChub2RlLnR5cGVQ
YXJhbWV0ZXJzLmxlbmd0aCAhPSAwKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRW50cnkgcG9pbnQgIiArIG5vZGUubmFtZSArICIg
bXVzdCBub3QgaGF2ZSB0eXBlIGFyZ3VtZW50cy4iKTsKICAgICAgICAgbGV0IHNoYWRlckZ1bmMg
PSBub2RlOwogICAgICAgICBzd2l0Y2ggKG5vZGUuc2hhZGVyVHlwZSkgewogICAgICAgICBjYXNl
ICJ2ZXJ0ZXgiOgpAQCAtODQsMTUgKzgwLDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICBpZiAoIWZ1bmMubmFtZS5zdGFydHNXaXRoKCJvcGVyYXRvciIpKQogICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3BlcmF0b3Igb3ZlcmxvYWQgbmFtZTogIiAr
IGZ1bmMubmFtZSk7CiAgICAgICAgIAotICAgICAgICBsZXQgdHlwZVZhcmlhYmxlVHJhY2tlciA9
IG5ldyBUeXBlVmFyaWFibGVUcmFja2VyKCk7Ci0gICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5
cGUgb2YgZnVuYy5wYXJhbWV0ZXJUeXBlcykKLSAgICAgICAgICAgIHBhcmFtZXRlclR5cGUudmlz
aXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgIE5vZGUudmlzaXQoZnVuYy5yZXR1cm5U
eXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAg
Zm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBmdW5jLnR5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAg
ICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5v
cmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlciArICIgdG8gb3Bl
cmF0b3IgIiArIGZ1bmMudG9EZWNsU3RyaW5nKCkgKyAiIGlzIG5vdCBpbmZlcnJhYmxlIGZyb20g
dmFsdWUgcGFyYW1ldGVycyIpOwotICAgICAgICB9Ci0gICAgICAgIAogICAgICAgICBsZXQgY2hl
Y2tHZXR0ZXIgPSAoa2luZCkgPT4gewogICAgICAgICAgICAgbGV0IG51bUV4cGVjdGVkUGFyYW1l
dGVycyA9IGtpbmQgPT0gImluZGV4IiA/IDIgOiAxOwogICAgICAgICAgICAgaWYgKGZ1bmMucGFy
YW1ldGVycy5sZW5ndGggIT0gbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzKQpAQCAtMTE1LDExICsxMDIs
MTAgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgaWYgKCFn
ZXR0ZXJGdW5jcykKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0
dGVyLCBidXQgZGlkIG5vdCBmaW5kIGFueSBmdW5jdGlvbiBuYW1lZCAiICsgZ2V0dGVyTmFtZSAr
ICIgdG8gbWF0Y2ggIiArIGZ1bmMubmFtZSk7CiAgICAgICAgICAgICBsZXQgYXJndW1lbnRUeXBl
cyA9IGZ1bmMucGFyYW1ldGVyVHlwZXMuc2xpY2UoMCwgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzIC0g
MSk7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRl
ckZ1bmNzLCBbXSwgYXJndW1lbnRUeXBlcywgbnVsbCk7CisgICAgICAgICAgICBsZXQgb3Zlcmxv
YWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKGdldHRlckZ1bmNzLCBhcmd1bWVudFR5cGVzLCBudWxs
KTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJEaWQgbm90IGZpbmQg
ZnVuY3Rpb24gbmFtZWQgIiArIGZ1bmMubmFtZSArICIgd2l0aCBhcmd1bWVudHMgIiArIGFyZ3Vt
ZW50VHlwZXMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgb3Zl
cmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0
VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigK
LSAgICAgICAgICAgICAgICBvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51
bmlmaWNhdGlvbkNvbnRleHQpOworICAgICAgICAgICAgbGV0IHJlc3VsdFR5cGUgPSBvdmVybG9h
ZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdFR5cGUuZXF1YWxzKHZh
bHVlVHlwZSkpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoZnVuYy5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0
eXBlIChnZXR0ZXIgYXQgIiArIG92ZXJsb2FkLmZ1bmMub3JpZ2luLm9yaWdpblN0cmluZyArICIg
c2F5cyAiICsgcmVzdWx0VHlwZSArICIgd2hpbGUgdGhpcyBzZXR0ZXIgc2F5cyAiICsgdmFsdWVU
eXBlICsgIikiKTsKICAgICAgICAgfTsKQEAgLTIxMSwyMyArMTk3LDYgQEAgY2xhc3MgQ2hlY2tl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2Nv
bERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNp
Z25hdHVyZXMpIHsKLSAgICAgICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5
cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAgICAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlclR5cGUg
b2Ygc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzKQotICAgICAgICAgICAgICAgIHBhcmFtZXRlclR5
cGUudmlzaXQodHlwZVZhcmlhYmxlVHJhY2tlcik7Ci0gICAgICAgICAgICBOb2RlLnZpc2l0KHNp
Z25hdHVyZS5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uLCB0eXBlVmFyaWFibGVUcmFj
a2VyKTsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygc2lnbmF0dXJlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXModHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IFdUeXBl
RXJyb3IodHlwZVBhcmFtZXRlci5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBwYXJhbWV0ZXIg
dG8gcHJvdG9jb2wgc2lnbmF0dXJlIG5vdCBpbmZlcnJhYmxlIGZyb20gdmFsdWUgcGFyYW1ldGVy
cyIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCF0eXBlVmFyaWFibGVUcmFja2Vy
LnNldC5oYXMobm9kZS50eXBlVmFyaWFibGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKHNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUHJvdG9jb2wncyB0eXBl
IHZhcmlhYmxlICgiICsgbm9kZS5uYW1lICsgIikgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmU6
ICIgKyBzaWduYXR1cmUpOwotICAgICAgICAgICAgdGhpcy5fY2hlY2tPcGVyYXRvck92ZXJsb2Fk
KHNpZ25hdHVyZSwgbmFtZSA9PiBub2RlLnNpZ25hdHVyZXNCeU5hbWUobmFtZSkpOwotICAgICAg
ICB9Ci0gICAgfQotICAgIAogICAgIHZpc2l0RW51bVR5cGUobm9kZSkKICAgICB7CiAgICAgICAg
IG5vZGUuYmFzZVR5cGUudmlzaXQodGhpcyk7CkBAIC0yNzgsMjkgKzI0NywxMiBAQCBjbGFzcyBD
aGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnVtIGRvZXMgbm90IGhhdmUgYSBtZW1iZXIg
d2l0aCB0aGUgdmFsdWUgemVybyIpOwogICAgIH0KICAgICAKLSAgICBfY2hlY2tUeXBlQXJndW1l
bnRzKG9yaWdpbiwgdHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICBsZXQgYXJndW1lbnRJc1R5cGUgPSB0eXBlQXJndW1lbnRzW2ldIGluc3RhbmNlb2Yg
VHlwZTsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnRzW2ldLnZpc2l0KHRo
aXMpOwotICAgICAgICAgICAgaWYgKGFyZ3VtZW50SXNUeXBlKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0uaW5oZXJpdHModHlwZVBhcmFtZXRlcnNbaV0u
cHJvdG9jb2wpOwotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iob3JpZ2luLm9yaWdpblN0cmluZywgIlR5
cGUgYXJndW1lbnQgZG9lcyBub3QgaW5oZXJpdCBwcm90b2NvbDogIiArIHJlc3VsdC5yZWFzb24p
OwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5lcXVh
bHNXaXRoQ29tbWl0KHR5cGVQYXJhbWV0ZXJzW2ldLnR5cGUpKQotICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3JvbmcgdHlwZSBm
b3IgY29uc3RleHByIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBpZiAoIW5vZGUudHlwZSkKICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVHlwZSByZWZlcmVuY2Ugd2l0aG91dCBhIHR5cGUg
aW4gY2hlY2tlcjogIiArIG5vZGUgKyAiIGF0ICIgKyBub2RlLm9yaWdpbik7CiAgICAgICAgIGlm
ICghKG5vZGUudHlwZSBpbnN0YW5jZW9mIFN0cnVjdFR5cGUpKQogICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOwotICAgICAgICB0aGlzLl9jaGVja1R5cGVBcmd1bWVudHMobm9kZS5v
cmlnaW4sIG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywgbm9kZS50eXBlQXJndW1lbnRzKTsKICAg
ICB9CiAgICAgCiAgICAgdmlzaXRBcnJheVR5cGUobm9kZSkKQEAgLTQyNiw4ICszNzgsOCBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIAogICAgICAgICB0cnkgewog
ICAgICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAg
ICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMsIHRoaXMuX2N1
cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5nZXRG
dW5jTmFtZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlc10sIG51bGwpOworICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLnBv
c3NpYmxlR2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuZ2V0RnVuY05hbWUsIFtu
b2RlLmJhc2UsIC4uLmV4dHJhQXJnc10sIFtiYXNlVHlwZSwgLi4uZXh0cmFBcmdUeXBlc10sIG51
bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yR2V0ID0gcmVzdWx0LmNhbGw7CiAgICAgICAg
ICAgICBub2RlLnJlc3VsdFR5cGVGb3JHZXQgPSByZXN1bHQucmVzdWx0VHlwZTsKICAgICAgICAg
fSBjYXRjaCAoZSkgewpAQCAtNDQwLDggKzM5Miw4IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBW
aXNpdG9yIHsKICAgICAgICAgICAgIGxldCBiYXNlRm9yQW5kID0gYmFzZVR5cGUuYXJndW1lbnRG
b3JBbmRPdmVybG9hZChub2RlLm9yaWdpbiwgbm9kZS5iYXNlKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVBbmRPdmVybG9hZHMsIHRoaXMuX2N1cnJl
bnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5j
TmFtZSwgW10sIFtiYXNlRm9yQW5kLCAuLi5leHRyYUFyZ3NdLCBbdHlwZUZvckFuZCwgLi4uZXh0
cmFBcmdUeXBlc10sCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVB
bmRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5hbmRGdW5jTmFtZSwgW2Jhc2VGb3JB
bmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKICAgICAg
ICAgICAgICAgICBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvckFuZCA9IHJlc3VsdC5j
YWxsOwogICAgICAgICAgICAgbm9kZS5yZXN1bHRUeXBlRm9yQW5kID0gcmVzdWx0LnJlc3VsdFR5
cGUudW5pZnlOb2RlLnJldHVyblR5cGVGcm9tQW5kT3ZlcmxvYWQobm9kZS5vcmlnaW4pOwpAQCAt
NDY1LDkgKzQxNyw5IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3Vs
dCB0eXBlIHJlc29sdmVkIGJ5LXZhbHVlICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yR2V0ICsgIikg
ZG9lcyBub3QgbWF0Y2ggcmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktcG9pbnRlciAoIiArIG5vZGUu
cmVzdWx0VHlwZUZvckFuZCArICIpIik7CiAgICAgICAgIAogICAgICAgICB0cnkgewotICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCi0gICAgICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsIHRoaXMuX2N1cnJlbnRT
dGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsCi0gICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFt
ZSwgW10sIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0
cmFBcmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CisgICAgICAgIGxldCByZXN1bHQg
PSBDYWxsRXhwcmVzc2lvbi5yZXNvbHZlKAorICAgICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLnBvc3NpYmxlU2V0T3ZlcmxvYWRzLAorICAgICAgICAgICAgICAgIG5vZGUuc2V0RnVuY05h
bWUsIFtub2RlLmJhc2UsIC4uLmV4dHJhQXJncywgbnVsbF0sIFtiYXNlVHlwZSwgLi4uZXh0cmFB
cmdUeXBlcywgbm9kZS5yZXN1bHRUeXBlXSwgbnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxG
b3JTZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdFR5cGUu
ZXF1YWxzKGJhc2VUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihu
b2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJSZXN1bHQgdHlwZSBvZiBzZXR0ZXIgIiArIHJlc3Vs
dC5jYWxsLmZ1bmMgKyAiIGlzIG5vdCB0aGUgYmFzZSB0eXBlICIgKyBiYXNlVHlwZSk7CkBAIC02
NzUsNyArNjI3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAg
IHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1l
bnRzID0gbm9kZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50
LnZpc2l0KHRoaXMpKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50
TGlzdC5tYXAoYXJndW1lbnQgPT4gewogICAgICAgICAgICAgbGV0IG5ld0FyZ3VtZW50ID0gYXJn
dW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgICAgICBpZiAoIW5ld0FyZ3VtZW50KQpAQCAtNjg3
LDcgKzYzOCw3IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYg
KG5vZGUucmV0dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlz
KTsKIAotICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMsIHRoaXMuX2N1cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVu
dHMpOworICAgICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVy
bG9hZHMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwppbmRleCAxZTVhZDY2MTVi
MzkyNDNjMDZhMGM0NWFlZjc2MzRmNjM3NjUzNzUwLi4xZmQ1MjMxMTE0NDY1MmJhNmY4OGVjYjEy
NmI3ODU3OWNjN2I2ODViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Db25zdGV4cHJGb2xkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
Q29uc3RleHByRm9sZGVyLmpzCkBAIC0zNCw3ICszNCw2IEBAIGNsYXNzIENvbnN0ZXhwckZvbGRl
ciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5v
ZGUpOwogICAgICAgICAKICAgICAgICAgaWYgKG5vZGUubmFtZSA9PSAib3BlcmF0b3ItIgotICAg
ICAgICAgICAgJiYgIW5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgKICAgICAgICAgICAgICYmIG5v
ZGUuYXJndW1lbnRMaXN0Lmxlbmd0aCA9PSAxCiAgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50
TGlzdFswXS51bmlmeU5vZGUuaXNDb25zdGV4cHIKICAgICAgICAgICAgICYmIG5vZGUuYXJndW1l
bnRMaXN0WzBdLnVuaWZ5Tm9kZS5uZWdDb25zdGV4cHIpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlM2MxODI2ZWQ1NWYzZmU1NmY3ZTBlZDJhMDNkZmRhMDI4
ZGE1YjM5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMKKysr
IC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIENvbnN0ZXhwclR5cGVQYXJh
bWV0ZXIgZXh0ZW5kcyBWYWx1ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBl
KQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2lu
OwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7
Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0K
LSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZSgpIHsg
cmV0dXJuIHRoaXMuX3R5cGU7IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVybiB0cnVl
OyB9Ci0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCB2YXJJ
c0xWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxlVW5pZnko
dW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGlu
c3RhbmNlb2YgVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlm
ICghdGhpcy50eXBlLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZSkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhpcy5fdHlw
ZVZhcmlhYmxlVW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAg
ICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3Ro
ZXIpOwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0g
ICAgdmVyaWZ5QXNQYXJhbWV0ZXIodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJh
bFR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlw
ZS5qcwppbmRleCAxMjkxNGRhMzEzN2ZkNmI5MGZlZGE3MjU4NjI3ZWZmZmZiZDRlNTQxLi5hOWQ3
NDUzMzNlZDhmZjYxZWM2ZWZjZDI4MjdlMDg0OTNlNmFlNGE5IDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwpAQCAtMzIsNyArMzIs
NyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgICAgICBzdXBl
cigpOwogICAgICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICAgICAgdGhp
cy5fdmFsdWUgPSB2YWx1ZTsKLSAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBU
eXBlUmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1lLCBbXSk7CisgICAgICAgICAg
ICB0aGlzLnByZWZlcnJlZFR5cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4sIGNvbmZpZy5wcmVmZXJy
ZWRUeXBlTmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGdldCBvcmlnaW4oKSB7
IHJldHVybiB0aGlzLl9vcmlnaW47IH0KQEAgLTU4LDcgKzU4LDcgQEAgZnVuY3Rpb24gY3JlYXRl
TGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICBwcmVwYXJlVG9WZXJpZnkodW5pZmljYXRpb25D
b250ZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlv
bkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcyBpbnN0YW5jZW9m
IFR5cGVWYXJpYWJsZSB8fCByZWFsVGhpcy5pc0xpdGVyYWwpIHsKKyAgICAgICAgICAgIGlmIChy
ZWFsVGhpcy5pc0xpdGVyYWwpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gewogICAg
ICAgICAgICAgICAgICAgICBpZiAocmVhbFRoaXMudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCB0
aGlzLnByZWZlcnJlZFR5cGUpKQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwpAQCAtNzcsMTQgKzc3LDYgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUo
Y29uZmlnKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJhbFR5cGUg
c2hvdWxkIG5ldmVyIGJlIHVzZWQgYXMgYSB0eXBlIHBhcmFtZXRlciIpOwogICAgICAgICB9CiAg
ICAgICAgIAotICAgICAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5k
KHRoaXMpOwotICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmVxdWFscyh0aGlzLnByZWZlcnJlZFR5
cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0g
ICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGNvbW1pdFVuaWZpY2F0aW9uKHVuaWZpY2F0aW9u
Q29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgdGhpcy50eXBlID0gdW5pZmljYXRpb25D
b250ZXh0LmZpbmQodGhpcykudmlzaXQobmV3IEF1dG9XcmFwcGVyKCkpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKaW5kZXggMzBlNmIw
MzFhNmRkNjY1OTc0MDdmM2Y2YjdmZTcxM2VkOGZkY2M0YS4uMDI5NDc4MmMwZTc5M2FhMzc5NTcz
ZjUyODhjNmVlOWU4ZjkwMDY5YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCkBAIC0zNSw4ICszNSw2IEBAIGNsYXNzIEV4cHJlc3Np
b25GaW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdEZ1bmMobm9kZSkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgIGZvciAobGV0
IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQ
YXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2Rl
LnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQpA
QCAtNDYsMTEgKzQ0LDYgQEAgY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlLnR5cGUpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2Nh
bGxiYWNrKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QXNzaWdubWVudChub2Rl
KQogICAgIHsKICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYxNzJkOThkMWUyYzAwOGVkYjVkODE4M2Y1ZWVm
ZDY3OGRjOGVlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBmbGF0dGVuUHJv
dG9jb2xFeHRlbmRzKHByb2dyYW0pCi17Ci0gICAgbGV0IHZpc2l0aW5nID0gbmV3IFZpc2l0aW5n
U2V0KCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZmxhdHRlbihwcm90b2NvbCkKLSAgICB7Ci0gICAg
ICAgIGlmICghcHJvdG9jb2wuZXh0ZW5kcy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIAotICAgICAgICB2aXNpdGluZy5kb1Zpc2l0KHByb3RvY29sLCAoKSA9PiB7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2YgcHJvdG9jb2wuZXh0ZW5kcykgewotICAgICAgICAg
ICAgICAgIHBhcmVudCA9IHBhcmVudC5wcm90b2NvbERlY2w7Ci0gICAgICAgICAgICAgICAgZmxh
dHRlbihwYXJlbnQpOwotICAgICAgICAgICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBwYXJl
bnQuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgICAgICAgICBsZXQgbmV3U2lnbmF0dXJlID0g
c2lnbmF0dXJlLnZpc2l0KAotICAgICAgICAgICAgICAgICAgICAgICAgbmV3IFN1YnN0aXR1dGlv
bihbcGFyZW50LnR5cGVWYXJpYWJsZV0sIFtwcm90b2NvbC50eXBlVmFyaWFibGVdKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIHByb3RvY29sLmFkZChuZXdTaWduYXR1cmUpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb3RvY29sLmV4dGVuZHMgPSBbXTsK
LSAgICAgICAgfSk7Ci0gICAgfQotICAgIAotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dy
YW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBmbGF0dGVuKHByb3RvY29sKTsKLX0KLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCmluZGV4IGU2
YzU3MzdkZTE2YTRhNjQ4ZDg1YWRjYTE2OTM0NTRiNjE0MDcyN2UuLmQ1ZDFiMTUyMzBmMDljMTBh
MGJjMTI1ZjAzY2Y1YWQ0Y2UzZGQyZjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbG9hdExpdGVyYWwuanMKQEAgLTMwLDcgKzMwLDcgQEAgbGV0IEZsb2F0TGl0ZXJhbCA9
IGNyZWF0ZUxpdGVyYWwoewogICAgIAogICAgIG5lZ0NvbnN0ZXhwcihvcmlnaW4pCiAgICAgewot
ICAgICAgICByZXR1cm4gbmV3IEludExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CisgICAg
ICAgIHJldHVybiBuZXcgRmxvYXRMaXRlcmFsKG9yaWdpbiwgLXRoaXMudmFsdWUpOwogICAgIH0s
CiAgICAgCiAgICAgY3JlYXRlVHlwZShvcmlnaW4sIHZhbHVlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmMuanMKaW5kZXggNmZhN2M5ZDFiNmY0Yjk1ODMzNTk4MWMyNzI4YmU4NjVhNTZl
NzNhZS4uNmZjNzMzMjc2MWQ0NjNjMzVhOGM0MGMyYTc2ZjJmNGIzNmMyMzIyMyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCkBAIC0yNSw3ICsyNSw3IEBACiAidXNlIHN0cmlj
dCI7CiAKIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNo
YWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewogICAgICAgICBpZiAoIShvcmlnaW4g
aW5zdGFuY2VvZiBMZXhlclRva2VuKSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFk
IG9yaWdpbjogIiArIG9yaWdpbik7CkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIEZ1bmMgZXh0ZW5k
cyBOb2RlIHsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9u
YW1lID0gbmFtZTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHJldHVyblR5cGU7Ci0gICAg
ICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMu
X3BhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9pc0Nhc3QgPSBpc0Nhc3Q7
CiAgICAgICAgIHRoaXMuX3NoYWRlclR5cGUgPSBzaGFkZXJUeXBlOwpAQCAtNDgsOCArNDcsNiBA
QCBjbGFzcyBGdW5jIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQogICAg
IGdldCByZXR1cm5UeXBlKCkgeyByZXR1cm4gdGhpcy5fcmV0dXJuVHlwZTsgfQotICAgIGdldCB0
eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Ci0gICAgZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKSB7IHJldHVybiB0aGlzLnR5cGVQYXJh
bWV0ZXJzOyB9CiAgICAgZ2V0IHBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl9wYXJhbWV0ZXJz
OyB9CiAgICAgZ2V0IHBhcmFtZXRlclR5cGVzKCkgeyByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzLm1h
cChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnR5cGUpOyB9CiAgICAgZ2V0IGlzQ2FzdCgpIHsgcmV0
dXJuIHRoaXMuX2lzQ2FzdDsgfQpAQCAtNjUsOSArNjIsOSBAQCBjbGFzcyBGdW5jIGV4dGVuZHMg
Tm9kZSB7CiAgICAgICAgIGlmICh0aGlzLnNoYWRlclR5cGUpCiAgICAgICAgICAgICByZXN1bHQg
Kz0gdGhpcy5zaGFkZXJUeXBlICsgIiAiOwogICAgICAgICBpZiAodGhpcy5pc0Nhc3QpCi0gICAg
ICAgICAgICByZXN1bHQgKz0gIm9wZXJhdG9yPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4g
IiArIHRoaXMucmV0dXJuVHlwZTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3IgIiAr
IHRoaXMucmV0dXJuVHlwZTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ICs9IHRo
aXMucmV0dXJuVHlwZSArICIgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRl
cnMgKyAiPiI7CisgICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsgIiAiICsg
dGhpcy5uYW1lOwogICAgICAgICByZXR1cm4gcmVzdWx0ICsgIigiICsgdGhpcy5wYXJhbWV0ZXJz
ICsgIikiOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Z1bmNEZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVm
LmpzCmluZGV4IDExZmEwOTJlM2IyMjc4ZTIxNWEwYTY3ZTk1MWUxN2RhYmExMzZhODMuLmNhMDU5
N2ZjZDI5NGRmYWI2MDQ0MjE0ZTA3NTRmN2VmOTQ0Yjg3OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRnVuY0RlZi5qcwpAQCAtMjUsOSArMjUsOSBAQAogInVzZSBzdHJpY3QiOwog
CiBjbGFzcyBGdW5jRGVmIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgYm9keSwgaXNDYXN0
LCBzaGFkZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwg
cGFyYW1ldGVycywgYm9keSwgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3Vw
ZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywg
aXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5U
eXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLl9ib2R5
ID0gYm9keTsKICAgICAgICAgdGhpcy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICB9CkBAIC0z
Niw4ICszNiw2IEBAIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKICAgICAKICAgICByZXdy
aXRlKHJld3JpdGVyKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3R5cGVQYXJhbWV0ZXJzLmxl
bmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHJld3JpdGUgYW4gdW5p
bnN0YW50aWF0ZWQgZnVuY3Rpb24iKTsKICAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IHRoaXMu
X3JldHVyblR5cGUudmlzaXQocmV3cml0ZXIpOwogICAgICAgICB0aGlzLl9wYXJhbWV0ZXJzID0g
dGhpcy5fcGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChyZXdyaXRl
cikpOwogICAgICAgICB0aGlzLl9ib2R5ID0gdGhpcy5ib2R5LnZpc2l0KHJld3JpdGVyKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3Iu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jSW5zdGFudGlhdG9yLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OTI4NjJhNmRkODU2NWVlMzdlNDIwNjMxZDdh
ZjcwZDUyMjdlNTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBGdW5jSW5zdGFudGlhdG9y
IHsKLSAgICBjb25zdHJ1Y3Rvcihwcm9ncmFtKQotICAgIHsKLSAgICAgICAgdGhpcy5fcHJvZ3Jh
bSA9IHByb2dyYW07Ci0gICAgICAgIHRoaXMuX2luc3RhbmNlcyA9IG5ldyBNYXAoKTsKLSAgICB9
Ci0gICAgCi0gICAgZ2V0IGluc3RhbmNlcygpIHsgcmV0dXJuIHRoaXMuX2luc3RhbmNlczsgfQot
ICAgIAotICAgIC8vIFJldHVybnMgYSBGdW5jIG9iamVjdCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZp
ZXMgYSBwYXJ0aWN1bGFyIHN5c3RlbSBvZiB0eXBlIGFyZ3VtZW50cy4gWW91IG11c3QKLSAgICAv
LyBpbnRhbnRpYXRlIHRoaW5ncyB3aXRoIGNvbmNyZXRlIHR5cGVzLCBiZWNhdXNlIHRoaXMgY29k
ZSBjYXN1YWxseSBhc3N1bWVzIHRoaXMuIE5vdGUgdGhhdCB0aGlzCi0gICAgLy8gd2lsbCByZXR1
cm4gYSBkaWZmZXJlbnQgZnVuYyBmcm9tIGBmdW5jYCBubyBtYXR0ZXIgd2hhdC4gVGhpcyBlbnN1
cmVzIHRoYXQgd2UgY2FuIHVzZSB0aGUKLSAgICAvLyByZXR1cm5lZCBmdW5jIGZvciByZXdyaXRl
cyB0aGF0IGluc3RhbnRpYXRlIHR5cGVzIHdpdGhvdXQgZGVzdHJveWluZyBvdXIgYWJpbGl0eSB0
byBkbyBvdmVybG9hZAotICAgIC8vIHJlc29sdXRpb25zIG9uIHRoZSBvcmlnaW5hbCBQcm9ncmFt
LgotICAgIGdldFVuaXF1ZShmdW5jLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgY2xh
c3MgRmluZFR5cGVWYXJpYWJsZSBleHRlbmRzIFZpc2l0b3IgewotICAgICAgICAgICAgdmlzaXRU
eXBlUmVmKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgdHlw
ZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgdHlw
ZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgICAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJVbmV4cGVjdGVkIHR5cGUgdmFyaWFibGU6ICIgKyBub2RlICsgIiB3aGVuIGlu
c3RhbnRpYXRpbmcgIiArIGZ1bmMgKyAiIHdpdGggYXJndW1lbnRzICIgKyB0eXBlQXJndW1lbnRz
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1l
bnQgb2YgdHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdChuZXcg
RmluZFR5cGVWYXJpYWJsZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW5jZXMgPSB0
aGlzLl9pbnN0YW5jZXMuZ2V0KGZ1bmMpOwotICAgICAgICBpZiAoIWluc3RhbmNlcykKLSAgICAg
ICAgICAgIHRoaXMuX2luc3RhbmNlcy5zZXQoZnVuYywgaW5zdGFuY2VzID0gW10pOwotICAgICAg
ICAKLSAgICAgICAgZm9yIChsZXQgaW5zdGFuY2Ugb2YgaW5zdGFuY2VzKSB7Ci0gICAgICAgICAg
ICBsZXQgb2sgPSB0cnVlOwotICAgICAgICAgICAgZm9yIChsZXQgaSA9IGluc3RhbmNlLnR5cGVB
cmd1bWVudHMubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFpbnN0YW5jZS50
eXBlQXJndW1lbnRzW2ldLmVxdWFscyh0eXBlQXJndW1lbnRzW2ldKSkgewotICAgICAgICAgICAg
ICAgICAgICBvayA9IGZhbHNlOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIW9rKQotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlLmZ1bmM7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCB0aGlzSW5zdGFudGlhdG9yID0gdGhpczsKLSAg
ICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25TdWJzdGl0dXRpb24gZXh0ZW5kcyBT
dWJzdGl0dXRpb24gewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdENhbGxF
eHByZXNzaW9uKG5vZGUpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8vIFdl
IG1heSBoYXZlIHRvIHJlLXJlc29sdmUgdGhlIGZ1bmN0aW9uIGNhbGwsIGlmIGl0IHdhcyBhIGNh
bGwgdG8gYSBwcm90b2NvbAotICAgICAgICAgICAgICAgIC8vIHNpZ25hdHVyZS4KLSAgICAgICAg
ICAgICAgICBpZiAocmVzdWx0LmZ1bmMgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwocmVz
dWx0LnBvc3NpYmxlT3ZlcmxvYWRzLCByZXN1bHQudHlwZUFyZ3VtZW50cywgcmVzdWx0LmFyZ3Vt
ZW50VHlwZXMsIHJlc3VsdC5yZXR1cm5UeXBlKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFv
dmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJD
b3VsZCBub3QgcmVzb2x2ZSBwcm90b2NvbCBzaWduYXR1cmUgZnVuY3Rpb24gY2FsbCBkdXJpbmcg
aW5zdGFudGlhdGlvbjogIiArIHJlc3VsdC5mdW5jICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0
aCA/ICI7IHRyaWVkOlxuIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIlxuIikgOiAiIikpOwot
ICAgICAgICAgICAgICAgICAgICByZXN1bHQucmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAo
cmVzdWx0LmZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5uYXRpdmVG
dW5jSW5zdGFuY2UgPSB0aGlzSW5zdGFudGlhdG9yLmdldFVuaXF1ZShyZXN1bHQuZnVuYywgcmVz
dWx0LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbihm
dW5jLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLQotICAgICAgICBjbGFzcyBJbnN0
YW50aWF0aW9uSW5zdGFudGlhdGVJbW1lZGlhdGVzIGV4dGVuZHMgSW5zdGFudGlhdGVJbW1lZGlh
dGVzIHsKLSAgICAgICAgICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICAvLyBXZSBuZWVkIHRvIHByZXNlcnZlIGNlcnRhaW4gdGhpbmdz
IHRoYXQgd291bGQgaGF2ZSBpbnN0YW50aWF0ZWQsIGJ1dCB0aGF0IHdlIGNhbm5vdAotICAgICAg
ICAgICAgICAgIC8vIGluc3RhbnRpYXRlIHdpdGhvdXQgYnJlYWtpbmcgY2hhaW4taW5zdGFudGlh
dGlvbnMgKGdlbmVyaWMgZnVuY3Rpb24gY2FsbHMgZ2VuZXJpYwotICAgICAgICAgICAgICAgIC8v
IGZ1bmN0aW9uIHNvIHRoZXJlZm9yZSB0aGUgaW5zdGFudGlhdGVkIGdlbmVyaWMgZnVuY3Rpb24g
bXVzdCBzdGlsbCBoYXZlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIC8vICh1bmluc3Rh
bnRpYXRlZCkgdHlwZXMgdG8gaW5zdGFudGlhdGUgdGhlIGdlbmVyaWMgZnVuY3Rpb24gdGhhdCBp
dCBjYWxscykuCi0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lv
bigKLSAgICAgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
QXJndW1lbnRzLAotICAgICAgICAgICAgICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJn
dW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQgPSB0aGlzLnByb2Nlc3NEZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXN1bHQuYXJndW1lbnRUeXBlcyA9IEFycmF5
LmZyb20obm9kZS5hcmd1bWVudFR5cGVzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS5pc0Nh
c3QpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRDYXN0RGF0YShub2RlLnJldHVyblR5
cGUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gQXJyYXku
ZnJvbShub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAg
ICAgICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRpb25JbnN0YW50
aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRlIHsK
LSAgICAgICAgICAgIHZpc2l0RnVuY0RlZihmdW5jKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIGxldCByZXR1cm5UeXBlID0gZnVuYy5yZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlv
bik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuVHlwZSA9IHJldHVyblR5cGUudmlzaXQoaW5zdGFu
dGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IGZ1bmMu
cGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24p
KTsKLSAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVycy5tYXAocGFyYW1ldGVy
ID0+IHBhcmFtZXRlci52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpKTsKLSAgICAgICAgICAg
ICAgICBsZXQgYm9keSA9IGZ1bmMuYm9keS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAg
ICAgICAgIGJvZHkgPSBib2R5LnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKAotICAgICAgICAgICAgICAgICAgICBmdW5jLm9y
aWdpbiwgZnVuYy5uYW1lLCByZXR1cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgYm9keSwgZnVuYy5p
c0Nhc3QsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0TmF0aXZlRnVuYyhmdW5jKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuY0luc3RhbmNl
KAotICAgICAgICAgICAgICAgICAgICBmdW5jLAotICAgICAgICAgICAgICAgICAgICBmdW5jLnJl
dHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMp
LAotICAgICAgICAgICAgICAgICAgICBmdW5jLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBw
YXJhbWV0ZXIudmlzaXQoc3Vic3RpdHV0aW9uKS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMp
KSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pc0Nhc3QsCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMuc2hhZGVyVHlwZSwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbnN0YW50aWF0ZUlt
cGxlbWVudGF0aW9uKHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGxldCByZXN1bHRpbmdGdW5jID0gZnVuYy52aXNpdChuZXcgSW5zdGFudGlhdGUoKSk7
Ci0gICAgICAgIHJlc3VsdGluZ0Z1bmMudW5pbnN0YW50aWF0ZWRSZXR1cm5UeXBlID0gZnVuYy5y
ZXR1cm5UeXBlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgIGxldCBpbnN0YW5jZSA9IHtm
dW5jOiByZXN1bHRpbmdGdW5jLCB0eXBlQXJndW1lbnRzfTsKLSAgICAgICAgaW5zdGFuY2VzLnB1
c2goaW5zdGFuY2UpOwotICAgICAgICByZXR1cm4gcmVzdWx0aW5nRnVuYzsKLSAgICB9Ci19Ci0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luZmVyVHlwZXNGb3JD
YWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwu
anMKaW5kZXggNDQ2YjM1MWRhNTcxNWM2OGEzNWQ3Njk3OTY5ZDY5OGVjNzNlNzRmOC4uNjA0OTE1
MzYyNTFkMDliY2UwM2ExNGVkNjc3NTIyYTAyZDEzYTY0MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMKQEAgLTI0LDE5ICsyNCwx
MSBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1
bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCitmdW5jdGlvbiBp
bmZlclR5cGVzRm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogewotICAg
IGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCAmJiB0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBmdW5j
LnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgcmV0dXJuIHtmYWlsdXJlOiBuZXcgT3Zl
cmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1l
bnRzIChwYXNzZWQgIiArIHR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVu
Yy50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKICAgICBpZiAoYXJndW1lbnRUeXBlcy5s
ZW5ndGggIT0gZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCkKICAgICAgICAgcmV0dXJuIHtmYWlsdXJl
OiBuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiV3JvbmcgbnVtYmVyIG9mIGFy
Z3VtZW50cyAocGFzc2VkICIgKyBhcmd1bWVudFR5cGVzLmxlbmd0aCArICIsIHJlcXVpcmUgIiAr
IGZ1bmMucGFyYW1ldGVycy5sZW5ndGggKyAiKSIpfTsKLSAgICBsZXQgdW5pZmljYXRpb25Db250
ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChmdW5jLnR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJl
c29sdXRpb24pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUFyZ3VtZW50cy5sZW5ndGg7
ICsraSkgewotICAgICAgICBsZXQgYXJndW1lbnQgPSB0eXBlQXJndW1lbnRzW2ldOwotICAgICAg
ICBsZXQgcGFyYW1ldGVyID0gZnVuYy50eXBlUGFyYW1ldGVyc1tpXTsKLSAgICAgICAgaWYgKCFh
cmd1bWVudC51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHBhcmFtZXRlcikpCi0gICAgICAgICAg
ICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJU
eXBlIGFyZ3VtZW50ICMiICsgKGkgKyAxKSArICIgZm9yIHBhcmFtZXRlciAiICsgcGFyYW1ldGVy
Lm5hbWUgKyAiIGRvZXMgbm90IG1hdGNoIChwYXNzZWQgIiArIGFyZ3VtZW50ICsgIiwgcmVxdWly
ZSAiICsgcGFyYW1ldGVyICsgIikiKX07Ci0gICAgfQorICAgIGxldCB1bmlmaWNhdGlvbkNvbnRl
eHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBh
cmd1bWVudFR5cGVzLmxlbmd0aDsgKytpKSB7CiAgICAgICAgIGlmICghYXJndW1lbnRUeXBlc1tp
XSkKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBhcmd1bWVudCB0eXBlIGF0IGkg
PSAiICsgaSk7CkBAIC00OCwxNiArNDAsNiBAQCBmdW5jdGlvbiBpbmZlclR5cGVzRm9yQ2FsbChm
dW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogICAgIGxldCB2
ZXJpZmljYXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7CiAgICAgaWYg
KCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQogICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5l
dyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsIHZlcmlmaWNhdGlvblJlc3VsdC5yZWFz
b24pfTsKLSAgICBsZXQgc2hvdWxkQnVpbGRUeXBlQXJndW1lbnRzID0gIXR5cGVBcmd1bWVudHMu
bGVuZ3RoOwotICAgIGlmIChzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMpCi0gICAgICAgIHR5cGVB
cmd1bWVudHMgPSBbXTsKLSAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMudHlwZVBh
cmFtZXRlcnMpIHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudCA9IHVuaWZpY2F0aW9uQ29udGV4
dC5maW5kKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICBpZiAodHlwZUFyZ3VtZW50ID09IHR5cGVQ
YXJhbWV0ZXIpCi0gICAgICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29s
dXRpb25GYWlsdXJlKGZ1bmMsICJUeXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlciArICIg
ZGlkIG5vdCBnZXQgYXNzaWduZWQgYSB0eXBlIil9OwotICAgICAgICBpZiAoc2hvdWxkQnVpbGRU
eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50cy5wdXNoKHR5cGVBcmd1bWVu
dCk7Ci0gICAgfQotICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0LCB0eXBlQXJn
dW1lbnRzfTsKKyAgICByZXR1cm4ge2Z1bmMsIHVuaWZpY2F0aW9uQ29udGV4dH07CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcwppbmRleCBmMDI4NzNiZDI3M2Q5MTBi
M2RmMDRmZDJhNTFhM2M3YzBhNDY3Y2VmLi4wOTA3NDY5OTI2ZjhjMDdkNTMzNGJiMDMwN2RkMzUx
ODViOGU1MjNjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCkBAIC0y
OCwxOCArMjgsMTMgQEAgZnVuY3Rpb24gaW5saW5lKHByb2dyYW0pCiB7CiAgICAgZm9yIChsZXQg
ZnVuY0xpc3Qgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgZm9yIChs
ZXQgZnVuYyBvZiBmdW5jTGlzdCkgewotICAgICAgICAgICAgaWYgKCFmdW5jLnR5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkgewotICAgICAgICAgICAgICAgIGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0YW50
aWF0b3IuZ2V0VW5pcXVlKGZ1bmMsIFtdKQotICAgICAgICAgICAgICAgIF9pbmxpbmVGdW5jdGlv
bihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQoZnVuYykpOwotICAgICAgICAgICAgfQor
ICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1Nl
dChmdW5jKSk7CiAgICAgICAgIH0KICAgICB9CiB9CiAKIGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlv
bihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKIHsKLSAgICBpZiAoZnVuYy50eXBlUGFyYW1ldGVy
cy5sZW5ndGgpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGlubGluZSBmdW5jdGlv
biB0aGF0IGhhcyB0eXBlIHBhcmFtZXRlcnMiKTsKICAgICBpZiAoZnVuYy5pbmxpbmVkIHx8IGZ1
bmMuaXNOYXRpdmUpCiAgICAgICAgIHJldHVybjsKICAgICAKQEAgLTU1LDE0ICs1MCwxMCBAQCBm
dW5jdGlvbiBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgdmlzaXRpbmcpCiAgICAgZnVu
Yy5pbmxpbmVkID0gdHJ1ZTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihw
cm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9p
bnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFt
ZSwgYXJndW1lbnRUeXBlcywgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7Ci0gICAgbGV0IG92
ZXJsb2FkID0gcHJvZ3JhbS5nbG9iYWxOYW1lQ29udGV4dC5yZXNvbHZlRnVuY092ZXJsb2FkKG5h
bWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHVuZGVmaW5lZCwgYWxsb3dFbnRyeVBv
aW50KTsKKyAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29s
dmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5
UG9pbnQpOwogICAgIGlmICghb3ZlcmxvYWQuZnVuYykKICAgICAgICAgcmV0dXJuIG92ZXJsb2Fk
LmZhaWx1cmVzOwotICAgIGlmICghb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycykKLSAgICAg
ICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7Ci0gICAgbGV0IGZ1bmMgPSBwcm9ncmFtLmZ1bmNJbnN0
YW50aWF0b3IuZ2V0VW5pcXVlKG92ZXJsb2FkLmZ1bmMsIG92ZXJsb2FkLnR5cGVBcmd1bWVudHMp
OwotICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCBuZXcgVmlzaXRpbmdTZXQob3Zl
cmxvYWQuZnVuYykpOwotICAgIHJldHVybiBmdW5jOworICAgIHJldHVybiBvdmVybG9hZC5mdW5j
OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKaW5kZXggNDkxZWYz
ZTIyMWZjMDYzMThlZTAzNjdhMzgxNjk5ZTU3MjNiZmU1YS4uZDkwNmY3NmRkNTMzZTZkZTZlMzVj
YWRmNDBiMzQxYzAxOTM1Zjg2MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvSW5saW5lci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Jbmxp
bmVyLmpzCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIElubGluZXIgZXh0ZW5kcyBSZXdyaXRlciB7
CiAgICAgICAgIGlmIChyZXN1bHQubmF0aXZlRnVuY0luc3RhbmNlKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZS5m
dW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRoaXMuX3Byb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1l
bnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1bmM7CiAgICAgICAgICAgICBp
ZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhw
ZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAgICAgIF9pbmxpbmVGdW5jdGlv
bih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEzNDhhYmMxMjc2OTZiNmVlMzFl
MGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBJbnN0YW50aWF0ZUltbWVk
aWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewot
ICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwotICAgICAgICBpZiAoIW5v
ZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50
cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBlIGRvZXMgbm90
IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgiICsgdHlwZS5jb25zdHJ1Y3Rv
ci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2RlOwotICAgICAgICB9Ci0gICAg
ICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50eXBlQXJndW1lbnRzKS52aXNp
dChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UmVmZXJlbmNlVHlw
ZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotfQotCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwppbmRleCA5MzNkZmUwMTEzMDJi
MGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi45OTg3YjA0NTliZDMyMTkzNWNhMjM5N2Y2NTFi
MmNiMGExZmVjMjc2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNp
Y3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAvLyBG
b3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVjbGFyZWQgdXNpbmcgImludCIg
cmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAgICAgIC8vIHVzZSAiaW50IiBo
ZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkgYXJlIHRoZSBzYW1lIHR5cGUu
CiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB0
eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0
aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsKLSAgICAgICAg
ICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNCaXR3aXNlRXF1aXZhbGVudChs
ZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0IGRvdWJsZUFycmF5ID0gbmV3
IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5NCArNDcsNjA2IEBAIGNsYXNzIEludHJpbnNpY3Mg
ewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJheUNvbnN0cnVjdG9yLCBudW1i
ZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9IG5ldyB0eXBlZEFycmF5Q29u
c3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51bWJlcjsKKyAgICAgICAgICAg
IHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0gICAgICAgICAgICB0eXBlID0+
IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0
eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRW
YWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwg
dmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUpOwot
ICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAx
KSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09
PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVy
LCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBl
LmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVl
IHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsgCi0g
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7CisgICAg
ICAgIGZ1bmN0aW9uIGNhc3RUb0hhbGYobnVtYmVyKQorICAgICAgICB7CisgICAgICAgICAgICAv
LyBGSVhNRTogTWFrZSB0aGlzIG1hdGggb2JleSBJRUVFIDc1NC4KKyAgICAgICAgICAgIGlmIChO
dW1iZXIuaXNOYU4obnVtYmVyKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVtYmVyCisgICAg
ICAgICAgICBpZiAobnVtYmVyID4gNjU1MDQpCisgICAgICAgICAgICAgICAgcmV0dXJuIE51bWJl
ci5QT1NJVElWRV9JTkZJTklUWTsKKyAgICAgICAgICAgIGlmIChudW1iZXIgPCAtNjU1MDQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlci5ORUdBVElWRV9JTkZJTklUWTsKKyAgICAgICAg
ICAgIGlmIChudW1iZXIgPiAwICYmIG51bWJlciA8IE1hdGgucG93KDIsIC0yNCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgMCAmJiBudW1iZXIg
PiAtTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTA7CisgICAgICAg
ICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEpOworICAgICAgICAgICAg
bGV0IHVpbnRBcnJheSA9IG5ldyBVaW50OEFycmF5KGRvdWJsZUFycmF5LmJ1ZmZlcik7CisgICAg
ICAgICAgICBkb3VibGVBcnJheVswXSA9IG51bWJlcjsKKyAgICAgICAgICAgIGxldCBzaWduID0g
dWludEFycmF5WzddICYgMHg4MDsKKyAgICAgICAgICAgIGxldCBleHBvbmVudCA9ICgodWludEFy
cmF5WzddICYgMHg3ZikgPDwgNCkgfCAoKHVpbnRBcnJheVs2XSAmIDB4ZjApID4+PiA0KTsKKyAg
ICAgICAgICAgIGxldCBzaWduaWZpY2FuZCA9ICgodWludEFycmF5WzZdICYgMHgwZikgPDwgNikg
fCAoKHVpbnRBcnJheVs1XSAmIDB4ZmMpID4+PiAyKTsKIAotICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQzMjw+IiwKLSAgICAgICAgICAgIHR5
cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDMyID0gdHlwZTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5S
ZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlID4+PiAwLCB2YWx1
ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAgICAgICB0eXBl
LmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSA+Pj4g
MCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+
ICh2YWx1ZSArIDEpID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAo
YSwgYikgPT4gYSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZh
bHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUg
Pj4+IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgeyAKLSAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmZmZmZjsgKytpKQotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiBp
LCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBpZiAoKGV4cG9uZW50IC0gMTAyMykgPCAtMTQpIHsKKyAgICAgICAgICAgICAgICBleHBv
bmVudCA9IDA7CisgICAgICAgICAgICAgICAgc2lnbmlmaWNhbmQgPSAoTWF0aC5hYnMobnVtYmVy
KSAqIE1hdGgucG93KDIsIDI0KSkgPj4+IDA7CisgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
TWF0aC5wb3coMiwgLTE0KSAqIHNpZ25pZmljYW5kIC8gMTAyNDsKKyAgICAgICAgICAgICAgICBp
ZiAoc2lnbiAhPSAwKQorICAgICAgICAgICAgICAgICAgICB2YWx1ZSAqPSAtMTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1aW50ODw+IiwKLSAgICAgICAgICAg
IHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudWludDggPSB0eXBlOwotICAgICAgICAg
ICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIg
PSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQo
dmFsdWUgJiAweGZmLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAg
dHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVy
YWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhmZjsKLSAgICAgICAgICAg
ICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKLSAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQotICAgICAgICAgICAgICAgICAgICAgICAg
eWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKLSAgICAgICAgICAgICAgICB9OwotICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBkb3VibGVBcnJheVswXSA9IDA7CiAKKyAgICAgICAgICAgIHVp
bnRBcnJheVs3XSB8PSBzaWduOworICAgICAgICAgICAgdWludEFycmF5WzddIHw9IChleHBvbmVu
dCA+Pj4gNCk7CisgICAgICAgICAgICB1aW50QXJyYXlbNl0gfD0gKChleHBvbmVudCA8PCA0KSAm
IDB4ZjApOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9IChzaWduaWZpY2FuZCA+Pj4gNik7
CisgICAgICAgICAgICB1aW50QXJyYXlbNV0gfD0gKChzaWduaWZpY2FuZCA8PCAyKSAmIDB4ZmMp
OworICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gZG91YmxlQXJyYXlbMF07CisgICAg
ICAgIH0KKyAgICAgICAgCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIHR5cGVkZWYgZmxvYXQzMjw+IiwKKyAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB2b2lk
IiwKICAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMuZmxvYXQgPSB0
eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwotICAgICAgICAg
ICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoTWF0
aC5mcm91bmQodmFsdWUpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURl
ZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwot
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+
IHZhbHVlOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwg
PSB2YWx1ZSA9PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZs
b2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICB0aGlzLnZvaWQgPSB0eXBlOworICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDA7CisgICAg
ICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgpID0+IHsgfTsKICAgICAg
ICAgICAgIH0pOwotCisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIGJvb2w8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYg
Ym9vbCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKICAgICAgICAgICAgICAgICB0aGlzLmJvb2wg
PSB0eXBlOwogICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOwogICAgICAg
ICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CiAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURl
ZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIGZhbHNl
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMih1aW50MzIpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiBpbnQzMih1aW50OCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSB8IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gaW50MzIoZmxvYXQp
IiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKLSAg
ICAgICAgICAgIH0pOwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWNo
YXIiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnVjaGFy
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAg
ICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
TnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVx
dWl2YWxlbnQodmFsdWUgJiAweGZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6
ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVy
YWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOworICAgICAgICAgICAgICAg
ICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAg
ICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAg
ICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAw
eGZmOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDMyKGludDMyKSIsCi0gICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdXNob3J0IiwKKyAgICAg
ICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy51c2hvcnQgPSB0eXBlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0
cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2
YWx1ZSAmIDB4ZmZmZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwor
ICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhU
eXBlKG9yaWdpbiwgdmFsdWUgJiAweGZmZmYsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBl
LnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmZmY7CisgICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYgMHhm
ZmZmOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZjsgKytpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CisgICAgICAg
ICAgICAgICAgIH07CisgICAgICAgICAgICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50MzIodWludDgpIiwKLSAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1aW50IiwKKyAgICAg
ICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy51aW50ID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFs
dWUgPj4+IDAsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBl
LmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShv
cmlnaW4sIHZhbHVlID4+PiAwLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpID4+PiAwOworICAgICAgICAgICAgICAgICB0
eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5
cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQo
b2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRl
cmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKKyAgICAgICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQzMihmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
CisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGNoYXIiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLmNoYXIgPSB0eXBlOworICAgICAgICAgICAgICAg
ICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9
IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAg
ICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5S
ZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50OEFycmF5LCB2
YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNy
ZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmln
aW4sIGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBl
LnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7Cisg
ICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1h
dFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1
ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsg
aSA8PSAweGZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBj
YXN0KEludDhBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVl
OiB2YWx1ZSwgbmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDgoaW50MzIpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2hvcnQiLAorICAgICAg
ICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnNob3J0ID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUg
PSAxOworICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAg
ICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFs
LndpdGhUeXBlKG9yaWdpbiwgY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAg
ICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5
LCB2YWx1ZSArIDEpOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIp
ID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUg
PSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQx
NkFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWlu
dExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgIGxldCB2YWx1ZSA9IGNhc3QoSW50MTZBcnJheSwgaSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OworICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDgo
dWludDMyKSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYg
MHhmZik7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAgICAgICAgIm5hdGl2ZSB0
eXBlZGVmIGludCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMuaW50ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7
CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IHRy
dWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3
aXNlRXF1aXZhbGVudCh2YWx1ZSB8IDAsIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5z
aXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAg
ICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0
ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlIHwgMCwgdHlwZSk7CisgICAgICAgICAgICAgICAg
IHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSB8IDA7CisgICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAgIHR5
cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7CisgICAg
ICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmZmZmZjsgKytpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCisgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBoYWxmIiwKKyAg
ICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5oYWxmID0gdHlwZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAg
ICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9IHRy
dWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAg
ICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2Fz
dFRvSGFsZih2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURl
ZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0hhbGYodmFsdWUpOworICAgICAgICAgICAg
IH0pOworCisgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiBmbG9hdCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMuZmxvYXQgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc0Zsb2F0aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRy
dWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3
aXNlRXF1aXZhbGVudChNYXRoLmZyb3VuZCh2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRW
YWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOworICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IE1hdGguZnJvdW5kKHZh
bHVlKTsKKyAgICAgICAgICAgICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQiLAorICAgICAg
ICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY19pbnQgPSB0eXBl
OworICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJl
LgorICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIG9wZXJhdG9yPD4gZmxvYXQoaW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAorICAg
ICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0g
dHlwZTsKKyAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQg
aGVyZS4KKyAgICAgICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBl
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBp
IDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3ByaW1pdGl2ZVR5cGV9JHtpfWAsCisgICAgICAg
ICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtw
cmltaXRpdmVUeXBlfSR7aX1gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2
ZVR5cGUgb2YgWyJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAy
OyBpIDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAyOyBqIDw9IDQ7
ICsraikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9eCR7an1gLAor
ICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhpc1tgJHtwcmltaXRpdmVUeXBlfSR7aX14JHtqfWBdID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJl
LgorICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgb3BlcmF0b3I8PiBmbG9hdCh1aW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgc2FtcGxlciIsCisgICAgICAg
ICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuc2FtcGxlciA9IHR5cGU7Cisg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisg
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChsZXQgdGV4dHVyZVR5cGUgb2YgWyJUZXh0
dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJyYXkiLCAiUldUZXh0dXJlMURBcnJh
eSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4dHVyZTJEQXJyYXkiLCAiUldUZXh0
dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJlM0QiLCAiVGV4dHVyZUN1YmUiXSkg
eworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIFsiYm9vbCIsICJ1Y2hhciIs
ICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0
Il0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAg
ICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCisgICAg
ICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tg
JHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7
ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50
fSR7aX0+YCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+
YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxl
dCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmVEZXB0aDJEIiwgIlJXVGV4dHVyZURlcHRoMkQiLCAi
VGV4dHVyZURlcHRoMkRBcnJheSIsICJSV1RleHR1cmVEZXB0aDJEQXJyYXkiLCAiVGV4dHVyZURl
cHRoQ3ViZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgWyJmbG9h
dCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9
PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICAgICAg
ICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0gdHlwZTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUu
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVzaG9ydCIsICJ1aW50IiwgImNoYXIi
LCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVjaGFyKCR7cHJpbWl0
aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2Fk
VmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAg
ICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVpbnQiLCAiY2hhciIsICJz
aG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgdXNob3J0KCR7cHJpbWl0aXZl
VHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFs
dWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAg
ICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgImNoYXIiLCAi
c2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFw
LnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIHVpbnQoJHtwcmltaXRpdmVU
eXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1
ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZv
ciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJzaG9y
dCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgY2hhcigke3ByaW1pdGl2ZVR5cGV9
KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQ4QXJyYXksIHZh
bHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAg
ICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQi
LCAiY2hhciIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Igc2hvcnQoJHtwcmltaXRp
dmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3QoSW50MTZB
cnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQi
LCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGludCgk
e3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2Fz
dChJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwg
InVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImZsb2F0Il0pIHsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRv
ciBoYWxmKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveChjYXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIi
LCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiJdKSB7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0
b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBvcGVyYXRvcjw+IGZsb2F0KHVpbnQ4KSIsCisgICAgICAgICAgICBgbmF0aXZlIG9wZXJh
dG9yIGludChhdG9taWNfaW50KWAsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJv
dW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yKzw+KGludCxpbnQpIiwKKyAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWludChhdG9taWNfdWludClgLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRW
YWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVp
bnQgb3BlcmF0b3IrPD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgb3Bl
cmF0b3I9PShib29sLGJvb2wpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkg
Pj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09
IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKworCisgICAg
ICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1aW50IiwgImludCIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9v
bCBvcGVyYXRvcj09KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0
aXZlIGJvb2wgb3BlcmF0b3I8KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgYm9vbCBvcGVyYXRvcjw9KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBl
fSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I+KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRp
dmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcj49KCR7cHJpbWl0aXZlVHlwZX0sJHtw
cmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKzw+KGZsb2F0LGZs
b2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcisoaW50LGludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkg
fCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItPD4oaW50LGludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSBy
aWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci08Pih1
aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci08PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChs
ZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3IqPD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3IqKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcio8Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgKiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVy
YXRvcio8PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQu
bG9hZFZhbHVlKCkpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IvPD4oaW50LGludCki
LAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IvKGludCxpbnQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZh
bHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAg
ICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvci88Pih1aW50LHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkg
Pj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImPD4oaW50LGludCkiLAotICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAot
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9y
Jjw+KHVpbnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4g
MCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcnw8PihpbnQsaW50KSIsCi0gICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgfCByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnw8
Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcisodWludCx1
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFs
dWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcl48PihpbnQsaW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgdWludCBvcGVyYXRvcl48Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvcioodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9h
ZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9h
ZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGlu
dCBvcGVyYXRvcjw8PD4oaW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAg
dGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcjw8PD4odWlu
dCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKyhmbG9hdCxmbG9h
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICsgcmln
aHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I+Pjw+KGludCx1
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1
ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+PD4odWludCx1aW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCxmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpID4+PiByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
cn48PihpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3gofnZhbHVlLmxvYWRWYWx1ZSgp
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcn48Pih1aW50KSIsCi0gICAgICAgICAgICBm
dW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRW
YWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvPD4oZmxvYXQsZmxvYXQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0LGZsb2F0KSIsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtsZWZ0LCByaWdodF0pID0+CiAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBib29sIG9wZXJhdG9yPT08PihpbnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQu
bG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08Pih1aW50LHVpbnQp
IiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I9PTw+KGJvb2wsYm9vbCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09PD4oZmxvYXQsZmxvYXQpIiwK
LSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcjw8PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
ciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PD4odWludCx1aW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcnwoaW50LGludCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I8PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yXihpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9PD4o
aW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J+KGludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkp
IHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9PD4odWludCx1aW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAg
IH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBib29sIG9wZXJhdG9yPD08PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2
ZSBpbnQgb3BlcmF0b3I+PihpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
Pj4gcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRv
cj48PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ImKHVpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48Pih1aW50LHVpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWludCx1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAg
IH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBib29sIG9wZXJhdG9yPjw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZl
IHVpbnQgb3BlcmF0b3JeKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBe
IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRv
cj49PD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50
KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2Fk
VmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PTw+KHVpbnQs
dWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDwodWludCx1aW50KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDAp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PTw+KGZsb2F0LGZsb2F0KSIsCisgICAg
ICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1aW50LHVpbnQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUo
KSA+PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAg
ICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRyZXNzU3Bh
Y2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAgICAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgcmVm
ID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWYpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmln
aW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkgaW5kZXgg
IiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5vZGUuaW5z
dGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7Ci0KLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihUW10gJHth
ZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRy
LmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChyZWYubGVu
Z3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2YgU3dpenpsZU9wLmFsbFN3aXp6bGVP
cGVyYXRvcnMoKSkgewotICAgICAgICAgICAgdGhpcy5fbWFwLnNldChzd2l6emxlLnRvU3RyaW5n
KCksIAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmVjXSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICBjb25zdCBv
dXRwdXRCdWZmZXIgPSBuZXcgRUJ1ZmZlcihzd2l6emxlLm91dFNpemUpOwotICAgICAgICAgICAg
ICAgICAgICBjb25zdCByZWFkSW5kaWNlcyA9IHsgJ3gnOiAwLCAneSc6IDEsICd6JzogMiwgJ3cn
OiAzIH07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3dpenpsZS5v
dXRTaXplOyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXIuc2V0KGks
IHZlYy5nZXQocmVhZEluZGljZXNbc3dpenpsZS5jb21wb25lbnRzW2ldXSkpOwotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgRVB0cihvdXRwdXRCdWZmZXIsIDApOwotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEgPSBzd2l6emxlOworICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUo
KSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZyhzd2l6
emxlLnRvU3RyaW5nKCkpOwotICAgICAgICB9CiAgICAgfQogICAgIAogICAgIGFkZCh0aGluZykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL015bGVzLmh0bWwgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NeWxlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZDhm
MTNiMzA4MmRkNjM2OGQxNGQwZDg2MWVmMzBhMjUyNTY2N2UKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NeWxlcy5odG1sCkBAIC0wLDAgKzEsMTUxIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk15bGVzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJOb2Rl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJSZWZlcmVuY2VUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWYWx1ZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUmV3cml0ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlZpc2l0b3IuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkNyZWF0ZUxpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkNyZWF0ZUxpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQcm9w
ZXJ0eUFjY2Vzc0V4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN3aXp6bGVP
cC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSJBZGRyZXNzU3BhY2UuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkFub255bW91c1ZhcmlhYmxlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJBcnJheVJlZlR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFycmF5VHlwZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXNzaWdubWVudC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQXV0b1dyYXBwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJsb2NrLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCb29sTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQnJlYWsuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNhbGxFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDYWxsRnVuY3Rpb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkNoZWNrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja0xpdGVy
YWxUeXBlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tMb29wcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tSZWN1cnNpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkNoZWNrUmVjdXJzaXZlVHlwZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNr
UmV0dXJucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tVbnJlYWNoYWJsZUNvZGUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrV3JhcHBlZC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2xvbmVQcm9n
cmFtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iQ29udGludWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0Fy
cmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3Au
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkRvdEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkRlcmVmZXJlbmNlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRUFycmF5UmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFQnVmZmVyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFQnVmZmVyQnVpbGRlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iRVB0ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRW51bUxpdGVyYWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVudW1NZW1iZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkVudW1UeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFdmFsdWF0aW9uQ29t
bW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFdmFsdWF0b3IuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkV4cHJlc3Npb25GaW5kZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGbG9hdExp
dGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGb2xkQ29uc3RleHBycy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRm9yTG9vcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iRnVuY1BhcmFtZXRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
RnVuY3Rpb25MaWtlQmxvY2suanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVG
aW5kZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklkZW50aXR5RXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSWZTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkluZGV4RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW5mZXJU
eXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklubGluZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW50
TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkxhdGVDaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMZXhlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTGV4ZXJUb2tlbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iTGl0ZXJhbFR5cGVDaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMb2dpY2Fs
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTG9naWNhbE5vdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTG9vcENoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ik1ha2VBcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik1h
a2VQdHJFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOYW1lQ29udGV4dC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOYXRpdmVG
dW5jLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTnVsbFR5
cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik9yaWdpbktpbmQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ik92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlBhcnNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQcmVwYXJlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0
aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHRy
VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iUmVjdXJzaXZlVHlwZUNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlJlc29sdmVOYW1lcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVzb2x2
ZU92ZXJsb2FkSW1wbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVzb2x2ZVByb3BlcnRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlc29sdmVUeXBlRGVmcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iUmV0dXJuLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXR1
cm5DaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXR1cm5FeGNlcHRpb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YW5kYXJkTGlicmFyeS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iU3RhdGVtZW50Q2xvbmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJT
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdHJ1Y3RUeXBl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdWJzdGl0dXRpb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlN3aXRjaENhc2UuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN3aXRj
aFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5j
dGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3Nv
cnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlR5cGVE
ZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFs
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlVuaWZpY2F0aW9uQ29udGV4dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVW5yZWFjaGFibGVDb2RlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VmFyaWFibGVEZWNsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWYXJpYWJsZVJlZi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVmlzaXRpbmdTZXQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IldTeW50YXhFcnJvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV1RyYXBFcnJv
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV1R5cGVFcnJvci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXcmFwQ2hl
Y2tlci5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSJUZXN0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7Cisg
ICAgcHJlcGFyZSgpOworfSk7Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJtZXNzYWdlcyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCmluZGV4IGMzMWJjNDI4Mjk0NDMwYmQ0NTI3Nzk2
ZjRkN2E5OTYwNTM5ZjYxODguLmFmY2NlNzEyMzRmNWFhY2RlZjNlM2FlZGQyMTdkNjhkMzVmN2Ix
MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCkBA
IC0xMDQsMTMgKzEwNCwxMyBAQCBjbGFzcyBOYW1lQ29udGV4dCB7CiAgICAgICAgIHlpZWxkIHRo
aW5nOwogICAgIH0KICAgICAKLSAgICByZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQorICAgIHJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlw
ZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiAgICAgewogICAgICAgICBsZXQgZnVuY3Rpb25z
ID0gdGhpcy5nZXQoRnVuYywgbmFtZSk7CiAgICAgICAgIGlmICghZnVuY3Rpb25zKQogICAgICAg
ICAgICAgcmV0dXJuIHtmYWlsdXJlczogW119OwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIHJl
c29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVz
LCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOworICAgICAgICByZXR1cm4gcmVzb2x2ZU92
ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50
cnlQb2ludCk7CiAgICAgfQogICAgIAogICAgIGdldCBjdXJyZW50U3RhdGVtZW50KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCmluZGV4IGZjMmZkYmQwMzI1
MjdjY2M1NGNhZDcxYmE1NzZiOTkyMjFlZTljN2QuLjQzZTQ3MWFhYzYxYWRhNDNmNzRjN2YwODMy
ZjczZTgwY2FhM2I0ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05hbWVGaW5kZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZp
bmRlci5qcwpAQCAtNDMsMTIgKzQzLDYgQEAgY2xhc3MgTmFtZUZpbmRlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICB0aGlzLl93b3JrbGlzdC5wdXNoKG5hbWUpOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLmFkZChub2RlLm5h
bWUpOwotICAgICAgICBzdXBlci52aXNpdFByb3RvY29sUmVmKG5vZGUpOwotICAgIH0KLSAgICAK
ICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuYWRkKG5vZGUubmFt
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKaW5k
ZXggNzMxOTY0ZmM3ODIyMWFlNzMxMTg5ODEyNTIyMzI1MDNiY2ZhYmMzMC4uNjlkNGYyYzFiOWFi
N2RjMWM1MGMzNmRhOWNjOWNhMzdlMzkxY2MxOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwpAQCAtNDEsMTkgKzQxLDE0IEBAIGNsYXNzIE5hbWVS
ZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aGlzLl9uYW1lQ29udGV4dC5kb1N0
YXRlbWVudChzdGF0ZW1lbnQsICgpID0+IHN0YXRlbWVudC52aXNpdCh0aGlzKSk7CiAgICAgfQog
ICAgIAotICAgIF92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChub2RlKQor
ICAgIF9idWlsZE5hbWVDb250ZXh0KCkKICAgICB7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9
IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5
cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgbmFtZUNv
bnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNp
dCh0aGlzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbmFtZUNvbnRleHQ7CisgICAgICAg
IHJldHVybiBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwogICAgIH0KICAgICAK
ICAgICB2aXNpdEZ1bmMobm9kZSkKICAgICB7Ci0gICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5h
bWVSZXNvbHZlcih0aGlzLl92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChu
b2RlKSk7CisgICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcih0aGlzLl9idWls
ZE5hbWVDb250ZXh0KG5vZGUpKTsKICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGNoZWNr
ZXIpOwogICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXIpOwpAQCAtNjEsMTYgKzU2LDE0IEBAIGNs
YXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0RnVuY0Rl
Zihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNvbnRleHRXaXRoVHlwZVBhcmFtZXRlcnMgPSB0
aGlzLl92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChub2RlKTsKLSAgICAg
ICAgbGV0IGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRl
eHRXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoY2hl
Y2tlcldpdGhUeXBlUGFyYW1ldGVycyk7Ci0gICAgICAgIGxldCBjb250ZXh0V2l0aFBhcmFtZXRl
cnMgPSBuZXcgTmFtZUNvbnRleHQoY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyk7CisgICAgICAg
IGxldCBpbm5lckNvbnRleHQgPSB0aGlzLl9idWlsZE5hbWVDb250ZXh0KCk7CisgICAgICAgIGxl
dCBpbm5lckNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKGlubmVyQ29udGV4dCk7CisgICAgICAg
IG5vZGUucmV0dXJuVHlwZS52aXNpdChpbm5lckNoZWNrZXIpOwogICAgICAgICBmb3IgKGxldCBw
YXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBwYXJhbWV0ZXIudmlz
aXQoY2hlY2tlcldpdGhUeXBlUGFyYW1ldGVycyk7Ci0gICAgICAgICAgICBjb250ZXh0V2l0aFBh
cmFtZXRlcnMuYWRkKHBhcmFtZXRlcik7CisgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQoaW5u
ZXJDaGVja2VyKTsKKyAgICAgICAgICAgIGlubmVyQ29udGV4dC5hZGQocGFyYW1ldGVyKTsKICAg
ICAgICAgfQotICAgICAgICBsZXQgY2hlY2tlcldpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNv
bHZlcihjb250ZXh0V2l0aFBhcmFtZXRlcnMpOwotICAgICAgICBub2RlLmJvZHkudmlzaXQoY2hl
Y2tlcldpdGhQYXJhbWV0ZXJzKTsKKyAgICAgICAgbm9kZS5ib2R5LnZpc2l0KGlubmVyQ2hlY2tl
cik7CiAgICAgfQogICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkKQEAgLTExNSw0MSArMTA4LDkg
QEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIG5vZGUuYm9k
eS52aXNpdChuZXdSZXNvbHZlcik7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNs
KG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2Ygbm9kZS5leHRlbmRzKQot
ICAgICAgICAgICAgcGFyZW50LnZpc2l0KHRoaXMpOwotICAgICAgICBsZXQgbmFtZUNvbnRleHQg
PSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBuYW1lQ29udGV4
dC5hZGQobm9kZS50eXBlVmFyaWFibGUpOwotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1l
UmVzb2x2ZXIobmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9k
ZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZpc2l0KGNoZWNrZXIpOwotICAg
IH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICBsZXQg
cmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFByb3RvY29sLCBub2RlLm5hbWUpOwotICAg
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHByb3RvY29sIG5hbWVkICIgKyBu
b2RlLm5hbWUpOwotICAgICAgICBub2RlLnByb3RvY29sRGVjbCA9IHJlc3VsdDsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAgICB0aGlz
LnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQu
Z2V0KEZ1bmMsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghZnVuY3MpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgZmlu
ZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnBvc3Np
YmxlT3ZlcmxvYWRzID0gZnVuY3M7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZURlZihub2Rl
KQogICAgIHsKICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMu
X25hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwot
ICAgICAgICAgICAgbmFtZUNvbnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAg
ICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAg
ICAgIG5vZGUudHlwZS52aXNpdChjaGVja2VyKTsKICAgICB9CkBAIC0xNTcsMTUgKzExOCwyMiBA
QCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdFN0cnVjdFR5
cGUobm9kZSkKICAgICB7CiAgICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4
dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Yg
bm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0
aGlzKTsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAg
ICAgfQogICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQp
OwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKICAgICAgICAgICAgIGZp
ZWxkLnZpc2l0KGNoZWNrZXIpOwogICAgIH0KICAgICAKKyAgICB2aXNpdFR5cGVSZWYobm9kZSkK
KyAgICB7CisgICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOworICAgICAgICBpZiAoIXR5cGUp
IHsKKyAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwgbm9kZS5u
YW1lKTsKKyAgICAgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCB0eXBl
IG5hbWVkICIgKyBub2RlLm5hbWUpOworICAgICAgICAgICAgbm9kZS50eXBlID0gdHlwZTsKKyAg
ICAgICAgfQorICAgIH0KKwogICAgIF9yZXNvbHZlVHlwZUFyZ3VtZW50cyh0eXBlQXJndW1lbnRz
KQogICAgIHsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7CkBAIC0xODEsMzYgKzE0OSwxNiBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlw
ZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9mIHRoaW5nOiAiICsgdGhpbmcua2lu
ZCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh0eXBlQXJn
dW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZQotICAgICAgICAgICAgICAgICYmICF0eXBlQXJndW1l
bnRbaV0uaXNDb25zdGV4cHIpCisgICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50W2ldIGluc3Rh
bmNlb2YgVmFsdWUgJiYgIXR5cGVBcmd1bWVudFtpXS5pc0NvbnN0ZXhwcikKICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnRbaV0ub3JpZ2luLm9yaWdpblN0
cmluZywgIkV4cGVjdGVkIGNvbnN0ZXhwciIpOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAg
IHZpc2l0VHlwZVJlZihub2RlKQorICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRzKTsKLSAg
ICAgICAgCi0gICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOwotICAgICAgICBpZiAoIXR5cGUp
IHsKLSAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwgbm9kZS5u
YW1lKTsKLSAgICAgICAgICAgIGlmICghdHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCB0eXBl
IG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICAgICAgbm9kZS50eXBlID0gdHlwZTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3Ro
ICE9IG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBh
cmd1bWVudHMgKHBhc3NlZCAiICsgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCArICIsIGV4cGVj
dGVkICIgKyB0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCArICIpIik7Ci0gICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgdHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgbGV0IHBhcmFtZXRlcklzVHlwZSA9IHR5cGUudHlwZVBhcmFtZXRlcnNbaV0gaW5zdGFu
Y2VvZiBUeXBlVmFyaWFibGU7Ci0gICAgICAgICAgICBsZXQgYXJndW1lbnRJc1R5cGUgPSBub2Rl
LnR5cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAgICAgICAgICAgbm9kZS50eXBl
QXJndW1lbnRzW2ldLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYgKHBhcmFtZXRlcklzVHlw
ZSAmJiAhYXJndW1lbnRJc1R5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgdHlwZSwgYnV0IGdvdCB2YWx1
ZSBhdCBhcmd1bWVudCAjIiArIGkpOwotICAgICAgICAgICAgaWYgKCFwYXJhbWV0ZXJJc1R5cGUg
JiYgYXJndW1lbnRJc1R5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgdmFsdWUsIGJ1dCBnb3QgdHlwZSBh
dCBhcmd1bWVudCAjIiArIGkpOwotICAgICAgICB9CisgICAgICAgIGZvcihsZXQgdHlwZUFyZ3Vt
ZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCkBAIC0y
NzksOCArMjI3LDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
CiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVz
b2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRzKTsKLSAgICAgICAgCiAgICAgICAg
IGxldCBmdW5jcyA9IHRoaXMuX25hbWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwogICAg
ICAgICBpZiAoZnVuY3MpCiAgICAgICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVu
Y3M7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5j
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwppbmRleCBh
NTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1MTgyNDg3Li5kYzBmZjc4MWI2OTJlMTg0
NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwxMiBAQAogInVzZSBzdHJpY3QiOwogCiBj
bGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1l
dGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZh
bHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVsbDsKICAgICAgICAgdGhpcy5f
aW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhpcy5pbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307CiAgICAgICAgIHRoaXMudmlzaXRJbXBs
ZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9PiBudWxsOwog
ICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YSA9IGltcGxl
bWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzk5Yjc4MjYzNTM1YTcwZDkzMDk2MjZkNTg1MDM1OTAwMTA1ZDQxMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2ZUZ1bmNJbnN0YW5jZSBleHRlbmRzIEZ1bmMgewot
ICAgIGNvbnN0cnVjdG9yKGZ1bmMsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hh
ZGVyVHlwZSwgaW1wbGVtZW50YXRpb25EYXRhKQotICAgIHsKLSAgICAgICAgc3VwZXIoZnVuYy5v
cmlnaW4sIGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwgW10sIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hh
ZGVyVHlwZSk7Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBmdW5jOwotICAgICAgICB0aGlzLl9pbXBs
ZW1lbnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRhdGE7Ci0gICAgfQotICAgIAotICAgIGdl
dCBmdW5jKCkgeyByZXR1cm4gdGhpcy5fZnVuYzsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICBnZXQgaW1wbGVtZW50YXRpb25EYXRhKCkgeyByZXR1cm4gdGhpcy5f
aW1wbGVtZW50YXRpb25EYXRhOyB9Ci0KLSAgICB0b0RlY2xTdHJpbmcoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuICJuYXRpdmUgIiArIHN1cGVyLnRvRGVjbFN0cmluZygpOwotICAgIH0KLX0KLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggYjhiMWE0
NzMzMGI1ZmQ1MWZmMDIxYWYwNjU4Njg0NGMyYWNiYThlYS4uNWNjMTg0OTM4OWViYTFjZjJhMjYx
ZWFjZmQ4OThhMzI1ZGZiOWMxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmF0aXZlVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9O
YXRpdmVUeXBlLmpzCkBAIC0yNSwxNCArMjUsMTQgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3Mg
TmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwg
dHlwZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1l
bnRzKQogICAgIHsKLSAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJh
eSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJy
YXk6ICIgKyB0eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGlmICghKHR5cGVBcmd1bWVudHMgaW5z
dGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1l
dGVycyBub3QgYXJyYXk6ICIgKyB0eXBlQXJndW1lbnRzKTsKICAgICAgICAgc3VwZXIoKTsKICAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
LSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKKyAgICAgICAg
dGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2lzTnVt
YmVyID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzSW50ID0gZmFsc2U7CiAgICAgICAgIHRoaXMu
X2lzRmxvYXRpbmcgPSBmYWxzZTsKQEAgLTQwLDggKzQwLDE1IEBAIGNsYXNzIE5hdGl2ZVR5cGUg
ZXh0ZW5kcyBUeXBlIHsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAg
IGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Cisg
ICAgZ2V0IGJhc2VOYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQorICAgIGdldCBuYW1lKCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9uYW1lOworICAgICAgICBpZiAodGhp
cy50eXBlQXJndW1lbnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiPCIgKyB0aGlz
LnR5cGVBcmd1bWVudHMgKyAiPiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAg
IGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAg
IGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAvLyBXZSBsZXQgSW50
cmluc2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQgbGlrZXMuCkBAIC01NCwxOCArNjEsOSBAQCBjbGFz
cyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1
cm4gdGhpcy5faXNQcmltaXRpdmU7IH0KICAgICBzZXQgaXNQcmltaXRpdmUodmFsdWUpIHsgdGhp
cy5faXNQcmltaXRpdmUgPSB2YWx1ZTsgfQogICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1
bWVudHMpCi0gICAgewotICAgICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50
eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25n
IG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyB0byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgIGlm
ICghdHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAg
ICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5zdGFuY2UodGhpcywgdHlwZUFyZ3VtZW50cyk7Ci0g
ICAgfQotICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZl
IHR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiI7
CisgICAgICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRoaXMubmFtZTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJ
bnN0YW5jZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0
YW5jZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EzOWU3Nzc4NzAwNDllZDIy
ZDcwNDFhNTIwMTRjYzhlNjljYmM0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlSW5z
dGFuY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2
ZVR5cGVJbnN0YW5jZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKHR5cGUsIHR5cGVB
cmd1bWVudHMpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl90eXBlID0g
dHlwZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7Ci0gICAg
fQotICAgIAotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCB0
eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQotICAgIGdldCBp
c1ByaW1pdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGUuaXNQcmltaXRpdmU7IH0KLSAgICBnZXQg
aXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0
aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcy50eXBlICE9IG90aGVy
LnR5cGUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICh0aGlzLnR5cGVB
cmd1bWVudHMubGVuZ3RoICE9IG90aGVyLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHlwZUFy
Z3VtZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVu
dHNbaV0udW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlQXJndW1lbnRzW2ldKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnR5cGUgKyAiPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiI7Ci0gICAgfQotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwppbmRleCA4ODEwMzAxMzA3NzNlNzBl
YTg4ZTBhYjU5Nzk3NGNmNTYxZjlkNWU0Li42ZDIxMWI3NjJiMGEyNThkMzU1NTE5MzRkNjA4YTUz
OGNlMzAzNzlkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2Rl
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKQEAgLTg5LDgg
Kzg5LDYgQEAgY2xhc3MgTm9kZSB7CiAgICAgCiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAKLSAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQpIHsg
cmV0dXJuIDA7IH0KLSAgICAKICAgICBlcXVhbHMob3RoZXIpCiAgICAgewogICAgICAgICBsZXQg
dW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dCgpOwpAQCAtMTA0LDcg
KzEwMiw2IEBAIGNsYXNzIE5vZGUgewogICAgICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0g
dGhpcy5lcXVhbHMob3RoZXIpOwogICAgICAgICBpZiAoIXVuaWZpY2F0aW9uQ29udGV4dCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgdW5pZmljYXRpb25Db250ZXh0LmNvbW1p
dCgpOwogICAgICAgICByZXR1cm4gdW5pZmljYXRpb25Db250ZXh0OwogICAgIH0KICAgICAKQEAg
LTExNSw3ICsxMTIsNiBAQCBjbGFzcyBOb2RlIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IHVuaWZp
Y2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQogICAg
ICAgICAgICAgdGhyb3cgbmV3IFdFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3Vs
ZCBub3QgaW5mZXIgdHlwZTogIiArIHJlc3VsdC5yZWFzb24pOwotICAgICAgICB1bmlmaWNhdGlv
bkNvbnRleHQuY29tbWl0KCk7CiAgICAgICAgIHJldHVybiB1bmlmaWNhdGlvbkNvbnRleHQuZmlu
ZCh0aGlzKTsKICAgICB9CiAgICAgCkBAIC0xMjMsMTEgKzExOSw0IEBAIGNsYXNzIE5vZGUgewog
ICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMudmlzaXQobmV3IFN1YnN0aXR1dGlvbihwYXJhbWV0
ZXJzLCBhcmd1bWVudExpc3QpKTsKICAgICB9Ci0gICAgCi0gICAgc3Vic3RpdHV0ZVRvVW5pZmlj
YXRpb24ocGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHRoaXMuc3Vic3RpdHV0ZSgKLSAgICAgICAgICAgIHBhcmFtZXRlcnMsCi0gICAgICAgICAg
ICBwYXJhbWV0ZXJzLm1hcCh0eXBlID0+IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHR5cGUpKSk7
Ci0gICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFy
c2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwppbmRleCA2ZDJi
NDMxNjE1NjAxYWI5ZGQzZDA5MzhmYmZiMzg1ZWUyYTRkYWYxLi5kODM4NjVjZDQwZTM0YjM3NTY4
ZWY1ZjI3Y2U4NGExM2Y1MjA4YTI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9QYXJzZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJz
ZS5qcwpAQCAtMTIxLDEyICsxMjEsNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xSZWYoKQotICAgIHsK
LSAgICAgICAgbGV0IHByb3RvY29sVG9rZW4gPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwot
ICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sUmVmKHByb3RvY29sVG9rZW4sIHByb3RvY29sVG9r
ZW4udGV4dCk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9uIGNvbnN1bWVFbmRPZlR5cGVBcmdz
KCkKICAgICB7CiAgICAgICAgIGxldCByaWdodFNoaWZ0ID0gdHJ5Q29uc3VtZSgiPj4iKTsKQEAg
LTEzNiwzNCArMTMwLDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgY29uc3VtZSgiPiIpOwog
ICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICB7Ci0g
ICAgICAgIGlmICghdGVzdCgiPCIpKQotICAgICAgICAgICAgcmV0dXJuIFtdOwotICAgICAgICAK
LSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAgICBjb25zdW1lKCI8Iik7Ci0gICAgICAg
IHdoaWxlICghdGVzdCgiPiIpKSB7Ci0gICAgICAgICAgICBsZXQgY29uc3RleHByID0gbGV4ZXIu
YmFja3RyYWNraW5nU2NvcGUoKCkgPT4gewotICAgICAgICAgICAgICAgIGxldCB0eXBlID0gcGFy
c2VUeXBlKCk7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRp
ZmllciIpOwotICAgICAgICAgICAgICAgIGFzc2VydE5leHQoIiwiLCAiPiIsICI+PiIpOwotICAg
ICAgICAgICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcih0eXBlLm9yaWdp
biwgbmFtZS50ZXh0LCB0eXBlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKGNv
bnN0ZXhwcikKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb25zdGV4cHIpOwotICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRl
bnRpZmllciIpOwotICAgICAgICAgICAgICAgIGxldCBwcm90b2NvbCA9IHRyeUNvbnN1bWUoIjoi
KSA/IHBhcnNlUHJvdG9jb2xSZWYoKSA6IG51bGw7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnB1
c2gobmV3IFR5cGVWYXJpYWJsZShuYW1lLCBuYW1lLnRleHQsIHByb3RvY29sKSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBjb25zdW1lRW5kT2ZUeXBlQXJncygpOwotICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZVRlcm0o
KQogICAgIHsKICAgICAgICAgbGV0IHRva2VuOwpAQCAtMjIyLDcgKzE4OCw3IEBAIGZ1bmN0aW9u
IHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKICAgICB7CiAgICAgICAgIGxldCB0b2tlbjsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29u
c3VtZSgiLSIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwg
Im9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VUZXJtKCldKTsKKyAgICAgICAgICAg
IHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0
LCBbcGFyc2VUZXJtKCldKTsKICAgICAgICAgbGV0IGxlZnQgPSBwYXJzZVRlcm0oKTsKICAgICAg
ICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiLiIpKQogICAgICAgICAgICAgbGVmdCA9IG5ldyBE
b3RFeHByZXNzaW9uKHRva2VuLCBsZWZ0LCBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQp
OwpAQCAtMjgyLDggKzI0OCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIGFkZHJlc3NTcGFj
ZSA9IHRva2VuLnRleHQ7CiAgICAgICAgIAogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5k
KCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJn
dW1lbnRzKCk7Ci0gICAgICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0
LCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBu
YW1lLnRleHQpOwogICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gZ2V0QWRkcmVzc1NwYWNlKCkK
ICAgICAgICAgewpAQCAtMzE4LDExICsyODMsMTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAg
ICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInR5cGVkZWYiKTsKICAgICAgICAgbGV0IG5hbWUgPSBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVy
cyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgY29uc3VtZSgiPSIpOwogICAgICAg
ICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAg
IHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBUeXBlRGVmKG9yaWdpbiwgbmFtZSwgdHlwZSk7CiAgICAgfQog
ICAgIAogICAgIGZ1bmN0aW9uIGdlbmVyaWNQYXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNv
bnN0cnVjdG9yKQpAQCAtMzM5LDEzICszMDMsMTIgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwg
b3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1
cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAogICAg
ICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4KLSAgICAgICAgICAgICAgICBuZXcgQ2Fs
bEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW2xlZnQsIHJp
Z2h0XSkpOworICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJh
dG9yIiArIHRva2VuLnRleHQsIFtsZWZ0LCByaWdodF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVu
Y3Rpb24gcGFyc2VDYWxsRXhwcmVzc2lvbigpCiAgICAgewogICAgICAgICBsZXQgbmFtZSA9IGNv
bnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFy
c2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGFy
Z3VtZW50TGlzdCA9IFtdOwogICAgICAgICB3aGlsZSAoIXRlc3QoIikiKSkgewpAQCAtMzU1LDcg
KzMxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGlu
ZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
ICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJl
c3Npb24obmFtZSwgbmFtZS50ZXh0LCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgYXJn
dW1lbnRMaXN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zNjMs
NyArMzI2LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGxleGVyLnRlc3RT
Y29wZSgoKSA9PiB7CiAgICAgICAgICAgICBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAg
ICAgICAgICAgcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCIoIik7
CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTM4MSw3ICszNDMsNyBAQCBmdW5jdGlvbiBwYXJzZShw
cm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAg
ICAgIGlmIChuYW1lID09ICJvcGVyYXRvciIpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkludmFsaWQgbmFtZTogIiArIG5hbWUpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIG5ldyBD
YWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwgW10sIGFyZ3MpOworICAgICAgICByZXR1cm4gbmV3
IENhbGxFeHByZXNzaW9uKHRva2VuLCBuYW1lLCBhcmdzKTsKICAgICB9CiAgICAgCiAgICAgZnVu
Y3Rpb24gZmluaXNoUGFyc2luZ1Bvc3RJbmNyZW1lbnQodG9rZW4sIGxlZnQpCkBAIC00NTQsNyAr
NDE2LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5l
TnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAodGVzdCgiKysiLCAiLS0iKSkKICAgICAg
ICAgICAgIHJldHVybiBwYXJzZVByZUluY3JlbWVudCgpOwogICAgICAgICBpZiAodG9rZW4gPSB0
cnlDb25zdW1lKCIrIiwgIi0iLCAifiIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhw
cmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VQb3NzaWJs
ZVByZWZpeCgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2Vu
LCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOwogICAg
ICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIqIikpCiAgICAgICAgICAgICByZXR1cm4gbmV3
IERlcmVmZXJlbmNlRXhwcmVzc2lvbih0b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAg
ICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiJiIpKQpAQCAtNDYzLDcgKzQyNSw3IEBAIGZ1
bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNl
dCwgdGV4dCkKICAgICAgICAgICAgIHJldHVybiBuZXcgTWFrZUFycmF5UmVmRXhwcmVzc2lvbih0
b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29u
c3VtZSgiISIpKSB7CiAgICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVBy
ZWZpeCgpOwotICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2FsTm90KHRva2VuLCBuZXcgQ2Fs
bEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJvb2wiLCBbXSwgW3JlbWFpbmRlcl0pKTsK
KyAgICAgICAgICAgIHJldHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNz
aW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29sIiwgW3JlbWFpbmRlcl0pKTsKICAgICAgICAgfQog
ICAgICAgICByZXR1cm4gcGFyc2VQb3NzaWJsZVN1ZmZpeCgpOwogICAgIH0KQEAgLTQ5Myw3ICs0
NTUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVO
dW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAg
ICAgICAgICAgWyI9PSIsICIhPSJdLCBwYXJzZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHks
CiAgICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiB7Ci0gICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbXSwg
W2xlZnQsIHJpZ2h0XSk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhw
cmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbbGVmdCwgcmlnaHRdKTsKICAgICAgICAgICAg
ICAgICBpZiAodG9rZW4udGV4dCA9PSAiIT0iKQogICAgICAgICAgICAgICAgICAgICByZXN1bHQg
PSBuZXcgTG9naWNhbE5vdCh0b2tlbiwgcmVzdWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwpAQCAtNTE5LDcgKzQ4MSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0g
ICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24o
dG9rZW4sIHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wi
LCBbXSwgW2xlZnRdKSwgbmV3IENhbGxFeHByZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBb
XSwgW3JpZ2h0XSkpKTsKKyAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5ldyBM
b2dpY2FsRXhwcmVzc2lvbih0b2tlbiwgdG9rZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9uKGxl
ZnQub3JpZ2luLCAiYm9vbCIsIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmln
aW4sICJib29sIiwgW3JpZ2h0XSkpKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VQ
b3NzaWJsZUxvZ2ljYWxBbmQoKQpAQCAtNjU2LDcgKzYxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAg
ICAgbGV0IGVsc2VCb2R5OwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiZWxzZSIpKQogICAgICAg
ICAgICAgZWxzZUJvZHkgPSBwYXJzZVN0YXRlbWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IElm
U3RhdGVtZW50KG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwg
ImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5KTsKKyAgICAgICAgcmV0
dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25h
bC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5KTsKICAgICB9
CiAKICAgICBmdW5jdGlvbiBwYXJzZVdoaWxlKCkKQEAgLTY2Niw3ICs2MjgsNyBAQCBmdW5jdGlv
biBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRl
eHQpCiAgICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAg
ICBjb25zdW1lKCIpIik7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAg
ICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Aob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29u
ZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CisgICAg
ICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRp
dGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gcGFyc2VGb3IoKQpAQCAtNjg3LDcgKzY0OSw3IEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICBjb25kaXRpb24gPSBwYXJzZUV4cHJlc3Npb24oKTsK
ICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBD
YWxsRXhwcmVzc2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uXSk7
CisgICAgICAgICAgICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9y
aWdpbiwgImJvb2wiLCBbY29uZGl0aW9uXSk7CiAgICAgICAgIH0KICAgICAgICAgbGV0IGluY3Jl
bWVudDsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoIikiKSkKQEAgLTcwOCw3ICs2NzAsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGNvbmRpdGlvbmFs
ID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgIGNvbnN1bWUoIikiKTsKLSAgICAgICAgcmV0
dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25k
aXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pKTsKKyAgICAgICAgcmV0
dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25k
aXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSkpOwogICAgIH0KICAgICAKICAg
ICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVjbHMoKQpAQCAtODU4LDEzICs4MjAsMTEgQEAgZnVu
Y3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0
LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2luOwogICAgICAgICBsZXQgcmV0dXJuVHlwZTsKICAg
ICAgICAgbGV0IG5hbWU7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgbGV0
IGlzQ2FzdDsKICAgICAgICAgbGV0IHNoYWRlclR5cGU7CiAgICAgICAgIGxldCBvcGVyYXRvclRv
a2VuID0gdHJ5Q29uc3VtZSgib3BlcmF0b3IiKTsKICAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4p
IHsKICAgICAgICAgICAgIG9yaWdpbiA9IG9wZXJhdG9yVG9rZW47Ci0gICAgICAgICAgICB0eXBl
UGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgIHJldHVyblR5
cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgICAgIG5hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAg
ICAgICAgICAgICBpc0Nhc3QgPSB0cnVlOwpAQCAtODc3LDQ0ICs4MzcsMTcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgb3JpZ2luID0gcmV0dXJuVHlw
ZS5vcmlnaW47CiAgICAgICAgICAgICBuYW1lID0gcGFyc2VGdW5jTmFtZSgpOwotICAgICAgICAg
ICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBp
c0Nhc3QgPSBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNl
UGFyYW1ldGVycygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmMob3JpZ2luLCBuYW1lLCByZXR1
cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
KyAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1l
dGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBwYXJzZVBy
b3RvY29sRnVuY0RlY2woKQotICAgIHsKLSAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNs
KCk7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvdG9jb2xGdW5jRGVjbChmdW5jLm9yaWdpbiwgZnVu
Yy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1l
dGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAgIAogICAgIGZ1
bmN0aW9uIHBhcnNlRnVuY0RlZigpCiAgICAgewogICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVu
Y0RlY2woKTsKICAgICAgICAgbGV0IGJvZHkgPSBwYXJzZUJsb2NrKCk7Ci0gICAgICAgIHJldHVy
biBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1
bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1
bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xE
ZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJwcm90b2NvbCIpOwot
ICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2NvbERlY2wob3JpZ2luLCBuYW1lKTsKLSAgICAgICAg
aWYgKHRyeUNvbnN1bWUoIjoiKSkgewotICAgICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ7IikpIHsK
LSAgICAgICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwYXJzZVByb3RvY29sUmVmKCkpOwot
ICAgICAgICAgICAgICAgIGlmICghdHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb25zdW1lKCJ7Iik7
Ci0gICAgICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAgICByZXN1bHQu
YWRkKHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgpKTsKLSAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IEZ1
bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFt
ZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwogICAgIH0KICAgICAK
ICAgICBmdW5jdGlvbiBwYXJzZUZpZWxkKCkKQEAgLTkyOSw4ICs4NjIsNyBAQCBmdW5jdGlvbiBw
YXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQp
CiAgICAgewogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3RydWN0Iik7CiAgICAgICAg
IGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQg
dHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAgIGNv
bnN1bWUoInsiKTsKICAgICAgICAgd2hpbGUgKCF0cnlDb25zdW1lKCJ9IikpCiAgICAgICAgICAg
ICByZXN1bHQuYWRkKHBhcnNlRmllbGQoKSk7CkBAIC05NDEsNyArODczLDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGNv
bnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBm
dW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJh
bWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5l
dyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVu
Yy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAg
CiAgICAgZnVuY3Rpb24gcGFyc2VOYXRpdmUoKQpAQCAtOTQ5LDkgKzg4MSw5IEBAIGZ1bmN0aW9u
IHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoIm5hdGl2ZSIpOwogICAgICAgICBpZiAo
dHJ5Q29uc3VtZSgidHlwZWRlZiIpKSB7CiAgICAgICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlVHlw
ZVBhcmFtZXRlcnMoKTsKKyAgICAgICAgICAgIGxldCBwYXJzZWRBcmd1bWVudHMgPSBwYXJzZVR5
cGVBcmd1bWVudHMoKTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIHJl
dHVybiBuZXcgTmF0aXZlVHlwZShvcmlnaW4sIG5hbWUudGV4dCwgcGFyYW1ldGVycyk7CisgICAg
ICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcnNlZEFy
Z3VtZW50cyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlTmF0aXZlRnVuYygpOwog
ICAgIH0KQEAgLTk4NSw3ICs5MTcsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4s
IG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlmICh0cnlDb25z
dW1lKCI6IikpCiAgICAgICAgICAgICBiYXNlVHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICBiYXNlVHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiLCBbXSk7
CisgICAgICAgICAgICBiYXNlVHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiKTsKICAgICAg
ICAgY29uc3VtZSgieyIpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVudW1UeXBlKG5hbWUs
IG5hbWUudGV4dCwgYmFzZVR5cGUpOwogICAgICAgICB3aGlsZSAoIXRlc3QoIn0iKSkgewpAQCAt
MTAxMywxMCArOTQ1LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5L
aW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFy
c2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJlbnVtIikK
ICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlRW51bVR5cGUoKSk7Ci0gICAgICAgIGVsc2Ug
aWYgKHRva2VuLnRleHQgPT0gInByb3RvY29sIikKLSAgICAgICAgICAgIHByb2dyYW0uYWRkKHBh
cnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwcm9ncmFtLmFk
ZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQogfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJlcGFyZS5qcwppbmRleCBhMjA0OGE5YWQzZTgzYmQxOGI3NjQ0NGNhNTU0NmU0OGZlMDEx
OWEwLi5lN2MzZjIzNjYwNGY4YmEwODdhYzFlNjZmNThkNjc4NjAxYzU3NmM2IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKQEAgLTQyLDE2ICs0MiwxMyBAQCBsZXQg
cHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAgIGZvbGRDb25zdGV4cHJzKHByb2dyYW0pOwogICAg
ICAgICBsZXQgbmFtZVJlc29sdmVyID0gY3JlYXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwogICAg
ICAgICByZXNvbHZlTmFtZXNJblR5cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAg
IHJlc29sdmVOYW1lc0luUHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAg
IHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSk7Ci0gICAgICAgIHJlc29sdmVUeXBlRGVm
c0luUHJvdG9jb2xzKHByb2dyYW0pOwogICAgICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dy
YW0pOwogICAgICAgICBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pOwogICAgICAg
ICBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVz
SW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVE
ZWZzSW5GdW5jdGlvbnMocHJvZ3JhbSk7Ci0gICAgICAgIAotICAgICAgICBmbGF0dGVuUHJvdG9j
b2xFeHRlbmRzKHByb2dyYW0pOworCiAgICAgICAgIGNoZWNrKHByb2dyYW0pOwogICAgICAgICBj
aGVja0xpdGVyYWxUeXBlcyhwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZVByb3BlcnRpZXMocHJv
Z3JhbSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFt
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcwppbmRleCBiYmM0
YjI0YTYyMjdiMWNlNWIwNmQ3MzNhYzIwZDkyYjU5NmE0YzczLi44ZmM2Zjc5M2VlNmU3M2VlY2E1
YTZhYTc0YTQ0MGE2N2I4NmJlNmZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm9ncmFtLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
b2dyYW0uanMKQEAgLTMxLDggKzMxLDYgQEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewog
ICAgICAgICB0aGlzLl90b3BMZXZlbFN0YXRlbWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fZnVu
Y3Rpb25zID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlzLl90eXBlcyA9IG5ldyBNYXAoKTsKLSAg
ICAgICAgdGhpcy5fcHJvdG9jb2xzID0gbmV3IE1hcCgpOwotICAgICAgICB0aGlzLl9mdW5jSW5z
dGFudGlhdG9yID0gbmV3IEZ1bmNJbnN0YW50aWF0b3IodGhpcyk7CiAgICAgICAgIHRoaXMuX2ds
b2JhbE5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KCk7CiAgICAgICAgIHRoaXMuX2dsb2Jh
bE5hbWVDb250ZXh0LnByb2dyYW0gPSB0aGlzOwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29u
dGV4dC5yZWNvZ25pemVJbnRyaW5zaWNzKCk7CkBAIC00Miw4ICs0MCw2IEBAIGNsYXNzIFByb2dy
YW0gZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgdG9wTGV2ZWxTdGF0ZW1lbnRzKCkgeyByZXR1cm4g
dGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzOyB9CiAgICAgZ2V0IGZ1bmN0aW9ucygpIHsgcmV0dXJu
IHRoaXMuX2Z1bmN0aW9uczsgfQogICAgIGdldCB0eXBlcygpIHsgcmV0dXJuIHRoaXMuX3R5cGVz
OyB9Ci0gICAgZ2V0IHByb3RvY29scygpIHsgcmV0dXJuIHRoaXMuX3Byb3RvY29sczsgfQotICAg
IGdldCBmdW5jSW5zdGFudGlhdG9yKCkgeyByZXR1cm4gdGhpcy5fZnVuY0luc3RhbnRpYXRvcjsg
fQogICAgIGdldCBnbG9iYWxOYW1lQ29udGV4dCgpIHsgcmV0dXJuIHRoaXMuX2dsb2JhbE5hbWVD
b250ZXh0OyB9CiAgICAgCiAgICAgYWRkKHN0YXRlbWVudCkKQEAgLTU2LDggKzUyLDYgQEAgY2xh
c3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1l
bnQpOwogICAgICAgICB9IGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpCiAgICAg
ICAgICAgICB0aGlzLl90eXBlcy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7Ci0gICAg
ICAgIGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0YW5jZW9mIFByb3RvY29sKQotICAgICAgICAgICAg
dGhpcy5fcHJvdG9jb2xzLnNldChzdGF0ZW1lbnQubmFtZSwgc3RhdGVtZW50KTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTdGF0ZW1lbnQgaXMgbm90IGEgZnVu
Y3Rpb24gb3IgdHlwZTogIiArIHN0YXRlbWVudCk7CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3Rh
dGVtZW50cy5wdXNoKHN0YXRlbWVudCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
b3RvY29sLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2Y4NDU2NDc3ZWNhMmU4
ZGNmNjZjZjQ1YzJkNDczY2EwODU3ZDg4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbCBleHRl
bmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAg
IHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5f
bmFtZSA9IG5hbWU7Ci0gICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlz
Ll9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBn
ZXQga2luZCgpIHsgcmV0dXJuIFByb3RvY29sOyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI1MGJjZmNmMzNiYTczOTVjNTZkOTUyYTU3OWQwOTkyN2IwYmU3NjcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3Ry
aWN0IjsKLQotY2xhc3MgUHJvdG9jb2xEZWNsIGV4dGVuZHMgUHJvdG9jb2wgewotICAgIGNvbnN0
cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSk7
Ci0gICAgICAgIHRoaXMuZXh0ZW5kcyA9IFtdOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzID0g
W107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZU1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhp
cy5fdHlwZVZhcmlhYmxlID0gbmV3IFR5cGVWYXJpYWJsZShvcmlnaW4sIG5hbWUsIG51bGwpOwot
ICAgIH0KLSAgICAKLSAgICBhZGRFeHRlbmRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgdGhp
cy5leHRlbmRzLnB1c2gocHJvdG9jb2wpOwotICAgIH0KLSAgICAKLSAgICBhZGQoc2lnbmF0dXJl
KQotICAgIHsKLSAgICAgICAgaWYgKCEoc2lnbmF0dXJlIGluc3RhbmNlb2YgUHJvdG9jb2xGdW5j
RGVjbCkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNpZ25hdHVyZSBpc24ndCBhIFBy
b3RvY29sRnVuY0RlY2wgYnV0IGEgIiArIHNpZ25hdHVyZS5jb25zdHJ1Y3Rvci5uYW1lKTsKLSAg
ICAgICAgCi0gICAgICAgIHNpZ25hdHVyZS5wcm90b2NvbERlY2wgPSB0aGlzOwotICAgICAgICB0
aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0dXJlKTsKLSAgICAgICAgbGV0IG92ZXJsb2FkcyA9
IHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQoc2lnbmF0dXJlLm5hbWUpOwotICAgICAgICBpZiAoIW92
ZXJsb2FkcykKLSAgICAgICAgICAgIHRoaXMuX3NpZ25hdHVyZU1hcC5zZXQoc2lnbmF0dXJlLm5h
bWUsIG92ZXJsb2FkcyA9IFtdKTsKLSAgICAgICAgb3ZlcmxvYWRzLnB1c2goc2lnbmF0dXJlKTsK
LSAgICB9Ci0gICAgCi0gICAgZ2V0IHNpZ25hdHVyZXMoKSB7IHJldHVybiB0aGlzLl9zaWduYXR1
cmVzOyB9Ci0gICAgc2lnbmF0dXJlc0J5TmFtZShuYW1lKSB7IHJldHVybiB0aGlzLl9zaWduYXR1
cmVNYXAuZ2V0KG5hbWUpOyB9Ci0gICAgZ2V0IHR5cGVWYXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMu
X3R5cGVWYXJpYWJsZTsgfQotICAgIAotICAgIHNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlh
YmxlKG5hbWUsIHR5cGVWYXJpYWJsZSkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24g
PSBuZXcgU3Vic3RpdHV0aW9uKFt0aGlzLnR5cGVWYXJpYWJsZV0sIFt0eXBlVmFyaWFibGVdKTsK
LSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuc2lnbmF0dXJlc0J5TmFtZShuYW1lKTsKLSAgICAg
ICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdC5tYXAoc2lnbmF0dXJlID0+IHNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pKTsK
LSAgICB9Ci0gICAgCi0gICAgaW5oZXJpdHMob3RoZXJQcm90b2NvbCkKLSAgICB7Ci0gICAgICAg
IGlmICghb3RoZXJQcm90b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsK
LSAgICAgICAgCi0gICAgICAgIGlmIChvdGhlclByb3RvY29sIGluc3RhbmNlb2YgUHJvdG9jb2xS
ZWYpCi0gICAgICAgICAgICBvdGhlclByb3RvY29sID0gb3RoZXJQcm90b2NvbC5wcm90b2NvbERl
Y2w7Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCBvdGhlclNpZ25hdHVyZSBvZiBvdGhlclBy
b3RvY29sLnNpZ25hdHVyZXMpIHsKLSAgICAgICAgICAgIGxldCBzaWduYXR1cmVzID0gdGhpcy5z
aWduYXR1cmVzQnlOYW1lKG90aGVyU2lnbmF0dXJlLm5hbWUpOwotICAgICAgICAgICAgaWYgKCFz
aWduYXR1cmVzKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29u
OiAiUHJvdG9jb2wgIiArIHRoaXMubmFtZSArICIgZG9lcyBub3QgaGF2ZSBhIGZ1bmN0aW9uIG5h
bWVkICIgKyBvdGhlclNpZ25hdHVyZS5uYW1lICsgIiAobG9va2luZyBhdCBzaWduYXR1cmUgIiAr
IG90aGVyU2lnbmF0dXJlICsgIikifTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29s
dmVPdmVybG9hZEltcGwoCi0gICAgICAgICAgICAgICAgc2lnbmF0dXJlcywgW10sCi0gICAgICAg
ICAgICAgICAgb3RoZXJTaWduYXR1cmUucGFyYW1ldGVyVHlwZXMsCi0gICAgICAgICAgICAgICAg
b3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7Ci0gICAgICAg
ICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6
IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsg
b3RoZXJTaWduYXR1cmUgKyAiIGluICIgKyB0aGlzLm5hbWUgKyAob3ZlcmxvYWQuZmFpbHVyZXMu
bGVuZ3RoID8gIiAodHJpZWQ6ICIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIiki
IDogIiIpfTsKLSAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlZFJldHVyblR5cGUgPQotICAgICAg
ICAgICAgICAgIG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3Zl
cmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRS
ZXR1cm5UeXBlLmVxdWFscyhvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlJldHVybiB0eXBlIG1pc21hdGNo
IGJldHdlZW4gIiArIG90aGVyU2lnbmF0dXJlLnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3Rp
dHV0ZWRSZXR1cm5UeXBlfTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1
ZX07Ci0gICAgfQotICAgIAotICAgIGhhc0hlaXIodHlwZSkKLSAgICB7Ci0gICAgICAgIGxldCBz
dWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKFt0aGlzLl90eXBlVmFyaWFibGVdLCBbdHlw
ZV0pOwotICAgICAgICBsZXQgc2lnbmF0dXJlcyA9IHRoaXMuc2lnbmF0dXJlczsKLSAgICAgICAg
Zm9yIChsZXQgb3JpZ2luYWxTaWduYXR1cmUgb2Ygc2lnbmF0dXJlcykgewotICAgICAgICAgICAg
bGV0IHNpZ25hdHVyZSA9IG9yaWdpbmFsU2lnbmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0g
ICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZS5w
b3NzaWJsZU92ZXJsb2Fkcywgc2lnbmF0dXJlLnR5cGVQYXJhbWV0ZXJzLCBzaWduYXR1cmUucGFy
YW1ldGVyVHlwZXMsIHNpZ25hdHVyZS5yZXR1cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsK
LSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykKLSAgICAgICAgICAgICAgICByZXR1cm4g
e3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkRpZCBub3QgZmluZCBtYXRjaGluZyBzaWduYXR1cmUg
Zm9yICIgKyBvcmlnaW5hbFNpZ25hdHVyZSArICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5v
cmlnaW4ub3JpZ2luU3RyaW5nICsgIikgd2l0aCB0eXBlICIgKyB0eXBlICsgKG92ZXJsb2FkLmZh
aWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAi
KSArICIpIiA6ICIiKX07Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGxldCBzdWJzdGl0dXRl
ZFJldHVyblR5cGUgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmlj
YXRpb24oCi0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3Zl
cmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRS
ZXR1cm5UeXBlLmVxdWFscyhzaWduYXR1cmUucmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJBdCBzaWduYXR1cmUgIiArIG9yaWdpbmFs
U2lnbmF0dXJlICsgIiAoYXQgIiArIG9yaWdpbmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJp
bmcgKyAiKTogcmV0dXJuIHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAiICsgc2lnbmF0dXJlLnJldHVy
blR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlICsgIiBpbiBmb3VuZCBmdW5j
dGlvbiAiICsgb3ZlcmxvYWQuZnVuYy50b0RlY2xTdHJpbmcoKX07Ci0gICAgICAgIH0KLSAgICAg
ICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0g
ICAgewotICAgICAgICByZXR1cm4gInByb3RvY29sICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIHRo
aXMuc2lnbmF0dXJlcy5qb2luKCI7ICIpICsgIjsgfSI7Ci0gICAgfQotfQotCi0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWI1YzliOGU3MTYxODY4YTFjZTQ1ZDU4ODY2MzkyYzAy
MjI0NGQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwzMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sRnVuY0RlY2wgZXh0ZW5k
cyBGdW5jIHsKLSAgICBnZXQgdHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpCi0gICAg
ewotICAgICAgICByZXR1cm4gdGhpcy50eXBlUGFyYW1ldGVycy5jb25jYXQodGhpcy5wcm90b2Nv
bERlY2wudHlwZVZhcmlhYmxlKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sUmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQz
YzBlYTMwZDc0OGQ4YjllMTYxMDdhOWY4MDhjMjNiMzI4NjVlNjQuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJvdG9jb2xSZWYuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIFByb3RvY29sUmVmIGV4dGVuZHMgUHJvdG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRo
aXMucHJvdG9jb2xEZWNsID0gbnVsbDsKLSAgICB9Ci0gICAgCi0gICAgaW5oZXJpdHMob3RoZXIp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaW5oZXJpdHMob3RoZXIp
OwotICAgIH0KLSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy5wcm90b2NvbERlY2wuaGFzSGVpcih0eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlz
UHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5pc1By
aW1pdGl2ZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlTmFtZXMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNv
bHZlTmFtZXMuanMKaW5kZXggMTkyMmU4ZWMyN2ZjMzlkOTViNGFhOGJmYTlhNTZjOTEwZjZlNjhi
Mi4uNDlkYzg2MzdkNGUxNDNhOWIwN2Q1OWNmM2ZiOTc1Y2Y4NGE2NWUxNiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcwpAQCAtMzUsMTIgKzM1LDYg
QEAgZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCiAg
ICAgICAgIG5hbWVSZXNvbHZlci5kb1N0YXRlbWVudCh0eXBlKTsKIH0KIAotZnVuY3Rpb24gcmVz
b2x2ZU5hbWVzSW5Qcm90b2NvbHMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQotewotICAgIGZvciAo
bGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBuYW1l
UmVzb2x2ZXIuZG9TdGF0ZW1lbnQocHJvdG9jb2wpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlTmFt
ZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCiB7CiAgICAgZm9yIChsZXQgZnVu
Y3Mgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzCmluZGV4IDdlMjIxNTZk
ZTFhYzVlMmE2YzcyNGFkMzQ2OWRjOTFlNzQ2ZjI1NjYuLmFjNzI0OTRlZTIwYjg0NzJiNTg4NzMy
OTA0YmE4MjAwMzQwNTQ3NDEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAidXNl
IHN0cmljdCI7CiAKLWZ1bmN0aW9uIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBl
QXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBm
YWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKICAgICBpZiAoIWZ1
bmN0aW9ucykKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGZ1bmN0aW9uczsgdGhhdCBz
aG91bGQgaGF2ZSBiZWVuIGNhdWdodCBieSB0aGUgY2FsbGVyLiIpOwpAQCAtMzYsNyArMzYsNyBA
QCBmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaChuZXcg
T3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShmdW5jLCAiRnVuY3Rpb24gaXMgYSAiICsgZnVuYy5z
aGFkZXJUeXBlICsgIiBzaGFkZXIsIHNvIGl0IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4g
YW4gZXhpc3Rpbmcgc2hhZGVyLiIpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0K
LSAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3Vt
ZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSk7CisgICAgICAgIGxldCBvdmVybG9hZCA9
IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpOwogICAg
ICAgICBpZiAob3ZlcmxvYWQuZmFpbHVyZSkKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gob3Zl
cmxvYWQuZmFpbHVyZSk7CiAgICAgICAgIGVsc2UKQEAgLTQ2LDEyICs0Niw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5
cGVzLCByZXR1cm5UeXBlCiAgICAgaWYgKCFzdWNjZXNzZXMubGVuZ3RoKQogICAgICAgICByZXR1
cm4ge2ZhaWx1cmVzOiBmYWlsdXJlc307CiAgICAgCi0gICAgbGV0IG1pbmltdW1Db252ZXJzaW9u
Q29zdCA9IHN1Y2Nlc3Nlcy5yZWR1Y2UoCi0gICAgICAgIChyZXN1bHQsIG92ZXJsb2FkKSA9PiBN
YXRoLm1pbihyZXN1bHQsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dC5jb252ZXJzaW9uQ29z
dCksCi0gICAgICAgIEluZmluaXR5KTsKLSAgICBzdWNjZXNzZXMgPSBzdWNjZXNzZXMuZmlsdGVy
KAotICAgICAgICBvdmVybG9hZCA9PiBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQuY29udmVy
c2lvbkNvc3QgPT0gbWluaW11bUNvbnZlcnNpb25Db3N0KTsKLSAgICAKICAgICAvLyBJZiBhbnkg
b2YgdGhlIHNpZ25hdHVyZXMgYXJlIHJlc3RyaWN0ZWQgdGhlbiB3ZSBjb25zaWRlciB0aG9zZSBm
aXJzdC4gVGhpcyBpcyBhbiBlc2NhcGUgbWVjaGFuaXNtIGZvcgogICAgIC8vIGJ1aWx0LWluIHRo
aW5ncy4KICAgICAvLyBGSVhNRTogSXQgc2hvdWxkIGJlIGFuIGVycm9yIHRvIGRlY2xhcmUgYSBm
dW5jdGlvbiB0aGF0IGlzIGF0IGxlYXN0IGFzIHNwZWNpZmljIGFzIGEgcmVzdHJpY3RlZCBmdW5j
dGlvbi4KQEAgLTc0LDcgKzY4LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5j
dGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAg
ICAgIGxldCBwYXJhbWV0ZXJGdW5jID0gc3VjY2Vzc2VzW2pdLmZ1bmM7CiAgICAgICAgICAgICBs
ZXQgb3ZlcmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbCgKICAgICAgICAgICAgICAgICBwYXJhbWV0
ZXJGdW5jLAotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRG
dW5jLnR5cGVQYXJhbWV0ZXJzIDogW10sCiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnBh
cmFtZXRlclR5cGVzLAogICAgICAgICAgICAgICAgIGFyZ3VtZW50RnVuYy5yZXR1cm5UeXBlRm9y
T3ZlcmxvYWRSZXNvbHV0aW9uKTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZz
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCmlu
ZGV4IDNiZDJhNGQ2NWY1NjRmNzA4YjBlZjQ3NTllNDNiMmM4OGQ0OGMyMzQuLmU4N2JkYzNjMzQ4
MzE5OTUyZmY5ZDhmMDM5OWYzNDhlYTk1MGQ2MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKQEAgLTMxLDEzICszMSw2IEBAIGZ1bmN0
aW9uIHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSkKICAgICAgICAgdHlwZS52aXNpdChy
ZXNvbHZlcik7CiB9CiAKLWZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dy
YW0pCi17Ci0gICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZlcigpOwotICAgIGZv
ciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBw
cm90b2NvbC52aXNpdChyZXNvbHZlcik7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0lu
RnVuY3Rpb25zKHByb2dyYW0pCiB7CiAgICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNv
bHZlcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCBm
NDBkNmI4OGIyNmVlZGNiZjgyOWYxYmFiYjEwYTIwNDViN2E4ZTgzLi4xNzE1YWQwZmFiNzk5OWI5
NjViYjAzOTAyMjU0MDE3ZDE3YjM5YjFlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXdyaXRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9SZXdyaXRlci5qcwpAQCAtNTMsNDEgKzUzLDExIEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAv
LyB0aGF0LgogICAgIHZpc2l0RnVuY0RlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlz
aXROYXRpdmVGdW5jKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdE5hdGl2ZUZ1bmNJ
bnN0YW5jZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUp
IHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdFR5cGVEZWYobm9kZSkgeyByZXR1cm4gbm9kZTsg
fQogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdFBy
b3RvY29sRGVjbChub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRFbnVtVHlwZShub2Rl
KSB7IHJldHVybiBub2RlOyB9CiAKLSAgICAvLyBUaGlzIGlzIGFsbW9zdCB3cm9uZy4gV2UgaW5z
dGFudGlhdGUgRnVuYyBpbiBTdWJzdGl0dXRpb24gaW4gUHJvdG9jb2xEZWNsLiBUaGVuLCB3ZSBl
bmQgdXAKLSAgICAvLyBub3QgcmV3cml0aW5nIHR5cGUgdmFyaWFibGVzLiBJIHRoaW5rIHRoYXQg
anVzdCB3b3JrcyBiZWNhdXNlIG5vdCByZXdyaXRpbmcgdGhlbSB0aGVyZSBpcyBPSy4KLSAgICAv
LyBFdmVyeXdoZXJlIGVsc2UsIGl0J3MgbWFuZGF0b3J5IHRoYXQgd2UgZG9uJ3QgcmV3cml0ZSB0
aGVzZSBiZWNhdXNlIHdlIGFsd2F5cyBhc3N1bWUgdGhhdAotICAgIC8vIHR5cGUgdmFyaWFibGVz
IGFyZSBvdXRzaWRlIHRoZSBzY29wZSBvZiByZXdyaXRpbmcuCi0gICAgdmlzaXRUeXBlVmFyaWFi
bGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5v
ZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRnVuY0RlY2woCi0g
ICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS5yZXR1
cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAo
cGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLnBh
cmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAg
ICAgICAgbm9kZS5pc0Nhc3QsCi0gICAgICAgICAgICBub2RlLnNoYWRlclR5cGUpOwotICAgICAg
ICByZXN1bHQucHJvdG9jb2xEZWNsID0gbm9kZS5wcm90b2NvbERlY2w7Ci0gICAgICAgIHJlc3Vs
dC5wb3NzaWJsZU92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVPdmVybG9hZHM7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TmF0aXZlVHlwZUluc3RhbmNlKG5v
ZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJbnN0YW5jZSgKLSAgICAg
ICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3Vt
ZW50cy5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudmlzaXQodGhpcykpKTsKLSAgICB9Ci0gICAg
CiAgICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IEZ1bmNQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZp
c2l0KHRoaXMpKTsKQEAgLTEyNSwxNCArOTUsOSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAg
IH0pKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQog
ICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVu
dC52aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5v
cmlnaW4sIG5vZGUubmFtZSk7CiAgICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2Rl
LnR5cGUsIHRoaXMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCAr
MjgyLDYgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShu
b2RlLCByZXN1bHQpCiAgICAgewotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFj
dHVhbFR5cGVBcmd1bWVudHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVu
dHMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVh
bFR5cGVBcmd1bWVudCA9PiBhY3R1YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAg
ICAgIHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2Rl
LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFs
VHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1
YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3Vt
ZW50VHlwZXM7CiAgICAgICAgIGlmIChhcmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0
LmFyZ3VtZW50VHlwZXMgPSBhcmd1bWVudFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1l
bnRUeXBlLnZpc2l0KHRoaXMpKTsKQEAgLTM0Miw3ICsyOTksNiBAQCBjbGFzcyBSZXdyaXRlciB7
CiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3Vt
ZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAg
ICAgICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1
bWVudCwgdGhpcykpKTsKICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0
YShub2RlLCByZXN1bHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElS
Vi5odG1sCmluZGV4IDkzZjZiOWI5MzJkMjcyZDc3YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLjM2
ODYxOGY4NTFjOWQ4ZTUwMmZjNWY5ZDY3YjEwOTEwMzRhMzk2N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtNDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNv
bW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZv
bGRlci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYx
LDcgKzYwLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxh
dHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0
ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
RmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFs
VHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC02OSw3ICs2Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNy
Yz0iRm9yTG9vcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iRnVuY0luc3RhbnRpYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1
bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VC
bG9jay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMi
Pjwvc2NyaXB0PgpAQCAtNzksNyArNzYsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkluZmVy
VHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRl
cmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwv
c2NyaXB0PgpAQCAtOTYsOSArOTIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVGaW5k
ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2Ny
aXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iTmF0aXZlRnVuY0luc3RhbmNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJ
bnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5
UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTEw
OSwxMCArMTAzLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3Nj
cmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90
b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTQxLDEw
ICsxMzEsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5
cGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwv
c2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExp
dGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1NQSVJWQ29kZWdlbi5qcwppbmRleCBiNGY1MDg1OWE4N2FmYjYwZTU0YjM2MGM2MDU5YzRhYWM4
YzIzYmNhLi5hOWZkZWVjZTQ3NTg2Njg2NjNlZDEwMzJmNzJiMjAzZTgyMDUyYWExIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCkBAIC01Myw3ICs1
Myw3IEBAIGZ1bmN0aW9uIGdlbmVyYXRlU1BJUlYoc3BpcnYsIHByb2dyYW0pCiAgICAgdHlwZU1h
cC5zZXQocHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQzMiwgY3VycmVudElkKyspOwogCiAgICAgZm9y
IChsZXQgZW50cnlQb2ludCBvZiBmaW5kRW50cnlQb2ludHMoKSkgewotICAgICAgICBsZXQgaW5s
aW5lZFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoZW50cnlQb2lu
dCwgW10pOworICAgICAgICBsZXQgaW5saW5lZFNoYWRlciA9IGVudHJ5UG9pbnQ7CiAgICAgICAg
IF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkU2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQo
ZW50cnlQb2ludCkpOwogCiAgICAgICAgIGxldCB0eXBlQW5hbHl6ZXIgPSBuZXcgU1BJUlZUeXBl
QW5hbHl6ZXIocHJvZ3JhbSwgdHlwZU1hcCwgY3VycmVudElkKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAxOTg4NzIzYzM1NDgw
ODFjNjY3ZmFjNzg2MmY0MDI2N2Y5ZjhiODU3Li5jNmRkZTAwMWE5MGIwNDcyMzhmYTYxNTY0ZjFl
NjhkZWRhZjk5NDI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Rh
bmRhcmRMaWJyYXJ5LmpzCkBAIC0yOSw1MyArMjksNzEwIEBAIGxldCBzdGFuZGFyZExpYnJhcnkg
PSBgCiAvLyBUaGlzIGlzIHRoZSBXU0wgc3RhbmRhcmQgbGlicmFyeS4gSW1wbGVtZW50YXRpb25z
IG9mIGFsbCBvZiB0aGVzZSB0aGluZ3MgYXJlIGluCiAvLyBJbnRyaW5zaWNzLmpzLgogCi0vLyBO
ZWVkIHRvIGJvb3RzdHJhcCB2b2lkIGZpcnN0LgogbmF0aXZlIHR5cGVkZWYgdm9pZDsKLQotbmF0
aXZlIHR5cGVkZWYgdWludDg7Ci1uYXRpdmUgdHlwZWRlZiBpbnQzMjsKLW5hdGl2ZSB0eXBlZGVm
IHVpbnQzMjsKIG5hdGl2ZSB0eXBlZGVmIGJvb2w7Ci10eXBlZGVmIGludCA9IGludDMyOwotdHlw
ZWRlZiB1aW50ID0gdWludDMyOwotCi1uYXRpdmUgdHlwZWRlZiBmbG9hdDMyOwotdHlwZWRlZiBm
bG9hdCA9IGZsb2F0MzI7Ci0KLW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50MzIpOwotbmF0aXZl
IG9wZXJhdG9yIGludDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQzMihmbG9hdCk7Ci1u
YXRpdmUgb3BlcmF0b3IgdWludDMyKGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIodWlu
dDgpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWlu
dDgoaW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQ4KHVpbnQzMik7Ci1uYXRpdmUgb3BlcmF0
b3IgdWludDgoZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludDMyKTsKLW5hdGl2ZSBv
cGVyYXRvciBmbG9hdCh1aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQ4KTsKK25h
dGl2ZSB0eXBlZGVmIHVjaGFyOworbmF0aXZlIHR5cGVkZWYgdXNob3J0OworbmF0aXZlIHR5cGVk
ZWYgdWludDsKK25hdGl2ZSB0eXBlZGVmIGNoYXI7CituYXRpdmUgdHlwZWRlZiBzaG9ydDsKK25h
dGl2ZSB0eXBlZGVmIGludDsKK25hdGl2ZSB0eXBlZGVmIGhhbGY7CituYXRpdmUgdHlwZWRlZiBm
bG9hdDsKK25hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQ7CituYXRpdmUgdHlwZWRlZiBhdG9taWNf
dWludDsKK3N0cnVjdCBib29sMiB7CisgICAgYm9vbCB4OworICAgIGJvb2wgeTsKK30KK3N0cnVj
dCBib29sMyB7CisgICAgYm9vbCB4OworICAgIGJvb2wgeTsKKyAgICBib29sIHo7Cit9CitzdHJ1
Y3QgYm9vbDQgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7CisgICAgYm9vbCB6OworICAgIGJv
b2wgdzsKK30KK3N0cnVjdCB1Y2hhcjIgeworICAgIHVjaGFyIHg7CisgICAgdWNoYXIgeTsKK30K
K3N0cnVjdCB1Y2hhcjMgeworICAgIHVjaGFyIHg7CisgICAgdWNoYXIgeTsKKyAgICB1Y2hhciB6
OworfQorc3RydWN0IHVjaGFyNCB7CisgICAgdWNoYXIgeDsKKyAgICB1Y2hhciB5OworICAgIHVj
aGFyIHo7CisgICAgdWNoYXIgdzsKK30KK3N0cnVjdCB1c2hvcnQyIHsKKyAgICB1c2hvcnQgeDsK
KyAgICB1c2hvcnQgeTsKK30KK3N0cnVjdCB1c2hvcnQzIHsKKyAgICB1c2hvcnQgeDsKKyAgICB1
c2hvcnQgeTsKKyAgICB1c2hvcnQgejsKK30KK3N0cnVjdCB1c2hvcnQ0IHsKKyAgICB1c2hvcnQg
eDsKKyAgICB1c2hvcnQgeTsKKyAgICB1c2hvcnQgejsKKyAgICB1c2hvcnQgdzsKK30KK3N0cnVj
dCB1aW50MiB7CisgICAgdWludCB4OworICAgIHVpbnQgeTsKK30KK3N0cnVjdCB1aW50MyB7Cisg
ICAgdWludCB4OworICAgIHVpbnQgeTsKKyAgICB1aW50IHo7Cit9CitzdHJ1Y3QgdWludDQgewor
ICAgIHVpbnQgeDsKKyAgICB1aW50IHk7CisgICAgdWludCB6OworICAgIHVpbnQgdzsKK30KK3N0
cnVjdCBjaGFyMiB7CisgICAgY2hhciB4OworICAgIGNoYXIgeTsKK30KK3N0cnVjdCBjaGFyMyB7
CisgICAgY2hhciB4OworICAgIGNoYXIgeTsKKyAgICBjaGFyIHo7Cit9CitzdHJ1Y3QgY2hhcjQg
eworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7CisgICAgY2hhciB6OworICAgIGNoYXIgdzsKK30K
K3N0cnVjdCBzaG9ydDIgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKK30KK3N0cnVjdCBz
aG9ydDMgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKKyAgICBzaG9ydCB6OworfQorc3Ry
dWN0IHNob3J0NCB7CisgICAgc2hvcnQgeDsKKyAgICBzaG9ydCB5OworICAgIHNob3J0IHo7Cisg
ICAgc2hvcnQgdzsKK30KK3N0cnVjdCBpbnQyIHsKKyAgICBpbnQgeDsKKyAgICBpbnQgeTsKK30K
K3N0cnVjdCBpbnQzIHsKKyAgICBpbnQgeDsKKyAgICBpbnQgeTsKKyAgICBpbnQgejsKK30KK3N0
cnVjdCBpbnQ0IHsKKyAgICBpbnQgeDsKKyAgICBpbnQgeTsKKyAgICBpbnQgejsKKyAgICBpbnQg
dzsKK30KK3N0cnVjdCBoYWxmMiB7CisgICAgaGFsZiB4OworICAgIGhhbGYgeTsKK30KK3N0cnVj
dCBoYWxmMyB7CisgICAgaGFsZiB4OworICAgIGhhbGYgeTsKKyAgICBoYWxmIHo7Cit9CitzdHJ1
Y3QgaGFsZjQgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7CisgICAgaGFsZiB6OworICAgIGhh
bGYgdzsKK30KK3N0cnVjdCBmbG9hdDIgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKK30K
K3N0cnVjdCBmbG9hdDMgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAgICBmbG9hdCB6
OworfQorc3RydWN0IGZsb2F0NCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9hdCB5OworICAgIGZs
b2F0IHo7CisgICAgZmxvYXQgdzsKK30KK25hdGl2ZSB0eXBlZGVmIGhhbGYyeDI7CituYXRpdmUg
dHlwZWRlZiBoYWxmMngzOworbmF0aXZlIHR5cGVkZWYgaGFsZjJ4NDsKK25hdGl2ZSB0eXBlZGVm
IGhhbGYzeDI7CituYXRpdmUgdHlwZWRlZiBoYWxmM3gzOworbmF0aXZlIHR5cGVkZWYgaGFsZjN4
NDsKK25hdGl2ZSB0eXBlZGVmIGhhbGY0eDI7CituYXRpdmUgdHlwZWRlZiBoYWxmNHgzOworbmF0
aXZlIHR5cGVkZWYgaGFsZjR4NDsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0MngyOworbmF0aXZlIHR5
cGVkZWYgZmxvYXQyeDM7CituYXRpdmUgdHlwZWRlZiBmbG9hdDJ4NDsKK25hdGl2ZSB0eXBlZGVm
IGZsb2F0M3gyOworbmF0aXZlIHR5cGVkZWYgZmxvYXQzeDM7CituYXRpdmUgdHlwZWRlZiBmbG9h
dDN4NDsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0NHgyOworbmF0aXZlIHR5cGVkZWYgZmxvYXQ0eDM7
CituYXRpdmUgdHlwZWRlZiBmbG9hdDR4NDsKK25hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9v
bDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxRDxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNo
YXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0Mj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcjI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8
aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aGFsZjI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxm
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1
aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50ND47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGY0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0
Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2w+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9v
bDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUx
REFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUxREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWlu
dDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8
Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyMj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJh
eTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmMj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZs
b2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGJvb2w+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
REFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVjaGFyND47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1
c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0ND47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9y
dDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxm
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFy
cmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxm
bG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXI0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhh
bGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZs
b2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVp
bnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyMz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxz
aG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxzaG9ydDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MkRBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2wyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aW50PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJy
YXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFsZjM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
QXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29s
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkRBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFy
cmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVz
aG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1aW50PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJy
YXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGYyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkRBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8
Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1aW50Mj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQ0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTNEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9ydD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0ND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUz
RDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUzRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXI0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hh
cjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNE
PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29s
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZUN1YmU8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlQ3ViZTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVDdWJlPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXIzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVD
dWJlPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0Mj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8
c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlQ3ViZTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGYyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhh
bGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVEZXB0aDJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEPGhhbGY+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmVEZXB0aDJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkRB
cnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyREFycmF5PGhhbGY+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVE
ZXB0aEN1YmU8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoQ3ViZTxoYWxmPjsK
IAorb3BlcmF0b3IgdWNoYXIodWNoYXIgeCkgeworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9w
ZXJhdG9yIHVjaGFyKHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIodWludCk7CituYXRp
dmUgb3BlcmF0b3IgdWNoYXIoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoc2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVjaGFyKGludCk7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoaGFsZik7
CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydCh1
Y2hhcik7CitvcGVyYXRvciB1c2hvcnQodXNob3J0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25h
dGl2ZSBvcGVyYXRvciB1c2hvcnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGNoYXIp
OworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0
KGludCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVz
aG9ydChmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgdWludCh1Y2hhcik7CituYXRpdmUgb3BlcmF0
b3IgdWludCh1c2hvcnQpOworb3BlcmF0b3IgdWludCh1aW50IHgpIHsKKyAgICByZXR1cm4geDsK
K30KK25hdGl2ZSBvcGVyYXRvciB1aW50KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoc2hv
cnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGhh
bGYpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIo
dWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBj
aGFyKHVpbnQpOworb3BlcmF0b3IgY2hhcihjaGFyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK25h
dGl2ZSBvcGVyYXRvciBjaGFyKHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKGludCk7Citu
YXRpdmUgb3BlcmF0b3IgY2hhcihoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKGZsb2F0KTsK
K25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodXNo
b3J0KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9y
dChjaGFyKTsKK29wZXJhdG9yIHNob3J0KHNob3J0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25h
dGl2ZSBvcGVyYXRvciBzaG9ydChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGhhbGYpOwor
bmF0aXZlIG9wZXJhdG9yIHNob3J0KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodWNoYXIp
OworbmF0aXZlIG9wZXJhdG9yIGludCh1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGludCh1aW50
KTsKK25hdGl2ZSBvcGVyYXRvciBpbnQoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgaW50KHNob3J0
KTsKK29wZXJhdG9yIGludChpbnQgeCkgeworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9wZXJh
dG9yIGludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJh
dG9yIGhhbGYodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYodXNob3J0KTsKK25hdGl2ZSBv
cGVyYXRvciBoYWxmKHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoY2hhcik7CituYXRpdmUg
b3BlcmF0b3IgaGFsZihzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZihpbnQpOworb3BlcmF0
b3IgaGFsZihoYWxmIHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBoYWxm
KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3Ig
ZmxvYXQodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50KTsKK25hdGl2ZSBvcGVy
YXRvciBmbG9hdChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChzaG9ydCk7CituYXRpdmUg
b3BlcmF0b3IgZmxvYXQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChoYWxmKTsKK29wZXJh
dG9yIGZsb2F0KGZsb2F0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK29wZXJhdG9yIGJvb2woYm9v
bCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgaW50KGF0b21pY19pbnQp
OworbmF0aXZlIG9wZXJhdG9yIHVpbnQoYXRvbWljX3VpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0
b3I9PShib29sLCBib29sKTsKK2Jvb2wgb3BlcmF0b3ImKGJvb2wgYSwgYm9vbCBiKQoreworICAg
IHJldHVybiBhICYmIGI7Cit9Citib29sIG9wZXJhdG9yfChib29sIGEsIGJvb2wgYikKK3sKKyAg
ICByZXR1cm4gYSB8fCBiOworfQorYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBib29sIGIpCit7Cisg
ICAgaWYgKGEpCisgICAgICAgIHJldHVybiAhYjsKKyAgICByZXR1cm4gYjsKK30KK2Jvb2wgb3Bl
cmF0b3J+KGJvb2wgdmFsdWUpCit7CisgICAgcmV0dXJuICF2YWx1ZTsKK30KIG5hdGl2ZSBpbnQg
b3BlcmF0b3IrKGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LCB1aW50KTsK
LXVpbnQ4IG9wZXJhdG9yKyh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEp
ICsgdWludChiKSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsIGZsb2F0KTsKLWlu
dCBvcGVyYXRvcisrKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9Ci11aW50IG9wZXJh
dG9yKysodWludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9Ci11aW50OCBvcGVyYXRvcisr
KHVpbnQ4IHZhbHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH0KIG5hdGl2ZSBpbnQgb3BlcmF0b3It
KGludCwgaW50KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKLXVpbnQ4IG9w
ZXJhdG9yLSh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIC0gdWludChi
KSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsKLWludCBvcGVyYXRv
ci0tKGludCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11aW50IG9wZXJhdG9yLS0odWlu
dCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9Ci11aW50OCBvcGVyYXRvci0tKHVpbnQ4IHZh
bHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0KIG5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCwgaW50
KTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yKih1
aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpICogdWludChiKSk7IH0KLW5h
dGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKIG5hdGl2ZSBpbnQgb3BlcmF0b3Iv
KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQpOworbmF0aXZlIGJv
b2wgb3BlcmF0b3I8KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPD0oaW50LCBpbnQp
OworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9y
Pj0oaW50LCBpbnQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IrKHVpbnQsIHVpbnQpOworbmF0aXZl
IHVpbnQgb3BlcmF0b3ItKHVpbnQsIHVpbnQpOworbmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQs
IHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3IvKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0
b3IvKHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgLyB1aW50KGIpKTsg
fQorbmF0aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50LCB1aW50KTsKK25hdGl2ZSBib29sIG9wZXJh
dG9yPCh1aW50LCB1aW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPD0odWludCwgdWludCk7Citu
YXRpdmUgYm9vbCBvcGVyYXRvcj4odWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj49
KHVpbnQsIHVpbnQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yKyhmbG9hdCwgZmxvYXQpOworbmF0
aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9y
KihmbG9hdCwgZmxvYXQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9hdCwgZmxvYXQpOwor
bmF0aXZlIGJvb2wgb3BlcmF0b3I9PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0
b3I8KGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGZsb2F0LCBmbG9hdCk7
CituYXRpdmUgYm9vbCBvcGVyYXRvcj4oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJh
dG9yPj0oZmxvYXQsIGZsb2F0KTsKIG5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCwgaW50KTsKIG5h
dGl2ZSBpbnQgb3BlcmF0b3J8KGludCwgaW50KTsKIG5hdGl2ZSBpbnQgb3BlcmF0b3JeKGludCwg
aW50KTsKQEAgLTg4LDMwMiArNzQ1LDEwOTcgQEAgbmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQs
IHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3J+KHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0
b3I8PCh1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yPj4odWludCwgdWludCk7Ci11
aW50OCBvcGVyYXRvciYodWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSAm
IHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRvcnwodWludDggYSwgdWludDggYikgeyByZXR1cm4g
dWludDgodWludChhKSB8IHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRvcl4odWludDggYSwgdWlu
dDggYikgeyByZXR1cm4gdWludDgodWludChhKSBeIHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRv
cn4odWludDggdmFsdWUpIHsgcmV0dXJuIHVpbnQ4KH51aW50KHZhbHVlKSk7IH0KLXVpbnQ4IG9w
ZXJhdG9yPDwodWludDggYSwgdWludCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIDw8IChiICYg
NykpOyB9Ci11aW50OCBvcGVyYXRvcj4+KHVpbnQ4IGEsIHVpbnQgYikgeyByZXR1cm4gdWludDgo
dWludChhKSA+PiAoYiAmIDcpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yLyhmbG9hdCwgZmxv
YXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVy
YXRvcj09KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj09KHVpbnQ4IGEsIHVpbnQ4IGIpIHsg
cmV0dXJuIHVpbnQoYSkgPT0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29s
LCBib29sKTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBi
b29sIG9wZXJhdG9yPChpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWlu
dCk7Ci1ib29sIG9wZXJhdG9yPCh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50KGEpIDwg
dWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUg
Ym9vbCBvcGVyYXRvcjw9KGludCwgaW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0odWludCwg
dWludCk7Ci1ib29sIG9wZXJhdG9yPD0odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludChh
KSA8PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGZsb2F0LCBmbG9hdCk7Ci1u
YXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVp
bnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj4odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWlu
dChhKSA+IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPihmbG9hdCwgZmxvYXQpOwot
bmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49
KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj49KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJu
IHVpbnQoYSkgPj0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxv
YXQpOwotCi1ib29sIG9wZXJhdG9yJihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAg
ICAgICAgcmV0dXJuIGI7Ci0gICAgcmV0dXJuIGZhbHNlOwordWNoYXIgb3BlcmF0b3IrKHVjaGFy
IGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSArIHVpbnQoYikpOwogfQot
Ci1ib29sIG9wZXJhdG9yfChib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgaWYgKGIpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBmYWxzZTsKK3VjaGFyIG9wZXJhdG9yLSh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJu
IHVjaGFyKHVpbnQoYSkgLSB1aW50KGIpKTsKIH0KLQotYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBi
b29sIGIpCi17Ci0gICAgaWYgKGEpCi0gICAgICAgIHJldHVybiAhYjsKLSAgICByZXR1cm4gYjsK
K3VjaGFyIG9wZXJhdG9yKih1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVp
bnQoYSkgKiB1aW50KGIpKTsKIH0KLQotYm9vbCBvcGVyYXRvcn4oYm9vbCB2YWx1ZSkKLXsKLSAg
ICByZXR1cm4gIXZhbHVlOwordWNoYXIgb3BlcmF0b3IvKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAg
ICByZXR1cm4gdWNoYXIodWludChhKSAvIHVpbnQoYikpOwogfQotCi1wcm90b2NvbCBBZGRhYmxl
IHsKLSAgICBBZGRhYmxlIG9wZXJhdG9yKyhBZGRhYmxlLCBBZGRhYmxlKTsKK3VjaGFyIG9wZXJh
dG9yJih1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgJiB1aW50
KGIpKTsKIH0KLQotcHJvdG9jb2wgRXF1YXRhYmxlIHsKLSAgICBib29sIG9wZXJhdG9yPT0oRXF1
YXRhYmxlLCBFcXVhdGFibGUpOwordWNoYXIgb3BlcmF0b3J8KHVjaGFyIGEsIHVjaGFyIGIpIHsK
KyAgICByZXR1cm4gdWNoYXIodWludChhKSB8IHVpbnQoYikpOwogfQotCi1yZXN0cmljdGVkIG9w
ZXJhdG9yPFQ+IFQoKQotewotICAgIFQgZGVmYXVsdFZhbHVlOwotICAgIHJldHVybiBkZWZhdWx0
VmFsdWU7Cit1Y2hhciBvcGVyYXRvcl4odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1
Y2hhcih1aW50KGEpIF4gdWludChiKSk7CiB9Ci0KLXJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChU
IHgpCi17Ci0gICAgcmV0dXJuIHg7Cit1Y2hhciBvcGVyYXRvcn4odWNoYXIgYSkgeworICAgIHJl
dHVybiB1Y2hhcih+dWludChhKSk7CiB9Ci0KLW9wZXJhdG9yPFQ6RXF1YXRhYmxlPiBib29sKFQg
eCkKLXsKLSAgICByZXR1cm4geCAhPSBUKCk7Citib29sIG9wZXJhdG9yPT0odWNoYXIgYSwgdWNo
YXIgYikgeworICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7CiB9Ci0KLXN0cnVjdCB2ZWMy
PFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5OworYm9vbCBvcGVyYXRvcjwodWNoYXIgYSwgdWNoYXIg
YikgeworICAgIHJldHVybiB1aW50KGEpIDwgdWludChiKTsKIH0KLQotdHlwZWRlZiBpbnQyID0g
dmVjMjxpbnQ+OwotdHlwZWRlZiB1aW50MiA9IHZlYzI8dWludD47Ci10eXBlZGVmIGZsb2F0MiA9
IHZlYzI8ZmxvYXQ+OwotCi1vcGVyYXRvcjxUPiB2ZWMyPFQ+KFQgeCwgVCB5KQotewotICAgIHZl
YzI8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHk7Ci0gICAg
cmV0dXJuIHJlc3VsdDsKK2Jvb2wgb3BlcmF0b3I8PSh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAg
cmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsKIH0KLQotYm9vbCBvcGVyYXRvcj09PFQ6RXF1YXRh
YmxlPih2ZWMyPFQ+IGEsIHZlYzI8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAmJiBh
LnkgPT0gYi55OworYm9vbCBvcGVyYXRvcj4odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVy
biB1aW50KGEpID4gdWludChiKTsKIH0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVh
ZCB2ZWMyPFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAg
ICAgIHJldHVybiAmZm9vLT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICByZXR1cm4g
JmZvby0+eTsKLSAgICB0cmFwOworYm9vbCBvcGVyYXRvcj49KHVjaGFyIGEsIHVjaGFyIGIpIHsK
KyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOwogfQotCi1zdHJ1Y3QgdmVjMzxUPiB7Ci0g
ICAgVCB4OwotICAgIFQgeTsKLSAgICBUIHo7Cit1c2hvcnQgb3BlcmF0b3IrKHVzaG9ydCBhLCB1
c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSArIHVpbnQoYikpOworfQordXNo
b3J0IG9wZXJhdG9yLSh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVp
bnQoYSkgLSB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvcioodXNob3J0IGEsIHVzaG9ydCBi
KSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICogdWludChiKSk7Cit9Cit1c2hvcnQgb3Bl
cmF0b3IvKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAv
IHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yJih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAg
ICByZXR1cm4gdXNob3J0KHVpbnQoYSkgJiB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvcnwo
dXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIHwgdWludChi
KSk7Cit9Cit1c2hvcnQgb3BlcmF0b3JeKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVy
biB1c2hvcnQodWludChhKSBeIHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yfih1c2hvcnQg
YSkgeworICAgIHJldHVybiB1c2hvcnQofnVpbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KHVz
aG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7Cit9Citi
b29sIG9wZXJhdG9yPCh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8
IHVpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPD0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAg
cmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KHVzaG9ydCBhLCB1
c2hvcnQgYikgeworICAgIHJldHVybiB1aW50KGEpID4gdWludChiKTsKK30KK2Jvb2wgb3BlcmF0
b3I+PSh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIp
OworfQordWNoYXIgb3BlcmF0b3I8PCh1Y2hhciBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdWNo
YXIodWludChhKSA8PCAoYiAmIDI1NSkpOworfQordXNob3J0IG9wZXJhdG9yPDwodXNob3J0IGEs
IHVpbnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSA8PCAoYiAmIDY1NTM1KSk7Cit9
Cit1Y2hhciBvcGVyYXRvcj4+KHVjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiB1Y2hhcih1
aW50KGEpID4+IChiICYgMjU1KSk7Cit9Cit1c2hvcnQgb3BlcmF0b3I+Pih1c2hvcnQgYSwgdWlu
dCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpID4+IChiICYgNjU1MzUpKTsKK30KK2No
YXIgb3BlcmF0b3IrKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICsg
aW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3ItKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJu
IGNoYXIoaW50KGEpIC0gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3IqKGNoYXIgYSwgY2hhciBi
KSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICogaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3Iv
KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIC8gaW50KGIpKTsKK30K
K2NoYXIgb3BlcmF0b3ImKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEp
ICYgaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3J8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0
dXJuIGNoYXIoaW50KGEpIHwgaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3JeKGNoYXIgYSwgY2hh
ciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIF4gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0
b3J+KGNoYXIgYSkgeworICAgIHJldHVybiBjaGFyKH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRv
cj09KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citi
b29sIG9wZXJhdG9yPihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPiBpbnQo
Yik7Cit9Citib29sIG9wZXJhdG9yPj0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50
KGEpID49IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KGNoYXIgYSwgY2hhciBiKSB7CisgICAg
cmV0dXJuIGludChhKSA8IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShjaGFyIGEsIGNoYXIg
YikgeworICAgIHJldHVybiBpbnQoYSkgPD0gaW50KGIpOworfQorc2hvcnQgb3BlcmF0b3IrKHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpICsgaW50KGIpKTsKK30K
K3Nob3J0IG9wZXJhdG9yLShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGlu
dChhKSAtIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvciooc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgKiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IvKHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIC8gaW50KGIpKTsKK30K
K3Nob3J0IG9wZXJhdG9yJihzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGlu
dChhKSAmIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvcnwoc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgfCBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3JeKHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIF4gaW50KGIpKTsKK30K
K3Nob3J0IG9wZXJhdG9yfihzaG9ydCBhKSB7CisgICAgcmV0dXJuIHNob3J0KH5pbnQoYSkpOwor
fQorYm9vbCBvcGVyYXRvcj09KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEp
ID09IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICBy
ZXR1cm4gaW50KGEpID4gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KHNob3J0IGEsIHNob3J0
IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID49IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9vbCBv
cGVyYXRvcjw9KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChi
KTsKK30KK2NoYXIgb3BlcmF0b3I8PChjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiBjaGFy
KGludChhKSA8PCAoYiAmIDI1NSkpOworfQorc2hvcnQgb3BlcmF0b3I8PChzaG9ydCBhLCB1aW50
IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIDw8IChiICYgNjU1MzUpKTsKK30KK2NoYXIg
b3BlcmF0b3I+PihjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA+PiAo
YiAmIDI1NSkpOworfQorc2hvcnQgb3BlcmF0b3I+PihzaG9ydCBhLCB1aW50IGIpIHsKKyAgICBy
ZXR1cm4gc2hvcnQoaW50KGEpID4+IChiICYgNjU1MzUpKTsKK30KK3VjaGFyIG9wZXJhdG9yKyso
dWNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQordWNoYXIgb3BlcmF0b3It
LSh1Y2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9Cit1c2hvcnQgb3BlcmF0
b3IrKyh1c2hvcnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQordXNob3J0IG9w
ZXJhdG9yLS0odXNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3VpbnQg
b3BlcmF0b3IrKyh1aW50IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK3VpbnQg
b3BlcmF0b3ItLSh1aW50IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2NoYXIg
b3BlcmF0b3IrKyhjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2NoYXIg
b3BlcmF0b3ItLShjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3Nob3J0
IG9wZXJhdG9yKysoc2hvcnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorc2hv
cnQgb3BlcmF0b3ItLShzaG9ydCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9Citp
bnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQoraW50
IG9wZXJhdG9yLS0oaW50IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2hhbGYg
b3BlcmF0b3IrKyhoYWxmIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2hhbGYg
b3BlcmF0b3ItLShoYWxmIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2Zsb2F0
IG9wZXJhdG9yKysoZmxvYXQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorZmxv
YXQgb3BlcmF0b3ItLShmbG9hdCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9Cito
YWxmIG9wZXJhdG9yKyhoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEp
ICsgZmxvYXQoYikpOworfQoraGFsZiBvcGVyYXRvci0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICBy
ZXR1cm4gaGFsZihmbG9hdChhKSAtIGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3IqKGhhbGYg
YSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgKiBmbG9hdChiKSk7Cit9Cito
YWxmIG9wZXJhdG9yLyhoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEp
IC8gZmxvYXQoYikpOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYgYSwgaGFsZiBiKSB7CisgICAg
cmV0dXJuIGZsb2F0KGEpID09IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjwoaGFsZiBhLCBo
YWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0
b3I8PShoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsK
K30KK2Jvb2wgb3BlcmF0b3I8KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEp
IDwgZmxvYXQoYik7Cit9Citib29sIG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICBy
ZXR1cm4gZmxvYXQoYSkgPD0gZmxvYXQoYik7CiB9CiAKLXR5cGVkZWYgaW50MyA9IHZlYzM8aW50
PjsKLXR5cGVkZWYgdWludDMgPSB2ZWMzPHVpbnQ+OwotdHlwZWRlZiBmbG9hdDMgPSB2ZWMzPGZs
b2F0PjsKLQotb3BlcmF0b3I8VD4gdmVjMzxUPihUIHgsIFQgeSwgVCB6KQotewotICAgIHZlYzM8
VD4gcmVzdWx0Oworb3BlcmF0b3IgYm9vbDIoYm9vbCB4LCBib29sIHkpIHsKKyAgICBib29sMiBy
ZXN1bHQ7CiAgICAgcmVzdWx0LnggPSB4OwogICAgIHJlc3VsdC55ID0geTsKLSAgICByZXN1bHQu
eiA9IHo7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLQotb3BlcmF0b3I8VD4gdmVjMzxUPih2ZWMy
PFQ+IHYyLCBUIHopCi17Ci0gICAgdmVjMzxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2Mi54
OwotICAgIHJlc3VsdC55ID0gdjIueTsKK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbCB5LCBi
b29sIHopIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKICAgICByZXN1bHQueiA9IHo7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLQotb3Bl
cmF0b3I8VD4gdmVjMzxUPihUIHgsIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjMzxUPiByZXN1bHQ7
Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9
IHYyLnk7CitvcGVyYXRvciBib29sMyhib29sMiB4LCBib29sIHkpIHsKKyAgICBib29sMyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0
LnogPSB5OwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0
YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYg
YS55ID09IGIueSAmJiBhLnogPT0gYi56OwotfQotCi10aHJlYWQgVCogb3BlcmF0b3ImW108VD4o
dGhyZWFkIHZlYzM8VD4qIGZvbywgdWludCBpbmRleCkKLXsKLSAgICBpZiAoaW5kZXggPT0gMCkK
LSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgaWYgKGluZGV4ID09IDEpCi0gICAgICAgIHJl
dHVybiAmZm9vLT55OwotICAgIGlmIChpbmRleCA9PSAyKQotICAgICAgICByZXR1cm4gJmZvby0+
ejsKLSAgICB0cmFwOwotfQotCi1zdHJ1Y3QgdmVjNDxUPiB7Ci0gICAgVCB4OwotICAgIFQgeTsK
LSAgICBUIHo7Ci0gICAgVCB3Oworb3BlcmF0b3IgYm9vbDMoYm9vbCB4LCBib29sMiB5KSB7Cisg
ICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsK
KyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQotCi10eXBlZGVmIGlu
dDQgPSB2ZWM0PGludD47Ci10eXBlZGVmIHVpbnQ0ID0gdmVjNDx1aW50PjsKLXR5cGVkZWYgZmxv
YXQ0ID0gdmVjNDxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIFQgeiwg
VCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0Oworb3BlcmF0b3IgYm9vbDQoYm9vbCB4LCBib29s
IHksIGJvb2wgeiwgYm9vbCB3KSB7CisgICAgYm9vbDQgcmVzdWx0OwogICAgIHJlc3VsdC54ID0g
eDsKICAgICByZXN1bHQueSA9IHk7CiAgICAgcmVzdWx0LnogPSB6OwogICAgIHJlc3VsdC53ID0g
dzsKICAgICByZXR1cm4gcmVzdWx0OwogfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4g
djIsIFQgeiwgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjIu
eDsKLSAgICByZXN1bHQueSA9IHYyLnk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53
ID0gdzsKK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wgeSwgYm9vbCB6KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAg
IHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
LQotb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIHZlYzI8VD4gdjIsIFQgdykKLXsKLSAgICB2ZWM0
PFQ+IHJlc3VsdDsKK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbDIgeSwgYm9vbCB6KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OwogICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHYyLng7
Ci0gICAgcmVzdWx0LnogPSB2Mi55OwotICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIFQgeSwgdmVjMjxUPiB2MikK
LXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5LCBi
b29sMiB6KSB7CisgICAgYm9vbDQgcmVzdWx0OwogICAgIHJlc3VsdC54ID0geDsKICAgICByZXN1
bHQueSA9IHk7Ci0gICAgcmVzdWx0LnogPSB2Mi54OwotICAgIHJlc3VsdC53ID0gdjIueTsKKyAg
ICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4gdjJhLCB2ZWMyPFQ+IHYyYikKLXsK
LSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHYyYS54OwotICAgIHJlc3VsdC55
ID0gdjJhLnk7Ci0gICAgcmVzdWx0LnogPSB2MmIueDsKLSAgICByZXN1bHQudyA9IHYyYi55Owor
b3BlcmF0b3IgYm9vbDQoYm9vbDIgeCwgYm9vbDIgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHku
eDsKKyAgICByZXN1bHQudyA9IHkueTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotCi1vcGVyYXRv
cjxUPiB2ZWM0PFQ+KHZlYzM8VD4gdjMsIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAg
ICByZXN1bHQueCA9IHYzLng7Ci0gICAgcmVzdWx0LnkgPSB2My55OwotICAgIHJlc3VsdC56ID0g
djMuejsKK29wZXJhdG9yIGJvb2w0KGJvb2wzIHgsIGJvb2wgeSkgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGJvb2w0KGJvb2wgeCwgYm9vbDMgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAg
cmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKGJvb2wyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChib29s
MykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoYm9vbDQpIHsKKyAg
ICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVjaGFyMih1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAg
dWNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIgeSwgdWNo
YXIgeikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVjaGFyMyh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIyIHkp
IHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgdWNoYXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyIHosIHVjaGFyIHcpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVz
dWx0LnogPSB6OwogICAgIHJlc3VsdC53ID0gdzsKICAgICByZXR1cm4gcmVzdWx0OwogfQotCi1v
cGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgdmVjMzxUPiB2MykKLXsKLSAgICB2ZWM0PFQ+IHJlc3Vs
dDsKK29wZXJhdG9yIHVjaGFyNCh1Y2hhcjIgeCwgdWNoYXIgeSwgdWNoYXIgeikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgdWNoYXI0KHVjaGFyIHgsIHVjaGFyMiB5LCB1Y2hhciB6KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKICAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2My54OwotICAg
IHJlc3VsdC56ID0gdjMueTsKLSAgICByZXN1bHQudyA9IHYzLno7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9Ci0KLWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjNDxUPiBhLCB2ZWM0
PFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0g
Yi56ICYmIGEudyA9PSBiLnc7CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIgeSwgdWNo
YXIyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKIH0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWM0
PFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgIHJl
dHVybiAmZm9vLT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+
eTsKLSAgICBpZiAoaW5kZXggPT0gMikKLSAgICAgICAgcmV0dXJuICZmb28tPno7Ci0gICAgaWYg
KGluZGV4ID09IDMpCi0gICAgICAgIHJldHVybiAmZm9vLT53OwotICAgIHRyYXA7CitvcGVyYXRv
ciB1Y2hhcjQodWNoYXIyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsK
KyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQotCi1uYXRpdmUgdGhy
ZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCBUW10sIHVpbnQpOwotbmF0aXZlIHRocmVhZGdy
b3VwIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZGdyb3VwIFRbXSwgdWludCk7Ci1uYXRpdmUgZGV2
aWNlIFQqIG9wZXJhdG9yJltdPFQ+KGRldmljZSBUW10sIHVpbnQpOwotbmF0aXZlIGNvbnN0YW50
IFQqIG9wZXJhdG9yJltdPFQ+KGNvbnN0YW50IFRbXSwgdWludCk7Ci0KLW5hdGl2ZSB1aW50IG9w
ZXJhdG9yLmxlbmd0aDxUPih0aHJlYWQgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0
aDxUPih0aHJlYWRncm91cCBUW10pOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KGRl
dmljZSBUW10pOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KGNvbnN0YW50IFRbXSk7
Ci0KLXVpbnQgb3BlcmF0b3IubGVuZ3RoPFQsIHVpbnQgbGVuZ3RoPihUW2xlbmd0aF0pCi17Ci0g
ICAgcmV0dXJuIGxlbmd0aDsKK29wZXJhdG9yIHVjaGFyNCh1Y2hhcjMgeCwgdWNoYXIgeSkgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7CiB9Ci1gOwotCi1mdW5jdGlvbiBpbnRUb1N0cmluZyh4KQotewotICAgIHN3aXRjaCAo
eCkgewotICAgIGNhc2UgMDoKLSAgICAgICAgcmV0dXJuICJ4IjsKLSAgICBjYXNlIDE6Ci0gICAg
ICAgIHJldHVybiAieSI7Ci0gICAgY2FzZSAyOgotICAgICAgICByZXR1cm4gInoiOwotICAgIGNh
c2UgMzoKLSAgICAgICAgcmV0dXJuICJ3IjsKLSAgICBkZWZhdWx0OgotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNvdWxkIG5vdCBnZW5lcmF0ZSBzdGFuZGFyZCBsaWJyYXJ5LiIpOwotICAgIH0K
K29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhcjMgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0g
eS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLS8vIFRo
ZXJlIGFyZSA0ODEgc3dpenpsZSBvcGVyYXRvcnMsIHNvIHdlIGNvbXBpbGUgdGhlbSBhcyBuYXRp
dmUgZnVuY3Rpb25zCi1zdGFuZGFyZExpYnJhcnkgKz0gU3dpenpsZU9wLmFsbFN3aXp6bGVPcGVy
YXRvcnMoKS5qb2luKCI7XG4iKSArICI7IjsKLWNvbnNvbGUubG9nKHN0YW5kYXJkTGlicmFyeSk7
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXIy
KSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjMpIHsKKyAg
ICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVjaGFyNCkgeworICAgIHJldHVy
biA0OworfQorb3BlcmF0b3IgdXNob3J0Mih1c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hv
cnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNo
b3J0IHopIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgdXNob3J0Myh1c2hvcnQyIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0Lnog
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1
c2hvcnQyIHkpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydCB5LCB1c2hvcnQgeiwgdXNob3J0
IHcpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQgeSwgdXNob3J0
IHopIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQyIHksIHVz
aG9ydCB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHks
IHVzaG9ydDIgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hv
cnQyIHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQzIHgsIHVzaG9y
dCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQzIHkp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDIpIHsKKyAgICByZXR1
cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29w
ZXJhdG9yIHVpbnQyKHVpbnQgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIHVpbnQzKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQyIHgsIHVpbnQgeSkg
eworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVpbnQzKHVpbnQgeCwgdWludDIgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50IHosIHVp
bnQgdykgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQgeSwgdWludCB6KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55
OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDIgeSwgdWludCB6KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICBy
ZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50MiB6KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQyIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7Cisg
ICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0
KHVpbnQzIHgsIHVpbnQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgu
eDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQu
dyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWlu
dDMgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQyKSB7CisgICAgcmV0
dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50MykgeworICAgIHJldHVybiAzOwor
fQordWludCBvcGVyYXRvci5sZW5ndGgodWludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJh
dG9yIGNoYXIyKGNoYXIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGNoYXIzKGNoYXIgeCwgY2hhciB5LCBjaGFyIHopIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIyIHgsIGNoYXIgeSkgewor
ICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgu
eTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNo
YXIzKGNoYXIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyIHosIGNoYXIg
dykgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55Owor
ICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1
bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyMiB6KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IGNoYXI0KGNoYXIyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAg
cmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNo
YXIzIHgsIGNoYXIgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsK
KyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9
IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjMg
eSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIyKSB7CisgICAgcmV0dXJu
IDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMykgeworICAgIHJldHVybiAzOworfQor
dWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9y
IHNob3J0MihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9
IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydDIgeCwgc2hv
cnQgeSkgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0
IHksIHNob3J0IHosIHNob3J0IHcpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53
ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBz
aG9ydCB5LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgu
eDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0Lncg
PSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hv
cnQyIHksIHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9
IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9y
dCB5LCBzaG9ydDIgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHou
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9y
dDIgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydDMgeCwgc2hvcnQgeSkg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAg
ICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1
aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3Bl
cmF0b3IubGVuZ3RoKHNob3J0NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgaW50Mihp
bnQgeCwgaW50IHkpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4
LCBpbnQgeSwgaW50IHopIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgaW50MyhpbnQyIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQyIHkpIHsKKyAg
ICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQo
aW50IHgsIGludCB5LCBpbnQgeiwgaW50IHcpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1
bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50MiB4LCBp
bnQgeSwgaW50IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQyIHksIGludCB6
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwgaW50IHksIGludDIgeikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVz
dWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQyIHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsK
KyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50
NChpbnQzIHgsIGludCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0Lncg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQzIHkp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDIpIHsKKyAgICByZXR1cm4gMjsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQg
b3BlcmF0b3IubGVuZ3RoKGludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGhhbGYy
KGhhbGYgeCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYz
KGhhbGYgeCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYyIHgsIGhhbGYgeSkgeworICAgIGhhbGYz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYg
eCwgaGFsZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmIHosIGhhbGYgdykgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGhhbGY0KGhhbGYyIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGhhbGY0KGhhbGYgeCwgaGFsZjIgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhh
bGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmMiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAg
cmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhh
bGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0Lncg
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYzIHgsIGhh
bGYgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZjMgeSkgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1
aW50IG9wZXJhdG9yLmxlbmd0aChoYWxmMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVy
YXRvci5sZW5ndGgoaGFsZjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGZsb2F0Mihm
bG9hdCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9h
dDMoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0MyhmbG9hdDIgeCwgZmxvYXQgeSkgewor
ICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBm
bG9hdDMoZmxvYXQgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHosIGZsb2F0IHcpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdCB5LCBm
bG9hdCB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQyIHksIGZs
b2F0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dDIgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdDIgeSkgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDMgeCwgZmxvYXQgeSkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQzIHkpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgoZmxvYXQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJh
dG9yLmxlbmd0aChmbG9hdDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKGZsb2F0NCkgeworICAgIHJldHVybiA0OworfQorYm9vbCBvcGVyYXRvcj09KGJvb2wyIGEs
IGJvb2wyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9v
bCBvcGVyYXRvcj09KGJvb2wzIGEsIGJvb2wzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDQgYSwg
Ym9vbDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09
IGIueiAmJiBhLncgPT0gYi53OworfQorYDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N0YXRlbWVudENsb25lci5qcwppbmRleCBjOTQ3OWEyODViYTBlMTM1MzVkZWEzN2Y3
ZmMxYTYzYmM3MWNmMzE2Li4zYjg0ODg4YTcwNTU3NjBkNjBlYTY4MzIxYzU0MzgxZDZiZjQ0NzY4
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9u
ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVy
LmpzCkBAIC0yNywxMSArMjcsOSBAQAogY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3
cml0ZXIgewogICAgIHZpc2l0RnVuY0RlZihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHR5cGVQ
YXJhbWV0ZXJzID0gbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jRGVm
KAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUu
cmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzLAogICAg
ICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0
KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUuYm9keS52aXNpdCh0aGlzKSwKICAgICAgICAgICAg
IG5vZGUuaXNDYXN0LCBub2RlLnNoYWRlclR5cGUpOwpAQCAtNDQsNyArNDIsNiBAQCBjbGFzcyBT
dGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCiAgICAg
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnR5
cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhp
cykpLAogICAgICAgICAgICAgbm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1l
dGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUuaXNDYXN0LCBub2RlLnNoYWRlclR5
cGUpOwogICAgICAgICByZXN1bHQuaXNSZXN0cmljdGVkID0gbm9kZS5pc1Jlc3RyaWN0ZWQ7CkBA
IC01NCw1MiArNTEsMjQgQEAgY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIg
ewogICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5ldyBO
YXRpdmVUeXBlKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBl
UGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMp
KSk7CisgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5iYXNlTmFtZSwgbm9kZS50eXBlQXJn
dW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7CiAg
ICAgfQogICAgIAogICAgIHZpc2l0VHlwZURlZihub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJu
IG5ldyBUeXBlRGVmKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAg
ICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFt
ZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcykpOwog
ICAgIH0KICAgICAKICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkKICAgICB7Ci0gICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZSgKLSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVy
ID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5l
dyBTdHJ1Y3RUeXBlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwogICAgICAgICBmb3IgKGxldCBm
aWVsZCBvZiBub2RlLmZpZWxkcykKICAgICAgICAgICAgIHJlc3VsdC5hZGQoZmllbGQudmlzaXQo
dGhpcykpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICB2aXNpdENv
bnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgQ29u
c3RleHByVHlwZVBhcmFtZXRlcihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGUudmlz
aXQodGhpcykpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAg
IHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2NvbERlY2wobm9kZS5vcmlnaW4sIG5v
ZGUubmFtZSk7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9mIG5vZGUuZXh0ZW5kcykKLSAg
ICAgICAgICAgIHJlc3VsdC5hZGRFeHRlbmRzKHByb3RvY29sLnZpc2l0KHRoaXMpKTsKLSAgICAg
ICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykKLSAgICAgICAgICAgIHJl
c3VsdC5hZGQoc2lnbmF0dXJlLnZpc2l0KHRoaXMpKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICB9Ci0KLSAgICB2aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG5ldyBUeXBlVmFyaWFibGUobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgTm9kZS52aXNpdChu
b2RlLnByb3RvY29sLCB0aGlzKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYo
bm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvdG9jb2xSZWYobm9kZS5vcmlnaW4s
IG5vZGUubmFtZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0Qm9vbExpdGVyYWwobm9kZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBuZXcgQm9vbExpdGVyYWwobm9kZS5vcmlnaW4sIG5vZGUudmFs
dWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5
b3V0QnVpbGRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91
dEJ1aWxkZXIuanMKaW5kZXggNGY5OGM1NzNhMWEzODIzN2UxNjQ1MGFlMTBiODZjYjJlNjFkMTIz
MC4uNzQ0MWRlZWVkNDNkMDYyZGIxMzAzNjc2NDkwZjM2OGNlYjZkODNkOCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcworKysg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCkBA
IC0zOSw4ICszOSw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9y
IHsKICAgICB7CiAgICAgICAgIGlmIChub2RlLnNpemUgIT0gbnVsbCkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKG5vZGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZG8gbGF5b3V0IGZvciBnZW5lcmljIHR5cGU6ICIg
KyBub2RlKTsKICAgICAgICAgbGV0IG9sZE9mZnNldCA9IHRoaXMuX29mZnNldDsKICAgICAgICAg
dGhpcy5fb2Zmc2V0ID0gMDsKICAgICAgICAgc3VwZXIudmlzaXRTdHJ1Y3RUeXBlKG5vZGUpOwpA
QCAtNjAsMTIgKzU4LDYgQEAgY2xhc3MgU3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICB0aGlzLl9vZmZzZXQgKz0gc2l6ZTsKICAgICB9CiAgICAgCi0gICAgdmlz
aXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyLnZpc2l0TmF0
aXZlRnVuY0luc3RhbmNlKG5vZGUpOwotICAgICAgICBub2RlLmZ1bmMuZGlkTGF5b3V0U3RydWN0
c0luSW1wbGVtZW50YXRpb25EYXRhKG5vZGUuaW1wbGVtZW50YXRpb25EYXRhKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAgICBzdXBlci52aXNpdFR5
cGVSZWYobm9kZSk7CkBAIC03NiwxMyArNjgsNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWlsZGVy
IGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBu
b2RlLmFyZ3VtZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUudmlzaXQoYXJndW1lbnQsIHRoaXMp
OwotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMg
PT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAg
ICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBlQXJndW1lbnRzKQotICAgICAgICAg
ICAgICAgICAgICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLSAgICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5
cGVBcmd1bWVudHMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0luc3RhbmNl
LCB0aGlzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCmluZGV4IGY5
ZDhjN2RhNDg1ODMyMTYxZTU1ZDIyYTQzODc2Mjk5MzM3Y2I5MzYuLjM5NDdmZGJhYzA3MDAwZGU4
MGZmZjY1ZmQ2NmM2ZTAwNThhMjdlYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU3RydWN0VHlwZS5qcwpAQCAtMjUsMTIgKzI1LDExIEBACiAidXNlIHN0cmljdCI7CiAKIGNs
YXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5h
bWUsIHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKICAgICB7
CiAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAg
ICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlw
ZVBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2ZpZWxkcyA9IG5ldyBNYXAoKTsKICAgICB9CiAg
ICAgCkBAIC00NCw3ICs0Myw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAg
ICAKICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KICAgICBnZXQgb3JpZ2lu
KCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyBy
ZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KICAgICAKICAgICBnZXQgZmllbGROYW1lcygp
IHsgcmV0dXJuIHRoaXMuX2ZpZWxkcy5rZXlzKCk7IH0KICAgICBmaWVsZEJ5TmFtZShuYW1lKSB7
IHJldHVybiB0aGlzLl9maWVsZHMuZ2V0KG5hbWUpOyB9CkBAIC01OCwzMiArNTYsNiBAQCBjbGFz
cyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1bWVudHMgPSBudWxsKQotICAgIHsKLSAg
ICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG51bGw7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVy
cyA9IHRoaXMudHlwZVBhcmFtZXRlcnM7Ci0gICAgICAgIAotICAgICAgICBpZiAodHlwZUFyZ3Vt
ZW50cykgewotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IHRoaXMudHlw
ZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50
cyB0byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHN1YnN0aXR1
dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24odGhpcy50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50
cyk7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IFtdOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICBsZXQgaW5zdGFudGlhdGVJbW1lZGlhdGVzID0gbmV3IEluc3RhbnRpYXRlSW1t
ZWRpYXRlcygpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUodGhpcy5vcmln
aW4sIHRoaXMubmFtZSwgdHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBmb3IgKGxldCBmaWVsZCBv
ZiB0aGlzLmZpZWxkcykgewotICAgICAgICAgICAgbGV0IG5ld0ZpZWxkID0gZmllbGQ7Ci0gICAg
ICAgICAgICBpZiAoc3Vic3RpdHV0aW9uKQotICAgICAgICAgICAgICAgIG5ld0ZpZWxkID0gbmV3
RmllbGQudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgIG5ld0ZpZWxkID0gbmV3Rmll
bGQudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgIHJlc3VsdC5hZGQo
bmV3RmllbGQpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgIH0KLSAgICAKICAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCkKICAg
ICB7CiAgICAgICAgIGlmICh0aGlzLnNpemUgPT0gbnVsbCkKQEAgLTk0LDYgKzY2LDYgQEAgY2xh
c3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7
Ci0gICAgICAgIHJldHVybiAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQ
YXJhbWV0ZXJzICsgIj4geyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSAr
ICI7IH0iOworICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5uYW1lICsgIiB7ICIgKyBB
cnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpzCmluZGV4IDZhMjIz
ZjY3OTRhODU2YzY0MzA4ZGY0MGFiOTE4YWNhMjA4NmZiMjkuLjRhY2RmZmNlY2M1NjFhMjMzNDIw
MzNlMWI4ZGQzMWJhZTMzNTY2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N1YnN0aXR1dGlvbi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdWJzdGl0dXRpb24uanMKQEAgLTQwLDEyICs0MCw4IEBAIGNsYXNzIFN1YnN0aXR1dGlvbiBl
eHRlbmRzIFJld3JpdGVyIHsKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAg
IGxldCByZXBsYWNlbWVudCA9IHRoaXMuX21hcC5nZXQobm9kZS50eXBlKTsKLSAgICAgICAgaWYg
KHJlcGxhY2VtZW50KSB7Ci0gICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0
aCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdHlwZSBhcmd1
bWVudHMgb24gdHlwZSB2YXJpYWJsZSIpOwotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHJlcGxh
Y2VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlcGxhY2VtZW50KQorICAgICAgICAgICAgcmV0
dXJuIHJlcGxhY2VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsKICAgICAgICAgCiAgICAg
ICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdFR5cGVSZWYobm9kZSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50
aGVzaXplRW51bUZ1bmN0aW9ucy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5
bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzCmluZGV4IDVhZjJiZGY5M2E4MDVmYzA4YzI5ZjFlYTA1
MTBjZTI5ZTI4MGE1NmYuLjE3YjYxODQ4YWI1ZDhiYzkyYTc0NTlkZThkNjQwMzE0NDAwMTc5YjIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVt
RnVuY3Rpb25zLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNp
emVFbnVtRnVuY3Rpb25zLmpzCkBAIC0zNSwzMSArMzUsMzEgQEAgZnVuY3Rpb24gc3ludGhlc2l6
ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSkKICAgICAgICAgbGV0IHNoYWRlclR5cGU7CiAgICAgICAg
IAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBl
Lm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgImJvb2wiLCBb
XSksIFtdLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvcj09IiwgbmV3IFR5cGVS
ZWYodHlwZS5vcmlnaW4sICJib29sIiksCiAgICAgICAgICAgICBbCi0gICAgICAgICAgICAgICAg
bmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCB0eXBlLm5hbWUsIFtdKSksCi0gICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIo
dHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtd
KSkKKyAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwg
bmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpLAorICAgICAgICAgICAgICAgIG5l
dyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lKSkKICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRl
clR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+IEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwog
ICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2
ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0
b3IudmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwgW10sCi0gICAg
ICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVm
KHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSldLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4s
ICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAor
ICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlw
ZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSldLAogICAgICAgICAgICAgaXNDYXN0LCBzaGFk
ZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiB2YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgIAogICAg
ICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdp
biwgIm9wZXJhdG9yIGNhc3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwg
W10sCi0gICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5l
dyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIFtdKSldLAorICAgICAgICAgICAgdHlw
ZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0
ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGws
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nh
c3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9ncmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAg
ICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5
cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUsIFtdKSwgW10sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3Qi
LCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSwKICAgICAgICAgICAgIFtuZXcg
RnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcg
UmV3cml0ZXIoKSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAg
IG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNz
b3JzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFj
Y2Vzc29ycy5qcwppbmRleCBmNzgxNmYyYjI1MmU5YmE0ZGE5ZWM4NGRlZjYxMWM1NWU0YmZlM2E5
Li4wYWE3NTYwZWE1M2ZlYWJjOTc3OWQyMDhiYzRhZGU2OWIxOWM4ODQyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMuanMKQEAgLTMxLDI4ICszMSw4IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAg
Zm9yIChsZXQgZmllbGQgb2YgdHlwZS5maWVsZHMpIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNy
ZWF0ZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1
cm4gdHlwZS50eXBlUGFyYW1ldGVycy5tYXAoCi0gICAgICAgICAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgVHlwZVBhcmFtZXRlclJld3JpdGVyKCkp
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgZnVuY3Rpb24gY3Jl
YXRlVHlwZUFyZ3VtZW50cygpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IHR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQo
bmV3IEF1dG9XcmFwcGVyKCkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAogICAgICAg
ICAgICAgZnVuY3Rpb24gc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEobmF0aXZlRnVuYywgaW1wbGVt
ZW50YXRpb24pCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbmF0aXZlRnVuYy5pbnN0
YW50aWF0ZUltcGxlbWVudGF0aW9uID0gc3Vic3RpdHV0aW9uID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgbGV0IG5ld1R5cGUgPSB0eXBlLmluc3RhbnRpYXRlKG5hdGl2ZUZ1bmMudHlwZVBhcmFt
ZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0
IHN1YnN0aXR1dGUgPSBzdWJzdGl0dXRpb24ubWFwLmdldCh0eXBlUGFyYW1ldGVyKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIk51bGwgc3Vic3RpdHV0ZSBmb3IgdHlwZSBwYXJhbWV0
ZXIgIiArIHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1
YnN0aXR1dGU7Ci0gICAgICAgICAgICAgICAgICAgIH0pKTsKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIHt0eXBlOiBuZXdUeXBlLCBmaWVsZE5hbWU6IGZpZWxkLm5hbWV9OwotICAgICAgICAg
ICAgICAgIH07CiAgICAgICAgICAgICAgICAgbmF0aXZlRnVuYy52aXNpdEltcGxlbWVudGF0aW9u
RGF0YSA9IChpbXBsZW1lbnRhdGlvbkRhdGEsIHZpc2l0b3IpID0+IHsKICAgICAgICAgICAgICAg
ICAgICAgLy8gVmlzaXRpbmcgdGhlIHR5cGUgZmlyc3QgZW5zdXJlcyB0aGF0IHRoZSBzdHJ1Y3Qg
bGF5b3V0IGJ1aWxkZXIgZmlndXJlcyBvdXQgdGhlIGZpZWxkJ3MKICAgICAgICAgICAgICAgICAg
ICAgLy8gb2Zmc2V0LgpAQCAtODksMjMgKzY5LDIxIEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1
Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24g
Y3JlYXRlRmllbGRUeXBlKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZmllbGQudHlwZS52aXNpdChuZXcgU3Vic3RpdHV0aW9uKHR5cGUudHlwZVBhcmFtZXRlcnMsIHR5
cGVQYXJhbWV0ZXJzKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnR5cGUudmlzaXQo
bmV3IFJld3JpdGVyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAg
ICBmdW5jdGlvbiBjcmVhdGVUeXBlUmVmKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0ZSh0eXBlLCBjcmVhdGVUeXBlQXJndW1lbnRzKCkp
OworICAgICAgICAgICAgICAgIHJldHVybiBUeXBlUmVmLmluc3RhbnRpYXRlKHR5cGUpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBsZXQgaXNDYXN0ID0gZmFsc2U7
CiAgICAgICAgICAgICBsZXQgc2hhZGVyVHlwZTsKLSAgICAgICAgICAgIGxldCB0eXBlUGFyYW1l
dGVyczsKICAgICAgICAgICAgIGxldCBuYXRpdmVGdW5jOwogCiAgICAgICAgICAgICAvLyBUaGUg
Z2V0dGVyOiBvcGVyYXRvci5maWVsZAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVh
dGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVG
dW5jKAotICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5u
YW1lLCBjcmVhdGVGaWVsZFR5cGUoKSwgdHlwZVBhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAg
ZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUsIGNyZWF0ZUZpZWxkVHlwZSgp
LAogICAgICAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGws
IGNyZWF0ZVR5cGVSZWYoKSldLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICAgICAgc2V0
dXBJbXBsZW1lbnRhdGlvbkRhdGEobmF0aXZlRnVuYywgKFtiYXNlXSwgb2Zmc2V0LCBzdHJ1Y3RT
aXplLCBmaWVsZFNpemUpID0+IHsKICAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVQ
dHIobmV3IEVCdWZmZXIoZmllbGRTaXplKSwgMCk7CkBAIC0xMTUsOSArOTMsOCBAQCBmdW5jdGlv
biBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAgICAgICAgICBwcm9ncmFt
LmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gVGhlIHNldHRl
cjogb3BlcmF0b3IuZmllbGQ9Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMo
Ci0gICAgICAgICAgICAgICAgZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUg
KyAiPSIsIGNyZWF0ZVR5cGVSZWYoKSwgdHlwZVBhcmFtZXRlcnMsCisgICAgICAgICAgICAgICAg
ZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUgKyAiPSIsIGNyZWF0ZVR5cGVS
ZWYoKSwKICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFy
YW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlVHlwZVJlZigpKSwKICAgICAgICAgICAg
ICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVGaWVs
ZFR5cGUoKSkKQEAgLTEzNCwxMCArMTExLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFj
Y2Vzc29ycyhwcm9ncmFtKQogICAgICAgICAgICAgLy8gVGhlIGFuZGVyOiBvcGVyYXRvciYuZmll
bGQKICAgICAgICAgICAgIGZ1bmN0aW9uIHNldHVwQW5kZXIoYWRkcmVzc1NwYWNlKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFt
ZXRlcnMoKTsKICAgICAgICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCiAg
ICAgICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yJi4iICsgZmllbGQubmFt
ZSwgbmV3IFB0clR5cGUoZmllbGQub3JpZ2luLCBhZGRyZXNzU3BhY2UsIGNyZWF0ZUZpZWxkVHlw
ZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICAg
ICAgICAgIFsKICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgbnVsbCwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCBhNjQxZDMwNDY0OTNkYWJjMmQ3NDVlN2Qw
ZWM5NmQwYmRkNDQxYmJjLi43YWQ0YWQ3YjQ1MDU2NWU0YzU2ZGI1OTBhNjIwOWY4ZTcxMmUyZDBi
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0zNiw3ICszNiw2
IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZv
bGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3RleHByVHlwZVBhcmFtZXRlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNTUsNyArNTQsNiBAQAogPHNj
cmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaWVs
ZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9h
dExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTYzLDcgKzYxLDYgQEAKIDxzY3JpcHQgc3Jj
PSJGb3JMb29wLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jSW5z
dGFudGlhdG9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+CkBAIC03Myw3ICs3MCw2
IEBACiA8c2NyaXB0IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IklubGluZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRM
aXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9z
Y3JpcHQ+CkBAIC05MCw5ICs4Niw3IEBACiA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJOYXRpdmVGdW5jLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jSW5z
dGFuY2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48
L3NjcmlwdD4KQEAgLTEwMywxMCArOTcsNiBAQAogPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2
ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJv
dG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbEZ1bmNEZWNsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdy
aXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tl
ci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzEsMTAgKzEyMSw3IEBACiA8c2NyaXB0IHNyYz0iVHlwZURl
Zi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJU
eXBlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRl
cmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKaW5kZXggMmIwNTY5MDJhNjZj
YzMyZDA0YTFlYTcyMGQyNTFlM2Y3MGNmOTY0OC4uNzZjY2E4NzlhYjJmYWZiMTA1NTlmZWNmOGU4
NDMzMTU3NjFlMTc1OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCkBAIC0x
ODcsNyArMTg3LDcgQEAgdGVzdHMuY29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKICAgICAg
ICAgcnVucyBvdmVyIG11bHRpcGxlIGxpbmVzICovCiAgICAgICAgIGJvb2wgZm9vKCkgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiAKICAgICBjaGVja0ZhaWwo
CiAgICAgICAgICgpID0+IGRvUHJlcChgCkBAIC0yMDAsOTIgKzIwMCw5MiBAQCB0ZXN0cy5jb21t
ZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogCiB0ZXN0cy5saXRlcmFsQm9vbCA9IGZ1bmN0aW9u
KCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbygpIHsgcmV0dXJuIHRydWU7
IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogfQogCiB0ZXN0cy5pZGVudGl0eUJvb2wgPSBmdW5j
dGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJl
dHVybiB4OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnRTaW1wbGVN
YXRoID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50
IHgsIGludCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkg
eyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAt
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgLTUpXSksIC0zNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSld
KSwgLTM1KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyBy
ZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAy
KV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtMildKSwgLTMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCAtMildKSwgLTMpOwogfQogCiB0ZXN0cy51aW50U2ltcGxl
TWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1
aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWlu
dCB4LCB1aW50IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgNDI5NDk2NzI5NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDQyOTQ5NjcyOTQpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQg
eCwgdWludCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIDM1KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgs
IHVpbnQgeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDMpOwogfQogCiB0ZXN0cy51aW50OFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsK
ICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsg
cmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJv
Z3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwg
NSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50
OCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4
KHByb2dyYW0sIDcpXSksIDI1NCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9n
cmFtLCA1KV0pLCAyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDI1NCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4
IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJv
Z3JhbSwgNSldKSwgMzUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4
LCB1aW50OCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDIpXSksIDMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgMildKSwgMyk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5ID0gZnVuY3Rpb24oKSB7
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJl
dHVybiB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCBm
YWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50OCB4LCB1aW50OCB5KSB7IHJldHVy
biB4ID09IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIHRy
dWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1
cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUp
XSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCwgYm9vbCB5KSB7IHJldHVybiB4ID09IHk7IH0i
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwg
ZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9n
cmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIHRydWUpOwogfQogCiB0ZXN0cy5sb2dpY2FsTmVnYXRpb24gPSBmdW5j
dGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCkgeyBy
ZXR1cm4gIXg7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFs
c2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLm5vdEVxdWFs
aXR5ID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVp
bnQgeCwgdWludCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dy
YW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50OCB4
LCB1aW50OCB5KSB7IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBt
YWtlVWludDgocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VV
aW50OChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGlu
dCB4LCBpbnQgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwg
ZmFsc2UpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wgeCwgYm9vbCB5KSB7
IHJldHVybiB4ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5lcXVh
bGl0eVR5cGVGYWlsdXJlID0gZnVuY3Rpb24oKQpAQCAtMjk4LDEzICsyOTgsMTMgQEAgdGVzdHMu
ZXF1YWxpdHlUeXBlRmFpbHVyZSA9IGZ1bmN0aW9uKCkKIHRlc3RzLmdlbmVyYWxOZWdhdGlvbiA9
IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgp
IHsgcmV0dXJuICF4OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDApXSksIHRydWUpOwogfQogCiB0ZXN0cy5hZGQxID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgpIHsgcmV0dXJuIHggKyAxOyB9
Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7
CiB9CiAKIHRlc3RzLnNpbXBsZUdlbmVyaWMgPSBmdW5jdGlvbigpIHsKQEAgLTMxMiw3ICszMTIs
NyBAQCB0ZXN0cy5zaW1wbGVHZW5lcmljID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIFQgaWQ8VD4o
VCB4KSB7IHJldHVybiB4OyB9CiAgICAgICAgIGludCBmb28oaW50IHgpIHsgcmV0dXJuIGlkKHgp
ICsgMTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0MildKSwgNDMpOwogfQogCiB0ZXN0cy5uYW1lUmVzb2x1dGlvbkZhaWx1cmUgPSBmdW5jdGlv
bigpCkBAIC0zMzEsNyArMzMxLDcgQEAgdGVzdHMuc2ltcGxlVmFyaWFibGUgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3Rz
LnNpbXBsZUFzc2lnbm1lbnQgPSBmdW5jdGlvbigpCkBAIC0zNDQsNyArMzQ0LDcgQEAgdGVzdHMu
c2ltcGxlQXNzaWdubWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1bmN0aW9uKCkK
QEAgLTM1Niw3ICszNTYsNyBAQCB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwog
fQogCiB0ZXN0cy5zaW1wbGVEZXJlZmVyZW5jZSA9IGZ1bmN0aW9uKCkKQEAgLTM2OSw3ICszNjks
NyBAQCB0ZXN0cy5zaW1wbGVEZXJlZmVyZW5jZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBs
ZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94
KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0cy5kZXJlZmVy
ZW5jZVN0b3JlID0gZnVuY3Rpb24oKQpAQCAtMzgyLDcgKzM4Miw3IEBAIHRlc3RzLmRlcmVmZXJl
bmNlU3RvcmUgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwg
ImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkp
XSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDUy
KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGVkIGJ1ZmZlciB0byBjb250YWluIDUy
IGJ1dCBpdCBjb250YWluczogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtMzk2LDcgKzM5Niw3
IEBAIHRlc3RzLnNpbXBsZU1ha2VQdHIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
Jng7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQu
dHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSkKQEAgLTQxOCw3ICs0MTgsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxv
YWQgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEp
OwogICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRl
cm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJy
YXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dy
YW0sIHJlc3VsdCwgODkpOwogfQogCkBAIC00MzIsNyArNDMyLDcgQEAgdGVzdHMudGhyZWFkQXJy
YXlMb2FkSW50TGl0ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0g
bmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJy
YXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmlu
dDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQg
cmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2lj
cy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ0Niw3ICs0NDYsNyBAQCB0
ZXN0cy5kZXZpY2VBcnJheUxvYWQgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZl
ciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxldCByZXN1
bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2lj
cy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CisgICAg
bGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94
KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOwog
ICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQogCkBAIC00NjMsMTAgKzQ2Mywx
MCBAQCB0ZXN0cy50aHJlYWRBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJl
ZiA9IFR5cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3Jp
Z2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVB
cnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1
KV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZl
ci5nZXQoMCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJl
ZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZl
ci5nZXQoMCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3Rv
cmVkIGludG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpA
QCAtNDg0LDEwICs0ODQsMTAgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkK
ICAgICBsZXQgYXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVm
VHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiks
CiAgICAgICAgIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFt
LCA2NSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFr
ZUludChwcm9ncmFtLCA2NSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3Rl
ZCA2NSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0p
OwogICAgIGlmIChidWZmZXIuZ2V0KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZm
ZXIuZ2V0KDApKTsKIH0KQEAgLTUwNSwzMiArNTA1LDE0IEBAIHRlc3RzLmRldmljZUFycmF5U3Rv
cmVJbnRMaXRlcmFsID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5cGVkVmFsdWUu
Ym94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJlZihuZXcgRVB0
cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwogICAgIGlmIChi
dWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBz
dG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQoMCkpOwotICAg
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9n
cmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVm
LCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gLTEx
MSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVy
IChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQogCi10ZXN0cy5zaW1wbGVQ
cm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHByb3RvY29sIE15QWRkYWJsZSB7Ci0gICAgICAgICAgICBNeUFkZGFibGUgb3BlcmF0b3Ir
KE15QWRkYWJsZSwgTXlBZGRhYmxlKTsKLSAgICAgICAgfQotICAgICAgICBUIGFkZDxUOk15QWRk
YWJsZT4oVCBhLCBUIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhICsgYjsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgZm9vKGludCB4KQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRkKHgsIDczKTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ1
KV0pLCA0NSArIDczKTsKLX0KLQogdGVzdHMudHlwZU1pc21hdGNoUmV0dXJuID0gZnVuY3Rpb24o
KQogewogICAgIGNoZWNrRmFpbCgKQEAgLTY2Niw3ICs2NDgsNyBAQCB0ZXN0cy5zaW1wbGVTdHJ1
Y3QgPSBmdW5jdGlvbigpCiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDIpOwogICAgIGJ1
ZmZlci5zZXQoMCwgNjIpOwogICAgIGJ1ZmZlci5zZXQoMSwgMjQpOwotICAgIGxldCByZXN1bHQg
PSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0
VHlwZSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbmV3IFR5cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIo
YnVmZmVyLCAwKSldKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmVxdWFscyhzdHJ1Y3RUeXBlKSkK
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgdHlwZTogIiArIHJlc3VsdC50
eXBlKTsKICAgICBsZXQgeCA9IHJlc3VsdC5lUHRyLmdldCgwKTsKQEAgLTY3NywzNCArNjU5LDYg
QEAgdGVzdHMuc2ltcGxlU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIldyb25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwogfQog
Ci10ZXN0cy5nZW5lcmljU3RydWN0SW5zdGFuY2UgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vPFQ+IHsKLSAgICAgICAgICAgIFQg
eDsKLSAgICAgICAgICAgIFQgeTsKLSAgICAgICAgfQotICAgICAgICBGb288aW50PiBmb28oRm9v
PGludD4gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb288aW50PiByZXN1bHQ7Ci0gICAg
ICAgICAgICByZXN1bHQueCA9IGZvby55OwotICAgICAgICAgICAgcmVzdWx0LnkgPSBmb28ueDsK
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBsZXQg
c3RydWN0VHlwZSA9IFR5cGVSZWYuaW5zdGFudGlhdGUocHJvZ3JhbS50eXBlcy5nZXQoIkZvbyIp
LCBbcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyXSk7Ci0gICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKDIpOwotICAgIGJ1ZmZlci5zZXQoMCwgNjIpOwotICAgIGJ1ZmZlci5zZXQoMSwgMjQpOwot
ICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbmV3IFR5
cGVkVmFsdWUoc3RydWN0VHlwZSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKLSAgICBsZXQgeCA9
IHJlc3VsdC5lUHRyLmdldCgwKTsKLSAgICBsZXQgeSA9IHJlc3VsdC5lUHRyLmdldCgxKTsKLSAg
ICBpZiAoeCAhPSAyNCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9y
IHg6ICIgKyB4ICsgIiAoeSA9ICIgKyB5ICsgIikiKTsKLSAgICBpZiAoeSAhPSA2MikKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIg
KyB4ICsgIikiKTsKLX0KLQogdGVzdHMuZG91YmxlR2VuZXJpY0NhbGxzRG91YmxlR2VuZXJpYyA9
IGZ1bmN0aW9uKCkKIHsKICAgICBkb1ByZXAoYApAQCAtNzQ3LDcgKzcwMSw3IEBAIHRlc3RzLnJl
dHVybk51bGwgPSBmdW5jdGlvbigpCiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICB0aHJlYWQgaW50KiBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVz
dWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQu
dHlwZS5pc1B0cikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3Qg
YSBwb2ludGVyOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVu
dFR5cGUuZXF1YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBAIC03NjYsNyArNzIwLDcg
QEAgdGVzdHMuZGVyZWZlcmVuY2VEZWZhdWx0TnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQog
ICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0K
IApAQCAtNzgwLDcgKzczNCw3IEBAIHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGwgPSBmdW5j
dGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNl
b2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTc5Nyw3ICs3NTEsNyBAQCB0ZXN0cy5wYXNzTnVsbFRv
UHRyTW9ub21vcnBoaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtd
KSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksCiAgICAg
ICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg1Nyw3ICs4MTEs
NyBAQCB0ZXN0cy5yZXR1cm5OdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICB0aHJlYWQgaW50W10gZm9vKCkgeyByZXR1cm4gbnVsbDsg
fQogICAgIGApOwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pOwogICAgIGlmICghcmVzdWx0LnR5cGUuaXNBcnJheVJlZikKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYW4gYXJyYXkgcmVmZXJlbmNlOiAiICsgcmVzdWx0
LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMikpCkBAIC04NzYsNyArODMwLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VE
ZWZhdWx0TnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAog
ICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC04OTAsNyAr
ODQ0LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbEFycmF5UmVmID0gZnVuY3Rpb24o
KQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdU
cmFwRXJyb3IpOwogfQogCkBAIC05MDQsNyArODU4LDcgQEAgdGVzdHMuZGVmYXVsdEluaXRpYWxp
emVkTnVsbEFycmF5UmVmSW50TGl0ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGAp
OwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAt
OTIxLDcgKzg3NSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpY0FycmF5UmVmID0g
ZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksCisgICAgICAgICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05NDQsMTMgKzg5OCwxMyBAQCB0ZXN0cy5wYXNz
TnVsbFRvUHRyUG9seW1vcnBoaWNBcnJheVJlZiA9IGZ1bmN0aW9uKCkKIHRlc3RzLnJldHVybklu
dExpdGVyYWxVaW50ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJ1
aW50IGZvbygpIHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVz
dHMucmV0dXJuSW50TGl0ZXJhbEZsb2F0ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKCJmbG9hdCBmb28oKSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVy
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAg
IGNoZWNrTnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0
Mik7CiB9CiAKIHRlc3RzLmJhZEludExpdGVyYWxGb3JJbnQgPSBmdW5jdGlvbigpCkBAIC05ODgs
NyArOTQyLDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsID0gZnVuY3Rpb24oKQogICAgIGAp
OwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEz
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBw
cm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRW
YWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3Rz
LnBhc3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQpAQCAtMTAwNSw3ICs5NTks
NyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9uKCkKICAgICBg
KTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAx
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwogfQogCiB0ZXN0
cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigpCkBAIC0xMDIy
LDY1ICs5NzYsNyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seVJldmVyc2UgPSBm
dW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAg
IGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9y
aWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZl
ciwgMCkpXSksIDEzKTsKLX0KLQotdGVzdHMubnVsbFR5cGVWYXJpYWJsZVVuaWZ5ID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBsZWZ0ID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAg
ICBsZXQgcmlnaHQgPSBuZXcgVHlwZVZhcmlhYmxlKGV4dGVybmFsT3JpZ2luLCAiVCIsIG51bGwp
OwotICAgIGlmIChsZWZ0LmVxdWFscyhyaWdodCkpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigi
U2hvdWxkIG5vdCBiZSBlcXVhbCBidXQgYXJlOiAiICsgbGVmdCArICIgYW5kICIgKyByaWdodCk7
Ci0gICAgaWYgKHJpZ2h0LmVxdWFscyhsZWZ0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJT
aG91bGQgbm90IGJlIGVxdWFsIGJ1dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsK
LSAgICAKLSAgICBmdW5jdGlvbiBldmVyeU9yZGVyKGFycmF5LCBjYWxsYmFjaykKLSAgICB7Ci0g
ICAgICAgIGZ1bmN0aW9uIHJlY3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBvcmRlcikKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKCFhcnJheS5sZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrLmNhbGwobnVsbCwgb3JkZXIpOwotICAgICAgICAgICAgCi0gICAgICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IG5leHRBcnJheSA9IGFycmF5LmNvbmNhdCgpOwotICAgICAgICAgICAgICAgIG5leHRBcnJh
eS5zcGxpY2UoaSwgMSk7Ci0gICAgICAgICAgICAgICAgcmVjdXJzZShuZXh0QXJyYXksIGNhbGxi
YWNrLCBvcmRlci5jb25jYXQoW2FycmF5W2ldXSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgICAgIAotICAgICAgICByZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgW10pOwotICAgIH0K
LSAgICAKLSAgICBmdW5jdGlvbiBldmVyeVBhaXIodGhpbmdzKQotICAgIHsKLSAgICAgICAgbGV0
IHJlc3VsdCA9IFtdOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaW5ncy5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0aGluZ3MubGVuZ3RoOyAr
K2opIHsKLSAgICAgICAgICAgICAgICBpZiAoaSAhPSBqKQotICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQucHVzaChbdGhpbmdzW2ldLCB0aGluZ3Nbal1dKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBldmVyeU9yZGVy
KAotICAgICAgICBldmVyeVBhaXIoWyJudWxsVHlwZSIsICJ2YXJpYWJsZVR5cGUiLCAicHRyVHlw
ZSJdKSwKLSAgICAgICAgb3JkZXIgPT4gewotICAgICAgICAgICAgbGV0IHR5cGVzID0ge307Ci0g
ICAgICAgICAgICB0eXBlcy5udWxsVHlwZSA9IG5ldyBOdWxsVHlwZShleHRlcm5hbE9yaWdpbik7
Ci0gICAgICAgICAgICB0eXBlcy52YXJpYWJsZVR5cGUgPSBuZXcgVHlwZVZhcmlhYmxlKGV4dGVy
bmFsT3JpZ2luLCAiVCIsIG51bGwpOwotICAgICAgICAgICAgdHlwZXMucHRyVHlwZSA9IG5ldyBQ
dHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiY29uc3RhbnQiLCBuZXcgTmF0aXZlVHlwZShleHRlcm5h
bE9yaWdpbiwgImZvb190IiwgW10pKTsKLSAgICAgICAgICAgIGxldCB1bmlmaWNhdGlvbkNvbnRl
eHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KFt0eXBlcy52YXJpYWJsZVR5cGVdKTsKLSAgICAg
ICAgICAgIGZvciAobGV0IFtsZWZ0TmFtZSwgcmlnaHROYW1lXSBvZiBvcmRlcikgewotICAgICAg
ICAgICAgICAgIGxldCBsZWZ0ID0gdHlwZXNbbGVmdE5hbWVdOwotICAgICAgICAgICAgICAgIGxl
dCByaWdodCA9IHR5cGVzW3JpZ2h0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IGxlZnQudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCByaWdodCk7Ci0gICAgICAgICAgICAgICAg
aWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3Jk
ZXIgIiArIG9yZGVyICsgIiBjYW5ub3QgdW5pZnkgIiArIGxlZnQgKyAiIHdpdGggIiArIHJpZ2h0
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdW5pZmljYXRpb25Db250ZXh0LnZl
cmlmeSgpLnJlc3VsdCkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkluIG9yZGVy
ICIgKyBvcmRlci5tYXAodmFsdWUgPT4gIigiICsgdmFsdWUgKyAiKSIpICsgIiBjYW5ub3QgdmVy
aWZ5Iik7Ci0gICAgICAgIH0pOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAw
KSldKSwgMTMpOwogfQogCiB0ZXN0cy5kb3VibGVOb3QgPSBmdW5jdGlvbigpCkBAIC0xMDkxLDgg
Kzk4Nyw4IEBAIHRlc3RzLmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biAhIXg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CiB9CiAKIHRl
c3RzLnNpbXBsZVJlY3Vyc2lvbiA9IGZ1bmN0aW9uKCkKQEAgLTExMDcsMTE0ICsxMDAzLDYgQEAg
dGVzdHMuc2ltcGxlUmVjdXJzaW9uID0gZnVuY3Rpb24oKQogICAgICAgICAoZSkgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IpOwogfQogCi10ZXN0cy5wcm90b2NvbE1vbm9TaWdQb2x5RGVmID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0
IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29u
ZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBz
ZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAg
ICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBz
ZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHBy
b3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPGludD4gaW50QW5kKEludEFu
ZGFibGUsIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQg
Zmlyc3QsIGludCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+IHJl
c3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQu
Zmlyc3QgKyByZXN1bHQuc2Vjb25kOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1NCArIDEyKTsKLX0KLQotdGVzdHMucHJv
dG9jb2xQb2x5U2lnUG9seURlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8VD4gewotICAgICAgICAgICAgaW50IGZpcnN0
OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQ+IGlu
dEFuZDxUPihpbnQgZmlyc3QsIFQgc2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRB
bmQ8VD4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAg
ICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
LSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIElu
dEFuZDxUPiBpbnRBbmQ8VD4oSW50QW5kYWJsZSwgVCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50
IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEludEFuZDxpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kKTsKLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKV0pLCA1NCAr
IDEyKTsKLX0KLQotdGVzdHMucHJvdG9jb2xEb3VibGVQb2x5U2lnRG91YmxlUG9seURlZiA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJ
bnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNv
bmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBV
PiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJz
dCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAg
ICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFu
ZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQo
Zmlyc3QsIHNlY29uZCwgdGhpcmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCAr
IHJlc3VsdC5zZWNvbmQgKyByZXN1bHQudGhpcmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5
KV0pLCA1NCArIDEyICsgMzkpOwotfQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3Vi
bGVQb2x5RGVmRXhwbGljaXQgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgIGludCBmaXJz
dDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICAgICAgVSB0aGlyZDsKLSAgICAgICAg
fQotICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQs
IFUgdGhpcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0g
ICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNv
bmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJs
ZSB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQs
IFUpOwotICAgICAgICB9Ci0gICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBp
bnQgc2Vjb25kLCBpbnQgdGhpcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQs
IGludD4gcmVzdWx0ID0gaW50QW5kPGludCwgaW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0g
ICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50
aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChw
cm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0K
IHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKQEAgLTEyMjksNyArMTAxNyw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5n
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA4KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbygpCiAg
ICAgICAgIHsKQEAgLTEyNDIsNyArMTAzMCw3IEBAIHRlc3RzLnZhcmlhYmxlU2hhZG93aW5nID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA3KTsKIH0KIAogdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMjU3LDEz
ICsxMDQ1LDEzIEBAIHRlc3RzLmlmU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA4KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA4KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOwogfQogCiB0ZXN0cy5pZkVsc2VT
dGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMjgwLDEzICsxMDY4LDEzIEBAIHRlc3RzLmlmRWxz
ZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA5KV0pLCA5KTsKIH0KIAogdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlv
bigpCkBAIC0xMzAzLDEzICsxMDkxLDEzIEBAIHRlc3RzLmlmRWxzZUlmU3RhdGVtZW50ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA5KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYp
OwogfQogCiB0ZXN0cy5pZkVsc2VJZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCkBAIC0xMzI4
LDEzICsxMTE2LDEzIEBAIHRlc3RzLmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAx
MCk7CiB9CiAKIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQpAQCAtMTM4NywxMyArMTE3NSwx
MyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYp
XSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0p
LCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0p
LCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAo
KSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0MTksMTMgKzEy
MDcsMTMgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAo
KSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0NDksNyArMTIz
Nyw3IEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDYpOwogfQogCiB0ZXN0cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKQEAgLTE0
NjIsMzkgKzEyNTAsNyBAQCB0ZXN0cy5zaW1wbGVXaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
MTYpOwotfQotCi10ZXN0cy5wcm90b2NvbE1vbm9Qb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0
ID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gewotICAgICAg
ICAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICAgICAgICAgIHN0cnVjdCBJbnRB
bmQ8VCwgVT4gewotICAgICAgICAgICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICAg
ICAgICAgIFQgc2Vjb25kOwotICAgICAgICAgICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBm
aXJzdCwgVCBzZWNvbmQsIFUgdGhpcmQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICBJbnRBbmQ8VCwgVT4gcmVzdWx0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQu
Zmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29u
ZDsKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgICAgICAgICBJbnRBbmQ8VCwg
aW50PiBpbnRBbmQ8VD4oSW50QW5kYWJsZSwgVCwgaW50KTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQs
IGludCB0aGlyZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFu
ZDxpbnQsIGludD4gcmVzdWx0ID0gaW50QW5kPGludD4oZmlyc3QsIHNlY29uZCwgdGhpcmQpOwot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCAr
IHJlc3VsdC50aGlyZDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBgKTsKLSAgICAg
ICAgICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSk7Ci0gICAg
ICAgIH0sCi0gICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7CiB9CiAKIHRlc3RzLmFtYmlndW91c092ZXJsb2FkU2ltcGxlID0gZnVu
Y3Rpb24oKQpAQCAtMTUzNyw3ICsxMjkzLDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9u
ID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vKGZsb2F0KSB7IHJldHVybiAzOyB9CiAgICAg
ICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9
CiAKIHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VPcmRlciA9IGZ1bmN0aW9uKCkK
QEAgLTE1NDgsNyArMTMwNCw3IEBAIHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvblJldmVyc2VP
cmRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbyhpbnQpIHsgcmV0dXJuIDE7IH0KICAg
ICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsK
IH0KIAogdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAg
LTE1NTgsNyArMTMxNCw3IEBAIHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvbkdlbmVyaWMgPSBm
dW5jdGlvbigpCiAgICAgICAgIGludCBmb288VD4oVCkgeyByZXR1cm4gMjsgfQogICAgICAgICBp
bnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0
ZXN0cy5pbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1NjcsMTkgKzEzMjMsNyBA
QCB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxU
PihUIHgpIHsgcmV0dXJuIDM0Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0
Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJhciIsIFtdLCBbXSksIDM0NzgpOwotfQotCi10ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1dp
dGhQcm90b2NvbHMgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICBwcm90b2NvbCBNeUNvbnZlcnRpYmxlVG9JbnQgewotICAgICAgICAgICAgb3BlcmF0
b3IgaW50KE15Q29udmVydGlibGVUb0ludCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxU
Ok15Q29udmVydGlibGVUb0ludD4oVCB4KSB7IHJldHVybiBpbnQoeCk7IH0KLSAgICAgICAgaW50
IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMzQ3OCk7CiB9CiAK
IHRlc3RzLnVpbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTE1ODgsMTkgKzEzMzIs
NyBAQCB0ZXN0cy51aW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBm
b288VD4oVCB4KSB7IHJldHVybiAzNDc4OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBm
b28oNDJ1KTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLnVpbnRMaXRlcmFsR2Vu
ZXJpY1dpdGhQcm90b2NvbHMgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICBwcm90b2NvbCBNeUNvbnZlcnRpYmxlVG9VaW50IHsKLSAgICAgICAgICAg
IG9wZXJhdG9yIHVpbnQoTXlDb252ZXJ0aWJsZVRvVWludCk7Ci0gICAgICAgIH0KLSAgICAgICAg
dWludCBmb288VDpNeUNvbnZlcnRpYmxlVG9VaW50PihUIHgpIHsgcmV0dXJuIHVpbnQoeCk7IH0K
LSAgICAgICAgdWludCBiYXIoKSB7IHJldHVybiBmb28oNDJ1KTsgfQotICAgIGApOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDQy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtd
KSwgMzQ3OCk7CiB9CiAKIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlv
bigpCkBAIC0xNjA5LDcgKzEzNDEsNyBAQCB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1NwZWNpZmlj
ID0gZnVuY3Rpb24oKQogICAgICAgICBUIGZvbzxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAgICAg
ICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyhpbnQoNDIpKTsgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCA0
Mik7CiB9CiAKIHRlc3RzLnNpbXBsZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE2MjQsNyAr
MTM1Niw3IEBAIHRlc3RzLnNpbXBsZUNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBmb288NDI+KGIpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NTgpXSksIDU4ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOwogfQogCiB0ZXN0
cy5icmVhayA9IGZ1bmN0aW9uKCkKQEAgLTE2NDAsOCArMTM3Miw4IEBAIHRlc3RzLmJyZWFrID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAxKV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMjApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMjApOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNjU4LDgg
KzEzOTAsOCBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIAogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MTApXSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE5
KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBp
bnQgZm9vKGludCB4KQpAQCAtMTY5NSw3ICsxNDI3LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgICAgICB7
CkBAIC0xNzA1LDcgKzE0MzcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgICAgICByZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAo
YAogICAgICAgICAgICAgaW50IGZvbygpCiAgICAgICAgICAgICB7CkBAIC0xNzE0LDcgKzE0NDYs
NyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9
PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE3NDMsNyArMTQ3NSw3
IEBAIHRlc3RzLmNvbnRpbnVlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxOCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAxKV0pLCAxOCk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAg
ICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE3NjksOCArMTUwMSw4IEBAIHRlc3RzLmRvV2hp
bGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCA4KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNzgy
LDcgKzE1MTQsNyBAQCB0ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEpXSksIDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQg
Zm9vKGludCB4KQogICAgICAgICB7CkBAIC0xNzk4LDcgKzE1MzAsNyBAQCB0ZXN0cy5kb1doaWxl
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDkpXSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDE5KTsKIH0K
IAogdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKQEAgLTE4MTQsOSArMTU0Niw5IEBAIHRlc3Rz
LmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTgy
Nyw5ICsxNTU5LDkgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4
KQogICAgICAgICB7CkBAIC0xODQxLDkgKzE1NzMsOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAg
ICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NTYsMTAgKzE1ODgsMTAgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCAxMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMSk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NzIs
MTEgKzE2MDQsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAxMCk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAg
IHsKQEAgLTE4ODksMTEgKzE2MjEsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcp
XSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA3KV0pLCAyMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50
IHgpCiAgICAgICAgIHsKQEAgLTE5MDcsMTEgKzE2MzksMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE5MjYsMTEgKzE2NTgsMTEgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
MTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CiAgICAgY2hlY2tGYWlsKAogICAg
ICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgdm9pZCBmb28oaW50IHgpCkBAIC0xOTUw
LDExICsxNjgyLDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMp
XSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CiAgICAgY2hlY2tGYWls
KAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAg
LTE5NzMsMTEgKzE3MDUsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKIH0KIAogdGVz
dHMuY2hhaW5Db25zdGV4cHIgPSBmdW5jdGlvbigpCkBAIC0xOTk2LDcgKzE3MjgsNyBAQCB0ZXN0
cy5jaGFpbkNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXI8NDI+
KGIpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21h
a2VJbnQocHJvZ3JhbSwgNTgpXSksIDU4ICsgNDIpOwogfQogCiB0ZXN0cy5jaGFpbkdlbmVyaWMg
PSBmdW5jdGlvbigpCkBAIC0yMDE1LDcgKzE3NDcsNyBAQCB0ZXN0cy5jaGFpbkdlbmVyaWMgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKCZ4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCAzNyldKSwgMzcpOwog
fQogCiB0ZXN0cy5jaGFpblN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTIwMzgsNyArMTc3MCw3IEBA
IHRlc3RzLmNoYWluU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbygm
eCk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0NjU3KV0pLCA0NjU3KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtl
SW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdE5ld2x5
VmFsaWQgPSBmdW5jdGlvbigpCkBAIC0yMDYzLDcgKzE3OTUsNyBAQCB0ZXN0cy5jaGFpblN0cnVj
dE5ld2x5VmFsaWQgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBF
QnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgNzg0NTMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcg
UHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc4NDUzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlw
ZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5l
dyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc4NDUzKTsKIH0KIAogdGVzdHMuY2hhaW5TdHJ1Y3REZXZp
Y2UgPSBmdW5jdGlvbigpCkBAIC0yMDg4LDcgKzE4MjAsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdERl
dmljZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIo
MSk7CiAgICAgYnVmZmVyLnNldCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBl
KGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3
IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVy
bmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIo
YnVmZmVyLCAwKSldKSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wYXJhbUNoYWluU3RydWN0RGV2aWNl
ID0gZnVuY3Rpb24oKQpAQCAtMjExMyw4OSArMTg0NSw3IEBAIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1
Y3REZXZpY2UgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgNzkyMDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRy
VHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiks
IG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKLX0KLQotdGVzdHMuc2ltcGxlUHJvdG9j
b2xFeHRlbmRzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHZvaWQgZm9vKHRocmVhZCBGb28qKTsK
LSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICAgICAgdm9p
ZCBiYXIodGhyZWFkIEJhciopOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4o
dGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQot
ICAgICAgICB2b2lkIGJ1eno8VDpCYXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBmdXp6KHApOwotICAgICAgICAgICAgYmFyKHApOwotICAgICAgICB9Ci0gICAgICAgIHZv
aWQgZm9vKHRocmVhZCBpbnQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3
NDM7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGludCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgKnAgPSAqcCArIDkxOwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGlu
Z3koaW50IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJ1enooJmEpOwotICAgICAgICAgICAg
cmV0dXJuIGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSks
IDY0MiArIDc0MyArIDkxKTsKLX0KLQotdGVzdHMucHJvdG9jb2xFeHRlbmRzVHdvID0gZnVuY3Rp
b24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9v
IHsKLSAgICAgICAgICAgIHZvaWQgZm9vKHRocmVhZCBGb28qKTsKLSAgICAgICAgfQotICAgICAg
ICBwcm90b2NvbCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhciopOwotICAg
ICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJheiA6IEZvbywgQmFyIHsKLSAgICAgICAgICAgIHZv
aWQgYmF6KHRocmVhZCBCYXoqKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGZ1eno8VDpGb28+
KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28ocCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdm9pZCBidXp6PFQ6QmFyPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAg
ICAgICAgYmFyKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgeHV6ejxUOkJhej4odGhyZWFk
IFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBidXp6
KHApOwotICAgICAgICAgICAgYmF6KHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgZm9vKHRo
cmVhZCBpbnQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA3NDM7Ci0gICAg
ICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAg
ICAgICAgKnAgPSAqcCArIDkxOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmF6KHRocmVhZCBp
bnQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyAzOTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgdGhpbmd5KGludCBhKQotICAgICAgICB7Ci0gICAgICAgICAgICB4dXp6KCZh
KTsKLSAgICAgICAgICAgIHJldHVybiBhOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0aGluZ3kiLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNjQyKV0pLCA2NDIgKyA3NDMgKyA5MSArIDM5KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRy
VHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiks
IG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1Bs
dXMgPSBmdW5jdGlvbigpCkBAIC0yMjA3LDcgKzE4NTcsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9
CiAKIHRlc3RzLnByZWZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjIxOCw3ICsx
ODY4LDcgQEAgdGVzdHMucHJlZml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gKyt4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQp
XSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CiB9CiAKIHRlc3RzLnBvc3RmaXhQbHVz
UGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIyMzAsNyArMTg4MCw3IEBAIHRlc3RzLnBvc3RmaXhQbHVz
UGx1cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7
CiB9CiAKIHRlc3RzLnBvc3RmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIyNDEs
NyArMTg5MSw3IEBAIHRlc3RzLnBvc3RmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4Kys7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucHJlZml4
TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKQEAgLTIyNTMsNyArMTkwMyw3IEBAIHRlc3RzLnByZWZp
eE1pbnVzTWludXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCld
KSwgNjMpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQpA
QCAtMjI2NCw3ICsxOTE0LDcgQEAgdGVzdHMucHJlZml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0
aW9uKCkKICAgICAgICAgICAgIHJldHVybiAtLXg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVz
dHMucG9zdGZpeE1pbnVzTWludXMgPSBmdW5jdGlvbigpCkBAIC0yMjc2LDcgKzE5MjYsNyBAQCB0
ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzUmVzdWx0ID0g
ZnVuY3Rpb24oKQpAQCAtMjI4Nyw3ICsxOTM3LDcgQEAgdGVzdHMucG9zdGZpeE1pbnVzTWludXNS
ZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC0tOwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2
NCk7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMjk5LDcgKzE5NDks
NyBAQCB0ZXN0cy5wbHVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwogfQogCiB0ZXN0cy5wbHVzRXF1YWxzUmVz
dWx0ID0gZnVuY3Rpb24oKQpAQCAtMjMxMCw3ICsxOTYwLDcgQEAgdGVzdHMucGx1c0VxdWFsc1Jl
c3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4ICs9IDQyOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSArIDQyKTsKIH0KIAogdGVzdHMubWludXNFcXVhbHMgPSBmdW5jdGlvbigp
CkBAIC0yMzIyLDcgKzE5NzIsNyBAQCB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
Mzg1KV0pLCAzODUgLSA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAog
dGVzdHMubWludXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzMzLDcgKzE5ODMsNyBA
QCB0ZXN0cy5taW51c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biB4IC09IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgLSA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKIH0KIAogdGVzdHMudGlt
ZXNFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzQ1LDcgKzE5OTUsNyBAQCB0ZXN0cy50aW1lc0Vx
dWFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUp
XSksIDM4NSAqIDQyKTsKIH0KIAogdGVzdHMudGltZXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigp
CkBAIC0yMzU2LDcgKzIwMDYsNyBAQCB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB4ICo9IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKiA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAq
IDQyKTsKIH0KIAogdGVzdHMuZGl2aWRlRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM2OCw3ICsy
MDE4LDcgQEAgdGVzdHMuZGl2aWRlRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUg
LyA0MikgfCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOwogfQogCiB0
ZXN0cy5kaXZpZGVFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzc5LDcgKzIwMjksNyBA
QCB0ZXN0cy5kaXZpZGVFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4geCAvPSA0MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwg
KDM4NSAvIDQyKSB8IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9
CiAKIHRlc3RzLnR3b0ludExpdGVyYWxzID0gZnVuY3Rpb24oKQpAQCAtMjM5MCw3ICsyMDQwLDcg
QEAgdGVzdHMudHdvSW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
NDIgPT0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogfQogCiB0
ZXN0cy51bmlmeURpZmZlcmVudExpdGVyYWxzID0gZnVuY3Rpb24oKQpAQCAtMjQ3OSw3ICsyMTI5
LDcgQEAgdGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEg
LyAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5idWlsZEFycmF5VGhlblN1
bUl0VXNpbmdBcnJheVJlZmVyZW5jZSA9IGZ1bmN0aW9uKCkKQEAgLTI1MDAsNyArMjE1MCw3IEBA
IHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGJhcihAYXJyYXkpOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCA0MiAqIDUgKyA0MiAqIDQxIC8gMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKIH0KIAogdGVz
dHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC0yNTI2LDcgKzIxNzYs
NyBAQCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBmb29bMF0gKyBmb29bMV0gKiAzOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0
OTggKyAxOSAqIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCA0OTggKyAxOSAqIDMpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlw
dFN0cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQpAQCAtMjU1Miw3ICsyMjAyLDcgQEAgdGVz
dHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmREb1N0b3JlcyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBmb28ueCArIGZvby55OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTgg
KyAxOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDQ5OCArIDE5KTsKIH0KIAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRV
c2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKQEAgLTI1ODIsNyArMjIzMiw3IEBAIHRlc3RzLm92ZXJy
aWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gYmFyKCZmb28pOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OTggKyAxOSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5
OCArIDE5KTsKIH0KIAogdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVy
c0luY29ycmVjdGx5ID0gZnVuY3Rpb24oKQpAQCAtMjYyOSw3ICsyMjc5LDcgQEAgdGVzdHMubWFr
ZUFycmF5UmVmRnJvbUxvY2FsID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcihA
eCk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5tYWtlQXJy
YXlSZWZGcm9tUG9pbnRlciA9IGZ1bmN0aW9uKCkKQEAgLTI2NDksNyArMjI5OSw3IEBAIHRlc3Rz
Lm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGJheigmeCk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ4KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDgpOwogfQogCiB0ZXN0cy5t
YWtlQXJyYXlSZWZGcm9tQXJyYXlSZWYgPSBmdW5jdGlvbigpCkBAIC0yNjgyLDcgKzIzMzIsNyBA
QCB0ZXN0cy5zaW1wbGVMZW5ndGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEBh
cnJheSkubGVuZ3RoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzU0KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc1NCk7CiB9CiAK
IHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhTdWNjZWVkID0gZnVuY3Rpb24oKQpAQCAtMjY5
NCw3ICsyMzQ0LDcgQEAgdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYXJyYXkubGVuZ3RoOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgNzU0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDc1NCk7CiB9CiAKIHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhG
YWlsID0gZnVuY3Rpb24oKQpAQCAtMjc5Myw3ICsyNDQzLDcgQEAgdGVzdHMuc2ltcGxlR2V0dGVy
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby55OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCA3ODA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNzgwNCk7CiB9CiAKIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9u
KCkKQEAgLTI4MTgsNyArMjQ2OCw3IEBAIHRlc3RzLnNpbXBsZVNldHRlciA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBmb28ueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzgwNCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDc4MDQpOwogfQogCiB0ZXN0cy5nZW5lcmljQWNjZXNzb3JzID0gZnVuY3Rpb24oKQpAQCAtMjkw
MywzNTQgKzI1NTMsMTAzIEBAIHRlc3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gZm9vLnN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFN1cGVyQmFzaWMiLCBbXSwg
W10pLCAxICsgMiArIDMgKyA0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RaU2V0dGVyRGlkU2V0WSIsIFtdLCBbXSksIDkzMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdLCBbXSks
IDUzICsgOTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RaR2V0dGVyIiwgW10sIFtdKSwgMSArIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEgKyAy
ICsgMyAqIDUgKyA0KTsKLX0KLQotdGVzdHMuYml0U3Vic2NyaXB0QWNjZXNzb3IgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUJp
dG1hc2thYmxlIDogRXF1YXRhYmxlIHsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0
b3ImKE15Qml0bWFza2FibGUsIE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNr
YWJsZSBvcGVyYXRvcnwoTXlCaXRtYXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAg
ICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yfihNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15
Qml0bWFza2FibGUgb3BlcmF0b3I8PChNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAgICAg
IE15Qml0bWFza2FibGUgb3BlcmF0b3I+PihNeUJpdG1hc2thYmxlLCB1aW50KTsKLSAgICAgICAg
ICAgIG9wZXJhdG9yIE15Qml0bWFza2FibGUoaW50KTsKLSAgICAgICAgfQotICAgICAgICBUIG1h
c2tGb3JCaXRJbmRleDxUOk15Qml0bWFza2FibGU+KHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBUKDEpIDw8IGluZGV4OwotICAgICAgICB9Ci0gICAgICAgIGJvb2wg
b3BlcmF0b3JbXTxUOk15Qml0bWFza2FibGU+KFQgdmFsdWUsIHVpbnQgaW5kZXgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBib29sKHZhbHVlICYgbWFza0ZvckJpdEluZGV4PFQ+KGlu
ZGV4KSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBvcGVyYXRvcltdPTxUOk15Qml0bWFza2FibGU+
KFQgdmFsdWUsIHVpbnQgaW5kZXgsIGJvb2wgYml0KQotICAgICAgICB7Ci0gICAgICAgICAgICBU
IG1hc2sgPSBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpOwotICAgICAgICAgICAgaWYgKGJpdCkK
LSAgICAgICAgICAgICAgICB2YWx1ZSB8PSBtYXNrOwotICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgIHZhbHVlICY9IH5tYXNrOwotICAgICAgICAgICAgcmV0dXJuIHZhbHVlOwotICAg
ICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKGludCkKLSAgICAgICAgewotICAg
ICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVu
Z3RoKHVpbnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgdGVzdEludFNldEJpdDMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
Zm9vOwotICAgICAgICAgICAgZm9vWzNdID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb287
Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCB0ZXN0SW50U2V0R2V0Qml0NSgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIGludCBmb287Ci0gICAgICAgICAgICBmb29bNV0gPSB0cnVlOwotICAgICAg
ICAgICAgcmV0dXJuIGZvb1s1XTsKLSAgICAgICAgfQotICAgICAgICBib29sIHRlc3RJbnRHZXRC
aXQxKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIHJldHVy
biBmb29bMV07Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RVaW50U3VtQml0cygpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0MjsKLSAgICAgICAgICAgIGludCByZXN1bHQ7
Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoZm9vW2ldKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQrKzsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAg
ICAgICAgaW50IHRlc3RVaW50U3dhcEJpdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQg
Zm9vID0gNDI7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBmb28ubGVuZ3RoIC8g
MjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgYm9vbCB0bXAgPSBmb29baV07Ci0gICAgICAgICAg
ICAgICAgZm9vW2ldID0gZm9vW2Zvby5sZW5ndGggLSBpIC0gMV07Ci0gICAgICAgICAgICAgICAg
Zm9vW2Zvby5sZW5ndGggLSBpIC0gMV0gPSB0bXA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAg
ICAgdWludCBmOwotICAgICAgICAgICAgdWludCBnOwotICAgICAgICB9Ci0gICAgICAgIG9wZXJh
dG9yIEZvbyh1aW50IGYsIHVpbnQgZykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3Vs
dDsKLSAgICAgICAgICAgIHJlc3VsdC5mID0gZjsKLSAgICAgICAgICAgIHJlc3VsdC5nID0gZzsK
LSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJh
dG9yLmgoRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGludCgoZm9vLmYg
JiAweGZmZmYpIHwgKChmb28uZyAmIDB4ZmZmZikgPDwgMTYpKTsKLSAgICAgICAgfQotICAgICAg
ICBGb28gb3BlcmF0b3IuaD0oRm9vIGZvbywgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBmb28uZiAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5mIHw9IHVpbnQodmFsdWUp
ICYgMHhmZmZmOwotICAgICAgICAgICAgZm9vLmcgJj0gfjB4ZmZmZnU7Ci0gICAgICAgICAgICBm
b28uZyB8PSAodWludCh2YWx1ZSkgPj4gMTYpICYgMHhmZmZmOwotICAgICAgICAgICAgcmV0dXJu
IGZvbzsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdExWYWx1ZUVtdWxhdGlvbigpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAgICBmb28uZiA9IDQyOwotICAg
ICAgICAgICAgZm9vLmcgPSAzNzsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZv
by5oLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgICAgIGZvby5oW2ldIF49IHRydWU7Ci0gICAg
ICAgICAgICByZXR1cm4gaW50KGZvby5mICsgZm9vLmcpOwotICAgICAgICB9Ci0gICAgICAgIHN0
cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vIGE7Ci0gICAgICAgICAgICBGb28gYjsKLSAgICAg
ICAgfQotICAgICAgICBGb28gb3BlcmF0b3IuYyhCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gRm9vKHVpbnQoYmFyLmEuaCksIHVpbnQoYmFyLmIuaCkpOwotICAgICAgICB9
Ci0gICAgICAgIEJhciBvcGVyYXRvci5jPShCYXIgYmFyLCBGb28gZm9vKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBiYXIuYS5oID0gaW50KGZvby5mKTsKLSAgICAgICAgICAgIGJhci5iLmggPSBp
bnQoZm9vLmcpOwotICAgICAgICAgICAgcmV0dXJuIGJhcjsKLSAgICAgICAgfQotICAgICAgICBp
bnQgdGVzdENyYXp5TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFy
IGJhcjsKLSAgICAgICAgICAgIGJhci5hLmYgPSAxOwotICAgICAgICAgICAgYmFyLmEuZyA9IDI7
Ci0gICAgICAgICAgICBiYXIuYi5mID0gMzsKLSAgICAgICAgICAgIGJhci5iLmcgPSA0OwotICAg
ICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgYmFyLmMuaC5sZW5ndGg7IGkgKz0gMikKLSAg
ICAgICAgICAgICAgICBiYXIuYy5oW2ldIF49IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gaW50
KGJhci5hLmYgKyBiYXIuYS5nICsgYmFyLmIuZiArIGJhci5iLmcpOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50
U2V0Qml0MyIsIFtdLCBbXSksIDgpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RJbnRTZXRHZXRCaXQ1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEludEdldEJpdDEiLCBb
XSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0VWludFN1bUJpdHMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RVaW50U3dhcEJpdHMiLCBbXSwgW10pLCAxNDA5
Mjg2MTQ0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCAxMzA5OTEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdENyYXp5TFZhbHVlRW11bGF0aW9uIiwgW10s
IFtdKSwgNDM2OTYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFN1cGVyQmFzaWMiLCBbXSksIDEgKyAyICsgMyArIDQpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10pLCA5
MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpT
ZXR0ZXIiLCBbXSksIDUzICsgOTMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RaR2V0dGVyIiwgW10pLCAxICsgMyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10pLCAx
ICsgMiArIDMgKiA1ICsgNCk7CiB9CiAKIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxh
dGlvblNpbXBsZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAg
ICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50WzddIGFycmF5OwotICAgICAgICB9
Ci0gICAgICAgIGludCBvcGVyYXRvcltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAg
IEZvbyBvcGVyYXRvcltdPShGb28gZm9vLCB1aW50IGluZGV4LCBpbnQgdmFsdWUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvby5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJl
dHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoRm9vIGZv
bykKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheS5sZW5ndGg7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IHN1bShGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0t
OykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZv
b1s2XSBhcnJheTsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChCYXIg
YmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5Lmxlbmd0aDsKLSAg
ICAgICAgfQotICAgICAgICBGb28gb3BlcmF0b3JbXShCYXIgYmFyLCB1aW50IGluZGV4KQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5W2luZGV4XTsKLSAgICAgICAgfQot
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyIGJhciwgdWludCBpbmRleCwgRm9vIHZhbHVlKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBiYXIuYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAg
ICAgICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oQmFyIGJhcikKLSAg
ICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVp
bnQgaSA9IGJhci5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShi
YXJbaV0pOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBz
dHJ1Y3QgQmF6IHsKLSAgICAgICAgICAgIEJhcls1XSBhcnJheTsKLSAgICAgICAgfQotICAgICAg
ICBCYXIgb3BlcmF0b3JbXShCYXogYmF6LCB1aW50IGluZGV4KQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gYmF6LmFycmF5W2luZGV4XTsKLSAgICAgICAgfQotICAgICAgICBCYXogb3Bl
cmF0b3JbXT0oQmF6IGJheiwgdWludCBpbmRleCwgQmFyIHZhbHVlKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBiYXouYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0gICAgICAgICAgICByZXR1cm4gYmF6
OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJheiBiYXopCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0g
ICAgICAgIGludCBzdW0oQmF6IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3Vs
dCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspCi0gICAg
ICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXpbaV0pOwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXop
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTsp
IHsKLSAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTsp
IHsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3Ro
OyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkg
KyBqICsgayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0g
ICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAg
QmF6IGJhejsKLSAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAgICAgIHJldHVy
biBzdW0oYmF6KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZh
bHVlc0FuZFN1bSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAg
ICBzZXRWYWx1ZXMoJmJheik7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7
IGktLTspIHsKLSAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGot
LTspIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSBiYXpbaV1bal0ubGVuZ3Ro
OyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgYmF6W2ldW2pdW2tdICo9IGludChrKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gc3Vt
KGJheik7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNN
dXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKLX0KLQotdGVzdHMubmVzdGVkU3Vi
c2NyaXB0TFZhbHVlRW11bGF0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVFs3
XSBhcnJheTsKKyAgICAgICAgICAgIGludFs3XSBhcnJheTsKICAgICAgICAgfQotICAgICAgICBU
IG9wZXJhdG9yW108VD4oRm9vPFQ+IGZvbywgdWludCBpbmRleCkKKyAgICAgICAgaW50IG9wZXJh
dG9yW10oRm9vIGZvbywgdWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IGZvby5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW109
PFQ+KEZvbzxUPiBmb28sIHVpbnQgaW5kZXgsIFQgdmFsdWUpCisgICAgICAgIEZvbyBvcGVyYXRv
cltdPShGb28gZm9vLCB1aW50IGluZGV4LCBpbnQgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIGZvby5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBmb287CiAg
ICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oRm9vPFQ+IGZvbykKKyAg
ICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoRm9vIGZvbykKICAgICAgICAgewogICAgICAgICAg
ICAgcmV0dXJuIGZvby5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wg
TXlBZGRhYmxlIHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBN
eUFkZGFibGUpOwotICAgICAgICB9Ci0gICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihGb288VD4g
Zm9vKQorICAgICAgICBpbnQgc3VtKEZvbyBmb28pCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQg
cmVzdWx0OworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVp
bnQgaSA9IGZvby5sZW5ndGg7IGktLTspCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvb1tp
XTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0
IEJhcjxUPiB7Ci0gICAgICAgICAgICBGb288VD5bNl0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBC
YXIgeworICAgICAgICAgICAgRm9vWzZdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQg
b3BlcmF0b3IubGVuZ3RoPFQ+KEJhcjxUPiBiYXIpCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVu
Z3RoKEJhciBiYXIpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVu
Z3RoOwogICAgICAgICB9Ci0gICAgICAgIEZvbzxUPiBvcGVyYXRvcltdPFQ+KEJhcjxUPiBiYXIs
IHVpbnQgaW5kZXgpCisgICAgICAgIEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgp
CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwogICAgICAg
ICB9Ci0gICAgICAgIEJhcjxUPiBvcGVyYXRvcltdPTxUPihCYXI8VD4gYmFyLCB1aW50IGluZGV4
LCBGb288VD4gdmFsdWUpCisgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGlu
ZGV4LCBGb28gdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0g
PSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBiYXI7CiAgICAgICAgIH0KLSAgICAgICAgVCBz
dW08VDpNeUFkZGFibGU+KEJhcjxUPiBiYXIpCisgICAgICAgIGludCBzdW0oQmFyIGJhcikKICAg
ICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0g
MDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKICAgICAgICAg
ICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXo8VD4gewotICAgICAgICAgICAgQmFyPFQ+
WzVdIGFycmF5OworICAgICAgICBzdHJ1Y3QgQmF6IHsKKyAgICAgICAgICAgIEJhcls1XSBhcnJh
eTsKICAgICAgICAgfQotICAgICAgICBCYXI8VD4gb3BlcmF0b3JbXTxUPihCYXo8VD4gYmF6LCB1
aW50IGluZGV4KQorICAgICAgICBCYXIgb3BlcmF0b3JbXShCYXogYmF6LCB1aW50IGluZGV4KQog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYmF6LmFycmF5W2luZGV4XTsKICAgICAgICAg
fQotICAgICAgICBCYXo8VD4gb3BlcmF0b3JbXT08VD4oQmF6PFQ+IGJheiwgdWludCBpbmRleCwg
QmFyPFQ+IHZhbHVlKQorICAgICAgICBCYXogb3BlcmF0b3JbXT0oQmF6IGJheiwgdWludCBpbmRl
eCwgQmFyIHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICBiYXouYXJyYXlbaW5kZXhdID0g
dmFsdWU7CiAgICAgICAgICAgICByZXR1cm4gYmF6OwogICAgICAgICB9Ci0gICAgICAgIHVpbnQg
b3BlcmF0b3IubGVuZ3RoPFQ+KEJhejxUPiBiYXopCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVu
Z3RoKEJheiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXkubGVu
Z3RoOwogICAgICAgICB9Ci0gICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihCYXo8VD4gYmF6KQor
ICAgICAgICBpbnQgc3VtKEJheiBiYXopCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0
OworICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9
IGJhei5sZW5ndGg7IGktLTspCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXpbaV0p
OwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBwcm90b2Nv
bCBNeUNvbnZlcnRpYmxlRnJvbVVpbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgTXlDb252ZXJ0
aWJsZUZyb21VaW50KHVpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIFNldFZhbHVh
YmxlIDogTXlBZGRhYmxlLCBNeUNvbnZlcnRpYmxlRnJvbVVpbnQgeyB9Ci0gICAgICAgIHZvaWQg
c2V0VmFsdWVzPFQ6U2V0VmFsdWFibGU+KHRocmVhZCBCYXo8VD4qIGJheikKKyAgICAgICAgdm9p
ZCBzZXRWYWx1ZXModGhyZWFkIEJheiogYmF6KQogICAgICAgICB7CiAgICAgICAgICAgICBmb3Ig
KHVpbnQgaSA9IGJhei0+bGVuZ3RoOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1aW50
IGogPSAoKmJheilbaV0ubGVuZ3RoOyBqLS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGZvciAo
dWludCBrID0gKCpiYXopW2ldW2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAg
ICAgICgqYmF6KVtpXVtqXVtrXSA9IFQoaSArIGogKyBrKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICgqYmF6KVtpXVtqXVtrXSA9IGludChpICsgaiArIGspOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVlc0FuZFN1
bSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJh
eiBiYXo7CiAgICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICByZXR1cm4g
c3VtKGJheik7CiAgICAgICAgIH0KICAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1
ZXNBbmRTdW0oKQogICAgICAgICB7Ci0gICAgICAgICAgICBCYXo8aW50PiBiYXo7CisgICAgICAg
ICAgICBCYXogYmF6OwogICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwogICAgICAgICAgICAg
Zm9yICh1aW50IGkgPSBiYXoubGVuZ3RoOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgZm9yICh1
aW50IGogPSBiYXpbaV0ubGVuZ3RoOyBqLS07KSB7CkBAIC0zMjYxLDggKzI2NjAsOCBAQCB0ZXN0
cy5uZXN0ZWRTdWJzY3JpcHRMVmFsdWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHN1bShiYXopOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwg
W10sIFtdKSwgMTU3NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgNTU2NSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVz
QW5kU3VtIiwgW10pLCAxNTc1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSksIDU1NjUpOwog
fQogCiB0ZXN0cy5ib29sQml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzI3MywxMCArMjY3MiwxMCBA
QCB0ZXN0cy5ib29sQml0QW5kID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBi
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0s
IHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwogfQogCiB0ZXN0cy5i
b29sQml0T3IgPSBmdW5jdGlvbigpCkBAIC0zMjg3LDEwICsyNjg2LDEwIEBAIHRlc3RzLmJvb2xC
aXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29s
KHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29s
KHByb2dyYW0sIHRydWUpXSksIHRydWUpOwogfQogCiB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rp
b24oKQpAQCAtMzMwMSwxMCArMjcwMCwxMCBAQCB0ZXN0cy5ib29sQml0WG9yID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0
cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVl
KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIGZhbHNlKTsKIH0KIAogdGVzdHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzMTUs
OCArMjcxNCw4IEBAIHRlc3RzLmJvb2xCaXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAK
IHRlc3RzLmludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTMzMjcsMTAgKzI3MjYsMTAgQEAgdGVz
dHMuaW50Qml0QW5kID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyld
KSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0
Mik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChw
cm9ncmFtLCAtNyldKSwgLTcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3
MzIpXSksIDApOwogfQogCiB0ZXN0cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMzNDEsMTAg
KzI3NDAsMTAgQEAgdGVzdHMuaW50Qml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gYSB8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJv
Z3JhbSwgNDIpXSksIDY1NTM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3Jh
bSwgLTcpXSksIC0xKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTcz
MildKSwgODU3MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0
WG9yID0gZnVuY3Rpb24oKQpAQCAtMzM1NSwxMCArMjc1NCwxMCBAQCB0ZXN0cy5pbnRCaXRYb3Ig
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAx
KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUlu
dChwcm9ncmFtLCA0MildKSwgNjU0OTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dy
YW0sIC03KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0p
LCA4NTczMik7CiB9CiAKIHRlc3RzLmludEJpdE5vdCA9IGZ1bmN0aW9uKCkKQEAgLTMzNjksMTAg
KzI3NjgsMTAgQEAgdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgLTIpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDY1NTM1KV0pLCAtNjU1MzYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKV0p
LCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2NTUzNSldKSwgLTY1NTM2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKV0pLCAwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDApXSksIC0xKTsKIH0KIAogdGVzdHMuaW50TFNoaWZ0ID0gZnVuY3Rpb24o
KQpAQCAtMzM4MywxMCArMjc4MiwxMCBAQCB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gYSA8PCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwg
bWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMjYyMTQwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
LTMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAog
dGVzdHMuaW50UlNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzM5NywxMCArMjc5NiwxMCBAQCB0ZXN0
cy5pbnRSU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwg
MTYzODMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMTYzODMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zNDEx
LDEwICsyODEwLDEwIEBAIHRlc3RzLnVpbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEp
LCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyODkpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDEpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHBy
b2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwg
LTcpXSksIDQyOTQ5NjcyODkpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
ODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50Qml0T3IgPSBmdW5jdGlvbigpCkBAIC0zNDI1
LDEwICsyODI0LDEwIEBAIHRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBt
YWtlVWludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI5NSk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VV
aW50KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMudWludEJpdFhvciA9IGZ1bmN0
aW9uKCkKQEAgLTM0MzksMTAgKzI4MzgsMTAgQEAgdGVzdHMudWludEJpdFhvciA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9u
KCkKQEAgLTM0NTMsMTAgKzI4NTIsMTAgQEAgdGVzdHMudWludEJpdE5vdCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMSldKSwgNDI5NDk2NzI5NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5
NDkwMTc2MCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAwKV0pLCA0Mjk0OTY3Mjk1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSldKSwgNDI5NDk2NzI5NCk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYwKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpXSks
IDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAwKV0pLCA0Mjk0OTY3Mjk1KTsKIH0KIAogdGVzdHMudWludExT
aGlmdCA9IGZ1bmN0aW9uKCkKQEAgLTM0NjcsMTAgKzI4NjYsMTAgQEAgdGVzdHMudWludExTaGlm
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIx
NDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA0Mjk0
OTY3MjY0KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAw
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA0Mjk0OTY3MjY0KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50
UlNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzQ4MSwxMCArMjg4MCwxMCBAQCB0ZXN0cy51aW50UlNo
aWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDAp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4
Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEzNDIx
NzcyNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdEFu
ZCA9IGZ1bmN0aW9uKCkKQEAgLTM0OTUsMTAgKzI4OTQsMTAgQEAgdGVzdHMudWludDhCaXRBbmQg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsK
LSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQy
KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDI0
OSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSks
IDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMSk7Cisg
ICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKKyAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVz
dHMudWludDhCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM1MDksMTAgKzI5MDgsMTAgQEAgdGVzdHMu
dWludDhCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDcpXSksIDcpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFt
LCA0MildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3Jh
bSwgLTcpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3Jh
bSwgODU3MzIpXSksIDIyOCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFt
LCA3KV0pLCA3KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0
MildKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyld
KSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0p
LCAyMjgpOwogfQogCiB0ZXN0cy51aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTM1MjMsMTAg
KzI5MjIsMTAgQEAgdGVzdHMudWludDhCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSks
IG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDIxMyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0x
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCks
IG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyMTMpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIC03KV0pLCA2KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHBy
b2dyYW0sIDg1NzMyKV0pLCAyMjgpOwogfQogCiB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9u
KCkKQEAgLTM1MzcsMTAgKzI5MzYsMTAgQEAgdGVzdHMudWludDhCaXROb3QgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgMSldKSwgMjU0KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpXSksIDApOwot
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApXSks
IDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMSldKSwgMjU0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUz
NSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDAp
XSksIDI1NSk7CiB9CiAKIHRlc3RzLnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU1MSwx
MCArMjk1MCwxMCBAQCB0ZXN0cy51aW50OExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1
NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjUyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
LTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyMjQpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAw
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAyNTIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMjI0KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwg
MyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzU2NSwx
MCArMjk2NCwxMCBAQCB0ZXN0cy51aW50OFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhID4+IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0x
KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCA3KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHBy
b2dyYW0sIDIpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0p
LCAwKTsKIH0KIAogdGVzdHMuZmxvYXRNYXRoID0gZnVuY3Rpb24oKQpAQCAtMzYyNCwxNyArMzAy
MywxNyBAQCB0ZXN0cy5mbG9hdE1hdGggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
ZmxvYXQoeCk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzQiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb281IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCA3LjUpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10sIFtdKSwg
Ny41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzEwIiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSwgW10pLCA3KTsKLSAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSwgW10pLCA3LjUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIDcuNSk7Cisg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSks
IDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzkiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzEwIiwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtdKSwgNyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCA3LjUpOwogICAgIGNoZWNrRmFp
bCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBiYXIoaW50IHgpCkBA
IC0zNzI5LDcgKzMxMjgsNyBAQCB0ZXN0cy5nZW5lcmljQ2FzdEluZmVyID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHgucmVhbCArIHguaW1hZzsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDMpOwogfQogCiB0ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKQEAgLTM3Njgs
MTQgKzMxNjcsMTQgQEAgdGVzdHMuYm9vbGVhbk1hdGggPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2UgfHwgZmFsc2U7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10s
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10sIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzciLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdKSwgZmFsc2UpOwog
fQogCiB0ZXN0cy5ib29sZWFuU2hvcnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQpAQCAtMzgxNiwx
MCArMzIxNSwxMCBAQCB0ZXN0cy5ib29sZWFuU2hvcnRjaXJjdWl0aW5nID0gZnVuY3Rpb24oKQog
ICAgICAgICB9CiAgICAgYCk7CiAKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImFuZFRydWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZEZhbHNlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvclRydWUiLCBbXSwgW10pLCAxKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yRmFsc2UiLCBb
XSwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImFuZFRydWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYW5kRmFsc2UiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAib3JUcnVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yRmFsc2UiLCBbXSksIDIpOwogfQogCiB0ZXN0cy50
eXBlZGVmQXJyYXkgPSBmdW5jdGlvbigpCkBAIC0zODMyLDcgKzMyMzEsNyBAQCB0ZXN0cy50eXBl
ZGVmQXJyYXkgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYXJyYXlUeXBlZGVmWzBd
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNoYWRlclR5cGVz
ID0gZnVuY3Rpb24oKQpAQCAtNDA4NCwyNCArMzQ4MywyNCBAQCB0ZXN0cy5idWlsdGluVmVjdG9y
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiID09IGM7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtdLCBbXSksIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtd
KSwgZmFsc2UpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3UiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb291MiIsIFtdLCBbXSksIDQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTQiLCBbXSwgW10pLCA1KTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb3U2IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hl
Y2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10sIFtdKSwg
Myk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y0
IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vZjUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCA0KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtd
KSwgNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb3UiLCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UyIiwgW10pLCA0KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MyIsIFtdKSwgMyk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTQiLCBbXSksIDUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291
NiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb29mIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vZjIiLCBbXSksIDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMyIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y0IiwgW10pLCA1KTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdKSwgdHJ1ZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjYiLCBb
XSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0
aW9uKCkKQEAgLTQxMjEsNyArMzUyMCw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1
Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC54Lng7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdKSwgNDMpOwogfQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0
V2l0aEludDIgPSBmdW5jdGlvbigpCkBAIC00MTM4LDcgKzM1MzcsNyBAQCB0ZXN0cy5pbnN0YW50
aWF0ZVN0cnVjdEluU3RydWN0V2l0aEludDIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4geC54Lng7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDMpOwogfQogCiB0ZXN0cy5z
aW1wbGVFbnVtID0gZnVuY3Rpb24oKQpAQCAtNDI2MywzMiArMzY2MiwzMiBAQCB0ZXN0cy5zaW1w
bGVFbnVtID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90
RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWlu
ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVW
YWx1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVy
YWwiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtd
LCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNr
d2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMi
LCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFs
IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIi
LCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50RmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBb
XSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJh
bCIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2Fy
ZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhC
YWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1
bmN0aW9uKCkKQEAgLTQzMTcsMTAgKzM3MTYsMTAgQEAgdGVzdHMuZW51bVdpdGhNYW51YWxWYWx1
ZXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vLkRlYXRoOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyIiwgW10sIFtdKSwgNzIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyMyk7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAt
NDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIs
IFtdKSwgNzIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZhbWluZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMjMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAtNDIpOwogfQogCiB0ZXN0cy5lbnVt
V2l0aG91dFplcm8gPSBmdW5jdGlvbigpCkBAIC00Mzc3LDEwICszNzc2LDEwIEBAIHRlc3RzLmVu
dW1XaXRoU29tZU1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBG
b28uRGVhdGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgNzMpOwotICAg
IGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBb
XSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aCIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgIndhciIsIFtdKSwgNzIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgNzMpOworICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDApOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAxKTsK
IH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKQEAg
LTQzOTEsOCArMzc5MCw4IEBAIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljRnVuY3Rpb24gPSBm
dW5jdGlvbigpCiAgICAgICAgIGludCB0ZXN0WCgpIHsgcmV0dXJuIGZvbzxBeGlzLlg+KCk7IH0K
ICAgICAgICAgaW50IHRlc3RZKCkgeyByZXR1cm4gZm9vPEF4aXMuWT4oKTsgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSwg
W10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RZIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0WCIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0WSIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmVudW1Db25zdGV4cHJH
ZW5lcmljU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtNDQxMiw4ICszODExLDggQEAgdGVzdHMuZW51
bUNvbnN0ZXhwckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
Zm9vKGYpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAx
KTsKIH0KIAogdGVzdHMudHJhcCA9IGZ1bmN0aW9uKCkKQEAgLTQ0MzksMTQgKzM4MzgsMTQgQEAg
dGVzdHMudHJhcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAor
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDQp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDQpOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSks
CisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHBy
b2dyYW0sIDMpXSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwg
W10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10p
LAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNDQ3MCw5
ICszODY5LDkgQEAgdGVzdHMuc3dpenpsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBxdWl4Lno7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCA2KTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSks
IDQpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW10pLCA2KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMyIsIFtdKSwgNCk7CiB9CiAKIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRC
YXNlID0gZnVuY3Rpb24oKQpAQCAtNDU5NywzMiArMzk5NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aEV4
cGxpY2l0SW50QmFzZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28oaW50RGVh
dGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtd
KSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVh
dGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5v
dGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJp
bnRGYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtd
LCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZmFtaW5lVmFsdWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSks
IDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFs
dWVMaXRlcmFsIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVy
YWwiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10sIFtdKSwg
MCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFt
aW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdLCBbXSksIDIpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoQmFj
a3dhcmRzIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAzKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1
YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVO
b3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBb
XSksIHRydWUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50V2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10pLCAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1
ZUxpdGVyYWwiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwg
Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2Fy
QmFja3dhcmRzIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBb
XSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImlu
dERlYXRoQmFja3dhcmRzIiwgW10pLCAzKTsKIH0KIAogdGVzdHMuZW51bVdpdGhVaW50QmFzZSA9
IGZ1bmN0aW9uKCkKQEAgLTQ3NDcsMzIgKzQxNDYsMzIgQEAgdGVzdHMuZW51bVdpdGhVaW50QmFz
ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28odWludERlYXRoKCkpOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAg
IGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtd
KSwgMyk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFNpbXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVh
bCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVh
bCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyIiwgW10sIFtdKSwgMCk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWlu
ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInVpbnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludERlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwg
W10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
YW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10p
LCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVM
aXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyQmFja3dhcmRzIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dWludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtd
KSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dERlYXRoQmFja3dhcmRzIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10p
LCAzKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0
U2ltcGxlRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwg
ZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTaW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90
RXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInVpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgi
LCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
IndhclZhbHVlIiwgW10pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10p
LCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIs
IFtdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRGYW1pbmVCYWNrd2FyZHMi
LCBbXSksIDEpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InVpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwog
fQogCiB0ZXN0cy5lbnVtRmxvYXRCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDgxOCw3ICs0MjE3LDcg
QEAgdGVzdHMuZW1wdHlTdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gNDY7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDYpOwogfQogCiB0ZXN0cy5lbnVtU3RydWN0
QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ4NTcsOSArNDI1Niw5IEBAIHRlc3RzLnNpbXBsZVN3aXRj
aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDc2NyldKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY5KV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMu
ZXhoYXVzdGl2ZVVpbnQ4U3dpdGNoID0gZnVuY3Rpb24oKQpAQCAtNDg3MCw3ICs0MjY5LDcgQEAg
dGVzdHMuZXhoYXVzdGl2ZVVpbnQ4U3dpdGNoID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0g
fSI7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7
IGkgPCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsK
KyAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLm5vdFF1aXRl
RXhoYXVzdGl2ZVVpbnQ4U3dpdGNoID0gZnVuY3Rpb24oKQpAQCAtNDg5MSw3ICs0MjkwLDcgQEAg
dGVzdHMubm90UXVpdGVFeGhhdXN0aXZlVWludDhTd2l0Y2hXaXRoRGVmYXVsdCA9IGZ1bmN0aW9u
KCkKICAgICB0ZXh0ICs9ICJ9IH0iOwogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQpOwog
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgaSldKSwgaSAqIDEuNSk7CisgICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOwog
fQogCiB0ZXN0cy5zd2l0Y2hGYWxsVGhyb3VnaCA9IGZ1bmN0aW9uKCkKQEAgLTQ5MTMsOSArNDMx
Miw5IEBAIHRlc3RzLnN3aXRjaEZhbGxUaHJvdWdoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDc2Nyld
KSwgMjcgKyA3NjI0ICsgNDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcgKyA3NjI0
ICsgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0p
LCA0OSk7CiB9CiAKIHRlc3RzLnN3aXRjaEJyZWFrID0gZnVuY3Rpb24oKQpAQCAtNDkzOCw5ICs0
MzM3LDkgQEAgdGVzdHMuc3dpdGNoQnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAy
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSks
IDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhh
dXN0aXZlID0gZnVuY3Rpb24oKQpAQCAtNDk2Niw5ICs0MzY1LDkgQEAgdGVzdHMuZW51bVN3aXRj
aEJyZWFrRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3Jh
bSwgIkZvbyIsICJDIildKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
RW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkMiKV0pLCA0OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha05vdFF1aXRlRXhoYXVzdGl2
ZSA9IGZ1bmN0aW9uKCkKQEAgLTUwMjEsOSArNDQyMCw5IEBAIHRlc3RzLmVudW1Td2l0Y2hCcmVh
a05vdFF1aXRlRXhoYXVzdGl2ZVdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9v
IiwgIkEiKV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIs
ICJBIildKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaXZlU3Ry
dWN0ID0gZnVuY3Rpb24oKQpAQCAtNTA3Miw3ICs0NDcxLDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1
cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAg
ICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgLTUxMSksCisgICAgICAgICgpID0+
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAtNTEx
KSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTUwOTgs
NyArNDQ5Nyw3IEBAIHRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZv
bzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgLTUxMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpOwogfQogCiB0ZXN0cy5saW5r
ZWRMaXN0ID0gZnVuY3Rpb24oKQpAQCAtNTExOSw3ICs0NTE4LDcgQEAgdGVzdHMubGlua2VkTGlz
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4Lm5leHQtPm5leHQtPnZhbHVlOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJUb1BvaW50
ZXIgPSBmdW5jdGlvbigpCkBAIC01MTQyLDcgKzQ1NDEsNyBAQCB0ZXN0cy5wb2ludGVyVG9Qb2lu
dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNzYgKyAzOSArIDgzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzYgKyAzOSArIDgzKTsKIH0KIAogdGVzdHMuYXJy
YXlSZWZUb0FycmF5UmVmID0gZnVuY3Rpb24oKQpAQCAtNTE2NSw3ICs0NTY0LDcgQEAgdGVzdHMu
YXJyYXlSZWZUb0FycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNzYgKyAzOSArIDgzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzYgKyAzOSArIDgzKTsK
IH0KIAogdGVzdHMucG9pbnRlckdldHRlciA9IGZ1bmN0aW9uKCkKQEAgLTUyNDYsOTQgKzQ2NDUs
NiBAQCB0ZXN0cy5zZXR0ZXJXaXRoTWF0Y2hlZFR5cGUgPSBmdW5jdGlvbigpCiAgICAgYCk7CiB9
CiAKLXRlc3RzLm9wZXJhdG9yV2l0aFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIEZvbyBvcGVyYXRvcis8VD4oRm9vIGEsIEZvbyBiKQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnggPSBh
LnggKyBiLng7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQot
Ci10ZXN0cy5vcGVyYXRvcldpdGhvdXRVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlv
bigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcisoRm9v
IGEsIEZvbyBiKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAg
ICAgcmVzdWx0LnggPSBhLnggKyBiLng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgICAgIGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gYTsK
LSAgICAgICAgICAgIGEueCA9IDY0NTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICAgICAg
Yi54ID0gLTM1OwotICAgICAgICAgICAgcmV0dXJuIChhICsgYikueDsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgNjQ1IC0gMzUpOwotfQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVW5pbmZlcnJh
YmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAg
IGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgb3BlcmF0b3I8VD4gRm9vKGludCB4
KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0LnggPSB4OwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVy
cm9yKTsKLX0KLQotdGVzdHMub3BlcmF0b3JDYXN0V2l0aFR5cGVWYXJpYWJsZUluZmVycmVkRnJv
bVJldHVyblR5cGUgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICB9Ci0gICAg
ICAgIHByb3RvY29sIEJhcmFibGUgewotICAgICAgICAgICAgdm9pZCBiYXIodGhyZWFkIEJhcmFi
bGUqLCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBmbG9hdCogcmVz
dWx0LCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgICpyZXN1bHQgPSBmbG9hdCh2
YWx1ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3I8VDpCYXJhYmxlPiBUKEZvbyBmb28p
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OwotICAgICAgICAgICAgYmFyKCZyZXN1
bHQsIGZvby54KTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBmb287Ci0gICAgICAgICAg
ICBmb28ueCA9IDc1OwotICAgICAgICAgICAgZmxvYXQgeCA9IGZsb2F0KGZvbyk7Ci0gICAgICAg
ICAgICByZXR1cm4gaW50KHggKiAxLjUpOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMTIpOwot
fQotCiB0ZXN0cy5pbmNXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gZnVuY3Rpb24oKQogewogICAgIGNo
ZWNrRmFpbCgKQEAgLTU4MjMsNyArNTEzNCw3IEBAIHRlc3RzLmFuZGVyV2l0aE5vdGhpbmdXcm9u
ZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LmZvbzsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCAxMyk7CiB9CiAKIHRlc3RzLmFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1
bWVudHMgPSBmdW5jdGlvbigpCkBAIC01ODk3LDcgKzUyMDgsNyBAQCB0ZXN0cy5hbmRlcldpdGhB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQHgpLmZvbzsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCAxMyk7CiB9CiAKIHRlc3RzLnBvaW50ZXJJbmRleEdldHRl
ciA9IGZ1bmN0aW9uKCkKQEAgLTYwODMsNyArNTM5NCw3IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRo
Tm90aGluZ1dyb25nID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHhbNjY2XTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAxMyk7CiB9CiAKIHRlc3RzLmluZGV4QW5kZXJXaXRo
V3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAgLTYxNjgsNyArNTQ3OSw3IEBA
IHRlc3RzLmluZGV4QW5kZXJXaXRoQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gKEB4KVtmbG9hdCgtMSldOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsK
IH0KIAogdGVzdHMuZGV2aWNlUHRyUHRyID0gZnVuY3Rpb24oKQpAQCAtNjIwNywzMDYgKzU1MTgs
NiBAQCB0ZXN0cy5jb25zdGFudFB0clB0ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVy
IHRvIG5vbi1wcmltaXRpdmUgdHlwZTogaW50MzIqIGNvbnN0YW50KiBjb25zdGFudCIpICE9IC0x
KTsKIH0KIAotdGVzdHMucG9pbnRlckluZGV4R2V0dGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkK
LXsKLSAgICBmb3IgKGxldCBhZGRyZXNzU3BhY2Ugb2YgYWRkcmVzc1NwYWNlcykgewotICAgICAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKCR7YWRk
cmVzc1NwYWNlfSBGb28qLCB1aW50KTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVp
bnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBgKSwKLSAgICAgICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIGdl
dHRlciBmb3IgcG9pbnRlciB0eXBlIikgIT0gLTEpOwotICAgIH0KLX0KLQotdGVzdHMubG9uZUlu
ZGV4U2V0dGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAg
ICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFy
LCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwg
dWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRXZlcnkgc2V0dGVy
IG11c3QgaGF2ZSBhIG1hdGNoaW5nIGdldHRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMubm90TG9u
ZUluZGV4U2V0dGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAg
ICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCB1aW50
KTsKLSAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAg
IH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1
aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBp
bnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgYCk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0
aE1pc21hdGNoZWRUeXBlSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgICAgIGZsb2F0IG9wZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAgICAg
ICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWlu
dCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQs
IGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlNldHRlciBhbmQgZ2V0dGVy
IG11c3QgYWdyZWUgb24gdmFsdWUgdHlwZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhPcGVy
YXRvcldyb25nQXJndW1lbnRMZW5ndGhJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZv
byB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFy
aWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9v
IHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28pOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJh
ciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIg
b2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRv
UHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBv
cGVyYXRvcltdKEZvbywgaW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Ry
dWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1
cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhPcGVyYXRvclNldHRlcldyb25nQXJndW1lbnRMZW5n
dGhJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAg
aW50IG9wZXJhdG9yW109KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBC
YXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUHJvdG9jb2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5v
dCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW109KEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJl
dHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7
IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJh
bWV0ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9y
W109KEZvbywgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9
Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0g
ICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigp
OyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYm
IGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAt
MSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAg
cHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQs
IGludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0g
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAg
ICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7
Ci19Ci0KLXRlc3RzLmxvbmVJbmRleFNldHRlclBvaW50ZXJJblByb3RvY29sID0gZnVuY3Rpb24o
KQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3JbXT0o
dGhyZWFkIEZvbyogcHRyLCB1aW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
c3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyBy
ZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkg
eyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkNhbm5vdCBoYXZlIHNldHRlciBmb3Ig
cG9pbnRlciB0eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleFNldHRlcldpdGhOb0dldHRl
ck92ZXJsb2FkSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAg
ICAgICAgIGludCBvcGVyYXRvcltdKGludCwgRm9vKTsKLSAgICAgICAgICAgICAgICBGb28gb3Bl
cmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Ry
dWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1
cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyBy
ZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1l
ZCBvcGVyYXRvcltdPSB3aXRoIGFyZ3VtZW50cyBGb28sdWludDMyIikgIT0gLTEpOwotfQotCi10
ZXN0cy5pbmRleFNldHRlcldpdGhOb0dldHRlck92ZXJsb2FkRml4ZWRJblByb3RvY29sID0gZnVu
Y3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9y
W109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAg
IEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBg
KTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5nV3JvbmdJblByb3RvY29sID0gZnVu
Y3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZv
bywgdWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGJhcjxUOkZvbz4oVCB4KQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4geFs0Ml07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0
IEJhciB7IH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVp
bnQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAg
ICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBiYXIoQmFyKCkpOwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10p
LCAxMjM0KTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRz
SW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJh
ciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEy
MzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBp
biBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQg
aW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28pOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCBy
ZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAg
ICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIGZvciBv
cGVyYXRvciZbXSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBp
bnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCwgdWludCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCog
b3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFt
ZXRlcnMgZm9yIG9wZXJhdG9yJltdIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyRG9l
c250UmV0dXJuUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAg
ICAgICAgICAgICAgICBpbnQgb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJl
YWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4g
JnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlJldHVybiB0eXBlIG9mIGFu
ZGVyIGlzIG5vdCBhIHBvaW50ZXIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2Vz
bnRUYWtlUmVmZXJlbmNlSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKEZvbyBmb28sIHVpbnQpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVh
ZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAm
cmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUGFyYW1ldGVyIHRvIGFuZGVy
IGlzIG5vdCBhIHJlZmVyZW5jZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlcldpdGhB
cnJheVJlZkluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGludCogb3Bl
cmF0b3ImW10odGhyZWFkIEZvb1tdIGFycmF5LCBmbG9hdCBpbmRleCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgaW50IGJhcjxUOkZvbz4odGhyZWFkIFRbXSB4KQotICAgICAgICB7Ci0gICAgICAgICAg
ICByZXR1cm4geFsxLjVdOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAg
ICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXJbXSwgZmxvYXQpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgcmV0dXJuICZy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEJhciB4OwotICAgICAgICAgICAgcmV0dXJuIGJhcihAeCk7Ci0gICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDEyMzQpOwotfQotCiB0ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rpb24o
KQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKQEAgLTY1MjIsNyArNTUzMyw3IEBAIHRl
c3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
KnB0cjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMzU0KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMzU0KTsKIH0KIAogb2tUb1Rlc3Qg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5q
cyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKaW5kZXggN2MyODc5MTg5
NTNhNWIxZDVlMzVlODUwZTMzMGYzODlkZjZlNzZlOC4uMjFhMzMxOTU4ZTEzNGJkOTk1ODAzYmRh
ODFmY2NjYzFlZmI0NGM2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCkBA
IC0yNSw3ICsyNSw2IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGUgZXh0ZW5kcyBOb2Rl
IHsKLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiBbXTsgfQogICAgIGdldCBraW5k
KCkgeyByZXR1cm4gVHlwZTsgfQogICAgIGdldCBpc1B0cigpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgZ2V0IGlzQXJyYXkoKSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMzcsMTUgKzM2LDYgQEAgY2xh
c3MgVHlwZSBleHRlbmRzIE5vZGUgewogICAgIGdldCBpc0VudW0oKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIGdldCBpc1ByaW1pdGl2ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCi0gICAgaW5o
ZXJpdHMocHJvdG9jb2wpCi0gICAgewotICAgICAgICBpZiAoIXByb3RvY29sKQotICAgICAgICAg
ICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICByZXR1cm4gcHJvdG9jb2wuaGFzSGVp
cih0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGluc3RhbnRpYXRlZFR5cGUoKSB7IHJldHVy
biB0aGlzLnZpc2l0KG5ldyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMoKSk7IH0KLSAgICAKICAgICAv
LyBIYXZlIHRvIGNhbGwgdGhlc2Ugb24gdGhlIHVuaWZ5Tm9kZS4KICAgICBhcmd1bWVudEZvckFu
ZE92ZXJsb2FkKG9yaWdpbiwgdmFsdWUpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1R5cGVEZWYuanMKaW5kZXggNmMwZjljMTc0ZjUzMjM1NjQxZjRjZDMwMmNhYjRjM2FhYjI3
YzE0My4uZDdiMDBjZDJjNzNlYjNhNWE4ODIzNGJmMjlkYzNhNmFjN2I3MWMzZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCkBAIC0yNSwyMyArMjUsMjEgQEAKICJ1
c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZURlZiBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVj
dG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMsIHR5cGUpCisgICAgY29uc3RydWN0b3Io
b3JpZ2luLCBuYW1lLCB0eXBlKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhp
cy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAg
dGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhpcy5fdHlw
ZSA9IHR5cGU7CiAgICAgfQogICAgIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9v
cmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQg
dHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1ldGVyczsgfQogICAgIGdl
dCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQogICAgIAogICAgIHRvU3RyaW5nKCkKICAg
ICB7Ci0gICAgICAgIHJldHVybiAidHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50
eXBlUGFyYW1ldGVycyArICI+ID0gIiArIHRoaXMudHlwZTsKKyAgICAgICAgcmV0dXJuICJ0eXBl
ZGVmICIgKyB0aGlzLm5hbWUgKyAiID0gIiArIHRoaXMudHlwZTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcwppbmRleCBh
ODFlYWI0MmQ5NDhmY2EzZTkzMGM2ODU3YTk2NGRkY2NmY2VlNTdmLi4wOTFiODQzNTQyYWNhNTkx
ZGZmMjJkMGE2NWEzNTQ5YjhjY2UwMWUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCkBAIC0zNCwyMSArMzQsOSBAQCBjbGFzcyBUeXBl
RGVmUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAg
ICB7CiAgICAgICAgIHRoaXMuX3Zpc2l0aW5nLmRvVmlzaXQobm9kZSwgKCkgPT4gewotICAgICAg
ICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAg
ICAgICAgICAgICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgICAgICBpZiAobm9k
ZS50eXBlIGluc3RhbmNlb2YgVHlwZURlZikgewotICAgICAgICAgICAgICAgIGxldCB1bmlmaWNh
dGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KG5vZGUudHlwZS50eXBlUGFyYW1l
dGVycyk7Ci0gICAgICAgICAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0g
bm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJhcmd1bWVudC9wYXJhbWV0ZXIgbWlzbWF0Y2ggKHNob3VsZCBoYXZlIGJl
ZW4gY2F1Z2h0IGVhcmxpZXIpIik7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgICAgIG5v
ZGUudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG5vZGUudHlwZS50
eXBlUGFyYW1ldGVyc1tpXSk7Ci0gICAgICAgICAgICAgICAgbGV0IHZlcmlmaWNhdGlvblJlc3Vs
dCA9IHVuaWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKLSAgICAgICAgICAgICAgICBpZiAoIXZl
cmlmaWNhdGlvblJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBX
VHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcmVmZXJlbmNlIHRvIGEg
dHlwZSBkZWZpbml0aW9uIHZpb2xhdGVzIHByb3RvY29sIGNvbnN0cmFpbnRzOiAiICsgdmVyaWZp
Y2F0aW9uUmVzdWx0LnJlYXNvbik7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
bGV0IG5ld1R5cGUgPSBub2RlLnR5cGUudHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbihub2Rl
LnR5cGUudHlwZVBhcmFtZXRlcnMsIHVuaWZpY2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICAg
ICAgbmV3VHlwZS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgICAgICBub2RlLnNldFR5cGVBbmRB
cmd1bWVudHMobmV3VHlwZSwgW10pOworICAgICAgICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKKyAgICAgICAgICAgICAgICBub2RlLnNldFR5cGUobm9kZS50eXBlLnR5cGUpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDNiZDAzN2M5MjcyNzUxNjBmYzQ1ZWIyZjlhODY2OTE3NzcxMTZiYTAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMzggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlUGFyYW1ldGVyUmV3cml0ZXIgewot
ICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIG5ldyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5v
ZGUudHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSkpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFR5
cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBUeXBlVmFyaWFibGUo
bm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS5wcm90b2NvbCk7Ci0gICAgfQotfQotCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwppbmRleCBmMmIzMjJmM2FmNmE3MzA4
NjE0MWU1NmQ2OTNlZmNlMWMzNTFkYWZjLi40Zjc0OWI3NDA4NTgyOTNhOTdlYjRhODEzM2NlZjdi
YjhmMDliMDViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UmVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKQEAg
LTI1LDY5ICsyNSw1OCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBlUmVmIGV4dGVuZHMg
VHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzKQorICAg
IGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAgICAg
ICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CiAg
ICAgICAgIHRoaXMudHlwZSA9IG51bGw7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0
eXBlQXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgd3JhcCh0eXBlKQogICAgIHsK
LSAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmICYmICF0eXBlLnR5cGVBcmd1bWVu
dHMpCisgICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgVHlwZVJlZikKICAgICAgICAgICAgIHJl
dHVybiB0eXBlOwogICAgICAgICBsZXQgbmFtZSA9IHR5cGUubmFtZTsKLSAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lLCBbXSk7CisgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgbmFtZSk7CiAgICAgICAgIHJlc3VsdC50
eXBlID0gdHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgc3Rh
dGljIGluc3RhbnRpYXRlKHR5cGUsIHR5cGVBcmd1bWVudHMpCisgICAgc3RhdGljIGluc3RhbnRp
YXRlKHR5cGUpCiAgICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5v
cmlnaW4sIHR5cGUubmFtZSwgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCByZXN1bHQgPSBu
ZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUg
PSB0eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAKICAgICBnZXQgb3JpZ2lu
KCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlz
Ll9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJldHVybiB0aGlzLl90eXBlQXJn
dW1lbnRzOyB9CiAgICAgCiAgICAgZ2V0IHVuaWZ5Tm9kZSgpCiAgICAgewotICAgICAgICBpZiAo
IXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBl
LnVuaWZ5Tm9kZTsKLSAgICAgICAgcmV0dXJuIHRoaXM7CisgICAgICAgIHJldHVybiB0aGlzLnR5
cGUudW5pZnlOb2RlOwogICAgIH0KICAgICAKICAgICBwb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZm
ZXIsIG9mZnNldCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVm
ZmVyLCBvZmZzZXQpOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBnZXQgZGVmYXVs
dCB2YWx1ZSBvZiBhIHR5cGUgaW5zdGFudGlhdGlvbiIpOworICAgICAgICByZXR1cm4gdGhpcy50
eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KTsKICAgICB9CiAgICAgCiAg
ICAgZ2V0IHNpemUoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVu
Z3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5zaXplOwotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbm5vdCBnZXQgc2l6ZSBvZiBhIHR5cGUgaW5zdGFudGlhdGlvbiIpOworICAg
ICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7CiAgICAgfQogICAgIAogICAgIGdldCBpc1ByaW1p
dGl2ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0g
ICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkNhbm5vdCBkZXRlcm1pbmUgaWYgYW4gdW5pbnN0YW50aWF0ZWQgdHlwZSBpcyBw
cmltaXRpdmU6ICIgKyB0aGlzKTsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5pc1ByaW1pdGl2
ZTsKICAgICB9CiAgICAgCi0gICAgc2V0VHlwZUFuZEFyZ3VtZW50cyh0eXBlLCB0eXBlQXJndW1l
bnRzKQorICAgIHNldFR5cGUodHlwZSkKICAgICB7CiAgICAgICAgIHRoaXMuX25hbWUgPSBudWxs
OwogICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOwotICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRz
ID0gdHlwZUFyZ3VtZW50czsKICAgICB9CiAgICAgCiAgICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9u
Q29udGV4dCwgb3RoZXIpCkBAIC05NiwxMiArODUsNiBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMg
VHlwZSB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICghdGhpcy50eXBl
LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZSkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoICE9IG90aGVy
LnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewot
ICAgICAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHNbaV0udW5pZnkodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlci50eXBlQXJndW1lbnRzW2ldKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIApAQCAt
MTA5LDkgKzkyLDcgQEAgY2xhc3MgVHlwZVJlZiBleHRlbmRzIFR5cGUgewogICAgIHsKICAgICAg
ICAgaWYgKCF0aGlzLm5hbWUpCiAgICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnRvU3RyaW5n
KCk7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAg
IHJldHVybiB0aGlzLm5hbWU7Ci0gICAgICAgIHJldHVybiB0aGlzLm5hbWUgKyAiPCIgKyB0aGlz
LnR5cGVBcmd1bWVudHMgKyAiPiI7CisgICAgICAgIHJldHVybiB0aGlzLm5hbWU7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFi
bGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzMjE4YTk1OWY1MWQxZWViOWQwNTE0Yjk1MGRl
Yzk2NzJmYTBiN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTA2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVHlwZVZhcmlhYmxlIGV4dGVuZHMg
VHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCBwcm90b2NvbCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKLSAgICAgICAg
dGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3Byb3RvY29sID0gcHJvdG9jb2w7Ci0g
ICAgfQotICAgIAotICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAg
ICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgcHJvdG9jb2woKSB7
IHJldHVybiB0aGlzLl9wcm90b2NvbDsgfQotICAgIAotICAgIGdldCBpc1ByaW1pdGl2ZSgpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy5fcHJvdG9jb2wgJiYgdGhpcy5fcHJvdG9jb2wuaXNQ
cmltaXRpdmU7Ci0gICAgfQotICAgIAotICAgIGdldCBpc1VuaWZpYWJsZSgpIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICAKLSAgICBpbmhlcml0cyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICgh
cHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGlm
ICghdGhpcy5wcm90b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVh
c29uOiAiVHlwZSB2YXJpYWJsZSAiICsgdGhpcyArICIgZG9lcyBub3QgaGF2ZSBhIHByb3RvY29s
In07Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3RvY29sLmluaGVyaXRzKHByb3RvY29sKTsKLSAg
ICB9Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhl
cikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgVHlwZSkpCi0gICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhpcy5fdHlwZVZh
cmlhYmxlVW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAgICAK
LSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIp
OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4dCkK
LSAgICB7Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRo
aXMpOwotICAgICAgICAKLSAgICAgICAgLy8gVGhlIHRoaW5nIHdlIGdldCB1bmlmaWVkIHdpdGgg
bXVzdCBiZSBhIHR5cGUgdmFyaWFibGUgdGhhdCBhY2NlcHRzIGEgYnJvYWRlciBzZXQgb2YKLSAg
ICAgICAgLy8gdGhpbmdzIHRoYW4gd2UgZG8uCi0gICAgICAgIGlmICghKHJlYWxUaGlzIGluc3Rh
bmNlb2YgVHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwg
cmVhc29uOiAiVHlwZSB2YXJpYWJsZSBhcmd1bWVudCAiICsgdGhpcyArICIgY2Fubm90IGJlIHBh
c3NlZCB0byBub24tdHlwZS12YXJpYWJsZSBwYXJhbWV0ZXIgdHlwZSAiICsgcmVhbFRoaXN9Owot
ICAgICAgICAKLSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKSB7Ci0gICAgICAgICAgICBpZiAo
cmVhbFRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNl
LCByZWFzb246ICJUeXBlIHZhcmlhYmxlIHdpdGhvdXQgcHJvdG9jb2wgIiArIHRoaXMgKyAiIGNh
bm5vdCBiZSBwYXNzZWQgdG8gcGFyYW1ldGVyIHR5cGUgdmFyaWFibGUgd2l0aCBwcm90b2NvbCAi
ICsgcmVhbFRoaXMucHJvdG9jb2x9OwotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5wcm90b2Nv
bC5pbmhlcml0cyhyZWFsVGhpcy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3Vs
dCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiUHJvdG9jb2wg
IiArIHRoaXMucHJvdG9jb2wgKyAiIGRvZXMgbm90IHN1YnN1bWUgcHJvdG9jb2wgIiArIHJlYWxU
aGlzLnByb3RvY29sICsgIiAocGFzc2luZyB0eXBlICIgKyB0aGlzICsgIiB0byB0eXBlICIgKyBy
ZWFsVGhpcyArICIpOiAiICsgcmVzdWx0LnJlYXNvbn07Ci0gICAgICAgIHJldHVybiB7cmVzdWx0
OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdmVyaWZ5QXNQYXJhbWV0ZXIodW5pZmljYXRpb25D
b250ZXh0KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKQotICAgICAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlv
bkNvbnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHJlYWxUaGlzLmluaGVy
aXRzKHRoaXMucHJvdG9jb2wpOwotICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAg
ICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgIiArIHJlYWxUaGlzICsg
IiBkb2VzIG5vdCBpbmhlcml0IHByb3RvY29sICIgKyB0aGlzLnByb3RvY29sICsgIiAocGFzc2lu
ZyB0eXBlICIgKyByZWFsVGhpcyArICIgdG8gdHlwZSAiICsgdGhpcyArICIpOiAiICsgcmVzdWx0
LnJlYXNvbn07Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0g
ICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSArICh0aGlzLnBy
b3RvY29sID8gIjoiICsgdGhpcy5wcm90b2NvbC5uYW1lIDogIiIpOwotICAgIH0KLX0KLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlOWUyOWFhZTE0NTQ5MjdjZDBkNTEz
OWMwODUyMzkxZjgzNWY3YzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tl
ci5qcworKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVHlwZVZhcmlh
YmxlVHJhY2tlciBleHRlbmRzIFZpc2l0b3IgewotICAgIGNvbnN0cnVjdG9yKCkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX3NldCA9IG5ldyBTZXQoKTsKLSAgICB9Ci0g
ICAgCi0gICAgZ2V0IHNldCgpIHsgcmV0dXJuIHRoaXMuX3NldDsgfQotICAgIAotICAgIF9jb25z
aWRlcih0aGluZykKLSAgICB7Ci0gICAgICAgIGlmICh0aGluZy5pc1VuaWZpYWJsZSkKLSAgICAg
ICAgICAgIHRoaXMuX3NldC5hZGQodGhpbmcpOwotICAgIH0KLSAgICAKLSAgICB2aXNpdFR5cGVS
ZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKSB7
Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRz
KQotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotICAgICAgICB0aGlzLl9jb25zaWRlcihub2RlLnR5cGUpOwot
ICAgIH0KLSAgICAKLSAgICB2aXNpdFZhcmlhYmxlUmVmKG5vZGUpCi0gICAgewotICAgICAgICB0
aGlzLl9jb25zaWRlcihub2RlLnZhcmlhYmxlKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcwppbmRleCAwYTEz
ZGU0M2Q1MzI2ZTEzNTdjODdmODg1OWQ5ZDYwMTVlMGNhZDQ3Li5mZWM1MzUxNDU5NjM4NjJjNWJl
MDQyYzhkZmJlNDNmNDk1ZTQyYjgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCkBAIC0yNSw5ICsyNSw4IEBACiAidXNlIHN0
cmljdCI7CiAKIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7Ci0gICAgY29uc3RydWN0b3IodHlw
ZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3IoKQogICAgIHsKLSAgICAgICAgdGhpcy5fdHlw
ZVBhcmFtZXRlcnMgPSBuZXcgU2V0KHR5cGVQYXJhbWV0ZXJzKTsKICAgICAgICAgdGhpcy5fbmV4
dE1hcCA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fZXh0cmFOb2RlcyA9IG5ldyBTZXQoKTsK
ICAgICB9CkBAIC00NSwxMCArNDQsNiBAQCBjbGFzcyBVbmlmaWNhdGlvbkNvbnRleHQgewogICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IHVuaWZ5IG5vbi11bmlmaWFibGUg
dGhpbmdzICIgKyBhICsgIiBhbmQgIiArIGIpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAg
ICAvLyBNYWtlIHN1cmUgdGhhdCB0eXBlIHBhcmFtZXRlcnMgZG9uJ3QgZW5kIHVwIGJlaW5nIHJv
b3RzLgotICAgICAgICBpZiAoYS5pc1VuaWZpYWJsZSAmJiBiLmlzVW5pZmlhYmxlICYmIHRoaXMu
X3R5cGVQYXJhbWV0ZXJzLmhhcyhiKSkKLSAgICAgICAgICAgIFthLCBiXSA9IFtiLCBhXTsKLSAg
ICAgICAgCiAgICAgICAgIHRoaXMuX25leHRNYXAuc2V0KGEsIGIpOwogICAgIH0KICAgICAKQEAg
LTg1LDE4ICs4MCw2IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhp
cy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICAqdHlwZUFyZ3VtZW50cygpCi0gICAgewotICAgICAg
ICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy5ub2RlcykgewotICAgICAgICAgICAgaWYg
KCF0eXBlQXJndW1lbnQuaXNVbmlmaWFibGUpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKHR5cGVBcmd1bWVudCkpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB5aWVsZCB0eXBlQXJndW1lbnQ7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgdmVyaWZ5KCkKICAgICB7CiAgICAgICAgIC8v
IFdlIGRvIGEgdHdvLXBoYXNlIHByZS12ZXJpZmljYXRpb24uIFRoaXMgZ2l2ZXMgbGl0ZXJhbHMg
YSBjaGFuY2UgdG8gc2VsZWN0IGEgbW9yZSBzcGVjaWZpYyB0eXBlLgpAQCAtMTExLDQwICs5NCw3
IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5y
ZXN1bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiB0aGlzLl90eXBlUGFyYW1ldGVy
cykgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVQYXJhbWV0ZXIudmVyaWZ5QXNQYXJh
bWV0ZXIodGhpcyk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBsZXQgbnVtVHlwZVZhcmlh
YmxlQXJndW1lbnRzID0gMDsKLSAgICAgICAgbGV0IGFyZ3VtZW50U2V0ID0gbmV3IFNldCgpOwot
ICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRzKCkpIHsK
LSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnQudmVyaWZ5QXNBcmd1bWVudCh0
aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudC5pc0xpdGVyYWwpCi0g
ICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhcmd1bWVudFNldC5hZGQodGhp
cy5maW5kKHR5cGVBcmd1bWVudCkpOwotICAgICAgICAgICAgbnVtVHlwZVZhcmlhYmxlQXJndW1l
bnRzKys7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGFyZ3VtZW50U2V0LnNpemUgPT0gbnVtVHlw
ZVZhcmlhYmxlQXJndW1lbnRzKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9Owot
ICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGVzIHVz
ZWQgYXMgYXJndW1lbnRzIGdvdCB1bmlmaWVkIHdpdGggZWFjaCBvdGhlciJ9OwotICAgIH0KLSAg
ICAKLSAgICBnZXQgY29udmVyc2lvbkNvc3QoKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9
IDA7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0aGlzLnR5cGVBcmd1bWVudHMo
KSkKLSAgICAgICAgICAgIHJlc3VsdCArPSB0eXBlQXJndW1lbnQuY29udmVyc2lvbkNvc3QodGhp
cyk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGNvbW1pdCgpCi0g
ICAgewotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRz
KCkpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnQuY29tbWl0VW5pZmljYXRpb24odGhpcyk7Cisg
ICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCmluZGV4IDRiZjA1MzEzZTI4NTdkNzFlZmU1MTNlZTFl
MzVmMDUwZGVmNTMzNmQuLjQ2NmVlNzcwNTVkZGRiZWIxMjc2NzUwMDg3MGZhMzZiNzQ0MjgzOTYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanMKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwpAQCAtMzQsMTcgKzM0
LDEwIEBAIGNsYXNzIFZpc2l0b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsKICAgICAg
ICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFy
YW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFyYW1ldGVy
LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0
ZXJzKQogICAgICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRG
dW5jKG5vZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAg
ICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKQEAgLTYxLDEyICs1NCw2IEBAIGNs
YXNzIFZpc2l0b3IgewogICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKICAgICB9CiAgICAg
Ci0gICAgdmlzaXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMu
dmlzaXRGdW5jKG5vZGUpOwotICAgICAgICBub2RlLmZ1bmMudmlzaXRJbXBsZW1lbnRhdGlvbkRh
dGEobm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEsIHRoaXMpOwotICAgIH0KLSAgICAKICAgICB2aXNp
dEJsb2NrKG5vZGUpCiAgICAgewogICAgICAgICBmb3IgKGxldCBzdGF0ZW1lbnQgb2Ygbm9kZS5z
dGF0ZW1lbnRzKQpAQCAtNzksNjIgKzY2LDI3IEBAIGNsYXNzIFZpc2l0b3IgewogICAgICAgICAg
ICAgZXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2Nv
bFJlZihub2RlKQotICAgIHsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9k
ZSkKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IHByb3RvY29sIG9mIG5vZGUuZXh0ZW5kcykKLSAg
ICAgICAgICAgIHByb3RvY29sLnZpc2l0KHRoaXMpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1
cmUgb2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZpc2l0KHRoaXMp
OwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZv
ciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0TmF0aXZlVHlw
ZShub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5
cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKLSAg
ICB9Ci0gICAgCi0gICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9kZSkKLSAgICB7Ci0gICAg
ICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50
IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0
aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewotICAgICAg
ICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAg
ICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQo
dGhpcyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAg
ICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgZmll
bGQgb2Ygbm9kZS5maWVsZHMpCiAgICAgICAgICAgICBmaWVsZC52aXNpdCh0aGlzKTsKICAgICB9
CiAgICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIE5vZGUu
dmlzaXQobm9kZS5wcm90b2NvbCwgdGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0Q29uc3Rl
eHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRo
aXMpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZpZWxkKG5vZGUpCiAgICAgewogICAgICAgICBu
b2RlLnR5cGUudmlzaXQodGhpcyk7CkBAIC0zMzYsMTggKzI4OCw4IEBAIGNsYXNzIFZpc2l0b3Ig
ewogICAgIAogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIGZv
ciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5v
ZGUuYXJndW1lbnRMaXN0KQogICAgICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7
Ci0gICAgICAgIGxldCBoYW5kbGVUeXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9
PiB7Ci0gICAgICAgICAgICBpZiAoYWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAg
ICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAg
ICAgICAgICAgIGFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9
OwotICAgICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBl
QXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2ZUZ1bmNJbnN0YW5jZSwg
dGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXR1cm5UeXBlLCB0aGlzKTsKICAgICAg
ICAgTm9kZS52aXNpdChub2RlLnJlc3VsdFR5cGUsIHRoaXMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvV1NMLm1kCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2I2NjU2NzgyNmE1
MWRkNmM3NTRkNGU5YjI0ZDc1Nzg5NzJiYjNkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZAor
KysgL2Rldi9udWxsCkBAIC0xLDQ3OSArMCwwIEBACi0jIFdlYkdQVSBTaGFkaW5nIExhbmd1YWdl
Ci0KLVdlYkdQVSBTaGFkaW5nIExhbmd1YWdlLCBvciBXU0wgZm9yIHNob3J0LCBpcyBhIHR5cGUt
c2FmZSBsb3ctb3ZlcmhlYWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZm9yIEdQVXMgKGdyYXBoaWNz
IHByb2Nlc3NpbmcgdW5pdHMpLiBUaGlzIGRvY3VtZW50IGV4cGxhaW5zIGhvdyBXU0wgd29ya3Mu
Ci0KLSMgR29hbHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGFjaGlldmUgdGhlIGZvbGxvd2luZyBn
b2FsczoKLQotLSBXU0wgc2hvdWxkIGZlZWwgKmZhbWlsaWFyKiB0byBDKysgcHJvZ3JhbW1lcnMu
Ci0tIFdTTCBzaG91bGQgYmUgaGF2ZSBhICpzb3VuZCogYW5kICpkZWNpZGFibGUqIHR5cGUgc3lz
dGVtLgotLSBXU0wgc2hvdWxkIG5vdCBwZXJtaXQgKm91dC1vZi1ib3VuZHMqIG1lbW9yeSBhY2Nl
c3Nlcy4KLS0gV1NMIHNob3VsZCBiZSBoYXZlICpsb3cgb3ZlcmhlYWQqLgotCi1UaGUgY29tYmlu
YXRpb24gb2YgYSBzb3VuZCB0eXBlIHN5c3RlbSBhbmQgYm91bmRzIGNoZWNraW5nIG1ha2VzIFdT
TCBhIHNlY3VyZSBzaGFkZXIgbGFuZ3VhZ2U6IHRoZSBsYW5ndWFnZSBpdHNlbGYgaXMgcmVzcG9u
c2libGUgZm9yIGlzb2xhdGluZyB0aGUgc2hhZGVyIGZyb20gdGhlIHJlc3Qgb2YgdGhlIEdQVS4K
LQotIyBGYW1pbGlhciBTeW50YXgKLQotV1NMIGlzIGJhc2VkIG9uIEMgc3ludGF4LCBidXQgZXhj
bHVkZXMgZmVhdHVyZXMgdGhhdCBhcmUgZWl0aGVyIHVubmVjZXNzYXJ5LCBpbnNlY3VyZSwgb3Ig
cmVwbGFjZWQgYnkgb3RoZXIgV1NMIGZlYXR1cmVzOgotCi0tIE5vIHN0cmluZ3MuCi0tIE5vIGBy
ZWdpc3RlcmAsIGB2b2xhdGlsZWAsIGBjb25zdGAsIGByZXN0cmljdGAsIG9yIGBleHRlcm5gIGtl
eXdvcmRzLgotLSBObyB1bmlvbnMuIGB1bmlvbmAgaXMgbm90IGEga2V5d29yZC4KLS0gTm8gZ290
byBvciBsYWJlbHMuIGBnb3RvYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBgKmAgcG9pbnRlcnMu
Ci0tIEVmZmVjdGxlc3MgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdGF0ZW1lbnRzIChgYSArIGI7YCBp
cyBhIHBhcnNlIGVycm9yKS4KLS0gTm8gdW5kZWZpbmVkIHZhbHVlcyAoYGludCB4O2AgaW5pdGlh
bGl6ZXMgeCB0byAwKS4KLS0gTm8gYXV0b21hdGljIHR5cGUgY29udmVyc2lvbnMgKGBpbnQgeDsg
dWludCB5ID0geDtgIGlzIGEgdHlwZSBlcnJvcikuCi0tIE5vIHJlY3Vyc2lvbi4KLS0gTm8gZHlu
YW1pYyBtZW1vcnkgYWxsb2NhdGlvbi4KLS0gTm8gbW9kdWxhcml0eS4gVGhlIHdob2xlIHByb2dy
YW0gaXMgb25lIGZpbGUuCi0KLU9uIHRvcCBvZiB0aGlzIGJhcmUgQy1saWtlIGZvdW5kYXRpb24s
IFdTTCBhZGRzIHNlY3VyZSB2ZXJzaW9ucyBvZiBmYW1pbGlhciBDKysgZmVhdHVyZXM6Ci0KLS0g
VHlwZS1zYWZlIHBvaW50ZXJzIChgXmApIGFuZCBhcnJheSByZWZlcmVuY2VzIChgW11gKS4KLS0g
R2VuZXJpY3MgdG8gcmVwbGFjZSB0ZW1wbGF0ZXMuCi0tIE9wZXJhdG9yIG92ZXJsb2FkaW5nLiBC
dWlsdC1pbiBvcGVyYXRpb25zIGxpa2UgYGludCBvcGVyYXRvcisoaW50LCBpbnQpYCBhcmUganVz
dCBuYXRpdmUgZnVuY3Rpb25zLgotLSBDYXN0IG92ZXJsb2FkaW5nLiBCdWlsdC1pbiBjYXN0cyBs
aWtlIGBvcGVyYXRvciBpbnQoZG91YmxlKWAgYXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0g
R2V0dGVycyBhbmQgc2V0dGVycy4gUHJvcGVydHkgYWNjZXNzZXMgbGlrZSBgdmVjLnhgIHJlc29s
dmUgdG8gb3ZlcmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yLmZpZWxkKGZsb2F0NClgLgotLSBB
cnJheSBhY2Nlc3Mgb3ZlcmxvYWRpbmcuIEFycmF5IGFjY2Vzc2VzIGxpa2UgYHZlY1swXWAgcmVz
b2x2ZSB0byB2ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRvcltdKGZsb2F0NCwgdWludClgLgot
Ci1JbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zLCBXU0wgaXMgc2hvd24gYnkgZXhhbXBsZSBzdGFy
dGluZyB3aXRoIGl0cyBDLWxpa2UgZm91bmRhdGlvbiBhbmQgdGhlbiBidWlsZGluZyB1cCB0byBp
bmNsdWRlIG1vcmUgc29waGlzdGljYXRlZCBmZWF0dXJlcyBsaWtlIGdlbmVyaWNzLgotCi0jIyBD
b21tb24gc3Vic2V0IG9mIEMgYW5kIFdTTAotCi1UaGUgZm9sbG93aW5nIGlzIGEgdmFsaWQgV1NM
IGZ1bmN0aW9uIGRlZmluaXRpb246Ci0KLSAgICBpbnQgZm9vKGludCB4LCBpbnQgeSwgYm9vbCBw
KQotICAgIHsKLSAgICAgICAgaWYgKHApCi0gICAgICAgICAgICByZXR1cm4geCAtIHk7Ci0gICAg
ICAgIHJldHVybiB4ICsgeTsKLSAgICB9Ci0KLVdTTCBzb3VyY2UgZmlsZXMgYmVoYXZlIHNpbWls
YXJseSB0byBDIHNvdXJjZSBmaWxlczoKLQotLSBUb3AtbGV2ZWwgc3RhdGVtZW50cyBtdXN0IGJl
IHR5cGUgb3IgZnVuY3Rpb24gZGVmaW5pdGlvbnMuCi0tIFdTTCB1c2VzIHN0cnVjdHVyZWQgQyBj
b250cm9sIGZsb3cgY29uc3RydWN0cywgbGlrZSBgaWZgLCBgd2hpbGVgLCBgZm9yYCwgYGRvYCwg
YGJyZWFrYCwgYW5kIGBjb250aW51ZWAuCi0tIFdTTCB1c2VzIEMtbGlrZSBgc3dpdGNoYCBzdGF0
ZW1lbnRzLCBidXQgZG9lcyBub3QgYWxsb3cgdGhlbSB0byBvdmVybGFwIG90aGVyIGNvbnRyb2wg
ZmxvdyAoaS5lLiBubyBbRHVmZidzIGRldmljZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dp
a2kvRHVmZiUyN3NfZGV2aWNlKSkuCi0tIFdTTCBhbGxvd3MgdmFyaWFibGUgZGVjbGFyYXRpb25z
IGFueXdoZXJlIEMrKyB3b3VsZC4KLQotV1NMIHR5cGVzIGRpZmZlciBmcm9tIEMgdHlwZXMuIEZv
ciBleGFtcGxlLCB0aGlzIGlzIGFuIGFycmF5IG9mIDQyIGludGVnZXJzIGluIFdTTDoKLQotICAg
IGludFs0Ml0gYXJyYXk7Ci0KLVRoZSB0eXBlIG5ldmVyIHN1cnJvdW5kcyB0aGUgdmFyaWFibGUs
IGxpa2UgaXQgd291bGQgaW4gQyAoYGludCBhcnJheVs0Ml1gKS4KLQotIyMgVHlwZS1zYWZlIHBv
aW50ZXJzCi0KLVdTTCBpbmNsdWRlcyBhIHNlY3VyZSBwb2ludGVyIHR5cGUuIFRvIGVtcGhhc2l6
ZSB0aGF0IGl0IGlzIG5vdCBsaWtlIHRoZSBDIHBvaW50ZXIsIFdTTCB1c2VzIGBeYCBmb3IgdGhl
IHBvaW50ZXIgdHlwZSBhbmQgZm9yIGRlcmVmZXJlbmNlLiBMaWtlIGluIEMsIGAmYCBpcyB1c2Vk
IHRvIHRha2UgdGhlIGFkZHJlc3Mgb2YgYSB2YWx1ZS4gIEJlY2F1c2UgR1BVcyBoYXZlIGRpZmZl
cmVudCBraW5kcyBvZiBtZW1vcmllcywgcG9pbnRlcnMgbXVzdCBiZSBhbm5vdGF0ZWQgd2l0aCBh
biBhZGRyZXNzIHNwYWNlIChvbmUgb2YgYHRocmVhZGAsIGB0aHJlYWRncm91cGAsIGBkZXZpY2Vg
LCBvciBgY29uc3RhbnRgKS4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGJhcih0aHJlYWQgaW50
XiBwKQotICAgIHsKLSAgICAgICAgXnAgKz0gNDI7Ci0gICAgfQotICAgIGludCBmb28oKQotICAg
IHsKLSAgICAgICAgaW50IHggPSAyNDsKLSAgICAgICAgYmFyKCZ4KTsKLSAgICAgICAgcmV0dXJu
IHg7IC8vIFJldHVybnMgNjYuCi0gICAgfQotCi1Qb2ludGVycyBjYW4gYmUgYG51bGxgLiBFYWNo
IHBvaW50ZXIgYWNjZXNzIGlzIG51bGwtY2hlY2tlZCwgdGhvdWdoIG1vc3QgcG9pbnRlciBhY2Nl
c3NlcyAobGlrZSB0aGlzIG9uZSkgd2lsbCBub3QgaGF2ZSBhIG51bGwgY2hlY2suIFdTTCBwbGFj
ZXMgZW5vdWdoIGNvbnN0cmFpbnRzIG9uIHRoZSBwcm9ncmFtbWVyIHRoYXQgcHJvZ3JhbXMgYXJl
IGVhc3kgZm9yIHRoZSBjb21waWxlciB0byBhbmFseXplLiBUaGUgY29tcGlsZXIgd2lsbCBhbHdh
eXMga25vdyB0aGF0IGBecCArPSA0MmAgYWRkcyBgNDJgIHRvIGB4YCBpbiB0aGlzIGNhc2UuCi0K
LVdTTCBwb2ludGVycyBkbyBub3Qgc3VwcG9ydCBjYXN0aW5nIG9yIHBvaW50ZXIgYXJpdGhtZXRp
Yy4gQWxsIG1lbW9yeSBhY2Nlc3NpYmxlIHRvIGEgc2hhZGVyIG91dGxpdmVzIHRoZSBzaGFkZXIu
IFRoaXMgaXMgZXZlbiB0cnVlIG9mIGxvY2FsIHZhcmlhYmxlcy4gVGhpcyBpcyBwb3NzaWJsZSBi
ZWNhdXNlIFdTTCBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2lvbi4gVGhlcmVmb3JlLCBsb2NhbCB2
YXJpYWJsZXMgc2ltcGx5IGdldCBnbG9iYWwgc3RvcmFnZS4gTG9jYWwgdmFyaWFibGVzIGFyZSBp
bml0aWFsaXplZCBhdCB0aGUgcG9pbnQgb2YgdGhlaXIgZGVjbGFyYXRpb24uIEhlbmNlLCB0aGUg
Zm9sbG93aW5nIGlzIGEgdmFsaWQgcHJvZ3JhbSwgd2hpY2ggd2lsbCBleGhpYml0IHRoZSBzYW1l
IGJlaGF2aW9yIG9uIGV2ZXJ5IFdTTCBpbXBsZW1lbnRhdGlvbjoKLQotICAgIHRocmVhZCBpbnRe
IGZvbygpCi0gICAgewotICAgICAgICBpbnQgeCA9IDQyOwotICAgICAgICByZXR1cm4gJng7Ci0g
ICAgfQotICAgIGludCBiYXIoKQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygp
OwotICAgICAgICB0aHJlYWQgaW50XiBxID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIHJldHVybiBecTsgLy8gUmV0dXJucyA1My4KLSAgICB9Ci0gICAgaW50IGJheigpCi0gICAg
ewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIF5wID0gNTM7Ci0gICAg
ICAgIGZvbygpOwotICAgICAgICByZXR1cm4gXnA7IC8vIFJldHVybnMgNDIuCi0gICAgfQotCi1J
dCdzIHBvc3NpYmxlIHRvIHBvaW50IHRvIGFueSBraW5kIG9mIGRhdGEgdHlwZS4gRm9yIGV4YW1w
bGUsIGB0aHJlYWQgZG91YmxlWzQyXV5gIGlzIGEgcG9pbnRlciB0byBhbiBhcnJheSBvZiA0MiBk
b3VibGVzLgotCi0jIyBUeXBlLXNhZmUgYXJyYXkgcmVmZXJlbmNlcwotCi1XU0wgc3VwcG9ydHMg
YXJyYXkgcmVmZXJlbmNlcyB0aGF0IGNhcnJ5IGEgcG9pbnRlciB0byB0aGUgYmFzZSBvZiB0aGUg
YXJyYXkgYW5kIHRoZSBhcnJheSdzIGxlbmd0aC4gVGhpcyBhbGxvd3MgYWNjZXNzZXMgdG8gdGhl
IGFycmF5IHRvIGJlIGJvdW5kcy1jaGVja2VkLgotCi1BbiBhcnJheSByZWZlcmVuY2UgY2FuIGJl
IGNyZWF0ZWQgdXNpbmcgdGhlIGBAYCBvcGVyYXRvcjoKLQotICAgIGludFs0Ml0gYXJyYXk7Ci0g
ICAgdGhyZWFkIGludFtdIGFycmF5UmVmID0gQGFycmF5OwotCi1Cb3RoIGFycmF5cyBhbmQgYXJy
YXkgcmVmZXJlbmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gYW5kIHN0b3JlZCB0byB1c2luZyBgb3Bl
cmF0b3JbXWA6Ci0KLSAgICBpbnQgeCA9IGFycmF5W2ldOwotICAgIGludCB5ID0gYXJyYXlSZWZb
aV07Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2VzIGtub3cgdGhlaXIgbGVuZ3Ro
OgotCi0gICAgdWludCBhcnJheUxlbmd0aCA9IGFycmF5Lmxlbmd0aDsKLSAgICB1aW50IGFycmF5
UmVmTGVuZ3RoID0gYXJyYXlSZWYubGVuZ3RoOwotCi1HaXZlbiBhbiBhcnJheSBvciBhcnJheSBy
ZWZlcmVuY2UsIGl0J3MgcG9zc2libGUgdG8gZ2V0IGEgcG9pbnRlciB0byBvbmUgb2YgaXRzIGVs
ZW1lbnRzOgotCi0gICAgdGhyZWFkIGludF4gcHRyMSA9ICZhcnJheVtpXTsKLSAgICB0aHJlYWQg
aW50XiBwdHIyID0gJmFycmF5UmVmW2ldOwotCi1BIHBvaW50ZXIgaXMgbGlrZSBhbiBhcnJheSBy
ZWZlcmVuY2Ugd2l0aCBvbmUgZWxlbWVudC4gSXQncyBwb3NzaWJsZSB0byBwZXJmb3JtIHRoaXMg
Y29udmVyc2lvbjoKLQotICAgIHRocmVhZCBpbnRbXSByZWYgPSBAcHRyMTsKLSAgICByZWZbMF0g
Ly8gRXF1aXZhbGVudCB0byBecHRyMS4KLSAgICByZWYubGVuZ3RoIC8vIDAgaWYgcHRyMSB3YXMg
bnVsbCwgMSBpZiBwdHIxIHdhcyBub3QgbnVsbC4KLQotU2ltaWxhcmx5LCB1c2luZyBgQGAgb24g
YSBub24tcG9pbnRlciB2YWx1ZSByZXN1bHRzIGluIGEgcmVmZXJlbmNlIG9mIGxlbmd0aCAxOgot
Ci0gICAgaW50IHg7Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEB4OwotICAgIHJlZlswXSAvLyBB
bGlhc2VzIHguCi0gICAgcmVmLmxlbmd0aCAvLyBSZXR1cm5zIDEuCi0KLUl0J3Mgbm90IGxlZ2Fs
IHRvIHVzZSBgQGAgb24gYW4gYXJyYXkgcmVmZXJlbmNlOgotCi0gICAgdGhyZWFkIGludFtdIHJl
ZjsKLSAgICB0aHJlYWQgaW50W11bXSByZWZlcmVmID0gQHJlZjsgLy8gRXJyb3IhCi0KLSMjIEdl
bmVyaWNzCi0KLVdTTCBzdXBwb3J0cyBnZW5lcmljIHR5cGVzIHVzaW5nIGEgc2ltcGxlIHN5bnRh
eC4gV1NMJ3MgZ2VuZXJpYyBhcmUgZGVzaWduZWQgdG8gaW50ZWdyYXRlIGNsZWFubHkgaW50byB0
aGUgY29tcGlsZXIgcGlwZWxpbmU6Ci0KLS0gR2VuZXJpY3MgaGF2ZSB1bmFtYmlndW91cyBzeW50
YXguCi0tIEdlbmVyaWMgZnVuY3Rpb25zIGNhbiBiZSB0eXBlIGNoZWNrZWQgYmVmb3JlIHRoZXkg
YXJlIGluc3RhbnRpYXRlZC4KLQotU2VtYW50aWMgZXJyb3JzIGluc2lkZSBnZW5lcmljIGZ1bmN0
aW9ucyBzaG93IHVwIG9uY2UgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIHRpbWVzIHRoZSBn
ZW5lcmljIGZ1bmN0aW9uIGlzIGluc3RhbnRpYXRlZC4KLQotVGhpcyBpcyBhIHNpbXBsZSBnZW5l
cmljIGZ1bmN0aW9uOgotCi0gICAgVCBpZGVudGl0eTxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgVCB0bXAgPSB2YWx1ZTsKLSAgICAgICAgcmV0dXJuIHRtcDsKLSAgICB9Ci0KLVdTTCBhbHNv
IHN1cHBvcnRzIHN0cnVjdHMsIHdoaWNoIGFyZSBhbHNvIGFsbG93ZWQgdG8gYmUgZ2VuZXJpYzoK
LQotICAgIC8vIE5vdCBnZW5lcmljLgotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgeDsK
LSAgICAgICAgZG91YmxlIHk7Ci0gICAgfQotICAgIC8vIEdlbmVyaWMuCi0gICAgc3RydWN0IEJh
cjxULCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLQotVHlwZSBwYXJh
bWV0ZXJzIGNhbiBhbHNvIGJlIGNvbnN0YW50IGV4cHJlc3Npb25zLiBGb3IgZXhhbXBsZToKLQot
ICAgIHZvaWQgaW5pdGlhbGl6ZUFycmF5PFQsIHVpbnQgbGVuZ3RoPih0aHJlYWQgVFtsZW5ndGhd
XiBhcnJheSwgVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGZvciAodWludCBpID0gbGVuZ3RoOyBp
LS07KQotICAgICAgICAgICAgKF5hcnJheSlbaV0gPSB2YWx1ZTsKLSAgICB9Ci0KLUNvbnN0YW50
IGV4cHJlc3Npb25zIHBhc3NlZCBhcyB0eXBlIGFyZ3VtZW50cyBtdXN0IG9iZXkgYSB2ZXJ5IG5h
cnJvdyBkZWZpbml0aW9uIG9mIGNvbnN0YW50bmVzcy4gT25seSBsaXRlcmFscyBhbmQgcmVmZXJl
bmNlcyB0byBvdGhlciBjb25zdGFudCBwYXJhbWV0ZXJzIHF1YWxpZnkuCi0KLVdTTCBpcyBndWFy
YW50ZWVkIHRvIGNvbXBpbGUgZ2VuZXJpY3MgYnkgaW5zdGFudGlhdGlvbi4gVGhpcyBpcyBvYnNl
cnZhYmxlLCBzaW5jZSBmdW5jdGlvbnMgY2FuIHJldHVybiBwb2ludGVycyB0byB0aGVpciBsb2Nh
bHMuIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGlzIHBoZW5vbWVub246Ci0KLSAgICB0aHJlYWQg
aW50XiBhbGxvY2F0ZTx1aW50PigpCi0gICAgewotICAgICAgICBpbnQgeDsKLSAgICAgICAgcmV0
dXJuICZ4OwotICAgIH0KLQotVGhlIGBhbGxvY2F0ZWAgZnVuY3Rpb24gd2lsbCByZXR1cm4gYSBk
aWZmZXJlbnQgcG9pbnRlciBmb3IgZWFjaCB1bnNpZ25lZCBpbnRlZ2VyIGNvbnN0YW50IHBhc3Nl
ZCBhcyBhIHR5cGUgcGFyYW1ldGVyLiBUaGlzIGFsbG9jYXRpb24gaXMgY29tcGxldGVseSBzdGF0
aWMsIHNpbmNlIHRoZSBgdWludGAgcGFyYW1ldGVyIG11c3QgYmUgZ2l2ZW4gYSBjb21waWxlLXRp
bWUgY29uc3RhbnQuCi0KLVdTTCdzIGB0eXBlZGVmYCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50
IHN5bnRheCB0aGFuIEMuIEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewot
ICAgICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgdHlwZWRlZiBGQ29t
cGxleCA9IENvbXBsZXg8ZmxvYXQ+OwotCi1gdHlwZWRlZmAgY2FuIGJlIHVzZWQgdG8gY3JlYXRl
IGdlbmVyaWMgdHlwZXM6Ci0KLSAgICBzdHJ1Y3QgRm9vPFQsIFU+IHsKLSAgICAgICAgVCB4Owot
ICAgICAgICBVIHk7Ci0gICAgfQotICAgIHR5cGVkZWYgQmFyPFQ+ID0gRm9vPFQsIFQ+OwotCi0j
IyBQcm90b2NvbHMKLQotUHJvdG9jb2xzIGVuYWJsZSBnZW5lcmljIGZ1bmN0aW9ucyB0byB3b3Jr
IHdpdGggZGF0YSBvZiBnZW5lcmljIHR5cGUuIEJlY2F1c2UgYSBmdW5jdGlvbiBtdXN0IGJlIHR5
cGUtY2hlY2thYmxlIGJlZm9yZSBpbnN0YW50aWF0aW9uLCB0aGUgZm9sbG93aW5nIHdvdWxkIG5v
dCBiZSBsZWdhbDoKLQotICAgIGludCBiYXIoaW50KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihk
b3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBUIGZvbzxUPihUIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIGJhcih2YWx1ZSk7IC8vIEVycm9yIQotICAgIH0KLQotVGhlIGNhbGwgdG8gYGJh
cmAgZG9lc24ndCB0eXBlIGNoZWNrIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNhbm5vdCBrbm93IHRo
YXQgYGZvbzxUPmAgd2lsbCBiZSBpbnN0YW50aWF0ZWQgd2l0aCBgVCA9IGludGAgb3IgYFQgPSBk
b3VibGVgLiBQcm90b2NvbHMgZW5hYmxlIHRoZSBwcm9ncmFtbWVyIHRvIHRlbGwgdGhlIGNvbXBp
bGVyIHdoYXQgdG8gZXhwZWN0IG9mIGEgdHlwZSB2YXJpYWJsZToKLQotICAgIGludCBiYXIoaW50
KSB7IC4uLiB9Ci0gICAgZG91YmxlIGJhcihkb3VibGUpIHsgLi4uIH0KLSAgICAKLSAgICBwcm90
b2NvbCBTdXBwb3J0c0JhciB7Ci0gICAgICAgIFN1cHBvcnRzQmFyIGJhcihTdXBwb3J0c0Jhcik7
Ci0gICAgfQotICAgIAotICAgIFQgZm9vPFQ6U3VwcG9ydHNCYXI+KFQgdmFsdWUpCi0gICAgewot
ICAgICAgICByZXR1cm4gYmFyKHZhbHVlKTsKLSAgICB9Ci0gICAgCi0gICAgaW50IHggPSBmb28o
NDIpOwotICAgIGRvdWJsZSB5ID0gZm9vKDQuMik7Ci0KLVByb3RvY29scyBoYXZlIGF1dG9tYXRp
YyByZWxhdGlvbnNoaXBzIHRvIG9uZSBhbm90aGVyIGJhc2VkIG9uIHdoYXQgZnVuY3Rpb25zIHRo
ZXkgY29udGFpbjoKLQotICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7
Ci0gICAgfQotICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgIHZvaWQgZm9vKEJhcik7Ci0gICAg
ICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4u
LiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewotICAgICAgICBmdXp6KHgpOyAv
LyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIEZvby4gICAgCi0gICAgfQot
Ci1Qcm90b2NvbHMgY2FuIGFsc28gbWl4IG90aGVyIHByb3RvY29scyBpbiBleHBsaWNpdGx5LiBM
aWtlIGluIHRoZSBleGFtcGxlIGFib3ZlLCB0aGUgZXhhbXBsZSBiZWxvdyByZWxpZXMgb24gdGhl
IGZhY3QgdGhhdCBgQmFyYCBpcyBhIG1vcmUgc3BlY2lmaWMgcHJvdG9jb2wgdGhhbiBgRm9vYC4g
SG93ZXZlciwgdGhpcyBleGFtcGxlIGRlY2xhcmVzIHRoaXMgZXhwbGljaXRseSAoYHByb3RvY29s
IEJhciA6IEZvb2ApIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGUgbGFuZ3VhZ2UgdG8gaW5mZXIg
aXQ6Ci0KLSAgICBwcm90b2NvbCBGb28gewotICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0K
LSAgICBwcm90b2NvbCBCYXIgOiBGb28gewotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0K
LSAgICB2b2lkIGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4o
VCB4KQotICAgIHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUg
c3BlY2lmaWMgdGhhbiBGb28uICAgIAotICAgIH0KLQotIyMgT3ZlcmxvYWRpbmcKLQotV1NMIHN1
cHBvcnRzIG92ZXJsb2FkaW5nIHZlcnkgc2ltaWxhcmx5IHRvIGhvdyBDKysgZG9lcyBpdC4gRm9y
IGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91
YmxlKTsgLy8gMgotICAgIAotICAgIGludCB4OwotICAgIGZvbyh4KTsgLy8gY2FsbHMgMQotICAg
IAotICAgIGRvdWJsZSB5OwotICAgIGZvbyh5KTsgLy8gY2FsbHMgMgotCi1XU0wgYXV0b21hdGlj
YWxseSBzZWxlY3RzIHRoZSBtb3N0IHNwZWNpZmljIG92ZXJsb2FkIGlmIGdpdmVuIG11bHRpcGxl
IGNob2ljZXMuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAgLy8gMQotICAg
IHZvaWQgZm9vKGRvdWJsZSk7IC8vIDIKLSAgICB2b2lkIGZvbzxUPihUKTsgICAvLyAzCi0KLSAg
ICBmb28oMSk7IC8vIGNhbGxzIDEKLSAgICBmb28oMS4pOyAvLyBjYWxscyAyCi0gICAgZm9vKDF1
KTsgLy8gY2FsbHMgMwotCi1HZW5lcmljIGZ1bmN0aW9ucyBsaWtlIGBmb288VD5gIGNhbiBiZSBj
YWxsZWQgd2l0aCBvciB3aXRob3V0IGFsbCBvZiB0aGVpciB0eXBlIGFyZ3VtZW50cyBzdXBwbGll
ZC4gSWYgdGhleSBhcmUgbm90IHN1cHBsaWVkLCB0aGUgZnVuY3Rpb24gcGFydGljaXBhdGVzIGlu
IG92ZXJsb2FkIHJlc29sdXRpb24gbGlrZSBhbnkgb3RoZXIgZnVuY3Rpb24gd291bGQuIEZ1bmN0
aW9ucyBhcmUgcmFua2VkIGJ5IGhvdyBzcGVjaWZpYyB0aGV5IGFyZTsgZnVuY3Rpb24gQSBpcyBt
b3JlIHNwZWNpZmljIHRoYW4gZnVuY3Rpb24gQiBpZiBBJ3MgcGFyYW1ldGVyIHR5cGVzIGNhbiBi
ZSB1c2VkIGFzIGFyZ3VtZW50IHR5cGVzIGZvciBhIGNhbGwgdG8gQiBidXQgbm90IHZpY2UtdmVy
c2EuIElmIG9uZSBmdW5jdGlvbnMgbW9yZSBzcGVjaWZpYyB0aGFuIGFsbCBvdGhlcnMgdGhlbiB0
aGlzIGZ1bmN0aW9uIGlzIHNlbGVjdGVkLCBvdGhlcndpc2UgYSB0eXBlIGVycm9yIGlzIGlzc3Vl
ZC4KLQotIyMgT3BlcmF0b3IgT3ZlcmxvYWRpbmcKLQotTWFueSBXU0wgb3BlcmF0aW9ucyBkZXN1
Z2FyIHRvIGNhbGxzIHRvIGZ1bmN0aW9ucy4gVGhvc2UgZnVuY3Rpb25zIGFyZSBjYWxsZWQgKm9w
ZXJhdG9yIG92ZXJsb2FkcyogYW5kIGFyZSBkZWNsYXJlZCB1c2luZyBzeW50YXggdGhhdCBpbnZv
bHZlcyB0aGUga2V5d29yZCBgb3BlcmF0b3JgLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgcmVz
dWx0IGluIGNhbGxzIHRvIG9wZXJhdG9yIG92ZXJsb2FkczoKLQotLSBOdW1lcmljYWwgb3BlcmF0
b3JzIChgK2AsIGAtYCwgYCpgLCBgL2AsIGV0Yy4pLgotLSBJbmNyZW1lbnQgYW5kIGRlY3JlbWVu
dCAoYCsrYCwgYC0tYCkuCi0tIENhc3RpbmcgKGB0eXBlKHZhbHVlKWApLgotLSBBY2Nlc3Npbmcg
dmFsdWVzIGluIGFycmF5cyAoYFtdYCwgYFtdPWAsIGAmW11gKS4KLS0gQWNjZXNzaW5nIGZpZWxk
cyAoYC5maWVsZGAsIGAuZmllbGQ9YCwgYCYuZmllbGRgKS4KLQotV1NMJ3Mgb3BlcmF0b3Igb3Zl
cmxvYWRpbmcgaXMgZGVzaWduZWQgdG8gc3ludGhlc2l6ZSBtYW55IG9wZXJhdG9ycyBmb3IgeW91
OgotCi0tIFJlYWQtbW9kaWZ5LXdyaXRlIG9wZXJhdG9ycyBsaWtlIGArPWAgYXJlIGRlc3VnYXJl
ZCB0byBhIGxvYWQgb2YgdGhlIGxvYWQgdmFsdWUsIHRoZSB1bmRlcmx5aW5nIG9wZXJhdG9yIChs
aWtlIGArYCksIGFuZCBhIHN0b3JlIG9mIHRoZSBuZXcgdmFsdWUuIEl0J3Mgbm90IHBvc3NpYmxl
IHRvIG92ZXJyaWRlIGArPWAsIGAtPWAsIGV0Yy4KLS0gYHgrK2AgYW5kIGArK3hgIGJvdGggY2Fs
bCB0aGUgc2FtZSBvcGVyYXRvciBvdmVybG9hZC4gYG9wZXJhdG9yKytgIHRha2VzIHRoZSBvbGQg
dmFsdWUgYW5kIHJldHVybnMgYSBuZXcgb25lOyBmb3IgZXhhbXBsZSB0aGUgYnVpbHQtaW4gYCsr
YCBmb3IgYGludGAgY291bGQgYmUgd3JpdHRlbiBhczogYGludCBvcGVyYXRvcisrKGludCB2YWx1
ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9YC4KLS0gYG9wZXJhdG9yPT1gIGNhbiBiZSBvdmVybG9h
ZGVkLCBidXQgYCE9YCBpcyBhdXRvbWF0aWNhbGx5IHN5bnRoZXNpemVkIGFuZCBjYW5ub3QgYmUg
b3ZlcmxvYWRlZC4KLQotU29tZSBvcGVyYXRvcnMgYW5kIG92ZXJsb2FkcyBhcmUgcmVzdHJpY3Rl
ZDoKLQotLSBgIWAsIGAmJmAsIGFuZCBgfHxgIGFyZSBidWlsdC1pbiBvcGVyYXRpb25zIG9uIHRo
ZSBgYm9vbGAgdHlwZS4KLS0gU2VsZi1jYXN0cyAoYFQoVClgKSBhcmUgYWx3YXlzIHRoZSBpZGVu
dGl0eSBmdW5jdGlvbi4KLS0gQ2FzdHMgd2l0aCBubyBhcmd1bWVudHMgKGBUKClgKSBhbHdheXMg
cmV0dXJuIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGF0IHR5cGUuIEV2ZXJ5IHR5cGUgaGFzIGEg
ZGVmYXVsdCB2YWx1ZSAoYDBgLCBgbnVsbGAsIG9yIHRoZSBlcXVpdmFsZW50IGZvciBlYWNoIGZp
ZWxkKS4KLQotQ2FzdCBvdmVybG9hZGluZyBhbGxvd3MgZm9yIHN1cHBvcnRpbmcgY29udmVyc2lv
bnMgYmV0d2VlbiB0eXBlcyBhbmQgZm9yIGNyZWF0aW5nIGNvbnN0cnVjdG9ycyBmb3IgY3VzdG9t
IHR5cGVzLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgY2FzdCBvdmVybG9hZGluZyBiZWluZyB1c2Vk
IHRvIGNyZWF0ZSBhIGNvbnN0cnVjdG9yOgotCi0gICAgc3RydWN0IENvbXBsZXg8VD4gewotICAg
ICAgICBUIHJlYWw7Ci0gICAgICAgIFQgaW1hZzsKLSAgICB9Ci0gICAgb3BlcmF0b3I8VD4gQ29t
cGxleDxUPihUIHJlYWwsIFQgaW1hZykKLSAgICB7Ci0gICAgICAgIENvbXBsZXg8VD4gcmVzdWx0
OwotICAgICAgICByZXN1bHQucmVhbCA9IHJlYWw7Ci0gICAgICAgIHJlc3VsdC5pbWFnID0gaW1h
ZzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgQ29tcGxleDxmbG9h
dD4gaSA9IENvbXBsZXg8ZmxvYXQ+KDAsIDEpOwotCi1XU0wgc3VwcG9ydHMgYWNjZXNzb3Igb3Zl
cmxvYWRpbmcgYXMgcGFydCBvZiB0aGUgb3BlcmF0b3Igb3ZlcmxvYWRpbmcgc3ludGF4LiBUaGlz
IGdpdmVzIHRoZSBwcm9ncmFtbWVyIGJyb2FkIHBvd2Vycy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBz
dHJ1Y3QgRm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIGludCB5OwotICAgIH0KLSAgICBp
bnQgb3BlcmF0b3Iuc3VtKEZvbyBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gZm9vLnggKyBm
b28ueTsKLSAgICB9Ci0KLUl0J3MgcG9zc2libGUgdG8gc2F5IGBmb28uc3VtYCB0byBjYWxsIHRo
ZSBgb3BlcmF0b3Iuc3VtYCBmdW5jdGlvbi4gQm90aCBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGNhbiBi
ZSBwcm92aWRlZDoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgdmFsdWU7Ci0gICAg
fQotICAgIGRvdWJsZSBvcGVyYXRvci5kb3VibGVWYWx1ZShGb28gdmFsdWUpCi0gICAgewotICAg
ICAgICByZXR1cm4gZG91YmxlKHZhbHVlLnZhbHVlKTsKLSAgICB9Ci0gICAgRm9vIG9wZXJhdG9y
LmRvdWJsZVZhbHVlPShGb28gdmFsdWUsIGRvdWJsZSBkb3VibGVWYWx1ZSkKLSAgICB7Ci0gICAg
ICAgIHZhbHVlLnZhbHVlID0gaW50KGRvdWJsZVZhbHVlKTsKLSAgICAgICAgcmV0dXJuIHZhbHVl
OwotICAgIH0KLQotUHJvdmlkaW5nIGJvdGggZ2V0dGVyIGFuZCBzZXR0ZXIgb3ZlcmxvYWRzIG1h
a2VzIGBkb3VibGVWYWx1ZWAgYmVoYXZlIGFsbW9zdCBhcyBpZiBpdCB3YXMgYSBmaWVsZCBvZiBg
Rm9vYC4gRm9yIGV4YW1wbGUsIGl0J3MgcG9zc2libGUgdG8gc2F5OgotCi0gICAgRm9vIGZvbzsK
LSAgICBmb28udmFsdWUgPSA0MjsKLSAgICBmb28uZG91YmxlVmFsdWUgKj0gMjsgLy8gTm93IGZv
by52YWx1ZSBpcyA4NAotCi1JdCdzIGFsc28gcG9zc2libGUgdG8gcHJvdmlkZSBhbiBhZGRyZXNz
LWdldHRpbmcgb3ZlcmxvYWQgY2FsbGVkIGFuICphbmRlcio6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsK
LSAgICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAgICB0aHJlYWQgaW50XiBvcGVyYXRvciYudmFs
dWVBbGlhcyh0aHJlYWQgRm9vXiBmb28pCi0gICAgewotICAgICAgICByZXR1cm4gJmZvby0+dmFs
dWU7Ci0gICAgfQotCi1Qcm92aWRpbmcganVzdCB0aGlzIG92ZXJsb2FkIGZvciBhIHBvaW50ZXIg
dHlwZSBpbiBldmVyeSBhZGRyZXNzIHNwYWNlIGdpdmVzIHRoZSBzYW1lIHBvd2VyIGFzIG92ZXJs
b2FkaW5nIGdldHRlcnMgYW5kIHNldHRlcnMuIEFkZGl0aW9uYWxseSwgaXQgbWFrZXMgaXQgcG9z
c2libGUgdG8gYCZmb28udmFsdWVBbGlhc2AuCi0KLVRoZSBzYW1lIG92ZXJsb2FkaW5nIHBvd2Vy
IGlzIHByb3ZpZGVkIGZvciBhcnJheSBhY2Nlc3Nlcy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1
Y3QgVmVjdG9yPFQ+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBUIHk7Ci0gICAgfQotICAgIHRo
cmVhZCBUXiBvcGVyYXRvciZbXSh0aHJlYWQgVF4gcHRyLCB1aW50IGluZGV4KQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGluZGV4ID8gJnB0ci0+eSA6ICZwdHItPng7Ci0gICAgfQotCi1BbHRlcm5h
dGl2ZWx5LCBpdCdzIHBvc3NpYmxlIHRvIG92ZXJsb2FkIGdldHRlcnMgYW5kIHNldHRlcnMgKGBv
cGVyYXRvcltdYCBhbmQgYG9wZXJhdG9yW109YCkuCi0KLSMgTWFwcGluZyBvZiBBUEkgY29uY2Vw
dHMKLQotV1NMIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWZ1bCBhcyBib3RoIGEgZ3JhcGhpY3Mgc2hh
ZGluZyBsYW5ndWFnZSBhbmQgYXMgYSBjb21wdXRhdGlvbiBsYW5ndWFnZS4gSG93ZXZlciwgdGhl
c2UgdHdvIGVudmlyb25tZW50cyBoYXZlCi1zbGlnaHRseSBkaWZmZXJlbnQgc2VtYW50aWNzLgot
Ci1XaGVuIHVzaW5nIFdTTCBhcyBhIGdyYXBoaWNzIHNoYWRpbmcgbGFuZ3VhZ2UsIHRoZXJlIGlz
IGEgZGlzdGluY3Rpb24gYmV0d2VlbiAqZW50cnktcG9pbnRzKiBhbmQgKm5vbi1lbnRyeS1wb2lu
dHMqLiBFbnRyeSBwb2ludHMgYXJlIHRvcC1sZXZlbCBmdW5jdGlvbnMgd2hpY2ggaGF2ZSBlaXRo
ZXIgdGhlIGB2ZXJ0ZXhgIG9yIGBmcmFnbWVudGAga2V5d29yZCBpbiBmcm9udCBvZiB0aGVpciBk
ZWNsYXJhdGlvbi4gRW50cnkgcG9pbnRzIG1heSBub3QgYmUgZm9yd2FyZCBkZWNsYXJlZC4gQW4g
ZW50cnkgcG9pbnQgYW5ub3RhdGVkIHdpdGggdGhlIGB2ZXJ0ZXhgIGtleXdvcmQgbWF5IG5vdCBi
ZSB1c2VkIGFzIGEgZnJhZ21lbnQgc2hhZGVyLCBhbmQgYW4gZW50cnkgcG9pbnQgYW5ub3RhdGVk
IHdpdGggdGhlIGBmcmFnbWVudGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSB2ZXJ0ZXgg
c2hhZGVyLiBObyBhcmd1bWVudCBub3IgcmV0dXJuIHZhbHVlIG9mIGFuIGVudHJ5IHBvaW50IG1h
eSBiZSBhIHBvaW50ZXIuIEVudHJ5IHBvaW50cyBtdXN0IG5vdCBhY2NlcHQgdHlwZSBhcmd1bWVu
dHMgKGFsc28ga25vd24gYXMgImdlbmVyaWNzIikuCi0KLSMjIFZlcnRleCBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgV1NMIHZlcnRleCBzaGFkZXIgaW4gZm91
ciB3YXlzOgotCi0tIEF0dHJpYnV0ZXMKLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJlIGRhdGEK
LS0gU2FtcGxlcnMKLQotRWFjaCBvZiB0aGVzZSBBUEkgb2JqZWN0cyBpcyByZWZlcnJlZCB0byBi
eSBuYW1lIGZyb20gdGhlIEFQSS4gVmFyaWFibGVzIGluIFdTTCBhcmUgbm90IGFubm90YXRlZCB3
aXRoIGV4dHJhIEFQSS12aXNpYmxlIG5hbWVzIChsaWtlIHRoZXkgYXJlIGluIHNvbWUgb3RoZXIg
Z3JhcGhpY3MgQVBJcykuCi0KLVZhcmlhYmxlcyBhcmUgcGFzc2VkIHRvIHZlcnRleCBzaGFkZXJz
IGFzIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludC4gRWFjaCBidWZmZXIgaXMgcmVw
cmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAodXNp
bmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNlbnRl
ZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMsIHJl
c3BlY3RpdmVseS4gQWxsIG90aGVyIG5vbi1idWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBl
bnRyeSBwb2ludCBhcmUgaW1wbGllZCB0byBiZSBhdHRyaWJ1dGVzLgotCi1Tb21lIGFyZ3VtZW50
cyBhcmUgcmVjb2duaXplZCBieSB0aGUgY29tcGlsZXIgZnJvbSB0aGVpciBuYW1lIGFuZCB0eXBl
LiBUaGVzZSBhcmd1bWVudHMgcHJvdmlkZSBidWlsdC1pbiBmdW5jdGlvbmFsaXR5IGluaGVyZW50
IGluIHRoZSBncmFwaGljcyBwaXBlbGluZS4gRm9yIGV4YW1wbGUsIGFuIGFyZ3VtZW50IG9mIHRo
ZSBmb3JtIGBpbnQgd3NsX3ZlcnRleElEYCByZWZlcnMgdG8gdGhlIElEIG9mIHRoZSBjdXJyZW50
IHZlcnRleCwgYW5kIGlzIG5vdCByZWNvZ25pemVkIGFzIGFuIGF0dHJpYnV0ZS4gQWxsIG5vbi1i
dWlsdGluIGFyZ3VtZW50cyB0byBhIHZlcnRleCBlbnRyeSBwb2ludCBtdXN0IGJlIGFzc29jaWF0
ZWQgd2l0aCBhbiBBUEkgb2JqZWN0IHdoZW5ldmVyIGFueSBkcmF3IGNhbGwgdXNpbmcgdGhlIHZl
cnRleCBlbnRyeSBwb2ludCBpcyBpbnZva2VkLiBPdGhlcndpc2UsIHRoZSBkcmF3IGNhbGwgd2ls
bCBmYWlsLgotCi1UaGUgb25seSB3YXkgdG8gcGFzcyBkYXRhIGJldHdlZW4gc3VjY2Vzc2l2ZSBz
aGFkZXIgc3RhZ2VzIHdpdGhpbiBhIHNpbmdsZSBkcmF3IGNhbGwgaXMgYnkgcmV0dXJuIHZhbHVl
LiBBbiBlbnRyeSBwb2ludCBtdXN0IGluZGljYXRlIHRoYXQgaXQgcmV0dXJucyBhIGNvbGxlY3Rp
b24gb2YgdmFsdWVzIGNvbnRhaW5lZCB3aXRoaW4gYSBzdHJ1Y3R1cmUuIEV2ZXJ5IHZhcmlhYmxl
IGluc2lkZSB0aGlzIHN0cnVjdHVyZSwgcmVjdXJzaXZlbHksIGlzIHBhc3NlZCB0byB0aGUgbmV4
dCBzdGFnZSBpbiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIE1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3Qg
bWF5IGFsc28gYmUgb3V0cHV0IGJ1aWx0LWluIHZhcmlhYmxlcy4gRm9yIGV4YW1wbGUsIGEgdmVy
dGV4IGVudHJ5IHBvaW50IG1heSByZXR1cm4gYSBzdHJ1Y3Qgd2hpY2ggY29udGFpbnMgYSBtZW1i
ZXIgYGZsb2F0NCB3c2xfUG9zaXRpb25gLCBhbmQgdGhpcyB2YXJpYWJsZSB3aWxsIHJlcHJlc2Vu
dCB0aGUgcmFzdGVyaXplZCBwb3NpdGlvbiBvZiB0aGUgdmVydGV4LiBCdWZmZXJzIChhcyBkZXNj
cmliZWQgYnkgV1NMIGFycmF5IHJlZmVyZW5jZXMpLCB0ZXh0dXJlcywgYW5kIHNhbXBsZXJzIG11
c3Qgbm90IGJlIHByZXNlbnQgaW4gdGhpcyByZXR1cm5lZCBzdHJ1Y3QuIEJ1aWx0LWluIHZhcmlh
YmxlcyBtdXN0IG5ldmVyIGFwcGVhciB0d2ljZSBpbnNpZGUgdGhlIHJldHVybmVkIHN0cnVjdHVy
ZS4KLQotIyMgRnJhZ21lbnQgZW50cnkgcG9pbnRzCi0KLUZyYWdtZW50IGVudHJ5IHBvaW50cyBt
YXkgYWNjZXB0IG9uZSBhcmd1bWVudCB3aXRoIHRoZSB0eXBlIHRoYXQgdGhlIHByZXZpb3VzIHNo
YWRlciBzdGFnZSByZXR1cm5lZC4gVGhlIGFyZ3VtZW50IG5hbWUgZm9yIHRoaXMgYXJndW1lbnQg
bXVzdCBiZSBgc3RhZ2VJbmAuIEluIGFkZGl0aW9uIHRvIHRoaXMgYXJndW1lbnQsIGZyYWdtZW50
IGVudHJ5IHBvaW50cyBtYXkgYWNjZXB0IGJ1ZmZlcnMsIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMg
YXMgYXJndW1lbnRzIGluIHRoZSBzYW1lIHdheSB0aGF0IHZlcnRleCBlbnRyeSBwb2ludHMgYWNj
ZXB0IHRoZW0uIEZyYWdtZW50IGVudHJ5IHBvaW50cyBhbHNvIG11c3QgcmV0dXJuIGEgc3RydWN0
LCBhbmQgYWxsIG1lbWJlcnMgb2YgdGhpcyBzdHJ1Y3QgbXVzdCBiZSBidWlsdC1pbiB2YXJpYWJs
ZXMuIFRoZSBzZXQgb2YgcmVjb2duaXplZCBidWlsdC1pbiB2YXJpYWJsZXMgd2hpY2ggbWF5IGJl
IGFjY2VwdGVkIG9yIHJldHVybmVkIGZyb20gYW4gZW50cnkgcG9pbnQgaXMgZGlmZmVyZW50IGJl
dHdlZW4gYWxsIHR5cGVzIG9mIGVudHJ5IHBvaW50cy4KLQotRm9yIGV4YW1wbGUsIHRoaXMgd291
bGQgYmUgYSB2YWxpZCBncmFwaGljcyBwcm9ncmFtOgotCi0gICAgc3RydWN0IFZlcnRleElucHV0
IHsKLSAgICAgICAgZmxvYXQyIHBvc2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAg
fQotICAgIAotICAgIHN0cnVjdCBWZXJ0ZXhPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3NsX1Bv
c2l0aW9uOwotICAgICAgICBmbG9hdDMgY29sb3I7Ci0gICAgfQotICAgIAotICAgIHN0cnVjdCBG
cmFnbWVudE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfQ29sb3I7Ci0gICAgfQotICAgIAot
ICAgIHZlcnRleCBWZXJ0ZXhPdXRwdXQgdmVydGV4U2hhZGVyKFZlcnRleElucHV0IHZlcnRleElu
cHV0KSB7Ci0gICAgICAgIFZlcnRleE91dHB1dCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC53c2xf
UG9zaXRpb24gPSBmbG9hdDQodmVydGV4SW5wdXQucG9zaXRpb24sIDAuLCAxLik7Ci0gICAgICAg
IHJlc3VsdC5jb2xvciA9IHZlcnRleElucHV0LmNvbG9yOwotICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIH0KLSAgICAKLSAgICBmcmFnbWVudCBGcmFnbWVudE91dHB1dCBmcmFnbWVudFNoYWRl
cihWZXJ0ZXhPdXRwdXQgc3RhZ2VJbikgewotICAgICAgICBGcmFnbWVudE91dHB1dCByZXN1bHQ7
Ci0gICAgICAgIHJlc3VsdC53c2xfQ29sb3IgPSBmbG9hdDQoc3RhZ2VJbi5jb2xvciwgMS4pOwot
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotIyMgQ29tcHV0ZSBlbnRyeSBwb2ludHMK
LQotV2ViR1BVJ3MgQVBJIHBhc3NlcyBkYXRhIHRvIGEgY29tcHV0ZSBzaGFkZXIgaW4gdGhyZWUg
d2F5czoKLQotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwotCi1D
b21wdXRlIGVudHJ5IHBvaW50cyBzdGFydCB3aXRoIHRoZSBrZXl3b3JkIGBjb21wdXRlYC4gVGhl
IHJldHVybiB0eXBlIGZvciBhIGNvbXB1dGUgZW50cnkgcG9pbnQgbXVzdCBiZSBgdm9pZGAuIEVh
Y2ggYnVmZmVyIGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJyYXkgcmVm
ZXJlbmNlIHR5cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBzYW1wbGVy
cyBhcmUgcmVwcmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBhbmQgYHNh
bXBsZXJgIHR5cGVzLCByZXNwZWN0aXZlbHkuIENvbXB1dGUgZW50cnkgcG9pbnRzIG1heSBhbHNv
IGFjY2VwdCBidWlsdC1pbiB2YXJpYWJsZXMgYXMgYXJndW1lbnRzLiBBcmd1bWVudHMgb2YgYW55
IG90aGVyIHR5cGUgYXJlIGRpc2FsbG93ZWQuIEFyZ3VtZW50cyBtYXkgbm90IHVzZSB0aGUgYHRo
cmVhZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLSMgRXJyb3IgaGFuZGxpbmcKLQotRXJyb3JzIG1h
eSBvY2N1ciBkdXJpbmcgc2hhZGVyIHByb2Nlc3NpbmcuIEZvciBleGFtcGxlLCB0aGUgc2hhZGVy
IG1heSBhdHRlbXB0IHRvIGRlcmVmZXJlbmNlIGEgYG51bGxgIGFycmF5IHJlZmVyZW5jZS4gSWYg
dGhpcyBvY2N1cnMsIHRoZSBzaGFkZXIgc3RhZ2UgaW1tZWRpYXRlbHkgY29tcGxldGVzIHN1Y2Nl
c3NmdWxseS4gVGhlIGVudHJ5IHBvaW50IGltbWVkaWF0ZWx5IHJldHVybnMgYSBzdHJ1Y3Qgd2l0
aCBhbGwgZmllbGRzIHNldCB0byAwLiBBZnRlciB0aGlzIGV2ZW50LCBzdWJzZXF1ZW50IHNoYWRl
ciBzdGFnZXMgd2lsbCBwcm9jZWVkIGFzIGlmIHRoZXJlIHdhcyBubyBwcm9ibGVtLgotCi1CdWZm
ZXIgYW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBiZWZvcmUgdGhlIGVycm9yIGFsbCBjb21w
bGV0ZSwgYW5kIGhhdmUgdGhlIHNhbWUgc2VtYW50aWNzIGFzIGlmIG5vIGVycm9yIGhhZCBvY2N1
cnJlZC4gQnVmZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYWZ0ZXIgdGhlIGVycm9y
IGRvIG5vdCBvY2N1ci4KLQotIyBTdW1tYXJ5Ci0KLVdTTCBpcyBhIHR5cGUtc2FmZSBsYW5ndWFn
ZSBiYXNlZCBvbiBDIHN5bnRheC4gSXQgZWxpbWluYXRlcyBzb21lIEMgZmVhdHVyZXMsIGxpa2Ug
dW5pb25zIGFuZCBwb2ludGVyIGNhc3RzLCBidXQgYWRkcyBvdGhlciBtb2Rlcm4gZmVhdHVyZXMg
aW4gdGhlaXIgcGxhY2UsIGxpa2UgZ2VuZXJpY3MgYW5kIG92ZXJsb2FkaW5nLgotCi0jIEFkZGl0
aW9uYWwgTGltaXRhdGlvbnMKLQotVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGxpbWl0YXRpb25z
IG1heSBiZSBwbGFjZWQgb24gYSBXU0wgcHJvZ3JhbToKLQotLSBgZGV2aWNlYCwgYGNvbnN0YW50
YCwgYW5kIGB0aHJlYWRncm91cGAgcG9pbnRlcnMgY2Fubm90IHBvaW50IHRvIGRhdGEgdGhhdCBt
YXkgaGF2ZSBwb2ludGVycyBpbiBpdC4gVGhpcyBzYWZldHkgY2hlY2sgaXMgbm90IGRvbmUgYXMg
cGFydCBvZiB0aGUgbm9ybWFsIHR5cGUgc3lzdGVtIGNoZWNrcy4gSXQncyBwZXJmb3JtZWQgb25s
eSBhZnRlciBpbnN0YW50aWF0aW9uLgotLSBQb2ludGVycyBhbmQgYXJyYXkgcmVmZXJlbmNlcyAo
Y29sbGVjdGl2ZWx5LCAqcmVmZXJlbmNlcyopIG1heSBiZSByZXN0cmljdGVkIHRvIHN1cHBvcnQg
Y29tcGlsaW5nIHRvIFNQSVItViAqbG9naWNhbCBtb2RlKi4gSW4gdGhpcyBtb2RlLCBhcnJheXMg
bXVzdCBub3QgdHJhbnNpdGl2ZWx5IGhvbGQgcmVmZXJlbmNlcy4gUmVmZXJlbmNlcyBtdXN0IGJl
IGluaXRpYWxpemVkIHVwb24gZGVjbGFyYXRpb24gYW5kIG5ldmVyIHJlYXNzaWduZWQuIEZ1bmN0
aW9ucyB0aGF0IHJldHVybiByZWZlcmVuY2VzIG11c3QgaGF2ZSBvbmUgcmV0dXJuIHBvaW50LiBU
ZXJuYXJ5IGV4cHJlc3Npb25zIG1heSBub3QgcmV0dXJuIHJlZmVyZW5jZXMuCi0tIEdyYXBoaWNz
IGVudHJ5IHBvaW50cyBtdXN0IHRyYW5zaXRpdmVseSBuZXZlciByZWZlciB0byB0aGUgYHRocmVh
ZGdyb3VwYCBtZW1vcnkgc3BhY2UuCi0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9XcmFwQ2hlY2tlci5qcwppbmRleCA0Y2FkYzdkMGQ5ZTZhNmRmZGE1NTVkYWI4OWQwMjcxNzcw
ZGJkOWE3Li4wZWI0ZTgxZWMyZmMzNjM5OTcwZDljNjNhM2ZiY2NlOTk2Y2I0MTBhIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcwpAQCAtNTIsMTEgKzUy
LDYgQEAgY2xhc3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJGb3VuZCB1bndyYXBwZWQgIiArIG5vZGUuY29uc3RydWN0b3IubmFtZSArICIg
YXQgIiArIG9yaWdpblN0cmluZyhub2RlKSArICI6ICIgKyBub2RlICsgIlxuV2hpbGUgdmlzaXRp
bmcgIiArIHRoaXMuX3N0YXJ0Tm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2lu
U3RyaW5nKHRoaXMuX3N0YXJ0Tm9kZS5vcmlnaW4pICsgIjogIiArIHRoaXMuX3N0YXJ0Tm9kZSk7
CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQotICAgIAogICAg
IHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fZm91bmRVbndy
YXBwZWQobm9kZSk7CkBAIC03NiwxNCArNzEsNCBAQCBjbGFzcyBXcmFwQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgIHsKICAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7CiAg
ICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICB0
aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gTk9URTogVGhp
cyBkb2VzIG5vdCBrbm93IGhvdyB0byBoYW5kbGUgTmF0aXZlVHlwZUluc3RhbmNlLCBiZWNhdXNl
IHRoaXMgaXMgbmV2ZXIgY2FsbGVkIG9uIGluc3RhbnRpYXRlZAotICAgIC8vIGNvZGUuIE9uY2Ug
Y29kZSBpcyBpbnN0YW50aWF0ZWQsIHlvdSBjYW5ub3QgaW5zdGFudGlhdGUgaXQgZnVydGhlci4K
LSAgICAKLSAgICAvLyBOT1RFOiBUaGlzIG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYyB3aXRoIEF1
dG9XcmFwcGVyLgogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
aW5kZXguaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKaW5k
ZXggODA5NGIxOTM3ODFiNGFhOWIwYzM5MDllOWE5MWQyODE1ZjJiMmFiYS4uMGRkMDRlZjJkMTQx
MDE4Y2RlNGQzMDk1ZGM4YjcwZjE5ZjAxNzMyMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9pbmRleC5odG1sCkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0IHNyYz0iQ2xvbmVQcm9n
cmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
Q29udGludWUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVm
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwv
c2NyaXB0PgpAQCAtNTUsNyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGbGF0dGVuUHJv
dG9jb2xFeHRlbmRzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RP
ZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4K
QEAgLTYzLDcgKzYxLDYgQEAKIDxzY3JpcHQgc3JjPSJGb3JMb29wLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jSW5zdGFudGlhdG9yLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5j
dGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRl
ci5qcyI+PC9zY3JpcHQ+CkBAIC03Myw3ICs3MCw2IEBACiA8c2NyaXB0IHNyYz0iSW5mZXJUeXBl
c0ZvckNhbGwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iSW5zdGFu
dGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC05MCw5ICs4Niw3IEBACiA8
c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmFtZVJl
c29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJ
bnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNv
bHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTEwMywxMCArOTcsNiBA
QAogPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNl
c3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbC5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJQcm90b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQ
cm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzEsMTAg
KzEyMSw3IEBACiA8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlT3JWYXJp
YWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVBhcmFtZXRlclJld3JpdGVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJp
YWJsZVRyYWNrZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJVaW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMzQ0LDcgKzMzMSw3IEBAIGZ1
bmN0aW9uIHNlbGVjdGVkU2hhZGVyc0NoYW5nZWQoZnJvbUNvbXBpbGF0aW9uID0gZmFsc2UpIHsK
ICAgICBjdXJyZW50VmVydGV4U2hhZGVyID0gYXZhaWxhYmxlVmVydGV4U2hhZGVyc1t2ZXJ0ZXhT
aGFkZXJTZWxlY3Quc2VsZWN0ZWRJbmRleF07CiAgICAgY3VycmVudEZyYWdtZW50U2hhZGVyID0g
YXZhaWxhYmxlRnJhZ21lbnRTaGFkZXJzW2ZyYWdtZW50U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5k
ZXhdOwogCi0gICAgaW5saW5lZFZlcnRleFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRv
ci5nZXRVbmlxdWUoY3VycmVudFZlcnRleFNoYWRlciwgW10pOworICAgIGlubGluZWRWZXJ0ZXhT
aGFkZXIgPSBjdXJyZW50VmVydGV4U2hhZGVyOwogICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFt
LCBpbmxpbmVkVmVydGV4U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudFZlcnRleFNoYWRl
cikpOwogCiAgICAgYWxsQXJndW1lbnRJbmZvcyA9IFtdOwpAQCAtNDI2LDcgKzQxMyw3IEBAIGZ1
bmN0aW9uIHJ1blNoYWRlcnMoKSB7CiAgICAgICAgIGZ1bmMucGFyYW1ldGVyc1tpXS5lUHRyLmNv
cHlGcm9tKGFyZ3VtZW50RVB0cnNbaV0uZVB0ciwgYXJndW1lbnRFUHRyc1tpXS5zaXplKTsKICAg
ICBsZXQgcmVzdWx0ID0gbmV3IEV2YWx1YXRvcihwcm9ncmFtKS5ydW5GdW5jKGZ1bmMpOwogCi0g
ICAgaW5saW5lZEZyYWdtZW50U2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVu
aXF1ZShjdXJyZW50RnJhZ21lbnRTaGFkZXIsIFtdKTsKKyAgICBpbmxpbmVkRnJhZ21lbnRTaGFk
ZXIgPSBjdXJyZW50RnJhZ21lbnRTaGFkZXI7CiAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0s
IGlubGluZWRGcmFnbWVudFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0KGN1cnJlbnRGcmFnbWVudFNo
YWRlcikpOwogICAgIGZ1bmMgPSBpbmxpbmVkRnJhZ21lbnRTaGFkZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346897</attachid>
            <date>2018-08-09 23:32:58 -0700</date>
            <delta_ts>2018-08-10 17:10:19 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180809233257.patch</filename>
            <type>text/plain</type>
            <size>431329</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzUxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWQ1MzY3OGJkNTMyOWQ1YTk2MzBmZTBmYjNjOGExNmU0
Y2I0ZDcyMC4uNzI5NDI0NjZhYTdiYjJjNTJkYTJlMTdmYTEwODdiMTExNjE1MTk0MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0wOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0wOSAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAg
ICBbd2Via2l0cHldW1dpbl0gTGF5b3V0VGVzdHM6IHRlc3QgbmFtZXMgc2hvdWxkIGJlIFVuaXgg
c3R5bGUsIHNlcGFyYXRlZCBieSBzbGFzaCBub3QgYmFja3NsYXNoCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BbGwuanMKaW5kZXggMTVkZDdjY2FiOTQ2OTJhMzJhY2QyN2I5ZGFjOTZjOGE4ZjU1
ZDY1OC4uNDlhNWZiNjg2MjZjOTAyNDRlODQ2MmFkNzE4ZmYxZTg1OWZkNjIzZiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNTgsNyArNTgsNiBAQCBsb2FkKCJDaGVja2Vy
LmpzIik7CiBsb2FkKCJDbG9uZVByb2dyYW0uanMiKTsKIGxvYWQoIkNvbW1hRXhwcmVzc2lvbi5q
cyIpOwogbG9hZCgiQ29uc3RleHByRm9sZGVyLmpzIik7Ci1sb2FkKCJDb25zdGV4cHJUeXBlUGFy
YW1ldGVyLmpzIik7CiBsb2FkKCJDb250aW51ZS5qcyIpOwogbG9hZCgiQ29udmVydFB0clRvQXJy
YXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMiKTsK
QEAgLTc3LDcgKzc2LDYgQEAgbG9hZCgiRXhwcmVzc2lvbkZpbmRlci5qcyIpOwogbG9hZCgiRXh0
ZXJuYWxPcmlnaW4uanMiKTsKIGxvYWQoIkZpZWxkLmpzIik7CiBsb2FkKCJGaW5kSGlnaFpvbWJp
ZXMuanMiKTsKLWxvYWQoIkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiKTsKIGxvYWQoIkZsYXR0
ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIik7CiBsb2FkKCJGbG9hdExpdGVyYWwuanMiKTsK
IGxvYWQoIkZsb2F0TGl0ZXJhbFR5cGUuanMiKTsKQEAgLTg1LDcgKzgzLDYgQEAgbG9hZCgiRm9s
ZENvbnN0ZXhwcnMuanMiKTsKIGxvYWQoIkZvckxvb3AuanMiKTsKIGxvYWQoIkZ1bmMuanMiKTsK
IGxvYWQoIkZ1bmNEZWYuanMiKTsKLWxvYWQoIkZ1bmNJbnN0YW50aWF0b3IuanMiKTsKIGxvYWQo
IkZ1bmNQYXJhbWV0ZXIuanMiKTsKIGxvYWQoIkZ1bmN0aW9uTGlrZUJsb2NrLmpzIik7CiBsb2Fk
KCJIaWdoWm9tYmllRmluZGVyLmpzIik7CkBAIC05NSw3ICs5Miw2IEBAIGxvYWQoIkluZGV4RXhw
cmVzc2lvbi5qcyIpOwogbG9hZCgiSW5mZXJUeXBlc0ZvckNhbGwuanMiKTsKIGxvYWQoIklubGlu
ZS5qcyIpOwogbG9hZCgiSW5saW5lci5qcyIpOwotbG9hZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVz
LmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIp
OwogbG9hZCgiSW50cmluc2ljcy5qcyIpOwpAQCAtMTEyLDkgKzEwOCw3IEBAIGxvYWQoIk5hbWVD
b250ZXh0LmpzIik7CiBsb2FkKCJOYW1lRmluZGVyLmpzIik7CiBsb2FkKCJOYW1lUmVzb2x2ZXIu
anMiKTsKIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKLWxvYWQoIk5hdGl2ZUZ1bmNJbnN0YW5jZS5q
cyIpOwogbG9hZCgiTmF0aXZlVHlwZS5qcyIpOwotbG9hZCgiTmF0aXZlVHlwZUluc3RhbmNlLmpz
Iik7CiBsb2FkKCJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIik7CiBsb2FkKCJOdWxsTGl0
ZXJhbC5qcyIpOwogbG9hZCgiTnVsbFR5cGUuanMiKTsKQEAgLTEyNSwxMCArMTE5LDYgQEAgbG9h
ZCgiUHJlcGFyZS5qcyIpOwogbG9hZCgiUHJvZ3JhbS5qcyIpOwogbG9hZCgiUHJvZ3JhbVdpdGhV
bm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiKTsKIGxvYWQoIlByb3BlcnR5UmVzb2x2ZXIuanMi
KTsKLWxvYWQoIlByb3RvY29sLmpzIik7Ci1sb2FkKCJQcm90b2NvbERlY2wuanMiKTsKLWxvYWQo
IlByb3RvY29sRnVuY0RlY2wuanMiKTsKLWxvYWQoIlByb3RvY29sUmVmLmpzIik7CiBsb2FkKCJQ
dHJUeXBlLmpzIik7CiBsb2FkKCJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIik7CiBsb2Fk
KCJSZWN1cnNpb25DaGVja2VyLmpzIik7CkBAIC0xNTMsMTAgKzE0Myw3IEBAIGxvYWQoIlRyYXBT
dGF0ZW1lbnQuanMiKTsKIGxvYWQoIlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZl
ci5qcyIpOwogbG9hZCgiVHlwZU9yVmFyaWFibGVSZWYuanMiKTsKLWxvYWQoIlR5cGVQYXJhbWV0
ZXJSZXdyaXRlci5qcyIpOwogbG9hZCgiVHlwZVJlZi5qcyIpOwotbG9hZCgiVHlwZVZhcmlhYmxl
LmpzIik7Ci1sb2FkKCJUeXBlVmFyaWFibGVUcmFja2VyLmpzIik7CiBsb2FkKCJUeXBlZFZhbHVl
LmpzIik7CiBsb2FkKCJVaW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiVWludExpdGVyYWxUeXBlLmpz
Iik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCmluZGV4
IDgwYWU3ZDkyYTRmYTYyNjY2ZGIyYTJmZjUyMjBkMTQ5YTdmMzhlOWMuLjIxNmE3ZTJlMzNkZTk5
MWIwNmFiNjM2ZGI1Y2ZjYWI0MDVkOGVlMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0F1dG9XcmFwcGVyLmpzCkBAIC0zNSwxMSArMzUsNiBAQCBjbGFzcyBBdXRvV3JhcHBl
ciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogICAgIAot
ICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1Bh
cmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAobm9k
ZSk7CkBAIC02MCwxMSArNTUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVy
IHsKICAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChub2RlKTsKICAgICB9CiAgICAgCi0gICAg
dmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBUeXBlUmVmLndy
YXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUp
CiAgICAgewogICAgICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKaW5kZXggYjVhZTBmZTQ5ZmNlZGM4ZmE3NmE2Njc5
M2NmZTBjYjFmMDhiNDU3MS4uZjA2NmFjMzIwYTlkY2U0MjFkNGY4ZWZkMzYzMzNhMjRlYTc2MmZi
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Np
b24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24u
anMKQEAgLTI1LDExICsyNSwxMCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBDYWxsRXhwcmVz
c2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwg
dHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFt
ZSwgYXJndW1lbnRMaXN0KQogICAgIHsKICAgICAgICAgc3VwZXIob3JpZ2luKTsKICAgICAgICAg
dGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJn
dW1lbnRzOwogICAgICAgICB0aGlzLl9hcmd1bWVudExpc3QgPSBhcmd1bWVudExpc3Q7CiAgICAg
ICAgIHRoaXMuZnVuYyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGZhbHNlOwpAQCAt
MzcsNzEgKzM2LDQxIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgfQogICAgIAogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAg
IGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAg
IGdldCBhcmd1bWVudExpc3QoKSB7IHJldHVybiB0aGlzLl9hcmd1bWVudExpc3Q7IH0KICAgICBn
ZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5faXNDYXN0OyB9CiAgICAgZ2V0IHJldHVyblR5cGUo
KSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9CiAgICAgCi0gICAgc3RhdGljIHJlc29sdmUo
b3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCBuYW1lLCB0
eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCisg
ICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgbmFtZSwgYXJndW1l
bnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgbGV0IGNh
bGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1
bWVudExpc3QpOworICAgICAgICBsZXQgY2FsbCA9IG5ldyBDYWxsRXhwcmVzc2lvbihvcmlnaW4s
IG5hbWUsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIGNhbGwuYXJndW1lbnRUeXBlcyA9IGFyZ3Vt
ZW50VHlwZXMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigp
KSk7CiAgICAgICAgIGNhbGwucG9zc2libGVPdmVybG9hZHMgPSBwb3NzaWJsZU92ZXJsb2FkczsK
ICAgICAgICAgaWYgKHJldHVyblR5cGUpCiAgICAgICAgICAgICBjYWxsLnNldENhc3REYXRhKHJl
dHVyblR5cGUpOwotICAgICAgICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2
ZShwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCB0eXBlQXJndW1lbnRz
KX07CisgICAgICAgIHJldHVybiB7Y2FsbCwgcmVzdWx0VHlwZTogY2FsbC5yZXNvbHZlKHBvc3Np
YmxlT3ZlcmxvYWRzKX07CiAgICAgfQogICAgIAotICAgIHJlc29sdmUocG9zc2libGVPdmVybG9h
ZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFyZ3VtZW50cykKKyAgICByZXNvbHZlKHBv
c3NpYmxlT3ZlcmxvYWRzKQogICAgIHsKICAgICAgICAgaWYgKCFwb3NzaWJsZU92ZXJsb2FkcykK
ICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmlu
ZywgIkRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyB0aGlzLm5hbWUpOwogICAg
ICAgICAKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gbnVsbDsKICAgICAgICAgbGV0IGZhaWx1cmVz
ID0gW107Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJ
blNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgVHlw
ZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICgh
dHlwZVBhcmFtZXRlci5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIGxldCBzaWduYXR1cmVzID0KLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnBy
b3RvY29sLnByb3RvY29sRGVjbC5zaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlz
Lm5hbWUsIHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3Zl
cmxvYWRJbXBsKHNpZ25hdHVyZXMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0g
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVy
bG9hZEltcGwoCisgICAgICAgICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5
cGVzLCB0aGlzLnJldHVyblR5cGUpOworICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAg
ICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAg
ICAgb3ZlcmxvYWQgPSBudWxsOwotICAgICAgICB9Ci0gICAgICAgIGlmICghb3ZlcmxvYWQpIHsK
LSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAgICAg
ICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50
VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMp
IHsKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsK
LSAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJEaWQgbm90IGZpbmQgZnVuY3Rpb24gbmFt
ZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0aCAiOwotICAgICAgICAgICAgICAgIGlm
ICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
ICs9ICJ0eXBlIGFyZ3VtZW50cyA8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IGFuZCAiOwot
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1
bWVudFR5cGVzICsgIikiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCi0g
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5y
ZXR1cm5UeXBlOwotICAgICAgICAgICAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpCi0gICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMu
am9pbigiXG4iKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3Jp
Z2luLm9yaWdpblN0cmluZywgbWVzc2FnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBsZXQgdHlwZUFyZ3VtZW50VHlwZSA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAg
ICAgICAgICBsZXQgdHlwZVBhcmFtZXRlciA9IG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNb
aV07Ci0gICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgQ29uc3RleHBy
VHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBp
ZiAoIXR5cGVQYXJhbWV0ZXIudHlwZS5lcXVhbHNXaXRoQ29tbWl0KHR5cGVBcmd1bWVudFR5cGUp
KQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQXQgIiArIHRoaXMub3JpZ2luLm9y
aWdpblN0cmluZyArICIgY29uc3RleHByIHR5cGUgYXJndW1lbnQgYW5kIHBhcmFtZXRlciB0eXBl
cyBub3QgZXF1YWw6IGFyZ3VtZW50ID0gIiArIHR5cGVBcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0
ZXIgPSAiICsgdHlwZVBhcmFtZXRlci50eXBlKTsKKyAgICAgICAgICAgIGxldCBtZXNzYWdlID0g
IkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3
aXRoICI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMu
YXJndW1lbnRUeXBlcyArICIpIjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCisg
ICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVy
blR5cGU7CisgICAgICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAgICAgICAg
IG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5n
LCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMu
YXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3VtZW50VHlw
ZSA9IHRoaXMuYXJndW1lbnRUeXBlc1tpXTsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBl
ID0gb3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRp
b24oCi0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3Zlcmxv
YWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0g
b3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGU7CiAgICAgICAgICAgICBsZXQgcmVzdWx0
ID0gYXJndW1lbnRUeXBlLmVxdWFsc1dpdGhDb21taXQocGFyYW1ldGVyVHlwZSk7CiAgICAgICAg
ICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIg
KyB0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlw
ZXMgbm90IGVxdWFsIGFmdGVyIHR5cGUgYXJndW1lbnQgc3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9
ICIgKyBhcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgcGFyYW1ldGVyVHlwZSk7CkBA
IC0xMTIsMTAgKzgxLDcgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9u
IHsKICAgICByZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMu
ZnVuYyA9IG92ZXJsb2FkLmZ1bmM7Ci0gICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9
IG92ZXJsb2FkLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQg
aW5zdGFuY2VvZiBUeXBlID8gdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6
IHR5cGVBcmd1bWVudCk7Ci0gICAgICAgIHRoaXMuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3Vt
ZW50cyA9IHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50czsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG92
ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAg
ICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29u
dGV4dCk7CisgICAgICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGU7CiAg
ICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJl
dHVybiB0eXBlIik7CiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC52aXNpdChuZXcgQXV0b1dyYXBw
ZXIoKSk7CkBAIC0xMjUsMTEgKzkxLDEwIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMg
RXhwcmVzc2lvbiB7CiAgICAgCiAgICAgYmVjb21lQ2FzdChyZXR1cm5UeXBlKQogICAgIHsKLSAg
ICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBUeXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5h
bWUsIHRoaXMuX3R5cGVBcmd1bWVudHMpOworICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3
IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFtZSk7CiAgICAgICAgIHRoaXMuX3JldHVyblR5
cGUudHlwZSA9IHJldHVyblR5cGU7CiAgICAgICAgIHRoaXMuX25hbWUgPSAib3BlcmF0b3IgY2Fz
dCI7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1
bWVudHMgPSBbXTsKICAgICB9CiAgICAgCiAgICAgc2V0Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAg
LTE0MSw4ICsxMDYsNiBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24g
ewogICAgIHRvU3RyaW5nKCkKICAgICB7CiAgICAgICAgIHJldHVybiAodGhpcy5pc0Nhc3QgPyAi
b3BlcmF0b3IgIiArIHRoaXMucmV0dXJuVHlwZSA6IHRoaXMubmFtZSkgKwotICAgICAgICAgICAg
IjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iICsKLSAgICAgICAgICAgICh0aGlzLmFjdHVh
bFR5cGVBcmd1bWVudHMgPyAiPDwiICsgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6
ICIiKSArCiAgICAgICAgICAgICAiKCIgKyB0aGlzLmFyZ3VtZW50TGlzdCArICIpIjsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rp
b24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKaW5k
ZXggZjBmMDM5ZjU0NjJkMDc4MWQ4MmIzNDY0Yzg3NDc4NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVk
ODFkODM5NDU2Y2RlNGM0NTk3NzBiY2MzMzBmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwpAQCAtMjUsMTcgKzI1LDE3IEBACiAidXNlIHN0cmlj
dCI7CiAKIC8vIFRoaXMgYWxsb3dzIHlvdSB0byBwYXNzIHN0cnVjdHMgYW5kIGFycmF5cyBpbi1w
bGFjZSwgYnV0IGl0J3MgYSBtb3JlIGFubm95aW5nIEFQSS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpCitmdW5jdGlvbiBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRMaXN0KQogewogICAgIGxldCBhcmd1
bWVudFR5cGVzID0gYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC50eXBlKTsK
LSAgICBsZXQgZnVuY09yRmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0s
IG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHRydWUpOworICAgIGxldCBmdW5j
T3JGYWlsdXJlcyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1l
bnRUeXBlcywgdHJ1ZSk7CiAgICAgaWYgKCEoZnVuY09yRmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5j
KSkgewogICAgICAgICBsZXQgZmFpbHVyZXMgPSBmdW5jT3JGYWlsdXJlczsKLSAgICAgICAgdGhy
b3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0
aW9uIGNhbGwgIiArIG5hbWUgKyAiPCIgKyB0eXBlQXJndW1lbnRzICsgIj4oIiArIGFyZ3VtZW50
TGlzdCArICIpIiArIChmYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWlsdXJlcy5q
b2luKCJcbiIpIDogIiIpKTsKKyAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVu
Y3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiKCIgKyBh
cmd1bWVudExpc3QgKyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFp
bHVyZXMuam9pbigiXG4iKSA6ICIiKSk7CiAgICAgfQogICAgIGxldCBmdW5jID0gZnVuY09yRmFp
bHVyZXM7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoOyAr
K2kpIHsKLSAgICAgICAgbGV0IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5
cGU7CisgICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXTsKICAgICAgICAgdHlwZS52
aXNpdChuZXcgU3RydWN0TGF5b3V0QnVpbGRlcigpKTsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJz
W2ldLmVQdHIuY29weUZyb20oYXJndW1lbnRMaXN0W2ldLmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4
MzZjMTU0ODZmZDI1ODBjNThlOTYwNmNhZDU5NmVjYi4uNWRjYTQ2MGZiOTZjMTQ4MzljYjg5ZjA1
ZjE3MzRkNDM5Y2U5NWI1YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQ2hlY2tlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2Vy
LmpzCkBAIC00Myw4ICs0Myw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAgICAgCiAgICAgICAgIGZvciAobGV0IHR5cGUgb2Ygbm9kZS50eXBlcy52YWx1ZXMoKSkKICAg
ICAgICAgICAgIGRvU3RhdGVtZW50KHR5cGUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBv
ZiBub2RlLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGRvU3RhdGVtZW50KHByb3Rv
Y29sKTsKICAgICAgICAgZm9yIChsZXQgZnVuY3Mgb2Ygbm9kZS5mdW5jdGlvbnMudmFsdWVzKCkp
IHsKICAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAg
ICB0aGlzLnZpc2l0RnVuYyhmdW5jKTsKQEAgLTU5LDggKzU3LDYgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgIF9jaGVja1NoYWRlclR5cGUobm9kZSkKICAgICB7CiAgICAg
ICAgIC8vIEZJWE1FOiBSZWxheCB0aGVzZSBjaGVja3Mgb25jZSB3ZSBoYXZlIGltcGxlbWVudGVk
IHN1cHBvcnQgZm9yIHRleHR1cmVzIGFuZCBzYW1wbGVycy4KLSAgICAgICAgaWYgKG5vZGUudHlw
ZVBhcmFtZXRlcnMubGVuZ3RoICE9IDApCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnRyeSBwb2ludCAiICsgbm9kZS5uYW1lICsg
IiBtdXN0IG5vdCBoYXZlIHR5cGUgYXJndW1lbnRzLiIpOwogICAgICAgICBsZXQgc2hhZGVyRnVu
YyA9IG5vZGU7CiAgICAgICAgIHN3aXRjaCAobm9kZS5zaGFkZXJUeXBlKSB7CiAgICAgICAgIGNh
c2UgInZlcnRleCI6CkBAIC04NCwxNSArODAsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgIGlmICghZnVuYy5uYW1lLnN0YXJ0c1dpdGgoIm9wZXJhdG9yIikpCiAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBvcGVyYXRvciBvdmVybG9hZCBuYW1lOiAi
ICsgZnVuYy5uYW1lKTsKICAgICAgICAgCi0gICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2Vy
ID0gbmV3IFR5cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVy
VHlwZSBvZiBmdW5jLnBhcmFtZXRlclR5cGVzKQotICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52
aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAgTm9kZS52aXNpdChmdW5jLnJldHVy
blR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAg
ICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQot
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsgIiB0byBv
cGVyYXRvciAiICsgZnVuYy50b0RlY2xTdHJpbmcoKSArICIgaXMgbm90IGluZmVycmFibGUgZnJv
bSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGxldCBj
aGVja0dldHRlciA9IChraW5kKSA9PiB7CiAgICAgICAgICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJh
bWV0ZXJzID0ga2luZCA9PSAiaW5kZXgiID8gMiA6IDE7CiAgICAgICAgICAgICBpZiAoZnVuYy5w
YXJhbWV0ZXJzLmxlbmd0aCAhPSBudW1FeHBlY3RlZFBhcmFtZXRlcnMpCkBAIC0xMTUsMTEgKzEw
MiwxMCBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICBpZiAo
IWdldHRlckZ1bmNzKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMu
b3JpZ2luLm9yaWdpblN0cmluZywgIkV2ZXJ5IHNldHRlciBtdXN0IGhhdmUgYSBtYXRjaGluZyBn
ZXR0ZXIsIGJ1dCBkaWQgbm90IGZpbmQgYW55IGZ1bmN0aW9uIG5hbWVkICIgKyBnZXR0ZXJOYW1l
ICsgIiB0byBtYXRjaCAiICsgZnVuYy5uYW1lKTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5
cGVzID0gZnVuYy5wYXJhbWV0ZXJUeXBlcy5zbGljZSgwLCBudW1FeHBlY3RlZFBhcmFtZXRlcnMg
LSAxKTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0
dGVyRnVuY3MsIFtdLCBhcmd1bWVudFR5cGVzLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBvdmVy
bG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIGFyZ3VtZW50VHlwZXMsIG51
bGwpOwogICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmlu
ZCBmdW5jdGlvbiBuYW1lZCAiICsgZnVuYy5uYW1lICsgIiB3aXRoIGFyZ3VtZW50cyAiICsgYXJn
dW1lbnRUeXBlcyArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBv
dmVybG9hZC5mYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsKLSAgICAgICAgICAgIGxldCByZXN1
bHRUeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9u
KAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2Fk
LnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAgICBsZXQgcmVzdWx0VHlwZSA9IG92ZXJs
b2FkLmZ1bmMucmV0dXJuVHlwZTsKICAgICAgICAgICAgIGlmICghcmVzdWx0VHlwZS5lcXVhbHMo
dmFsdWVUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9y
aWdpbi5vcmlnaW5TdHJpbmcsICJTZXR0ZXIgYW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZhbHVl
IHR5cGUgKGdldHRlciBhdCAiICsgb3ZlcmxvYWQuZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nICsg
IiBzYXlzICIgKyByZXN1bHRUeXBlICsgIiB3aGlsZSB0aGlzIHNldHRlciBzYXlzICIgKyB2YWx1
ZVR5cGUgKyAiKSIpOwogICAgICAgICB9OwpAQCAtMjExLDIzICsxOTcsNiBAQCBjbGFzcyBDaGVj
a2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3Rv
Y29sRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUu
c2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHR5cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcg
VHlwZVZhcmlhYmxlVHJhY2tlcigpOwotICAgICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlw
ZSBvZiBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMpCi0gICAgICAgICAgICAgICAgcGFyYW1ldGVy
VHlwZS52aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAgICAgIE5vZGUudmlzaXQo
c2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVWYXJpYWJsZVRy
YWNrZXIpOwotICAgICAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBzaWduYXR1cmUu
dHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNr
ZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgV1R5
cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRl
ciB0byBwcm90b2NvbCBzaWduYXR1cmUgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0
ZXJzIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNr
ZXIuc2V0Lmhhcyhub2RlLnR5cGVWYXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3
IFdUeXBlRXJyb3Ioc2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJQcm90b2NvbCdzIHR5
cGUgdmFyaWFibGUgKCIgKyBub2RlLm5hbWUgKyAiKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVy
ZTogIiArIHNpZ25hdHVyZSk7Ci0gICAgICAgICAgICB0aGlzLl9jaGVja09wZXJhdG9yT3Zlcmxv
YWQoc2lnbmF0dXJlLCBuYW1lID0+IG5vZGUuc2lnbmF0dXJlc0J5TmFtZShuYW1lKSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgCiAgICAgdmlzaXRFbnVtVHlwZShub2RlKQogICAgIHsKICAgICAg
ICAgbm9kZS5iYXNlVHlwZS52aXNpdCh0aGlzKTsKQEAgLTI3OCwyOSArMjQ3LDEyIEBAIGNsYXNz
IENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkVudW0gZG9lcyBub3QgaGF2ZSBhIG1lbWJl
ciB3aXRoIHRoZSB2YWx1ZSB6ZXJvIik7CiAgICAgfQogICAgIAotICAgIF9jaGVja1R5cGVBcmd1
bWVudHMob3JpZ2luLCB0eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZVBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IHR5cGVBcmd1bWVudHNbaV0gaW5zdGFuY2Vv
ZiBUeXBlOwotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0udmlzaXQo
dGhpcyk7Ci0gICAgICAgICAgICBpZiAoYXJndW1lbnRJc1R5cGUpIHsKLSAgICAgICAgICAgICAg
ICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS5pbmhlcml0cyh0eXBlUGFyYW1ldGVyc1tp
XS5wcm90b2NvbCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAi
VHlwZSBhcmd1bWVudCBkb2VzIG5vdCBpbmhlcml0IHByb3RvY29sOiAiICsgcmVzdWx0LnJlYXNv
bik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVx
dWFsc1dpdGhDb21taXQodHlwZVBhcmFtZXRlcnNbaV0udHlwZSkpCi0gICAgICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyB0eXBl
IGZvciBjb25zdGV4cHIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAK
ICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIGlmICghbm9kZS50eXBlKQog
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUeXBlIHJlZmVyZW5jZSB3aXRob3V0IGEgdHlw
ZSBpbiBjaGVja2VyOiAiICsgbm9kZSArICIgYXQgIiArIG5vZGUub3JpZ2luKTsKICAgICAgICAg
aWYgKCEobm9kZS50eXBlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkpCiAgICAgICAgICAgICBub2Rl
LnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMuX2NoZWNrVHlwZUFyZ3VtZW50cyhub2Rl
Lm9yaWdpbiwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzLCBub2RlLnR5cGVBcmd1bWVudHMpOwog
ICAgIH0KICAgICAKICAgICB2aXNpdEFycmF5VHlwZShub2RlKQpAQCAtNDI2LDggKzM3OCw4IEBA
IGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIHRyeSB7
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAg
ICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUdldE92ZXJsb2FkcywgdGhpcy5f
Y3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmdl
dEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5l
eHRyYUFyZ1R5cGVzXSwgbnVsbCk7CisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUu
cG9zc2libGVHZXRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5nZXRGdW5jTmFtZSwg
W25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwg
bnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxGb3JHZXQgPSByZXN1bHQuY2FsbDsKICAgICAg
ICAgICAgIG5vZGUucmVzdWx0VHlwZUZvckdldCA9IHJlc3VsdC5yZXN1bHRUeXBlOwogICAgICAg
ICB9IGNhdGNoIChlKSB7CkBAIC00NDAsOCArMzkyLDggQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRz
IFZpc2l0b3IgewogICAgICAgICAgICAgbGV0IGJhc2VGb3JBbmQgPSBiYXNlVHlwZS5hcmd1bWVu
dEZvckFuZE92ZXJsb2FkKG5vZGUub3JpZ2luLCBub2RlLmJhc2UpOwogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAg
ICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywgdGhpcy5fY3Vy
cmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmFuZEZ1
bmNOYW1lLCBbXSwgW2Jhc2VGb3JBbmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5l
eHRyYUFyZ1R5cGVzXSwKKyAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJs
ZUFuZE92ZXJsb2FkcywKKyAgICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbYmFzZUZv
ckFuZCwgLi4uZXh0cmFBcmdzXSwgW3R5cGVGb3JBbmQsIC4uLmV4dHJhQXJnVHlwZXNdLAogICAg
ICAgICAgICAgICAgIG51bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yQW5kID0gcmVzdWx0
LmNhbGw7CiAgICAgICAgICAgICBub2RlLnJlc3VsdFR5cGVGb3JBbmQgPSByZXN1bHQucmVzdWx0
VHlwZS51bmlmeU5vZGUucmV0dXJuVHlwZUZyb21BbmRPdmVybG9hZChub2RlLm9yaWdpbik7CkBA
IC00NjUsOSArNDE3LDkgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVz
dWx0IHR5cGUgcmVzb2x2ZWQgYnktdmFsdWUgKCIgKyBub2RlLnJlc3VsdFR5cGVGb3JHZXQgKyAi
KSBkb2VzIG5vdCBtYXRjaCByZXN1bHQgdHlwZSByZXNvbHZlZCBieS1wb2ludGVyICgiICsgbm9k
ZS5yZXN1bHRUeXBlRm9yQW5kICsgIikiKTsKICAgICAgICAgCiAgICAgICAgIHRyeSB7Ci0gICAg
ICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAg
ICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZVNldE92ZXJsb2FkcywgdGhpcy5fY3VycmVu
dFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLnNldEZ1bmNO
YW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5l
eHRyYUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBudWxsKTsKKyAgICAgICAgbGV0IHJlc3Vs
dCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4s
IG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5j
TmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRy
YUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2Fs
bEZvclNldCA9IHJlc3VsdC5jYWxsOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0VHlw
ZS5lcXVhbHMoYmFzZVR5cGUpKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3VsdCB0eXBlIG9mIHNldHRlciAiICsgcmVz
dWx0LmNhbGwuZnVuYyArICIgaXMgbm90IHRoZSBiYXNlIHR5cGUgIiArIGJhc2VUeXBlKTsKQEAg
LTY3NSw3ICs2MjcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgCiAg
ICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHR5cGVBcmd1
bWVudHMgPSBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1l
bnQudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgYXJndW1lbnRUeXBlcyA9IG5vZGUuYXJndW1l
bnRMaXN0Lm1hcChhcmd1bWVudCA9PiB7CiAgICAgICAgICAgICBsZXQgbmV3QXJndW1lbnQgPSBh
cmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmICghbmV3QXJndW1lbnQpCkBAIC02
ODcsNyArNjM4LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICBp
ZiAobm9kZS5yZXR1cm5UeXBlKQogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRo
aXMpOwogCi0gICAgICAgIGxldCByZXN1bHQgPSBub2RlLnJlc29sdmUobm9kZS5wb3NzaWJsZU92
ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywgdHlwZUFyZ3Vt
ZW50cyk7CisgICAgICAgIGxldCByZXN1bHQgPSBub2RlLnJlc29sdmUobm9kZS5wb3NzaWJsZU92
ZXJsb2Fkcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByRm9sZGVyLmpzCmluZGV4IDFlNWFkNjYx
NWIzOTI0M2MwNmEwYzQ1YWVmNzYzNGY2Mzc2NTM3NTAuLjFmZDUyMzExMTQ0NjUyYmE2Zjg4ZWNi
MTI2Yjc4NTc5Y2M3YjY4NWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NvbnN0ZXhwckZvbGRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Db25zdGV4cHJGb2xkZXIuanMKQEAgLTM0LDcgKzM0LDYgQEAgY2xhc3MgQ29uc3RleHByRm9s
ZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24o
bm9kZSk7CiAgICAgICAgIAogICAgICAgICBpZiAobm9kZS5uYW1lID09ICJvcGVyYXRvci0iCi0g
ICAgICAgICAgICAmJiAhbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aAogICAgICAgICAgICAgJiYg
bm9kZS5hcmd1bWVudExpc3QubGVuZ3RoID09IDEKICAgICAgICAgICAgICYmIG5vZGUuYXJndW1l
bnRMaXN0WzBdLnVuaWZ5Tm9kZS5pc0NvbnN0ZXhwcgogICAgICAgICAgICAgJiYgbm9kZS5hcmd1
bWVudExpc3RbMF0udW5pZnlOb2RlLm5lZ0NvbnN0ZXhwcikgewpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzE4MjZlZDU1ZjNmZTU2ZjdlMGVkMmEwM2RmZGEw
MjhkYTViMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgQ29uc3RleHByVHlwZVBh
cmFtZXRlciBleHRlbmRzIFZhbHVlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5
cGUpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmln
aW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlID0gdHlw
ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsg
fQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlKCkg
eyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCBpc0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICBnZXQgaXNVbmlmaWFibGUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IHZh
cklzTFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlm
eSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIg
aW5zdGFuY2VvZiBWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAg
aWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90
eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQot
ICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBv
dGhlcik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250
ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAK
LSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAg
ICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAiICIgKyB0aGlzLm5hbWU7Ci0gICAgfQot
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRl
cmFsVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxU
eXBlLmpzCmluZGV4IDEyOTE0ZGEzMTM3ZmQ2YjkwZmVkYTcyNTg2MjdlZmZmZmJkNGU1NDEuLjk5
Njg2YWI0NDVmMTkwMWY4MjE1NmI3ZTQwODAwODMwM2IyOTJkODIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCkBAIC0zMiw3ICsz
Miw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAgICAgIHN1
cGVyKCk7CiAgICAgICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgICAgICB0
aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5wcmVmZXJyZWRUeXBlID0gbmV3
IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVkVHlwZU5hbWUsIFtdKTsKKyAgICAgICAg
ICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBUeXBlUmVmKG9yaWdpbiwgY29uZmlnLnByZWZl
cnJlZFR5cGVOYW1lKTsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgZ2V0IG9yaWdpbigp
IHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQpAQCAtNTgsNyArNTgsNyBAQCBmdW5jdGlvbiBjcmVh
dGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgIHByZXBhcmVUb1ZlcmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0
aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICAgICAgaWYgKHJlYWxUaGlzIGluc3RhbmNl
b2YgVHlwZVZhcmlhYmxlIHx8IHJlYWxUaGlzLmlzTGl0ZXJhbCkgeworICAgICAgICAgICAgaWYg
KHJlYWxUaGlzLmlzTGl0ZXJhbCkgewogICAgICAgICAgICAgICAgIHJldHVybiAoKSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChyZWFsVGhpcy51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQs
IHRoaXMucHJlZmVycmVkVHlwZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07CkBAIC03Niw3ICs3Niw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBl
KGNvbmZpZykKICAgICAgICAgewogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJHZW5lcmlj
TGl0ZXJhbFR5cGUgc2hvdWxkIG5ldmVyIGJlIHVzZWQgYXMgYSB0eXBlIHBhcmFtZXRlciIpOwog
ICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGNvbnZlcnNpb25Db3N0KHVuaWZpY2F0aW9u
Q29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRp
b25Db250ZXh0LmZpbmQodGhpcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvRXhwcmVzc2lvbkZpbmRlci5qcwppbmRleCAzMGU2YjAzMWE2ZGQ2NjU5NzQwN2YzZjZiN2Zl
NzEzZWQ4ZmRjYzRhLi4wMjk0NzgyYzBlNzkzYWEzNzk1NzNmNTI4OGM2ZWU5ZThmOTAwNjljIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVy
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V4cHJlc3Npb25GaW5kZXIu
anMKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgRXhwcmVzc2lvbkZpbmRlciBleHRlbmRzIFZpc2l0
b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fY2FsbGJhY2so
bm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2Rl
LnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsK
ICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAg
ICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICB9CkBAIC00NiwxMSArNDQsNiBAQCBjbGFz
cyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX2NhbGxi
YWNrKG5vZGUudHlwZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFt
ZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS50eXBlKTsKLSAg
ICB9Ci0gICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5vZGUpCiAgICAgewogICAgICAgICB0aGlz
Ll9jYWxsYmFjayhub2RlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA3NjE3MmQ5OGQxZTJjMDA4ZWRiNWQ4MTgzZjVlZWZkNjc4ZGM4ZWU5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMocHJvZ3JhbSkK
LXsKLSAgICBsZXQgdmlzaXRpbmcgPSBuZXcgVmlzaXRpbmdTZXQoKTsKLSAgICAKLSAgICBmdW5j
dGlvbiBmbGF0dGVuKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbC5leHRl
bmRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIHZpc2l0
aW5nLmRvVmlzaXQocHJvdG9jb2wsICgpID0+IHsKLSAgICAgICAgICAgIGZvciAobGV0IHBhcmVu
dCBvZiBwcm90b2NvbC5leHRlbmRzKSB7Ci0gICAgICAgICAgICAgICAgcGFyZW50ID0gcGFyZW50
LnByb3RvY29sRGVjbDsKLSAgICAgICAgICAgICAgICBmbGF0dGVuKHBhcmVudCk7Ci0gICAgICAg
ICAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIHBhcmVudC5zaWduYXR1cmVzKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGxldCBuZXdTaWduYXR1cmUgPSBzaWduYXR1cmUudmlzaXQoCi0gICAg
ICAgICAgICAgICAgICAgICAgICBuZXcgU3Vic3RpdHV0aW9uKFtwYXJlbnQudHlwZVZhcmlhYmxl
XSwgW3Byb3RvY29sLnR5cGVWYXJpYWJsZV0pKTsKLSAgICAgICAgICAgICAgICAgICAgcHJvdG9j
b2wuYWRkKG5ld1NpZ25hdHVyZSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgcHJvdG9jb2wuZXh0ZW5kcyA9IFtdOwotICAgICAgICB9KTsKLSAgICB9Ci0g
ICAgCi0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5wcm90b2NvbHMudmFsdWVzKCkp
Ci0gICAgICAgIGZsYXR0ZW4ocHJvdG9jb2wpOwotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKaW5kZXggZTZjNTczN2RlMTZhNGE2NDhkODVhZGNh
MTY5MzQ1NGI2MTQwNzI3ZS4uZDVkMWIxNTIzMGYwOWMxMGEwYmMxMjVmMDNjZjVhZDRjZTNkZDJm
NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFs
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcwpA
QCAtMzAsNyArMzAsNyBAQCBsZXQgRmxvYXRMaXRlcmFsID0gY3JlYXRlTGl0ZXJhbCh7CiAgICAg
CiAgICAgbmVnQ29uc3RleHByKG9yaWdpbikKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgSW50
TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBGbG9hdExp
dGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CiAgICAgfSwKICAgICAKICAgICBjcmVhdGVUeXBl
KG9yaWdpbiwgdmFsdWUpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuYy5qcwppbmRleCA2
ZmE3YzlkMWI2ZjRiOTU4MzM1OTgxYzI3MjhiZTg2NWE1NmU3M2FlLi42ZmM3MzMyNzYxZDQ2M2Mz
NWE4YzQwYzJhNzZmMmY0YjM2YzIzMjIzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1
bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgRnVuYyBleHRl
bmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlw
ZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1
Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVy
VHlwZSkKICAgICB7CiAgICAgICAgIGlmICghKG9yaWdpbiBpbnN0YW5jZW9mIExleGVyVG9rZW4p
KQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgb3JpZ2luOiAiICsgb3JpZ2luKTsK
QEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewogICAgICAgICB0aGlz
Ll9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwogICAgICAgICB0
aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRl
cnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhpcy5fcGFyYW1ldGVycyA9IHBhcmFtZXRl
cnM7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2FzdDsKICAgICAgICAgdGhpcy5fc2hhZGVy
VHlwZSA9IHNoYWRlclR5cGU7CkBAIC00OCw4ICs0Nyw2IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBO
b2RlIHsKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0
IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJl
dHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1
cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnNGb3JDYWxs
UmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnM7IH0KICAgICBnZXQgcGFy
YW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRlcnM7IH0KICAgICBnZXQgcGFyYW1ldGVy
VHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0
ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5faXNDYXN0OyB9CkBA
IC02NSw5ICs2Miw5IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgaWYgKHRo
aXMuc2hhZGVyVHlwZSkKICAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnNoYWRlclR5cGUgKyAi
ICI7CiAgICAgICAgIGlmICh0aGlzLmlzQ2FzdCkKLSAgICAgICAgICAgIHJlc3VsdCArPSAib3Bl
cmF0b3I8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiAiICsgdGhpcy5yZXR1cm5UeXBlOwor
ICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvciAiICsgdGhpcy5yZXR1cm5UeXBlOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0gdGhpcy5yZXR1cm5UeXBlICsgIiAiICsg
dGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsKKyAgICAgICAgICAg
IHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIgKyB0aGlzLm5hbWU7CiAgICAgICAgIHJl
dHVybiByZXN1bHQgKyAiKCIgKyB0aGlzLnBhcmFtZXRlcnMgKyAiKSI7CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanMKaW5kZXggMTFmYTA5MmUzYjIy
NzhlMjE1YTBhNjdlOTUxZTE3ZGFiYTEzNmE4My4uY2EwNTk3ZmNkMjk0ZGZhYjYwNDQyMTRlMDc1
NGY3ZWY5NDRiODc4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
RnVuY0RlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpz
CkBAIC0yNSw5ICsyNSw5IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIEZ1bmNEZWYgZXh0ZW5k
cyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQ
YXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUpCisgICAgY29u
c3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nh
c3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwor
ICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2Fz
dCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSBib2R5OwogICAgICAgICB0aGlz
LmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KQEAgLTM2LDggKzM2LDYgQEAgY2xhc3MgRnVu
Y0RlZiBleHRlbmRzIEZ1bmMgewogICAgIAogICAgIHJld3JpdGUocmV3cml0ZXIpCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBhbiB1bmluc3RhbnRpYXRlZCBmdW5jdGlvbiIp
OwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhpcy5fcmV0dXJuVHlwZS52aXNpdChyZXdy
aXRlcik7CiAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMgPSB0aGlzLl9wYXJhbWV0ZXJzLm1hcChw
YXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3JpdGVyKSk7CiAgICAgICAgIHRoaXMuX2Jv
ZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg5Mjg2MmE2ZGQ4NTY1ZWUzN2U0MjA2MzFkN2FmNzBkNTIyN2U1ODYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcworKysgL2Rldi9udWxsCkBAIC0xLDE1NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIEZ1bmNJbnN0YW50aWF0b3IgewotICAgIGNvbnN0cnVjdG9yKHBy
b2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLl9wcm9ncmFtID0gcHJvZ3JhbTsKLSAgICAgICAg
dGhpcy5faW5zdGFuY2VzID0gbmV3IE1hcCgpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaW5zdGFu
Y2VzKCkgeyByZXR1cm4gdGhpcy5faW5zdGFuY2VzOyB9Ci0gICAgCi0gICAgLy8gUmV0dXJucyBh
IEZ1bmMgb2JqZWN0IHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHBhcnRpY3VsYXIgc3lzdGVt
IG9mIHR5cGUgYXJndW1lbnRzLiBZb3UgbXVzdAotICAgIC8vIGludGFudGlhdGUgdGhpbmdzIHdp
dGggY29uY3JldGUgdHlwZXMsIGJlY2F1c2UgdGhpcyBjb2RlIGNhc3VhbGx5IGFzc3VtZXMgdGhp
cy4gTm90ZSB0aGF0IHRoaXMKLSAgICAvLyB3aWxsIHJldHVybiBhIGRpZmZlcmVudCBmdW5jIGZy
b20gYGZ1bmNgIG5vIG1hdHRlciB3aGF0LiBUaGlzIGVuc3VyZXMgdGhhdCB3ZSBjYW4gdXNlIHRo
ZQotICAgIC8vIHJldHVybmVkIGZ1bmMgZm9yIHJld3JpdGVzIHRoYXQgaW5zdGFudGlhdGUgdHlw
ZXMgd2l0aG91dCBkZXN0cm95aW5nIG91ciBhYmlsaXR5IHRvIGRvIG92ZXJsb2FkCi0gICAgLy8g
cmVzb2x1dGlvbnMgb24gdGhlIG9yaWdpbmFsIFByb2dyYW0uCi0gICAgZ2V0VW5pcXVlKGZ1bmMs
IHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBjbGFzcyBGaW5kVHlwZVZhcmlhYmxlIGV4
dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNpdFR5cGVSZWYobm9kZSkKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBl
QXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZpc2l0VHlwZVZhcmlh
YmxlKG5vZGUpIHsKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQg
dHlwZSB2YXJpYWJsZTogIiArIG5vZGUgKyAiIHdoZW4gaW5zdGFudGlhdGluZyAiICsgZnVuYyAr
ICIgd2l0aCBhcmd1bWVudHMgIiArIHR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiB0eXBlQXJndW1lbnRzKQot
ICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBGaW5kVHlwZVZhcmlhYmxlKCkpOwot
ICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbmNlcyA9IHRoaXMuX2luc3RhbmNlcy5nZXQoZnVu
Yyk7Ci0gICAgICAgIGlmICghaW5zdGFuY2VzKQotICAgICAgICAgICAgdGhpcy5faW5zdGFuY2Vz
LnNldChmdW5jLCBpbnN0YW5jZXMgPSBbXSk7Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCBp
bnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAgICAgIGxldCBvayA9IHRydWU7Ci0gICAg
ICAgICAgICBmb3IgKGxldCBpID0gaW5zdGFuY2UudHlwZUFyZ3VtZW50cy5sZW5ndGg7IGktLTsp
IHsKLSAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNlLnR5cGVBcmd1bWVudHNbaV0uZXF1YWxz
KHR5cGVBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgIG9rID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICByZXR1cm4gaW5zdGFuY2UuZnVuYzsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgbGV0IHRoaXNJbnN0YW50aWF0b3IgPSB0aGlzOwotICAgICAgICAKLSAgICAgICAgY2xhc3Mg
SW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbiBleHRlbmRzIFN1YnN0aXR1dGlvbiB7Ci0gICAgICAg
ICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IHN1cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSk7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8gV2UgbWF5IGhhdmUgdG8gcmUtcmVzb2x2
ZSB0aGUgZnVuY3Rpb24gY2FsbCwgaWYgaXQgd2FzIGEgY2FsbCB0byBhIHByb3RvY29sCi0gICAg
ICAgICAgICAgICAgLy8gc2lnbmF0dXJlLgotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZnVu
YyBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpIHsKLSAgICAgICAgICAgICAgICAgICAgbGV0
IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChyZXN1bHQucG9zc2libGVPdmVybG9hZHMs
IHJlc3VsdC50eXBlQXJndW1lbnRzLCByZXN1bHQuYXJndW1lbnRUeXBlcywgcmVzdWx0LnJldHVy
blR5cGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkIG5vdCByZXNvbHZlIHByb3Rv
Y29sIHNpZ25hdHVyZSBmdW5jdGlvbiBjYWxsIGR1cmluZyBpbnN0YW50aWF0aW9uOiAiICsgcmVz
dWx0LmZ1bmMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgb3Zl
cmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7Ci0gICAgICAgICAgICAgICAgICAgIHJl
c3VsdC5yZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCk7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChyZXN1bHQuZnVuYy5pc05hdGl2ZSkK
LSAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5hdGl2ZUZ1bmNJbnN0YW5jZSA9IHRoaXNJbnN0
YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5mdW5jLCByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50
cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlv
biA9IG5ldyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9uKGZ1bmMudHlwZVBhcmFtZXRlcnMsIHR5
cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGNsYXNzIEluc3RhbnRpYXRpb25JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMgZXh0ZW5kcyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMgewotICAgICAgICAgICAgdmlz
aXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIC8v
IFdlIG5lZWQgdG8gcHJlc2VydmUgY2VydGFpbiB0aGluZ3MgdGhhdCB3b3VsZCBoYXZlIGluc3Rh
bnRpYXRlZCwgYnV0IHRoYXQgd2UgY2Fubm90Ci0gICAgICAgICAgICAgICAgLy8gaW5zdGFudGlh
dGUgd2l0aG91dCBicmVha2luZyBjaGFpbi1pbnN0YW50aWF0aW9ucyAoZ2VuZXJpYyBmdW5jdGlv
biBjYWxscyBnZW5lcmljCi0gICAgICAgICAgICAgICAgLy8gZnVuY3Rpb24gc28gdGhlcmVmb3Jl
IHRoZSBpbnN0YW50aWF0ZWQgZ2VuZXJpYyBmdW5jdGlvbiBtdXN0IHN0aWxsIGhhdmUgdGhlIG9y
aWdpbmFsCi0gICAgICAgICAgICAgICAgLy8gKHVuaW5zdGFudGlhdGVkKSB0eXBlcyB0byBpbnN0
YW50aWF0ZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0IGl0IGNhbGxzKS4KLSAgICAgICAgICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAotICAgICAgICAgICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMsCi0gICAgICAgICAg
ICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBOb2RlLnZpc2l0KGFy
Z3VtZW50LCB0aGlzKSkpOwotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRoaXMucHJvY2Vzc0Rl
cml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gQXJyYXkuZnJvbShub2RlLmFyZ3VtZW50VHlw
ZXMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmlzQ2FzdCkKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICAgICAg
cmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMgPSBBcnJheS5mcm9tKG5vZGUuYWN0dWFsVHlwZUFy
Z3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGxldCBpbnN0YW50aWF0ZUlt
bWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGlvbkluc3RhbnRpYXRlSW1tZWRpYXRlcygpOwotICAg
ICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGUgewotICAgICAgICAgICAgdmlzaXRGdW5j
RGVmKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGV0IHJldHVyblR5cGUg
PSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm5UeXBlID0gcmV0dXJuVHlwZS52aXNpdChpbnN0YW50aWF0ZUltbWVkaWF0ZXMpOwotICAg
ICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZnVuYy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlvbikpOwotICAgICAgICAgICAgICAgIHBh
cmFtZXRlcnMgPSBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KGlu
c3RhbnRpYXRlSW1tZWRpYXRlcykpOwotICAgICAgICAgICAgICAgIGxldCBib2R5ID0gZnVuYy5i
b2R5LnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICAgICAgYm9keSA9IGJvZHkudmlz
aXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV3IEZ1
bmNEZWYoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIHJldHVy
blR5cGUsIFtdLCBwYXJhbWV0ZXJzLCBib2R5LCBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAg
ICAgICAgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFuY2UoCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMucmV0dXJuVHlwZS52aXNpdChzdWJzdGl0
dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyksCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdChzdWJzdGl0
dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpLAotICAgICAgICAgICAgICAgICAg
ICBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5zaGFkZXJUeXBlLAotICAg
ICAgICAgICAgICAgICAgICBmdW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oc3Vic3RpdHV0
aW9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbGV0IHJlc3VsdGluZ0Z1
bmMgPSBmdW5jLnZpc2l0KG5ldyBJbnN0YW50aWF0ZSgpKTsKLSAgICAgICAgcmVzdWx0aW5nRnVu
Yy51bmluc3RhbnRpYXRlZFJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3Rp
dHV0aW9uKTsKLSAgICAgICAgbGV0IGluc3RhbmNlID0ge2Z1bmM6IHJlc3VsdGluZ0Z1bmMsIHR5
cGVBcmd1bWVudHN9OwotICAgICAgICBpbnN0YW5jZXMucHVzaChpbnN0YW5jZSk7Ci0gICAgICAg
IHJldHVybiByZXN1bHRpbmdGdW5jOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwppbmRleCA0NDZiMzUxZGE1NzE1
YzY4YTM1ZDc2OTc5NjlkNjk4ZWM3M2U3NGY4Li42MDQ5MTUzNjI1MWQwOWJjZTAzYTE0ZWQ2Nzc1
MjJhMDJkMTNhNjQzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bmZlclR5cGVzRm9yQ2FsbC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9J
bmZlclR5cGVzRm9yQ2FsbC5qcwpAQCAtMjQsMTkgKzI0LDExIEBACiAgKi8KICJ1c2Ugc3RyaWN0
IjsKIAotZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKK2Z1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMs
IGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiB7Ci0gICAgaWYgKHR5cGVBcmd1bWVudHMubGVu
Z3RoICYmIHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IGZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3Ro
KQotICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
KGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgKHBhc3NlZCAiICsgdHlwZUFy
Z3VtZW50cy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBmdW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0
aCArICIpIil9OwogICAgIGlmIChhcmd1bWVudFR5cGVzLmxlbmd0aCAhPSBmdW5jLnBhcmFtZXRl
cnMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBPdmVybG9hZFJlc29sdXRp
b25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgYXJndW1lbnRzIChwYXNzZWQgIiArIGFy
Z3VtZW50VHlwZXMubGVuZ3RoICsgIiwgcmVxdWlyZSAiICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0
aCArICIpIil9OwotICAgIGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25D
b250ZXh0KGZ1bmMudHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbik7Ci0gICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIGxldCBh
cmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgIGxldCBwYXJhbWV0ZXIgPSBmdW5j
LnR5cGVQYXJhbWV0ZXJzW2ldOwotICAgICAgICBpZiAoIWFyZ3VtZW50LnVuaWZ5KHVuaWZpY2F0
aW9uQ29udGV4dCwgcGFyYW1ldGVyKSkKLSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3
IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5cGUgYXJndW1lbnQgIyIgKyAoaSAr
IDEpICsgIiBmb3IgcGFyYW1ldGVyICIgKyBwYXJhbWV0ZXIubmFtZSArICIgZG9lcyBub3QgbWF0
Y2ggKHBhc3NlZCAiICsgYXJndW1lbnQgKyAiLCByZXF1aXJlICIgKyBwYXJhbWV0ZXIgKyAiKSIp
fTsKLSAgICB9CisgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNv
bnRleHQoKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyZ3VtZW50VHlwZXMubGVuZ3RoOyAr
K2kpIHsKICAgICAgICAgaWYgKCFhcmd1bWVudFR5cGVzW2ldKQogICAgICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJOdWxsIGFyZ3VtZW50IHR5cGUgYXQgaSA9ICIgKyBpKTsKQEAgLTQ4LDE2ICs0
MCw2IEBAIGZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFy
Z3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiAgICAgbGV0IHZlcmlmaWNhdGlvblJlc3VsdCA9IHVu
aWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICBpZiAoIXZlcmlmaWNhdGlvblJlc3VsdC5y
ZXN1bHQpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZh
aWx1cmUoZnVuYywgdmVyaWZpY2F0aW9uUmVzdWx0LnJlYXNvbil9OwotICAgIGxldCBzaG91bGRC
dWlsZFR5cGVBcmd1bWVudHMgPSAhdHlwZUFyZ3VtZW50cy5sZW5ndGg7Ci0gICAgaWYgKHNob3Vs
ZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgdHlwZUFyZ3VtZW50cyA9IFtdOwotICAgIGZv
ciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBlUGFyYW1ldGVycykgewotICAgICAgICBs
ZXQgdHlwZUFyZ3VtZW50ID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodHlwZVBhcmFtZXRlcik7
Ci0gICAgICAgIGlmICh0eXBlQXJndW1lbnQgPT0gdHlwZVBhcmFtZXRlcikKLSAgICAgICAgICAg
IHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5
cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsgIiBkaWQgbm90IGdldCBhc3NpZ25lZCBh
IHR5cGUiKX07Ci0gICAgICAgIGlmIChzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMpCi0gICAgICAg
ICAgICB0eXBlQXJndW1lbnRzLnB1c2godHlwZUFyZ3VtZW50KTsKLSAgICB9Ci0gICAgcmV0dXJu
IHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHQsIHR5cGVBcmd1bWVudHN9OworICAgIHJldHVybiB7
ZnVuYywgdW5pZmljYXRpb25Db250ZXh0fTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvSW5saW5lLmpzCmluZGV4IGYwMjg3M2JkMjczZDkxMGIzZGYwNGZkMmE1MWEzYzdjMGE0Njdj
ZWYuLjA5MDc0Njk5MjZmOGMwN2Q1MzM0YmIwMzA3ZGQzNTE4NWI4ZTUyM2MgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZS5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKQEAgLTI4LDE4ICsyOCwxMyBAQCBmdW5jdGlv
biBpbmxpbmUocHJvZ3JhbSkKIHsKICAgICBmb3IgKGxldCBmdW5jTGlzdCBvZiBwcm9ncmFtLmZ1
bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3IgKGxldCBmdW5jIG9mIGZ1bmNMaXN0KSB7
Ci0gICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7Ci0gICAgICAg
ICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoZnVuYywg
W10pCi0gICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBW
aXNpdGluZ1NldChmdW5jKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBfaW5saW5lRnVu
Y3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5nU2V0KGZ1bmMpKTsKICAgICAgICAgfQog
ICAgIH0KIH0KIAogZnVuY3Rpb24gX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIHZpc2l0
aW5nKQogewotICAgIGlmIChmdW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJDYW5ub3QgaW5saW5lIGZ1bmN0aW9uIHRoYXQgaGFzIHR5cGUgcGFyYW1l
dGVycyIpOwogICAgIGlmIChmdW5jLmlubGluZWQgfHwgZnVuYy5pc05hdGl2ZSkKICAgICAgICAg
cmV0dXJuOwogICAgIApAQCAtNTUsMTQgKzUwLDEwIEBAIGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlv
bihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKICAgICBmdW5jLmlubGluZWQgPSB0cnVlOwogfQog
Ci1mdW5jdGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQorZnVuY3Rpb24g
cmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCBhcmd1bWVudFR5cGVzLCBhbGxv
d0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKLSAgICBsZXQgb3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2Jh
bE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgdHlwZUFyZ3VtZW50cywgYXJn
dW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5UG9pbnQpOworICAgIGxldCBvdmVybG9h
ZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQucmVzb2x2ZUZ1bmNPdmVybG9hZChuYW1lLCBh
cmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50cnlQb2ludCk7CiAgICAgaWYgKCFvdmVy
bG9hZC5mdW5jKQogICAgICAgICByZXR1cm4gb3ZlcmxvYWQuZmFpbHVyZXM7Ci0gICAgaWYgKCFv
dmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICByZXR1cm4gb3ZlcmxvYWQuZnVu
YzsKLSAgICBsZXQgZnVuYyA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUob3Zl
cmxvYWQuZnVuYywgb3ZlcmxvYWQudHlwZUFyZ3VtZW50cyk7Ci0gICAgX2lubGluZUZ1bmN0aW9u
KHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChvdmVybG9hZC5mdW5jKSk7Ci0gICAgcmV0
dXJuIGZ1bmM7CisgICAgcmV0dXJuIG92ZXJsb2FkLmZ1bmM7CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvSW5saW5lci5qcwppbmRleCA0OTFlZjNlMjIxZmMwNjMxOGVlMDM2N2EzODE2
OTllNTcyM2JmZTVhLi5kOTA2Zjc2ZGQ1MzNlNmRlNmUzNWNhZGY0MGIzNDFjMDE5MzVmODYyIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanMKQEAgLTM4LDcgKzM4LDcg
QEAgY2xhc3MgSW5saW5lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgaWYgKHJlc3VsdC5u
YXRpdmVGdW5jSW5zdGFuY2UpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICBy
ZXR1cm4gdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLmZ1bmMsICgpID0+IHsKLSAgICAgICAg
ICAgIGxldCBmdW5jID0gdGhpcy5fcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShy
ZXN1bHQuZnVuYywgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMpOworICAgICAgICAgICAgbGV0
IGZ1bmMgPSByZXN1bHQuZnVuYzsKICAgICAgICAgICAgIGlmIChmdW5jLmlzTmF0aXZlKQogICAg
ICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBuYXRpdmUgZnVuYzogIiAr
IGZ1bmMpOwogICAgICAgICAgICAgX2lubGluZUZ1bmN0aW9uKHRoaXMuX3Byb2dyYW0sIGZ1bmMs
IHRoaXMuX3Zpc2l0aW5nKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0luc3RhbnRpYXRlSW1tZWRpYXRlcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMmIzOWVkNjYzODE0MTM0OGFiYzEyNzY5NmI2ZWUzMWUwYjBjNThiNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0NCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIEluc3RhbnRpYXRlSW1tZWRpYXRlcyBleHRlbmRzIFJld3JpdGVy
IHsKLSAgICB2aXNpdFR5cGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIG5vZGUgPSBzdXBlci52
aXNpdFR5cGVSZWYobm9kZSk7Ci0gICAgICAgIGlmICghbm9kZS50eXBlLmluc3RhbnRpYXRlKSB7
Ci0gICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgZG9lcyBub3Qgc3VwcG9ydCBpbnN0YW50aWF0aW9u
OiAiICsgdHlwZSArICIgKCIgKyB0eXBlLmNvbnN0cnVjdG9yLm5hbWUgKyAiKSIpOwotICAgICAg
ICAgICAgcmV0dXJuIG5vZGU7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5vZGUudHlwZS5p
bnN0YW50aWF0ZShub2RlLnR5cGVBcmd1bWVudHMpLnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKTsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCi0gICAgewotICAgICAg
ICByZXR1cm4gbm9kZTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzCmluZGV4IDkzM2RmZTAxMTMwMmIwZmJjODM0NDk5NGExYTVjMWY3N2Mw
NTJhNmYuLjk5ODdiMDQ1OWJkMzIxOTM1Y2EyMzk3ZjY1MWIyY2IwYTFmZWMyNzYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ludHJpbnNpY3MuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpAQCAtMzQsMTQgKzM0LDYg
QEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgIC8vIEZvciBleGFtcGxlLCBpZiBhIG5hdGl2
ZSBmdW5jdGlvbiBpcyBkZWNsYXJlZCB1c2luZyAiaW50IiByYXRoZXIgdGhhbiAiaW50MzIiLCB0
aGVuIHdlIG11c3QKICAgICAgICAgLy8gdXNlICJpbnQiIGhlcmUsIHNpbmNlIHdlIGRvbid0IHll
dCBrbm93IHRoYXQgdGhleSBhcmUgdGhlIHNhbWUgdHlwZS4KICAgICAgICAgCi0gICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9pZDw+IiwKLSAgICAg
ICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRoaXMudm9pZCA9IHR5cGU7Ci0gICAg
ICAgICAgICAgICAgdHlwZS5zaXplID0gMDsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKCkgPT4geyB9OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAogICAg
ICAgICBmdW5jdGlvbiBpc0JpdHdpc2VFcXVpdmFsZW50KGxlZnQsIHJpZ2h0KQogICAgICAgICB7
CiAgICAgICAgICAgICBsZXQgZG91YmxlQXJyYXkgPSBuZXcgRmxvYXQ2NEFycmF5KDEpOwpAQCAt
NTUsNDk0ICs0Nyw2MDYgQEAgY2xhc3MgSW50cmluc2ljcyB7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rp
b24gY2FzdCh0eXBlZEFycmF5Q29uc3RydWN0b3IsIG51bWJlcikKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIGFycmF5ID0gbmV3IHR5cGVkQXJyYXlDb25zdHJ1Y3RvcigxKTsKKyAgICAgICAg
ICAgIGFycmF5WzBdID0gbnVtYmVyOworICAgICAgICAgICAgcmV0dXJuIGFycmF5WzBdOworICAg
ICAgICB9CiAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiBpbnQzMjw+IiwKLSAgICAgICAgICAgIHR5cGUgPT4gewotICAgICAgICAgICAgICAgIHRo
aXMuaW50MzIgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVl
OwotICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5
cGUuaXNOdW1iZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSB0cnVl
OwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNl
RXF1aXZhbGVudCh2YWx1ZSB8IDAsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICB0eXBlLnNpemUg
PSAxOwotICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAg
ICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53
aXRoVHlwZShvcmlnaW4sIHZhbHVlIHwgMCwgdHlwZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5z
dWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKLSAgICAgICAgICAgICAg
ICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7Ci0gICAgICAgICAgICAgICAg
dHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNl
dChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0
ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZh
bHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwotICAgICAgICAgICAgICAg
IHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeyAKLSAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmZmZmZjsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBsZXQgdmFsdWUgPSBpIHwgMDsKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2
YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVlfTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgZnVuY3Rpb24gY2FzdFRvSGFs
ZihudW1iZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgbWF0
aCBvYmV5IElFRUUgNzU0LgorICAgICAgICAgICAgaWYgKE51bWJlci5pc05hTihudW1iZXIpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBudW1iZXIKKyAgICAgICAgICAgIGlmIChudW1iZXIgPiA2
NTUwNCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZOwor
ICAgICAgICAgICAgaWYgKG51bWJlciA8IC02NTUwNCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZOworICAgICAgICAgICAgaWYgKG51bWJlciA+IDAgJiYg
bnVtYmVyIDwgTWF0aC5wb3coMiwgLTI0KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgICAgIGlmIChudW1iZXIgPCAwICYmIG51bWJlciA+IC1NYXRoLnBvdygyLCAtMjQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiAtMDsKKyAgICAgICAgICAgIGxldCBkb3VibGVBcnJheSA9
IG5ldyBGbG9hdDY0QXJyYXkoMSk7CisgICAgICAgICAgICBsZXQgdWludEFycmF5ID0gbmV3IFVp
bnQ4QXJyYXkoZG91YmxlQXJyYXkuYnVmZmVyKTsKKyAgICAgICAgICAgIGRvdWJsZUFycmF5WzBd
ID0gbnVtYmVyOworICAgICAgICAgICAgbGV0IHNpZ24gPSB1aW50QXJyYXlbN10gJiAweDgwOwor
ICAgICAgICAgICAgbGV0IGV4cG9uZW50ID0gKCh1aW50QXJyYXlbN10gJiAweDdmKSA8PCA0KSB8
ICgodWludEFycmF5WzZdICYgMHhmMCkgPj4+IDQpOworICAgICAgICAgICAgbGV0IHNpZ25pZmlj
YW5kID0gKCh1aW50QXJyYXlbNl0gJiAweDBmKSA8PCA2KSB8ICgodWludEFycmF5WzVdICYgMHhm
YykgPj4+IDIpOwogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IHR5cGVkZWYgdWludDMyPD4iLAotICAgICAgICAgICAgdHlwZSA9PiB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy51aW50MzIgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUg
PSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlz
Qml0d2lzZUVxdWl2YWxlbnQodmFsdWUgPj4+IDAsIHZhbHVlKTsKLSAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKLSAg
ICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50
TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlID4+PiAwLCB0eXBlKTsKLSAgICAgICAgICAg
ICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7Ci0g
ICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOwotICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQp
ID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZh
bHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKLSAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7
Ci0gICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlvbiooKSB7IAotICAgICAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZmZmZmZmZmOyArK2kpCi0gICAg
ICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OwotICAgICAgICAg
ICAgICAgIH07Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGlmICgoZXhwb25lbnQgLSAx
MDIzKSA8IC0xNCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gMDsKKyAgICAgICAgICAg
ICAgICBzaWduaWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+
Pj4gMDsKKyAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2ln
bmlmaWNhbmQgLyAxMDI0OworICAgICAgICAgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAg
ICAgICAgICAgICAgIHZhbHVlICo9IC0xOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsK
KyAgICAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIHVpbnQ4PD4iLAotICAgICAgICAgICAgdHlwZSA9PiB7Ci0gICAgICAgICAg
ICAgICAgdGhpcy51aW50OCA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAg
ICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYsIHZhbHVlKTsK
LSAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgIHR5cGUuZGVm
YXVsdFZhbHVlID0gMDsKLSAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3Jp
Z2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZiwg
dHlwZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2
YWx1ZSArIDEpICYgMHhmZjsKLSAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEs
IGIpID0+IGEgPT09IGI7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAg
ICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlICYg
MHhmZjsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0g
dmFsdWUgPT4gdmFsdWUgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAw
eGZmOyArK2kpCi0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6
IGl9OwotICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGRv
dWJsZUFycmF5WzBdID0gMDsKIAorICAgICAgICAgICAgdWludEFycmF5WzddIHw9IHNpZ247Cisg
ICAgICAgICAgICB1aW50QXJyYXlbN10gfD0gKGV4cG9uZW50ID4+PiA0KTsKKyAgICAgICAgICAg
IHVpbnRBcnJheVs2XSB8PSAoKGV4cG9uZW50IDw8IDQpICYgMHhmMCk7CisgICAgICAgICAgICB1
aW50QXJyYXlbNl0gfD0gKHNpZ25pZmljYW5kID4+PiA2KTsKKyAgICAgICAgICAgIHVpbnRBcnJh
eVs1XSB8PSAoKHNpZ25pZmljYW5kIDw8IDIpICYgMHhmYyk7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIHJldHVybiBkb3VibGVBcnJheVswXTsKKyAgICAgICAgfQorICAgICAgICAKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBmbG9hdDMyPD4i
LAorICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQiLAogICAgICAgICAgICAgdHlwZSA9
PiB7Ci0gICAgICAgICAgICAgICAgdGhpcy5mbG9hdCA9IHR5cGU7Ci0gICAgICAgICAgICAgICAg
dHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsK
LSAgICAgICAgICAgICAgICB0eXBlLmlzRmxvYXRpbmcgPSB0cnVlOwotICAgICAgICAgICAgICAg
IHR5cGUuaXNOdW1iZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50
ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChNYXRoLmZyb3VuZCh2YWx1ZSksIHZhbHVl
KTsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOwotICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUgPT4g
TWF0aC5mcm91bmQodmFsdWUpOworICAgICAgICAgICAgICAgIHRoaXMudm9pZCA9IHR5cGU7Cisg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMDsKKyAgICAgICAgICAgICAgICB0eXBlLnBvcHVs
YXRlRGVmYXVsdFZhbHVlID0gKCkgPT4geyB9OwogICAgICAgICAgICAgfSk7Ci0KKyAgICAgICAg
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYm9v
bDw+IiwKKyAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBib29sIiwKICAgICAgICAgICAgIHR5
cGUgPT4gewogICAgICAgICAgICAgICAgIHRoaXMuYm9vbCA9IHR5cGU7CiAgICAgICAgICAgICAg
ICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0g
MTsKICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgZmFsc2UpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVy
YXRvcjw+IGludDMyKHVpbnQzMikiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSB8IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGludDMyKHVpbnQ4KSIs
Ci0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMihmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IAorICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiB1Y2hhciIsCisgICAgICAgICAgICAgdHlw
ZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMudWNoYXIgPSB0eXBlOworICAgICAgICAgICAg
ICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0lu
dCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgIHR5cGUu
Y2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmYs
IHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxp
dGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZh
bHVlICYgMHhmZiwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUg
PSB2YWx1ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUudmFs
dWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1
bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQs
IDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2
YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4ZmY7CisgICAgICAgICAgICAgICAg
IHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPD0gMHhmZjsgKytpKQorICAgICAgICAgICAgICAgICAgICAgICAgIHlp
ZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CisgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiB1aW50MzIoaW50MzIpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUu
bG9hZFZhbHVlKCkgPj4+IDApOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiB1c2hvcnQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLnVzaG9ydCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUu
aXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNl
bnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZmZmLCB2YWx1ZSk7
CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUu
ZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0g
KG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSAmIDB4
ZmZmZiwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiAodmFsdWUgKyAxKSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmZmY7CisgICAgICAgICAgICAgICAg
IHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmOyArK2kpCisgICAgICAgICAgICAgICAgICAgICAgICAg
eWllbGQge3ZhbHVlOiBpLCBuYW1lOiBpfTsKKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICB9KTsKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBv
cGVyYXRvcjw+IHVpbnQzMih1aW50OCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1
ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCisgICAgICAg
ICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLnVpbnQgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50
ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOworICAg
ICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1
bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmln
aW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5
cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZh
bHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwg
YikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+
Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9
IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9
IDB4ZmZmZmZmZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6
IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWlu
dDMyKGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgp
ID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZl
IHR5cGVkZWYgY2hhciIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAg
IHRoaXMuY2hhciA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlz
Qml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwgdmFsdWUpOworICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRW
YWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4s
IHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2FzdChJbnQ4QXJyYXksIHZh
bHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1
ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAgICAgICAgICAgdHlwZS52
YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBv
cHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNl
dCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9
IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFs
dWUpOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3QoSW50OEFycmF5LCBpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1lOiB2YWx1ZX07
CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg
ICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3Bl
cmF0b3I8PiB1aW50OChpbnQzMikiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSAmIDB4ZmYpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBzaG9ydCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAg
ICAgICAgICAgICAgIHRoaXMuc2hvcnQgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQg
PSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50MTZBcnJheSwgdmFsdWUpLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAg
IHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRl
cmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCBjYXN0
KEludDE2QXJyYXksIHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAg
ICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4g
YnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVl
RnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDE2QXJyYXksIHZhbHVlKTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IGNh
c3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9
IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9
IDB4ZmZmZjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY2Fz
dChJbnQxNkFycmF5LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6
IHZhbHVlLCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgIH07CisgICAgICAgICAgICAgfSk7CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50OCh1aW50MzIpIiwKLSAgICAgICAgICAg
IGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50IiwKKyAgICAgICAg
ICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5pbnQgPSB0eXBlOworICAgICAg
ICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlIHwg
MCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRl
TGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwg
dmFsdWUgfCAwLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9
IHZhbHVlID0+ICh2YWx1ZSArIDEpIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNF
cXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRl
RGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVl
ID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50
TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxW
YWx1ZXMgPSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8PSAweGZmZmZmZmZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQg
dmFsdWUgPSBpIHwgMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZh
bHVlLCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGhhbGYiLAorICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICB0aGlzLmhhbGYgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBl
LmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50
ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0VG9IYWxmKHZhbHVlKSwgdmFsdWUp
OworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwg
b2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUu
Zm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOworICAgICAgICAgICAg
ICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxvYXRMaXRlcmFsID0gdmFsdWUg
PT4gY2FzdFRvSGFsZih2YWx1ZSk7CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGZsb2F0IiwKKyAgICAgICAg
ICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5mbG9hdCA9IHR5cGU7CisgICAg
ICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmlzRmxvYXRpbmcgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KE1hdGguZnJv
dW5kKHZhbHVlKSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVs
dFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZh
bHVlOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0g
dmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tRmxv
YXRMaXRlcmFsID0gdmFsdWUgPT4gTWF0aC5mcm91bmQodmFsdWUpOworICAgICAgICAgICAgIH0p
OworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9y
PD4gdWludDgoZmxvYXQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZh
bHVlKCkgJiAweGZmKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKyAgICAgICAgICAgICAi
bmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAg
ICAgICAgICAgICAgIHRoaXMuYXRvbWljX2ludCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgfSk7CisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBm
bG9hdChpbnQzMikiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1
ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAgICAg
ICJuYXRpdmUgdHlwZWRlZiBhdG9taWNfdWludCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7Cisg
ICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX3VpbnQgPSB0eXBlOworICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgIH0p
OworCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJib29sIiwgInVjaGFyIiwg
InVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQi
XSkgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CisgICAgICAg
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBl
ZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9YCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3ByaW1pdGl2ZVR5cGV9JHtpfWBdID0g
dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQg
dG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbImhhbGYiLCAiZmxv
YXQiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CisgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaiA9IDI7IGogPD0gNDsgKytqKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5
cGVkZWYgJHtwcmltaXRpdmVUeXBlfSR7aX14JHtqfWAsCisgICAgICAgICAgICAgICAgICAgICAg
ICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3ByaW1pdGl2
ZVR5cGV9JHtpfXgke2p9YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZs
b2F0KHVpbnQzMikiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1
ZS5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorICAgICAgICAgICAg
ICJuYXRpdmUgdHlwZWRlZiBzYW1wbGVyIiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAg
ICAgICAgICAgICAgdGhpcy5zYW1wbGVyID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgLy8gRklY
TUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICB9KTsKKworICAg
ICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIs
ICJUZXh0dXJlMURBcnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1Rl
eHR1cmUyRCIsICJUZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUz
RCIsICJSV1RleHR1cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxl
dCB0eXBlQXJndW1lbnQgb2YgWyJib29sIiwgInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNo
YXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3Rl
eHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9
PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVB
cmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZp
Z3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5
cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAorICAgICAgICAgICAg
ICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tg
JHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4K
KyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4
dHVyZURlcHRoMkQiLCAiUldUZXh0dXJlRGVwdGgyRCIsICJUZXh0dXJlRGVwdGgyREFycmF5Iiwg
IlJXVGV4dHVyZURlcHRoMkRBcnJheSIsICJUZXh0dXJlRGVwdGhDdWJlIl0pIHsKKyAgICAgICAg
ICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBbImZsb2F0IiwgImhhbGYiXSkgeworICAgICAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlw
ZWRlZiAke3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAgICAgICAg
ICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBl
fTwke3R5cGVBcmd1bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRp
dmVUeXBlIG9mIFsidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFs
ZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAg
ICAgIGBuYXRpdmUgb3BlcmF0b3IgdWNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAg
ICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVU
eXBlIG9mIFsidWNoYXIiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwg
ImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAg
YG5hdGl2ZSBvcGVyYXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZmKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5
cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIs
ICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgb3BlcmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAg
ICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAg
ICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBv
ZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZs
b2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5h
dGl2ZSBvcGVyYXRvciBjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBm
dW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveChjYXN0KEludDhBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2
ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgImludCIsICJoYWxm
IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAg
ICAgYG5hdGl2ZSBvcGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUo
KSkpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQg
cHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hv
cnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaW50KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAg
ICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDMyQXJyYXksIHZhbHVlLmxv
YWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBm
b3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hh
ciIsICJzaG9ydCIsICJpbnQiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGhhbGYoJHtwcmltaXRpdmVUeXBl
fSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0hhbGYodmFsdWUu
bG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAg
IGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJj
aGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBmbG9hdCgke3ByaW1pdGl2ZVR5
cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFs
dWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gZmxvYXQo
dWludDgpIiwKKyAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgaW50KGF0b21pY19pbnQpYCwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3Ir
PD4oaW50LGludCkiLAorICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191
aW50KWAsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1
ZS5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcis8Pih1aW50LHVp
bnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsYm9vbCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZl
VHlwZSBvZiBbInVpbnQiLCAiaW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPT0oJHtwcmltaXRp
dmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0g
cmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcjwoJHtw
cmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVl
KCkgPCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9y
PD0oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9h
ZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBv
cGVyYXRvcj4oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAg
ICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBi
b29sIG9wZXJhdG9yPj0oJHtwcmltaXRpdmVUeXBlfSwke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICB9CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrPD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkg
KyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvci08PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVy
YXRvci0oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgogICAgICAgICAgICAgICAg
ICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDAp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLTw+KHVpbnQsdWludCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFs
dWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9w
ZXJhdG9yLTw+KGZsb2F0LGZsb2F0KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcio8PihpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciooaW50LGludCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgogICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9w
ZXJhdG9yKjw+KHVpbnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgp
KSA+Pj4gMCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKjw+KGZsb2F0LGZsb2F0KSIs
Ci0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1h
dGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkpOwotICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGludCBvcGVyYXRvci88PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgogICAgICAg
ICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1
ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLzw+KHVpbnQsdWludCkiLAot
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7Ci0gICAgICAgICAgICB9
KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGludCBvcGVyYXRvciY8PihpbnQsaW50KSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFs
dWUoKSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ImPD4odWludCx1aW50KSIsCi0gICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0Lmxv
YWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50
IG9wZXJhdG9yfDw+KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgp
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfDw+KHVpbnQsdWludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
fCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yXjw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvci0odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0g
cmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9y
Xjw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKih1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yPDw8PihpbnQsdWlu
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LHVpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA8PCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAg
ICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAg
ICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDw8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8
IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2FkVmFsdWUoKSkpOwogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+PD4oaW50LHVpbnQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3Vu
ZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSB1aW50IG9wZXJhdG9yPj48Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgb3BlcmF0b3IqKGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj4+IHJpZ2h0LmxvYWRW
YWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfjw+KGludCkiLAotICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50
IG9wZXJhdG9yfjw+KHVpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAg
ICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5s
b2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZy
b3VuZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAg
IH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCBvcGVyYXRvci88PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2
ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
ICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUo
KSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCi0gICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PTw+
KGludCxpbnQpIiwKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7Ci0gICAgICAg
ICAgICB9KTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIGJvb2wgb3BlcmF0b3I9PTw+KHVpbnQsdWludCkiLAotICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09PD4oYm9vbCxi
b29sKSIsCi0gICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPT08PihmbG9hdCxmbG9hdCkiLAotICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9
PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0
LmxvYWRWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlz
Ll9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGludCxpbnQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yJihpbnQsaW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KChsZWZ0LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJu
YXRpdmUgYm9vbCBvcGVyYXRvcjw8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yfChpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPCByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmln
aHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw8Pihm
bG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3JeKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPD08PihpbnQsaW50KSIsCisgICAgICAgICAg
ICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9h
ZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPD08Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50
IG9wZXJhdG9yPDwoaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJp
Z2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PTw+
KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5sb2FkVmFsdWUoKSkg
fCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPjw+KGludCxpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvciYodWludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkg
PiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0
LmxvYWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0p
OwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2
ZSBib29sIG9wZXJhdG9yPjw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50
IG9wZXJhdG9yfCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PD4o
ZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcl4odWludCx1
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpID4+
PiAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj08PihpbnQsaW50KSIsCisgICAg
ICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+KHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj49PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdo
dC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRW
YWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9v
bCBvcGVyYXRvcj49PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBv
cGVyYXRvcj4+KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgp
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgYWRkcmVzc1Nw
YWNlIG9mIGFkZHJlc3NTcGFjZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAgICAgYG5hdGl2ZSBUKiAke2FkZHJlc3NTcGFjZX0gb3BlcmF0b3ImW108VD4oVFtd
ICR7YWRkcmVzc1NwYWNlfSx1aW50KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZiwgaW5kZXhdLCBub2Rl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZhbHVlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJOdWxs
IGRlcmVmZXJlbmNlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGluZGV4Lmxv
YWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gcmVmLmxlbmd0
aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2Rl
Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsgaW5kZXggKyAiIGlzIG91dCBv
ZiBib3VuZHMgb2YgIiArIHJlZik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRVB0
ci5ib3gocmVmLnB0ci5wbHVzKGluZGV4ICogbm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJn
dW1lbnRzWzBdLnNpemUpKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAg
ICB9KTsKLQotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICAgICBgbmF0
aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0pYCwKLSAgICAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbcmVmXSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAgICAgcmVmID0g
cmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWYpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KDApOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5sZW5ndGgpOwotICAgICAgICAgICAgICAg
ICAgICB9OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgZm9yIChs
ZXQgc3dpenpsZSBvZiBTd2l6emxlT3AuYWxsU3dpenpsZU9wZXJhdG9ycygpKSB7Ci0gICAgICAg
ICAgICB0aGlzLl9tYXAuc2V0KHN3aXp6bGUudG9TdHJpbmcoKSwgCi0gICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2ZWNdLCBub2Rl
KSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IG91dHB1dEJ1ZmZlciA9IG5ldyBFQnVm
ZmVyKHN3aXp6bGUub3V0U2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRJbmRp
Y2VzID0geyAneCc6IDAsICd5JzogMSwgJ3onOiAyLCAndyc6IDMgfTsKLSAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzd2l6emxlLm91dFNpemU7IGkrKykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dEJ1ZmZlci5zZXQoaSwgdmVjLmdldChyZWFkSW5kaWNlc1tz
d2l6emxlLmNvbXBvbmVudHNbaV1dKSk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBFUHRyKG91dHB1dEJ1
ZmZlciwgMCk7Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uRGF0YSA9IHN3aXp6bGU7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIGNvbnNvbGUubG9nKHN3aXp6bGUudG9TdHJpbmcoKSk7Ci0gICAg
ICAgIH0KICAgICB9CiAgICAgCiAgICAgYWRkKHRoaW5nKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL015bGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVkOGYxM2IzMDgyZGQ2MzY4ZDE0ZDBkODYx
ZWYzMGEyNTI1NjY3ZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL015bGVzLmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8dGl0
bGU+TXlsZXM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ik5vZGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlZmVyZW5jZVR5cGUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXdyaXRlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iVmlzaXRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q3JlYXRlTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ3JlYXRlTGl0ZXJhbFR5
cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb3BlcnR5QWNjZXNzRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpenpsZU9wLmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9IkFkZHJlc3NTcGFjZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQW5vbnlt
b3VzVmFyaWFibGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFycmF5UmVmVHlwZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJBc3NpZ25tZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBdXRvV3JhcHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQmxvY2suanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkJvb2xMaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJCcmVhay5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2FsbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkNhbGxGdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2suanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrTGl0ZXJhbFR5cGVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDaGVja0xvb3BzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVj
a1JlY3Vyc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tSZWN1cnNpdmVUeXBl
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tSZXR1cm5zLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDaGVja1VucmVhY2hhYmxlQ29kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iQ2hlY2tXcmFwcGVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja2VyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ29u
c3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRG90RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRGVyZWZlcmVu
Y2VFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFQXJyYXlSZWYuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkVCdWZmZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkVCdWZmZXJCdWlsZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFUHRyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iRW51bU1lbWJlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRW51bVR5cGUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkV2YWx1YXRpb25Db21tb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkV2YWx1YXRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXhwcmVzc2lv
bkZpbmRlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJG
aW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVj
dE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkZvbGRDb25zdGV4cHJzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJGb3JMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jUGFy
YW1ldGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iSWRlbnRpdHlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJJZlN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iSW5kZXhFeHByZXNzaW9u
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmxp
bmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
SW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTGF0ZUNoZWNrZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkxleGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJM
ZXhlclRva2VuLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMaXRlcmFsVHlwZUNoZWNrZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxvZ2ljYWxFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJMb2dpY2FsTm90LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJM
b29wQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWFrZUFycmF5UmVmRXhwcmVz
c2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTWFrZVB0ckV4cHJlc3Npb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVDb250ZXh0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5vcm1hbFVz
ZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFs
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iT3JpZ2luS2luZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iT3ZlcmxvYWRS
ZXNvbHV0aW9uRmFpbHVyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUGFyc2UuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IlByZXBhcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb2dyYW0uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1v
dmVkLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZWN1
cnNpdmVUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVzb2x2ZU5hbWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlUHJvcGVydGllcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUmVzb2x2ZVR5cGVEZWZzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXR1
cm4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVybkNoZWNrZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlJldHVybkV4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iU3RhbmRhcmRMaWJyYXJ5LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdGF0ZW1lbnRD
bG9uZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0cnVjdExheW91dEJ1aWxkZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0cnVjdFR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlN1YnN0aXR1dGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpdGNoQ2Fz
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3dpdGNoU3RhdGVtZW50LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZURl
Zi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVW5pZmlj
YXRpb25Db250ZXh0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbnJlYWNoYWJsZUNvZGVD
aGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWYXJpYWJsZURlY2wuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJWaXNpdGluZ1NldC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV1N5bnRheEVycm9yLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXVHJhcEVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJXVHlwZUVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXaGlsZUxvb3Au
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldyYXBDaGVja2VyLmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdCBzcmM9IlRlc3QuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgord2luZG93LmFkZEV2
ZW50TGlzdGVuZXIoImxvYWQiLCBmdW5jdGlvbigpIHsKKyAgICBwcmVwYXJlKCk7Cit9KTsKKzwv
c2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9Im1lc3NhZ2VzIj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05hbWVDb250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRl
eHQuanMKaW5kZXggYzMxYmM0MjgyOTQ0MzBiZDQ1Mjc3OTZmNGQ3YTk5NjA1MzlmNjE4OC4uYWZj
Y2U3MTIzNGY1YWFjZGVmM2UzYWVkZDIxN2Q2OGQzNWY3YjEwNyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMKQEAgLTEwNCwxMyArMTA0LDEzIEBAIGNs
YXNzIE5hbWVDb250ZXh0IHsKICAgICAgICAgeWllbGQgdGhpbmc7CiAgICAgfQogICAgIAotICAg
IHJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywg
cmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCisgICAgcmVzb2x2ZUZ1bmNPdmVy
bG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBm
YWxzZSkKICAgICB7CiAgICAgICAgIGxldCBmdW5jdGlvbnMgPSB0aGlzLmdldChGdW5jLCBuYW1l
KTsKICAgICAgICAgaWYgKCFmdW5jdGlvbnMpCiAgICAgICAgICAgICByZXR1cm4ge2ZhaWx1cmVz
OiBbXX07CiAgICAgICAgIAotICAgICAgICByZXR1cm4gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5j
dGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50
cnlQb2ludCk7CisgICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50KTsKICAgICB9CiAgICAg
CiAgICAgZ2V0IGN1cnJlbnRTdGF0ZW1lbnQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hbWVGaW5kZXIuanMKaW5kZXggZmMyZmRiZDAzMjUyN2NjYzU0Y2FkNzFiYTU3NmI5OTIy
MWVlOWM3ZC4uNDNlNDcxYWFjNjFhZGE0M2Y3NGM3ZjA4MzJmNzNlODBjYWEzYjRlNSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCkBAIC00MywxMiArNDMs
NiBAQCBjbGFzcyBOYW1lRmluZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX3dv
cmtsaXN0LnB1c2gobmFtZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuYWRkKG5vZGUubmFtZSk7Ci0gICAgICAgIHN1cGVyLnZp
c2l0UHJvdG9jb2xSZWYobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2Rl
KQogICAgIHsKICAgICAgICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwppbmRleCA3MzE5NjRmYzc4MjIxYWU3MzEx
ODk4MTI1MjIzMjUwM2JjZmFiYzMwLi42OWQ0ZjJjMWI5YWI3ZGMxYzUwYzM2ZGE5Y2M5Y2EzN2Uz
OTFjYzE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVz
b2x2ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVy
LmpzCkBAIC00MSwxOSArNDEsMTQgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgIHRoaXMuX25hbWVDb250ZXh0LmRvU3RhdGVtZW50KHN0YXRlbWVudCwgKCkg
PT4gc3RhdGVtZW50LnZpc2l0KHRoaXMpKTsKICAgICB9CiAgICAgCi0gICAgX3Zpc2l0VHlwZVBh
cmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpCisgICAgX2J1aWxkTmFtZUNvbnRleHQo
KQogICAgIHsKLSAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMu
X25hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5hZGQodHlwZVBhcmFtZXRl
cik7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBuYW1lQ29udGV4dDsKKyAgICAgICAgcmV0dXJuIG5ldyBOYW1lQ29udGV4
dCh0aGlzLl9uYW1lQ29udGV4dCk7CiAgICAgfQogICAgIAogICAgIHZpc2l0RnVuYyhub2RlKQog
ICAgIHsKLSAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKHRoaXMuX3Zpc2l0
VHlwZVBhcmFtZXRlcnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpKTsKKyAgICAgICAgbGV0IGNo
ZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKHRoaXMuX2J1aWxkTmFtZUNvbnRleHQobm9kZSkpOwog
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoY2hlY2tlcik7CiAgICAgICAgIGZvciAobGV0
IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAgICBwYXJhbWV0ZXIudmlz
aXQoY2hlY2tlcik7CkBAIC02MSwxNiArNTYsMTQgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVu
ZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpCiAgICAgewotICAgICAg
ICBsZXQgY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyA9IHRoaXMuX3Zpc2l0VHlwZVBhcmFtZXRl
cnNBbmRCdWlsZE5hbWVDb250ZXh0KG5vZGUpOwotICAgICAgICBsZXQgY2hlY2tlcldpdGhUeXBl
UGFyYW1ldGVycyA9IG5ldyBOYW1lUmVzb2x2ZXIoY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyk7
Ci0gICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdChjaGVja2VyV2l0aFR5cGVQYXJhbWV0ZXJz
KTsKLSAgICAgICAgbGV0IGNvbnRleHRXaXRoUGFyYW1ldGVycyA9IG5ldyBOYW1lQ29udGV4dChj
b250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0IGlubmVyQ29udGV4dCA9IHRo
aXMuX2J1aWxkTmFtZUNvbnRleHQoKTsKKyAgICAgICAgbGV0IGlubmVyQ2hlY2tlciA9IG5ldyBO
YW1lUmVzb2x2ZXIoaW5uZXJDb250ZXh0KTsKKyAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0
KGlubmVyQ2hlY2tlcik7CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFt
ZXRlcnMpIHsKLSAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChjaGVja2VyV2l0aFR5cGVQYXJh
bWV0ZXJzKTsKLSAgICAgICAgICAgIGNvbnRleHRXaXRoUGFyYW1ldGVycy5hZGQocGFyYW1ldGVy
KTsKKyAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChpbm5lckNoZWNrZXIpOworICAgICAgICAg
ICAgaW5uZXJDb250ZXh0LmFkZChwYXJhbWV0ZXIpOwogICAgICAgICB9Ci0gICAgICAgIGxldCBj
aGVja2VyV2l0aFBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRleHRXaXRoUGFyYW1l
dGVycyk7Ci0gICAgICAgIG5vZGUuYm9keS52aXNpdChjaGVja2VyV2l0aFBhcmFtZXRlcnMpOwor
ICAgICAgICBub2RlLmJvZHkudmlzaXQoaW5uZXJDaGVja2VyKTsKICAgICB9CiAgICAgCiAgICAg
dmlzaXRCbG9jayhub2RlKQpAQCAtMTE1LDQxICsxMDgsOSBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIg
ZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgbm9kZS5ib2R5LnZpc2l0KG5ld1Jlc29sdmVyKTsK
ICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAg
IGZvciAobGV0IHBhcmVudCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwYXJlbnQudmlz
aXQodGhpcyk7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCh0aGlz
Ll9uYW1lQ29udGV4dCk7Ci0gICAgICAgIG5hbWVDb250ZXh0LmFkZChub2RlLnR5cGVWYXJpYWJs
ZSk7Ci0gICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7
Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0gICAgICAg
ICAgICBzaWduYXR1cmUudmlzaXQoY2hlY2tlcik7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJv
dG9jb2xSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9uYW1lQ29u
dGV4dC5nZXQoUHJvdG9jb2wsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghcmVzdWx0KQotICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
Q291bGQgbm90IGZpbmQgcHJvdG9jb2wgbmFtZWQgIiArIG5vZGUubmFtZSk7Ci0gICAgICAgIG5v
ZGUucHJvdG9jb2xEZWNsID0gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29s
RnVuY0RlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwotICAg
ICAgICBsZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVuYywgbm9kZS5uYW1lKTsK
LSAgICAgICAgaWYgKCFmdW5jcykKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5v
ZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkNhbm5vdCBmaW5kIGFueSBmdW5jdGlvbnMgbmFtZWQg
IiArIG5vZGUubmFtZSk7Ci0gICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBmdW5jczsK
LSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICBsZXQg
bmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAg
ICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAg
ICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1lQ29udGV4
dC5hZGQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNrZXIgPSBu
ZXcgTmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0KGNo
ZWNrZXIpOwogICAgIH0KQEAgLTE1NywxNSArMTE4LDIyIEBAIGNsYXNzIE5hbWVSZXNvbHZlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0U3RydWN0VHlwZShub2RlKQogICAgIHsKICAgICAg
ICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsK
LSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKSB7
Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgbmFt
ZUNvbnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAgICAgICAgIGxldCBjaGVj
a2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAgICAgIGZvciAobGV0IGZp
ZWxkIG9mIG5vZGUuZmllbGRzKQogICAgICAgICAgICAgZmllbGQudmlzaXQoY2hlY2tlcik7CiAg
ICAgfQogICAgIAorICAgIHZpc2l0VHlwZVJlZihub2RlKQorICAgIHsKKyAgICAgICAgbGV0IHR5
cGUgPSBub2RlLnR5cGU7CisgICAgICAgIGlmICghdHlwZSkgeworICAgICAgICAgICAgdHlwZSA9
IHRoaXMuX25hbWVDb250ZXh0LmdldChUeXBlLCBub2RlLm5hbWUpOworICAgICAgICAgICAgaWYg
KCF0eXBlKQorICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgbmFtZWQgIiArIG5vZGUubmFtZSk7
CisgICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOworICAgICAgICB9CisgICAgfQorCiAgICAg
X3Jlc29sdmVUeXBlQXJndW1lbnRzKHR5cGVBcmd1bWVudHMpCiAgICAgewogICAgICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IHR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKQEAgLTE4MSwzNiAr
MTQ5LDE2IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlw
ZUFyZ3VtZW50Lm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIGFyZ3VtZW50IHJlc29sdmVkIHRv
IHdyb25nIGtpbmQgb2YgdGhpbmc6ICIgKyB0aGluZy5raW5kKTsKICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudFtpXSBpbnN0YW5jZW9mIFZh
bHVlCi0gICAgICAgICAgICAgICAgJiYgIXR5cGVBcmd1bWVudFtpXS5pc0NvbnN0ZXhwcikKKyAg
ICAgICAgICAgIGlmICh0eXBlQXJndW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZSAmJiAhdHlwZUFy
Z3VtZW50W2ldLmlzQ29uc3RleHByKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKHR5cGVBcmd1bWVudFtpXS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgY29uc3Rl
eHByIik7CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlUmVmKG5vZGUpCisg
ICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyhub2RlLnR5cGVBcmd1bWVudHMpOwotICAgICAgICAKLSAgICAgICAgbGV0IHR5
cGUgPSBub2RlLnR5cGU7Ci0gICAgICAgIGlmICghdHlwZSkgewotICAgICAgICAgICAgdHlwZSA9
IHRoaXMuX25hbWVDb250ZXh0LmdldChUeXBlLCBub2RlLm5hbWUpOwotICAgICAgICAgICAgaWYg
KCF0eXBlKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHR5cGUgbmFtZWQgIiArIG5vZGUubmFtZSk7
Ci0gICAgICAgICAgICBub2RlLnR5cGUgPSB0eXBlOwotICAgICAgICB9Ci0gICAgICAgIAotICAg
ICAgICBpZiAodHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggIT0gbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9y
aWdpblN0cmluZywgIldyb25nIG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyAocGFzc2VkICIgKyBu
b2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoICsgIiwgZXhwZWN0ZWQgIiArIHR5cGUudHlwZVBhcmFt
ZXRlcnMubGVuZ3RoICsgIikiKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlLnR5
cGVQYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVySXNU
eXBlID0gdHlwZS50eXBlUGFyYW1ldGVyc1tpXSBpbnN0YW5jZW9mIFR5cGVWYXJpYWJsZTsKLSAg
ICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IG5vZGUudHlwZUFyZ3VtZW50c1tpXSBpbnN0
YW5jZW9mIFR5cGU7Ci0gICAgICAgICAgICBub2RlLnR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhp
cyk7Ci0gICAgICAgICAgICBpZiAocGFyYW1ldGVySXNUeXBlICYmICFhcmd1bWVudElzVHlwZSkK
LSAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJFeHBlY3RlZCB0eXBlLCBidXQgZ290IHZhbHVlIGF0IGFyZ3VtZW50ICMiICsgaSk7
Ci0gICAgICAgICAgICBpZiAoIXBhcmFtZXRlcklzVHlwZSAmJiBhcmd1bWVudElzVHlwZSkKLSAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJp
bmcsICJFeHBlY3RlZCB2YWx1ZSwgYnV0IGdvdCB0eXBlIGF0IGFyZ3VtZW50ICMiICsgaSk7Ci0g
ICAgICAgIH0KKyAgICAgICAgZm9yKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1l
bnRzKQorICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAK
ICAgICB2aXNpdFJlZmVyZW5jZVR5cGUobm9kZSkKQEAgLTI3OSw4ICsyMjcsNiBAQCBjbGFzcyBO
YW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdENhbGxFeHByZXNz
aW9uKG5vZGUpCiAgICAgewotICAgICAgICB0aGlzLl9yZXNvbHZlVHlwZUFyZ3VtZW50cyhub2Rl
LnR5cGVBcmd1bWVudHMpOwotICAgICAgICAKICAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFt
ZUNvbnRleHQuZ2V0KEZ1bmMsIG5vZGUubmFtZSk7CiAgICAgICAgIGlmIChmdW5jcykKICAgICAg
ICAgICAgIG5vZGUucG9zc2libGVPdmVybG9hZHMgPSBmdW5jczsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCmluZGV4IGE1NTMzNTJkOWFlZTYwYmNhNjJhZDZl
MTIzMjg4Yjg5MDUxODI0ODcuLmRjMGZmNzgxYjY5MmUxODQ2Mjc4NjQ4NTBlZjY4ZGQzNWI5YThm
MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAt
MjUsMTMgKzI1LDEyIEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZUZ1bmMgZXh0ZW5k
cyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQ
YXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5
cGUpCiAgICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQ
YXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBl
cihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlw
ZSk7CiAgICAgICAgIHRoaXMuaXNSZXN0cmljdGVkID0gZmFsc2U7CiAgICAgICAgIHRoaXMuaW1w
bGVtZW50YXRpb24gPSBudWxsOwogICAgICAgICB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGEgPSBu
dWxsOwotICAgICAgICB0aGlzLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24gPSAoc3Vic3RpdHV0
aW9uKSA9PiB7fTsKICAgICAgICAgdGhpcy52aXNpdEltcGxlbWVudGF0aW9uRGF0YSA9IChpbXBs
ZW1lbnRhdGlvbkRhdGEsIHZpc2l0b3IpID0+IG51bGw7CiAgICAgICAgIHRoaXMuZGlkTGF5b3V0
U3RydWN0c0luSW1wbGVtZW50YXRpb25EYXRhID0gaW1wbGVtZW50YXRpb25EYXRhID0+IG51bGw7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZl
RnVuY0luc3RhbmNlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVu
Y0luc3RhbmNlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOTliNzgyNjM1MzVh
NzBkOTMwOTYyNmQ1ODUwMzU5MDAxMDVkNDExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1
bmNJbnN0YW5jZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3Mg
TmF0aXZlRnVuY0luc3RhbmNlIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3IoZnVuYywg
cmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlLCBpbXBsZW1lbnRhdGlv
bkRhdGEpCi0gICAgewotICAgICAgICBzdXBlcihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCByZXR1
cm5UeXBlLCBbXSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKLSAgICAgICAgdGhp
cy5fZnVuYyA9IGZ1bmM7Ci0gICAgICAgIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YSA9IGltcGxl
bWVudGF0aW9uRGF0YTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGZ1bmMoKSB7IHJldHVybiB0aGlz
Ll9mdW5jOyB9Ci0gICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCBp
bXBsZW1lbnRhdGlvbkRhdGEoKSB7IHJldHVybiB0aGlzLl9pbXBsZW1lbnRhdGlvbkRhdGE7IH0K
LQotICAgIHRvRGVjbFN0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gIm5hdGl2ZSAiICsg
c3VwZXIudG9EZWNsU3RyaW5nKCk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qcwppbmRleCBiOGIxYTQ3MzMwYjVmZDUxZmYwMjFhZjA2NTg2
ODQ0YzJhY2JhOGVhLi41Y2MxODQ5Mzg5ZWJhMWNmMmEyNjFlYWNmZDg5OGEzMjVkZmI5YzE1IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKQEAgLTI1LDE0
ICsyNSwxNCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlw
ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBj
b25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCiAgICAgewotICAgICAgICBp
ZiAoISh0eXBlUGFyYW1ldGVycyBpbnN0YW5jZW9mIEFycmF5KSkKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigidHlwZSBwYXJhbWV0ZXJzIG5vdCBhcnJheTogIiArIHR5cGVQYXJhbWV0ZXJz
KTsKKyAgICAgICAgaWYgKCEodHlwZUFyZ3VtZW50cyBpbnN0YW5jZW9mIEFycmF5KSkKKyAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigidHlwZSBwYXJhbWV0ZXJzIG5vdCBhcnJheTogIiArIHR5
cGVBcmd1bWVudHMpOwogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBv
cmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFy
YW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOworICAgICAgICB0aGlzLl90eXBlQXJndW1lbnRzID0g
dHlwZUFyZ3VtZW50czsKICAgICAgICAgdGhpcy5faXNOdW1iZXIgPSBmYWxzZTsKICAgICAgICAg
dGhpcy5faXNJbnQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5faXNGbG9hdGluZyA9IGZhbHNlOwpA
QCAtNDAsOCArNDAsMTUgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIH0K
ICAgICAKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9Ci0gICAgZ2V0
IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkg
eyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KKyAgICBnZXQgYmFzZU5hbWUoKSB7IHJl
dHVybiB0aGlzLl9uYW1lOyB9CisgICAgZ2V0IG5hbWUoKQorICAgIHsKKyAgICAgICAgbGV0IHJl
c3VsdCA9IHRoaXMuX25hbWU7CisgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3Ro
KQorICAgICAgICAgICAgcmVzdWx0ICs9ICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7
IHJldHVybiB0aGlzLl90eXBlQXJndW1lbnRzOyB9CiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIAogICAgIC8vIFdlIGxldCBJbnRyaW5zaWNzLmpzIHNldCB0aGVzZSBh
cyBpdCBsaWtlcy4KQEAgLTU0LDE4ICs2MSw5IEBAIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBU
eXBlIHsKICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl9pc1ByaW1pdGl2ZTsg
fQogICAgIHNldCBpc1ByaW1pdGl2ZSh2YWx1ZSkgeyB0aGlzLl9pc1ByaW1pdGl2ZSA9IHZhbHVl
OyB9CiAgICAgCi0gICAgaW5zdGFudGlhdGUodHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAg
IGlmICh0eXBlQXJndW1lbnRzLmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkK
LSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1l
bnRzIHRvIGluc3RhbnRpYXRpb24iKTsKLSAgICAgICAgaWYgKCF0eXBlQXJndW1lbnRzLmxlbmd0
aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzOwotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5
cGVJbnN0YW5jZSh0aGlzLCB0eXBlQXJndW1lbnRzKTsKLSAgICB9Ci0gICAgCiAgICAgdG9TdHJp
bmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJuYXRpdmUgdHlwZWRlZiAiICsgdGhpcy5uYW1l
ICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IjsKKyAgICAgICAgcmV0dXJuICJuYXRp
dmUgdHlwZWRlZiAiICsgdGhpcy5uYW1lOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjYTM5ZTc3Nzg3MDA0OWVkMjJkNzA0MWE1MjAxNGNjOGU2OWNiYzRm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0YW5jZS5qcworKysgL2Rldi9udWxs
CkBAIC0xLDU4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgTmF0aXZlVHlwZUluc3RhbmNlIGV4dGVuZHMg
VHlwZSB7Ci0gICAgY29uc3RydWN0b3IodHlwZSwgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAg
ICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX3R5cGUgPSB0eXBlOwotICAgICAgICB0aGlzLl90
eXBlQXJndW1lbnRzID0gdHlwZUFyZ3VtZW50czsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHR5cGUo
KSB7IHJldHVybiB0aGlzLl90eXBlOyB9Ci0gICAgZ2V0IHR5cGVBcmd1bWVudHMoKSB7IHJldHVy
biB0aGlzLl90eXBlQXJndW1lbnRzOyB9Ci0gICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4g
dGhpcy5fdHlwZS5pc1ByaW1pdGl2ZTsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICAKLSAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLnR5cGUgIT0gb3RoZXIudHlwZSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3Ro
ZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7
Ci0gICAgICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgCi0g
ICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICI8IiArIHRo
aXMudHlwZUFyZ3VtZW50cyArICI+IjsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Ob2RlLmpzCmluZGV4IDg4MTAzMDEzMDc3M2U3MGVhODhlMGFiNTk3OTc0Y2Y1NjFmOWQ1
ZTQuLmVmZTRhMWE0ODJiNDcyMWYyZmIzZmU1ODc3NmRhZGE2YWY3N2Q5YzIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwpAQCAtODgsOSArODgsOSBAQCBjbGFzcyBOb2RlIHsK
ICAgICBnZXQgaXNMaXRlcmFsKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKICAgICBnZXQgaXNO
YXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIAorCiAgICAgY29udmVyc2lvbkNvc3QodW5p
ZmljYXRpb25Db250ZXh0KSB7IHJldHVybiAwOyB9Ci0gICAgCisKICAgICBlcXVhbHMob3RoZXIp
CiAgICAgewogICAgICAgICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9u
Q29udGV4dCgpOwpAQCAtMTIzLDExICsxMjMsNCBAQCBjbGFzcyBOb2RlIHsKICAgICB7CiAgICAg
ICAgIHJldHVybiB0aGlzLnZpc2l0KG5ldyBTdWJzdGl0dXRpb24ocGFyYW1ldGVycywgYXJndW1l
bnRMaXN0KSk7CiAgICAgfQotICAgIAotICAgIHN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKHBhcmFt
ZXRlcnMsIHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnN1
YnN0aXR1dGUoCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLAotICAgICAgICAgICAgcGFyYW1ldGVy
cy5tYXAodHlwZSA9PiB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0eXBlKSkpOwotICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1BhcnNlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKaW5kZXggNmQyYjQzMTYxNTYwMWFi
OWRkM2QwOTM4ZmJmYjM4NWVlMmE0ZGFmMS4uZDgzODY1Y2Q0MGUzNGIzNzU2OGVmNWYyN2NlODRh
MTNmNTIwOGEyNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFy
c2UuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMKQEAgLTEy
MSwxMiArMTIxLDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5k
LCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
ICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sUmVmKCkKLSAgICB7Ci0gICAgICAgIGxl
dCBwcm90b2NvbFRva2VuID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgcmV0
dXJuIG5ldyBQcm90b2NvbFJlZihwcm90b2NvbFRva2VuLCBwcm90b2NvbFRva2VuLnRleHQpOwot
ICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBjb25zdW1lRW5kT2ZUeXBlQXJncygpCiAgICAgewog
ICAgICAgICBsZXQgcmlnaHRTaGlmdCA9IHRyeUNvbnN1bWUoIj4+Iik7CkBAIC0xMzYsMzQgKzEz
MCw2IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51
bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIGNvbnN1bWUoIj4iKTsKICAgICB9CiAgICAg
Ci0gICAgZnVuY3Rpb24gcGFyc2VUeXBlUGFyYW1ldGVycygpCi0gICAgewotICAgICAgICBpZiAo
IXRlc3QoIjwiKSkKLSAgICAgICAgICAgIHJldHVybiBbXTsKLSAgICAgICAgCi0gICAgICAgIGxl
dCByZXN1bHQgPSBbXTsKLSAgICAgICAgY29uc3VtZSgiPCIpOwotICAgICAgICB3aGlsZSAoIXRl
c3QoIj4iKSkgewotICAgICAgICAgICAgbGV0IGNvbnN0ZXhwciA9IGxleGVyLmJhY2t0cmFja2lu
Z1Njb3BlKCgpID0+IHsKLSAgICAgICAgICAgICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwot
ICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAg
ICAgICAgICAgICAgICBhc3NlcnROZXh0KCIsIiwgIj4iLCAiPj4iKTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG5hbWUudGV4
dCwgdHlwZSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIGlmIChjb25zdGV4cHIpCi0g
ICAgICAgICAgICAgICAgcmVzdWx0LnB1c2goY29uc3RleHByKTsKLSAgICAgICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsK
LSAgICAgICAgICAgICAgICBsZXQgcHJvdG9jb2wgPSB0cnlDb25zdW1lKCI6IikgPyBwYXJzZVBy
b3RvY29sUmVmKCkgOiBudWxsOwotICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKG5ldyBUeXBl
VmFyaWFibGUobmFtZSwgbmFtZS50ZXh0LCBwcm90b2NvbCkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCF0cnlDb25zdW1lKCIsIikpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgY29uc3VtZUVuZE9mVHlwZUFyZ3MoKTsKLSAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgZnVuY3Rpb24gcGFyc2VUZXJtKCkKICAgICB7CiAg
ICAgICAgIGxldCB0b2tlbjsKQEAgLTIyMiw3ICsxODgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9n
cmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewog
ICAgICAgICBsZXQgdG9rZW47CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIi0iKSkK
LSAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIg
KyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlVGVybSgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3
IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlVGVy
bSgpXSk7CiAgICAgICAgIGxldCBsZWZ0ID0gcGFyc2VUZXJtKCk7CiAgICAgICAgIGlmICh0b2tl
biA9IHRyeUNvbnN1bWUoIi4iKSkKICAgICAgICAgICAgIGxlZnQgPSBuZXcgRG90RXhwcmVzc2lv
bih0b2tlbiwgbGVmdCwgY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0KTsKQEAgLTI4Miw4
ICsyNDgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxp
bmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgICAgICBhZGRyZXNzU3BhY2UgPSB0b2tlbi50
ZXh0OwogICAgICAgICAKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmll
ciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3VtZW50cygpOwot
ICAgICAgICBsZXQgdHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsIG5hbWUudGV4dCwgdHlwZUFyZ3Vt
ZW50cyk7CisgICAgICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0KTsK
ICAgICAgICAgCiAgICAgICAgIGZ1bmN0aW9uIGdldEFkZHJlc3NTcGFjZSgpCiAgICAgICAgIHsK
QEAgLTMxOCwxMSArMjgzLDEwIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCBvcmln
aW4gPSBjb25zdW1lKCJ0eXBlZGVmIik7CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQo
ImlkZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgIGNvbnN1bWUoIj0iKTsKICAgICAgICAgbGV0IHR5cGUg
PSBwYXJzZVR5cGUoKTsKICAgICAgICAgY29uc3VtZSgiOyIpOwotICAgICAgICByZXR1cm4gbmV3
IFR5cGVEZWYob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSk7CisgICAgICAgIHJl
dHVybiBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGUpOwogICAgIH0KICAgICAKICAgICBm
dW5jdGlvbiBnZW5lcmljUGFyc2VMZWZ0KHRleHRzLCBuZXh0UGFyc2VyLCBjb25zdHJ1Y3RvcikK
QEAgLTMzOSwxMyArMzAzLDEyIEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgcmV0dXJuIGdlbmVyaWNQ
YXJzZUxlZnQoCiAgICAgICAgICAgICB0ZXh0cywgbmV4dFBhcnNlciwKICAgICAgICAgICAgICh0
b2tlbiwgbGVmdCwgcmlnaHQpID0+Ci0gICAgICAgICAgICAgICAgbmV3IENhbGxFeHByZXNzaW9u
KHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwgW10sIFtsZWZ0LCByaWdodF0pKTsKKyAg
ICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tl
bi50ZXh0LCBbbGVmdCwgcmlnaHRdKSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNl
Q2FsbEV4cHJlc3Npb24oKQogICAgIHsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgi
aWRlbnRpZmllciIpOwotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50cyA9IHBhcnNlVHlwZUFyZ3Vt
ZW50cygpOwogICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIGxldCBhcmd1bWVudExpc3Qg
PSBbXTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCIpIikpIHsKQEAgLTM1NSw3ICszMTgsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY29u
c3VtZSgiKSIpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUs
IG5hbWUudGV4dCwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KTsKKyAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbihuYW1lLCBuYW1lLnRleHQsIGFyZ3VtZW50TGlzdCk7
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIApAQCAtMzYzLDcgKzMyNiw2IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBsZXhlci50ZXN0U2NvcGUoKCkgPT4g
ewogICAgICAgICAgICAgY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKTsKLSAgICAgICAgICAgIHBh
cnNlVHlwZUFyZ3VtZW50cygpOwogICAgICAgICAgICAgY29uc3VtZSgiKCIpOwogICAgICAgICB9
KTsKICAgICB9CkBAIC0zODEsNyArMzQzLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3Jp
Z2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAobmFt
ZSA9PSAib3BlcmF0b3IiKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG5h
bWU6ICIgKyBuYW1lKTsKICAgICAgICAgCi0gICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Np
b24odG9rZW4sIG5hbWUsIFtdLCBhcmdzKTsKKyAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVz
c2lvbih0b2tlbiwgbmFtZSwgYXJncyk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGZpbmlz
aFBhcnNpbmdQb3N0SW5jcmVtZW50KHRva2VuLCBsZWZ0KQpAQCAtNDU0LDcgKzQxNiw3IEBAIGZ1
bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNl
dCwgdGV4dCkKICAgICAgICAgaWYgKHRlc3QoIisrIiwgIi0tIikpCiAgICAgICAgICAgICByZXR1
cm4gcGFyc2VQcmVJbmNyZW1lbnQoKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
KyIsICItIiwgIn4iKSkKLSAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24odG9r
ZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0p
OworICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9y
IiArIHRva2VuLnRleHQsIFtwYXJzZVBvc3NpYmxlUHJlZml4KCldKTsKICAgICAgICAgaWYgKHRv
a2VuID0gdHJ5Q29uc3VtZSgiKiIpKQogICAgICAgICAgICAgcmV0dXJuIG5ldyBEZXJlZmVyZW5j
ZUV4cHJlc3Npb24odG9rZW4sIHBhcnNlUG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0
b2tlbiA9IHRyeUNvbnN1bWUoIiYiKSkKQEAgLTQ2Myw3ICs0MjUsNyBAQCBmdW5jdGlvbiBwYXJz
ZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAg
ICAgICAgICAgICByZXR1cm4gbmV3IE1ha2VBcnJheVJlZkV4cHJlc3Npb24odG9rZW4sIHBhcnNl
UG9zc2libGVQcmVmaXgoKSk7CiAgICAgICAgIGlmICh0b2tlbiA9IHRyeUNvbnN1bWUoIiEiKSkg
ewogICAgICAgICAgICAgbGV0IHJlbWFpbmRlciA9IHBhcnNlUG9zc2libGVQcmVmaXgoKTsKLSAg
ICAgICAgICAgIHJldHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9u
KHJlbWFpbmRlci5vcmlnaW4sICJib29sIiwgW10sIFtyZW1haW5kZXJdKSk7CisgICAgICAgICAg
ICByZXR1cm4gbmV3IExvZ2ljYWxOb3QodG9rZW4sIG5ldyBDYWxsRXhwcmVzc2lvbihyZW1haW5k
ZXIub3JpZ2luLCAiYm9vbCIsIFtyZW1haW5kZXJdKSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuIHBhcnNlUG9zc2libGVTdWZmaXgoKTsKICAgICB9CkBAIC00OTMsNyArNDU1LDcgQEAgZnVu
Y3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0
LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIFsi
PT0iLCAiIT0iXSwgcGFyc2VQb3NzaWJsZVJlbGF0aW9uYWxJbmVxdWFsaXR5LAogICAgICAgICAg
ICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4gewotICAgICAgICAgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvcj09IiwgW10sIFtsZWZ0LCByaWdo
dF0pOworICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24odG9r
ZW4sICJvcGVyYXRvcj09IiwgW2xlZnQsIHJpZ2h0XSk7CiAgICAgICAgICAgICAgICAgaWYgKHRv
a2VuLnRleHQgPT0gIiE9IikKICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV3IExvZ2lj
YWxOb3QodG9rZW4sIHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAg
LTUxOSw3ICs0ODEsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktp
bmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICByZXR1cm4gZ2VuZXJp
Y1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAotICAgICAgICAgICAg
KHRva2VuLCBsZWZ0LCByaWdodCkgPT4gbmV3IExvZ2ljYWxFeHByZXNzaW9uKHRva2VuLCB0b2tl
bi50ZXh0LCBuZXcgQ2FsbEV4cHJlc3Npb24obGVmdC5vcmlnaW4sICJib29sIiwgW10sIFtsZWZ0
XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJib29sIiwgW10sIFtyaWdodF0p
KSk7CisgICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJl
c3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwg
ImJvb2wiLCBbbGVmdF0pLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmlnaHQub3JpZ2luLCAiYm9vbCIs
IFtyaWdodF0pKSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlUG9zc2libGVMb2dp
Y2FsQW5kKCkKQEAgLTY1Niw3ICs2MTgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBlbHNl
Qm9keTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoImVsc2UiKSkKICAgICAgICAgICAgIGVsc2VC
b2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChv
cmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10s
IFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7CisgICAgICAgIHJldHVybiBuZXcgSWZT
dGF0ZW1lbnQob3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAi
Ym9vbCIsIFtjb25kaXRpb25hbF0pLCBib2R5LCBlbHNlQm9keSk7CiAgICAgfQogCiAgICAgZnVu
Y3Rpb24gcGFyc2VXaGlsZSgpCkBAIC02NjYsNyArNjI4LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJv
Z3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAg
ICBsZXQgY29uZGl0aW9uYWwgPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAgICAgY29uc3VtZSgi
KSIpOwogICAgICAgICBsZXQgYm9keSA9IHBhcnNlU3RhdGVtZW50KCk7Ci0gICAgICAgIHJldHVy
biBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9y
aWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHkpOworICAgICAgICByZXR1cm4g
bmV3IFdoaWxlTG9vcChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmln
aW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSksIGJvZHkpOwogICAgIH0KIAogICAgIGZ1bmN0aW9u
IHBhcnNlRm9yKCkKQEAgLTY4Nyw3ICs2NDksNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBv
cmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgY29uZGl0aW9uID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgICAg
ICBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAgICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Np
b24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbl0pOworICAgICAgICAg
ICAgY29uZGl0aW9uID0gbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbi5vcmlnaW4sICJib29s
IiwgW2NvbmRpdGlvbl0pOwogICAgICAgICB9CiAgICAgICAgIGxldCBpbmNyZW1lbnQ7CiAgICAg
ICAgIGlmICh0cnlDb25zdW1lKCIpIikpCkBAIC03MDgsNyArNjcwLDcgQEAgZnVuY3Rpb24gcGFy
c2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQog
ICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhw
cmVzc2lvbigpOwogICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAgICAgIHJldHVybiBuZXcgRG9X
aGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3Jp
Z2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSk7CisgICAgICAgIHJldHVybiBuZXcgRG9X
aGlsZUxvb3Aob3JpZ2luLCBib2R5LCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3Jp
Z2luLCAiYm9vbCIsIFtjb25kaXRpb25hbF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
cGFyc2VWYXJpYWJsZURlY2xzKCkKQEAgLTg1OCwxMyArODIwLDExIEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICAgICAgbGV0IG9yaWdpbjsKICAgICAgICAgbGV0IHJldHVyblR5cGU7CiAgICAgICAgIGxldCBu
YW1lOwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgIGxldCBpc0Nhc3Q7CiAg
ICAgICAgIGxldCBzaGFkZXJUeXBlOwogICAgICAgICBsZXQgb3BlcmF0b3JUb2tlbiA9IHRyeUNv
bnN1bWUoIm9wZXJhdG9yIik7CiAgICAgICAgIGlmIChvcGVyYXRvclRva2VuKSB7CiAgICAgICAg
ICAgICBvcmlnaW4gPSBvcGVyYXRvclRva2VuOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMg
PSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICByZXR1cm5UeXBlID0gcGFyc2VU
eXBlKCk7CiAgICAgICAgICAgICBuYW1lID0gIm9wZXJhdG9yIGNhc3QiOwogICAgICAgICAgICAg
aXNDYXN0ID0gdHJ1ZTsKQEAgLTg3Nyw0NCArODM3LDE3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dy
YW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIG9yaWdpbiA9IHJldHVyblR5cGUub3JpZ2luOwog
ICAgICAgICAgICAgbmFtZSA9IHBhcnNlRnVuY05hbWUoKTsKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgaXNDYXN0ID0gZmFs
c2U7CiAgICAgICAgIH0KICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBwYXJzZVBhcmFtZXRlcnMo
KTsKLSAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlw
ZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHJl
dHVybiBuZXcgRnVuYyhvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2Fz
dCwgc2hhZGVyVHlwZSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gcGFyc2VQcm90b2NvbEZ1bmNE
ZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwotICAgICAg
ICByZXR1cm4gbmV3IFByb3RvY29sRnVuY0RlY2woZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVu
Yy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJhbWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGZ1bmMu
aXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJz
ZUZ1bmNEZWYoKQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAg
ICAgICAgIGxldCBib2R5ID0gcGFyc2VCbG9jaygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmNE
ZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnR5cGVQYXJh
bWV0ZXJzLCBmdW5jLnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5
cGUpOwotICAgIH0KLSAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sRGVjbCgpCi0gICAg
ewotICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgicHJvdG9jb2wiKTsKLSAgICAgICAgbGV0
IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCByZXN1
bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIGlmICh0cnlDb25z
dW1lKCI6IikpIHsKLSAgICAgICAgICAgIHdoaWxlICghdGVzdCgieyIpKSB7Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0LmFkZEV4dGVuZHMocGFyc2VQcm90b2NvbFJlZigpKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29uc3VtZSgieyIpOwotICAgICAgICB3
aGlsZSAoIXRyeUNvbnN1bWUoIn0iKSkgewotICAgICAgICAgICAgcmVzdWx0LmFkZChwYXJzZVBy
b3RvY29sRnVuY0RlY2woKSk7Ci0gICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jRGVmKGZ1bmMu
b3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBib2R5
LCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rp
b24gcGFyc2VGaWVsZCgpCkBAIC05MjksOCArODYyLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3Jh
bSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAg
ICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInN0cnVjdCIpOwogICAgICAgICBsZXQgbmFtZSA9
IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0
ZXJzID0gcGFyc2VUeXBlUGFyYW1ldGVycygpOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0
cnVjdFR5cGUob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGxldCByZXN1
bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4sIG5hbWUpOwogICAgICAgICBjb25zdW1lKCJ7Iik7
CiAgICAgICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKQogICAgICAgICAgICAgcmVzdWx0LmFk
ZChwYXJzZUZpZWxkKCkpOwpAQCAtOTQxLDcgKzg3Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dy
YW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAg
ICAgICAgIGxldCBmdW5jID0gcGFyc2VGdW5jRGVjbCgpOwogICAgICAgICBjb25zdW1lKCI7Iik7
Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVuYyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBm
dW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVu
Yy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7CisgICAgICAgIHJldHVybiBuZXcgTmF0aXZlRnVu
YyhmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMucGFyYW1ldGVy
cywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0
aW9uIHBhcnNlTmF0aXZlKCkKQEAgLTk0OSw5ICs4ODEsOSBAQCBmdW5jdGlvbiBwYXJzZShwcm9n
cmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAg
IGxldCBvcmlnaW4gPSBjb25zdW1lKCJuYXRpdmUiKTsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUo
InR5cGVkZWYiKSkgewogICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRp
ZmllciIpOwotICAgICAgICAgICAgbGV0IHBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJz
KCk7CisgICAgICAgICAgICBsZXQgcGFyc2VkQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRz
KCk7CiAgICAgICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgICAgICByZXR1cm4gbmV3IE5h
dGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcmFtZXRlcnMpOworICAgICAgICAgICAgcmV0
dXJuIG5ldyBOYXRpdmVUeXBlKG9yaWdpbiwgbmFtZS50ZXh0LCBwYXJzZWRBcmd1bWVudHMpOwog
ICAgICAgICB9CiAgICAgICAgIHJldHVybiBwYXJzZU5hdGl2ZUZ1bmMoKTsKICAgICB9CkBAIC05
ODUsNyArOTE3LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5k
LCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiOiIpKQog
ICAgICAgICAgICAgYmFzZVR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50IiwgW10pOworICAgICAgICAg
ICAgYmFzZVR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCAiaW50Iik7CiAgICAgICAgIGNvbnN1bWUo
InsiKTsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBFbnVtVHlwZShuYW1lLCBuYW1lLnRleHQs
IGJhc2VUeXBlKTsKICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ9IikpIHsKQEAgLTEwMTMsMTAgKzk0
NSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51
bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlU3RydWN0VHlw
ZSgpKTsKICAgICAgICAgZWxzZSBpZiAodG9rZW4udGV4dCA9PSAiZW51bSIpCiAgICAgICAgICAg
ICBwcm9ncmFtLmFkZChwYXJzZUVudW1UeXBlKCkpOwotICAgICAgICBlbHNlIGlmICh0b2tlbi50
ZXh0ID09ICJwcm90b2NvbCIpCi0gICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZVByb3RvY29s
RGVjbCgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VGdW5j
RGVmKCkpOwogICAgIH0KIH0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUu
anMKaW5kZXggYTIwNDhhOWFkM2U4M2JkMThiNzY0NDRjYTU1NDZlNDhmZTAxMTlhMC4uZTdjM2Yy
MzY2MDRmOGJhMDg3YWMxZTY2ZjU4ZDY3ODYwMWM1NzZjNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC00MiwxNiArNDIsMTMgQEAgbGV0IHByZXBhcmUgPSAo
KCkgPT4gewogICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFtKTsKICAgICAgICAgbGV0IG5h
bWVSZXNvbHZlciA9IGNyZWF0ZU5hbWVSZXNvbHZlcihwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2
ZU5hbWVzSW5UeXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwotICAgICAgICByZXNvbHZlTmFt
ZXNJblByb3RvY29scyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpOwogICAgICAgICByZXNvbHZlVHlw
ZURlZnNJblR5cGVzKHByb2dyYW0pOwotICAgICAgICByZXNvbHZlVHlwZURlZnNJblByb3RvY29s
cyhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tSZWN1cnNpdmVUeXBlcyhwcm9ncmFtKTsKICAgICAg
ICAgc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKTsKICAgICAgICAgc3ludGhlc2l6
ZUVudW1GdW5jdGlvbnMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVOYW1lc0luRnVuY3Rpb25z
KHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBlRGVmc0luRnVuY3Rp
b25zKHByb2dyYW0pOwotICAgICAgICAKLSAgICAgICAgZmxhdHRlblByb3RvY29sRXh0ZW5kcyhw
cm9ncmFtKTsKKwogICAgICAgICBjaGVjayhwcm9ncmFtKTsKICAgICAgICAgY2hlY2tMaXRlcmFs
VHlwZXMocHJvZ3JhbSk7CiAgICAgICAgIHJlc29sdmVQcm9wZXJ0aWVzKHByb2dyYW0pOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKaW5kZXggYmJjNGIyNGE2MjI3YjFj
ZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZjNmY3OTNlZTZlNzNlZWNhNWE2YWE3NGE0NDBh
NjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCkBA
IC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgdGhp
cy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAgICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IG5l
dyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMu
X3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fZnVuY0luc3RhbnRpYXRvciA9
IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29u
dGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4
dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhpcy5fZ2xvYmFsTmFtZUNvbnRleHQucmVjb2du
aXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAsNiBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMg
Tm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVtZW50cygpIHsgcmV0dXJuIHRoaXMuX3RvcExl
dmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5jdGlvbnMoKSB7IHJldHVybiB0aGlzLl9mdW5j
dGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJldHVybiB0aGlzLl90eXBlczsgfQotICAgIGdl
dCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9wcm90b2NvbHM7IH0KLSAgICBnZXQgZnVuY0lu
c3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1bmNJbnN0YW50aWF0b3I7IH0KICAgICBnZXQg
Z2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dDsgfQog
ICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01Niw4ICs1Miw2IEBAIGNsYXNzIFByb2dyYW0g
ZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFycmF5LnB1c2goc3RhdGVtZW50KTsKICAgICAg
ICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBUeXBlKQogICAgICAgICAgICAgdGhp
cy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBzdGF0ZW1lbnQpOwotICAgICAgICBlbHNlIGlm
IChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2NvbCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3Rv
Y29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7CiAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVtZW50IGlzIG5vdCBhIGZ1bmN0aW9uIG9yIHR5
cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0aGlzLl90b3BMZXZlbFN0YXRlbWVudHMucHVz
aChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UHJvdG9jb2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmODQ1NjQ3N2VjYTJlOGRjZjY2Y2Y0NWMy
ZDQ3M2NhMDg1N2Q4OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2wgZXh0ZW5kcyBOb2RlIHsK
LSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcigpOwot
ICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1l
OwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5fb3JpZ2luOyB9
Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0IGtpbmQoKSB7
IHJldHVybiBQcm90b2NvbDsgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLm5hbWU7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJvdG9jb2xEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTBi
Y2ZjZjMzYmE3Mzk1YzU2ZDk1MmE1NzlkMDk5MjdiMGJlNzY3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIFByb3RvY29sRGVjbCBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25zdHJ1Y3Rvcihvcmln
aW4sIG5hbWUpCi0gICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUpOwotICAgICAgICB0
aGlzLmV4dGVuZHMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0dXJlcyA9IFtdOwotICAgICAg
ICB0aGlzLl9zaWduYXR1cmVNYXAgPSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX3R5cGVWYXJp
YWJsZSA9IG5ldyBUeXBlVmFyaWFibGUob3JpZ2luLCBuYW1lLCBudWxsKTsKLSAgICB9Ci0gICAg
Ci0gICAgYWRkRXh0ZW5kcyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIHRoaXMuZXh0ZW5kcy5w
dXNoKHByb3RvY29sKTsKLSAgICB9Ci0gICAgCi0gICAgYWRkKHNpZ25hdHVyZSkKLSAgICB7Ci0g
ICAgICAgIGlmICghKHNpZ25hdHVyZSBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpKQotICAg
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaWduYXR1cmUgaXNuJ3QgYSBQcm90b2NvbEZ1bmNE
ZWNsIGJ1dCBhICIgKyBzaWduYXR1cmUuY29uc3RydWN0b3IubmFtZSk7Ci0gICAgICAgIAotICAg
ICAgICBzaWduYXR1cmUucHJvdG9jb2xEZWNsID0gdGhpczsKLSAgICAgICAgdGhpcy5fc2lnbmF0
dXJlcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgICAgIGxldCBvdmVybG9hZHMgPSB0aGlzLl9zaWdu
YXR1cmVNYXAuZ2V0KHNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgaWYgKCFvdmVybG9hZHMpCi0g
ICAgICAgICAgICB0aGlzLl9zaWduYXR1cmVNYXAuc2V0KHNpZ25hdHVyZS5uYW1lLCBvdmVybG9h
ZHMgPSBbXSk7Ci0gICAgICAgIG92ZXJsb2Fkcy5wdXNoKHNpZ25hdHVyZSk7Ci0gICAgfQotICAg
IAotICAgIGdldCBzaWduYXR1cmVzKCkgeyByZXR1cm4gdGhpcy5fc2lnbmF0dXJlczsgfQotICAg
IHNpZ25hdHVyZXNCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fc2lnbmF0dXJlTWFwLmdldChu
YW1lKTsgfQotICAgIGdldCB0eXBlVmFyaWFibGUoKSB7IHJldHVybiB0aGlzLl90eXBlVmFyaWFi
bGU7IH0KLSAgICAKLSAgICBzaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJpYWJsZShuYW1lLCB0
eXBlVmFyaWFibGUpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0
aXR1dGlvbihbdGhpcy50eXBlVmFyaWFibGVdLCBbdHlwZVZhcmlhYmxlXSk7Ci0gICAgICAgIGxl
dCByZXN1bHQgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUobmFtZSk7Ci0gICAgICAgIGlmICghcmVz
dWx0KQotICAgICAgICAgICAgcmV0dXJuIG51bGw7Ci0gICAgICAgIHJldHVybiByZXN1bHQubWFw
KHNpZ25hdHVyZSA9PiBzaWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKSk7Ci0gICAgfQotICAg
IAotICAgIGluaGVyaXRzKG90aGVyUHJvdG9jb2wpCi0gICAgewotICAgICAgICBpZiAoIW90aGVy
UHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIAot
ICAgICAgICBpZiAob3RoZXJQcm90b2NvbCBpbnN0YW5jZW9mIFByb3RvY29sUmVmKQotICAgICAg
ICAgICAgb3RoZXJQcm90b2NvbCA9IG90aGVyUHJvdG9jb2wucHJvdG9jb2xEZWNsOwotICAgICAg
ICAKLSAgICAgICAgZm9yIChsZXQgb3RoZXJTaWduYXR1cmUgb2Ygb3RoZXJQcm90b2NvbC5zaWdu
YXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlcyA9IHRoaXMuc2lnbmF0dXJlc0J5
TmFtZShvdGhlclNpZ25hdHVyZS5uYW1lKTsKLSAgICAgICAgICAgIGlmICghc2lnbmF0dXJlcykK
LSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlByb3RvY29s
ICIgKyB0aGlzLm5hbWUgKyAiIGRvZXMgbm90IGhhdmUgYSBmdW5jdGlvbiBuYW1lZCAiICsgb3Ro
ZXJTaWduYXR1cmUubmFtZSArICIgKGxvb2tpbmcgYXQgc2lnbmF0dXJlICIgKyBvdGhlclNpZ25h
dHVyZSArICIpIn07Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJ
bXBsKAotICAgICAgICAgICAgICAgIHNpZ25hdHVyZXMsIFtdLAotICAgICAgICAgICAgICAgIG90
aGVyU2lnbmF0dXJlLnBhcmFtZXRlclR5cGVzLAotICAgICAgICAgICAgICAgIG90aGVyU2lnbmF0
dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwotICAgICAgICAgICAgaWYgKCFv
dmVybG9hZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVh
c29uOiAiRGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBmb3IgIiArIG90aGVyU2lnbmF0
dXJlICsgIiBpbiAiICsgdGhpcy5uYW1lICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICIg
KHRyaWVkOiAiICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIpIiA6ICIiKX07Ci0g
ICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlID0KLSAgICAgICAgICAgICAgICBv
dmVybG9hZC5mdW5jLnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAg
ICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZp
Y2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVkUmV0dXJuVHlwZS5l
cXVhbHMob3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJSZXR1cm4gdHlwZSBtaXNtYXRjaCBiZXR3ZWVuICIg
KyBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBhbmQgIiArIHN1YnN0aXR1dGVkUmV0dXJu
VHlwZX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0K
LSAgICAKLSAgICBoYXNIZWlyKHR5cGUpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9u
ID0gbmV3IFN1YnN0aXR1dGlvbihbdGhpcy5fdHlwZVZhcmlhYmxlXSwgW3R5cGVdKTsKLSAgICAg
ICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXM7Ci0gICAgICAgIGZvciAobGV0IG9y
aWdpbmFsU2lnbmF0dXJlIG9mIHNpZ25hdHVyZXMpIHsKLSAgICAgICAgICAgIGxldCBzaWduYXR1
cmUgPSBvcmlnaW5hbFNpZ25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pOwotICAgICAgICAgICAg
bGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChzaWduYXR1cmUucG9zc2libGVPdmVy
bG9hZHMsIHNpZ25hdHVyZS50eXBlUGFyYW1ldGVycywgc2lnbmF0dXJlLnBhcmFtZXRlclR5cGVz
LCBzaWduYXR1cmUucmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7Ci0gICAgICAgICAg
ICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZh
bHNlLCByZWFzb246ICJEaWQgbm90IGZpbmQgbWF0Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsgb3Jp
Z2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3JpZ2luYWxTaWduYXR1cmUub3JpZ2luLm9yaWdp
blN0cmluZyArICIpIHdpdGggdHlwZSAiICsgdHlwZSArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5n
dGggPyAiICh0cmllZDogIiArIG92ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsgIikgKyAiKSIgOiAi
Iil9OwotICAgICAgICAgICAgCi0gICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZWRSZXR1cm5UeXBl
ID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAg
ICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZp
Y2F0aW9uQ29udGV4dCk7Ci0gICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGVkUmV0dXJuVHlwZS5l
cXVhbHMoc2lnbmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVz
dWx0OiBmYWxzZSwgcmVhc29uOiAiQXQgc2lnbmF0dXJlICIgKyBvcmlnaW5hbFNpZ25hdHVyZSAr
ICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIik6IHJl
dHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIHNpZ25hdHVyZS5yZXR1cm5UeXBlICsgIiBh
bmQgIiArIHN1YnN0aXR1dGVkUmV0dXJuVHlwZSArICIgaW4gZm91bmQgZnVuY3Rpb24gIiArIG92
ZXJsb2FkLmZ1bmMudG9EZWNsU3RyaW5nKCl9OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiB7
cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuICJwcm90b2NvbCAiICsgdGhpcy5uYW1lICsgIiB7ICIgKyB0aGlzLnNpZ25hdHVy
ZXMuam9pbigiOyAiKSArICI7IH0iOwotICAgIH0KLX0KLQotCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggODliNWM5YjhlNzE2MTg2OGExY2U0NWQ1ODg2NjM5MmMwMjIyNDRkMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbEZ1bmNEZWNsLmpzCisrKyAvZGV2L251bGwKQEAgLTEs
MzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwot
InVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbEZ1bmNEZWNsIGV4dGVuZHMgRnVuYyB7Ci0g
ICAgZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24oKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHRoaXMudHlwZVBhcmFtZXRlcnMuY29uY2F0KHRoaXMucHJvdG9jb2xEZWNsLnR5cGVW
YXJpYWJsZSk7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Qcm90b2NvbFJlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1By
b3RvY29sUmVmLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2MwZWEzMGQ3NDhk
OGI5ZTE2MTA3YTlmODA4YzIzYjMyODY1ZTY0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29s
UmVmLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2Nv
bFJlZiBleHRlbmRzIFByb3RvY29sIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCi0g
ICAgewotICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUpOwotICAgICAgICB0aGlzLnByb3RvY29s
RGVjbCA9IG51bGw7Ci0gICAgfQotICAgIAotICAgIGluaGVyaXRzKG90aGVyKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmluaGVyaXRzKG90aGVyKTsKLSAgICB9Ci0g
ICAgCi0gICAgaGFzSGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9j
b2xEZWNsLmhhc0hlaXIodHlwZSk7Ci0gICAgfQotICAgIAotICAgIGdldCBpc1ByaW1pdGl2ZSgp
Ci0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaXNQcmltaXRpdmU7Ci0g
ICAgfQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2
ZU5hbWVzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU5hbWVzLmpz
CmluZGV4IDE5MjJlOGVjMjdmYzM5ZDk1YjRhYThiZmE5YTU2YzkxMGY2ZTY4YjIuLjQ5ZGM4NjM3
ZDRlMTQzYTliMDdkNTljZjNmYjk3NWNmODRhNjVlMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKQEAgLTM1LDEyICszNSw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVOYW1lc0luVHlwZXMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogICAgICAgICBuYW1l
UmVzb2x2ZXIuZG9TdGF0ZW1lbnQodHlwZSk7CiB9CiAKLWZ1bmN0aW9uIHJlc29sdmVOYW1lc0lu
UHJvdG9jb2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKLXsKLSAgICBmb3IgKGxldCBwcm90b2Nv
bCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAgICAgbmFtZVJlc29sdmVyLmRv
U3RhdGVtZW50KHByb3RvY29sKTsKLX0KLQogZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5GdW5jdGlv
bnMocHJvZ3JhbSwgbmFtZVJlc29sdmVyKQogewogICAgIGZvciAobGV0IGZ1bmNzIG9mIHByb2dy
YW0uZnVuY3Rpb25zLnZhbHVlcygpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qcwppbmRleCA3ZTIyMTU2ZGUxYWM1ZTJhNmM3
MjRhZDM0NjlkYzkxZTc0NmYyNTY2Li5kNTRiOTRkMzZjZGIwYjA2ODI5OTYyNmFmMDU2NWE4MmJh
Nzc3NWM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZl
T3ZlcmxvYWRJbXBsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29s
dmVPdmVybG9hZEltcGwuanMKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogInVzZSBzdHJpY3QiOwog
Ci1mdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCitmdW5j
dGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgYXJndW1lbnRUeXBlcywgcmV0dXJu
VHlwZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiB7CiAgICAgaWYgKCFmdW5jdGlvbnMpCiAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiTnVsbCBmdW5jdGlvbnM7IHRoYXQgc2hvdWxkIGhhdmUg
YmVlbiBjYXVnaHQgYnkgdGhlIGNhbGxlci4iKTsKQEAgLTM2LDcgKzM2LDcgQEAgZnVuY3Rpb24g
cmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlw
ZXMsIHJldHVyblR5cGUKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gobmV3IE92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUoZnVuYywgIkZ1bmN0aW9uIGlzIGEgIiArIGZ1bmMuc2hhZGVyVHlwZSAr
ICIgc2hhZGVyLCBzbyBpdCBjYW5ub3QgYmUgY2FsbGVkIGZyb20gd2l0aGluIGFuIGV4aXN0aW5n
IHNoYWRlci4iKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGxl
dCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUpOworICAgICAgICBsZXQgb3ZlcmxvYWQgPSBpbmZlclR5cGVz
Rm9yQ2FsbChmdW5jLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlKTsKICAgICAgICAgaWYgKG92
ZXJsb2FkLmZhaWx1cmUpCiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG92ZXJsb2FkLmZhaWx1
cmUpOwogICAgICAgICBlbHNlCkBAIC03NCw3ICs3NCw2IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVy
bG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5U
eXBlCiAgICAgICAgICAgICBsZXQgcGFyYW1ldGVyRnVuYyA9IHN1Y2Nlc3Nlc1tqXS5mdW5jOwog
ICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoCiAgICAgICAgICAg
ICAgICAgcGFyYW1ldGVyRnVuYywKLSAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnRzLmxlbmd0
aCA/IGFyZ3VtZW50RnVuYy50eXBlUGFyYW1ldGVycyA6IFtdLAogICAgICAgICAgICAgICAgIGFy
Z3VtZW50RnVuYy5wYXJhbWV0ZXJUeXBlcywKICAgICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMu
cmV0dXJuVHlwZUZvck92ZXJsb2FkUmVzb2x1dGlvbik7CiAgICAgICAgICAgICBpZiAoIW92ZXJs
b2FkLmZ1bmMpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qcwppbmRleCAzYmQyYTRkNjVmNTY0ZjcwOGIwZWY0NzU5ZTQzYjJjODhkNDhjMjM0
Li5lODdiZGMzYzM0ODMxOTk1MmZmOWQ4ZjAzOTlmMzQ4ZWE5NTBkNjBlIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCkBAIC0zMSwxMyAr
MzEsNiBAQCBmdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblR5cGVzKHByb2dyYW0pCiAgICAgICAg
IHR5cGUudmlzaXQocmVzb2x2ZXIpOwogfQogCi1mdW5jdGlvbiByZXNvbHZlVHlwZURlZnNJblBy
b3RvY29scyhwcm9ncmFtKQotewotICAgIGxldCByZXNvbHZlciA9IG5ldyBUeXBlRGVmUmVzb2x2
ZXIoKTsKLSAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBwcm9ncmFtLnByb3RvY29scy52YWx1ZXMo
KSkKLSAgICAgICAgcHJvdG9jb2wudmlzaXQocmVzb2x2ZXIpOwotfQotCiBmdW5jdGlvbiByZXNv
bHZlVHlwZURlZnNJbkZ1bmN0aW9ucyhwcm9ncmFtKQogewogICAgIGxldCByZXNvbHZlciA9IG5l
dyBUeXBlRGVmUmVzb2x2ZXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Jld3JpdGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0
ZXIuanMKaW5kZXggZjQwZDZiODhiMjZlZWRjYmY4MjlmMWJhYmIxMGEyMDQ1YjdhOGU4My4uMTcx
NWFkMGZhYjc5OTliOTY1YmIwMzkwMjI1NDAxN2QxN2IzOWIxZSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIuanMKQEAgLTUzLDQxICs1MywxMSBAQCBjbGFzcyBSZXdy
aXRlciB7CiAgICAgLy8gdGhhdC4KICAgICB2aXNpdEZ1bmNEZWYobm9kZSkgeyByZXR1cm4gbm9k
ZTsgfQogICAgIHZpc2l0TmF0aXZlRnVuYyhub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlz
aXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0TmF0
aXZlVHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRUeXBlRGVmKG5vZGUpIHsg
cmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdFN0cnVjdFR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsg
fQotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKSB7IHJldHVybiBub2RlOyB9
Ci0gICAgdmlzaXRQcm90b2NvbERlY2wobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0
RW51bVR5cGUobm9kZSkgeyByZXR1cm4gbm9kZTsgfQogCi0gICAgLy8gVGhpcyBpcyBhbG1vc3Qg
d3JvbmcuIFdlIGluc3RhbnRpYXRlIEZ1bmMgaW4gU3Vic3RpdHV0aW9uIGluIFByb3RvY29sRGVj
bC4gVGhlbiwgd2UgZW5kIHVwCi0gICAgLy8gbm90IHJld3JpdGluZyB0eXBlIHZhcmlhYmxlcy4g
SSB0aGluayB0aGF0IGp1c3Qgd29ya3MgYmVjYXVzZSBub3QgcmV3cml0aW5nIHRoZW0gdGhlcmUg
aXMgT0suCi0gICAgLy8gRXZlcnl3aGVyZSBlbHNlLCBpdCdzIG1hbmRhdG9yeSB0aGF0IHdlIGRv
bid0IHJld3JpdGUgdGhlc2UgYmVjYXVzZSB3ZSBhbHdheXMgYXNzdW1lIHRoYXQKLSAgICAvLyB0
eXBlIHZhcmlhYmxlcyBhcmUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgcmV3cml0aW5nLgotICAgIHZp
c2l0VHlwZVZhcmlhYmxlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLQotICAgIHZpc2l0UHJvdG9j
b2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2Nv
bEZ1bmNEZWNsKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAg
ICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBh
cmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAg
ICAgICAgbm9kZS5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRo
aXMpKSwKLSAgICAgICAgICAgIG5vZGUuaXNDYXN0LAotICAgICAgICAgICAgbm9kZS5zaGFkZXJU
eXBlKTsKLSAgICAgICAgcmVzdWx0LnByb3RvY29sRGVjbCA9IG5vZGUucHJvdG9jb2xEZWNsOwot
ICAgICAgICByZXN1bHQucG9zc2libGVPdmVybG9hZHMgPSBub2RlLnBvc3NpYmxlT3ZlcmxvYWRz
OwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICB2aXNpdE5hdGl2ZVR5
cGVJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5z
dGFuY2UoCi0gICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBu
b2RlLnR5cGVBcmd1bWVudHMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KHRoaXMpKSk7
Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAg
ICAgbGV0IHJlc3VsdCA9IG5ldyBGdW5jUGFyYW1ldGVyKG5vZGUub3JpZ2luLCBub2RlLm5hbWUs
IG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CkBAIC0xMjUsMTQgKzk1LDkgQEAgY2xhc3MgUmV3cml0
ZXIgewogICAgICAgICB9KSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBub2RlOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5
cGVSZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9
PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBU
eXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IE5v
ZGUudmlzaXQobm9kZS50eXBlLCB0aGlzKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CkBAIC0zMTcsMTQgKzI4Miw2IEBAIGNsYXNzIFJld3JpdGVyIHsKIAogICAgIHByb2Nlc3NEZXJp
dmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KQogICAgIHsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVB
cmd1bWVudHMgPSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1
YWxUeXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgIHJldHVybiBhY3R1YWxUeXBlQXJndW1l
bnRzLm1hcChhY3R1YWxUeXBlQXJndW1lbnQgPT4gYWN0dWFsVHlwZUFyZ3VtZW50LnZpc2l0KHRo
aXMpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKLSAg
ICAgICAgfQotICAgICAgICByZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVB
cmd1bWVudHMobm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAgICAgcmVzdWx0Lmluc3Rh
bnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMgPSBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUuaW5z
dGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIGxldCBhcmd1bWVudFR5cGVz
ID0gbm9kZS5hcmd1bWVudFR5cGVzOwogICAgICAgICBpZiAoYXJndW1lbnRUeXBlcykKICAgICAg
ICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gYXJndW1lbnRUeXBlcy5tYXAoYXJndW1lbnRU
eXBlID0+IGFyZ3VtZW50VHlwZS52aXNpdCh0aGlzKSk7CkBAIC0zNDIsNyArMjk5LDYgQEAgY2xh
c3MgUmV3cml0ZXIgewogICAgIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVz
c2lvbigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBu
b2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQo
dGhpcykpLAogICAgICAgICAgICAgbm9kZS5hcmd1bWVudExpc3QubWFwKGFyZ3VtZW50ID0+IE5v
ZGUudmlzaXQoYXJndW1lbnQsIHRoaXMpKSk7CiAgICAgICAgIHJldHVybiB0aGlzLnByb2Nlc3NE
ZXJpdmVkQ2FsbERhdGEobm9kZSwgcmVzdWx0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA5M2Y2YjliOTMyZDI3MmQ3N2EzZGMzMTY3ZjUyNWZh
NDBhNjFlZDIzLi4zNjg2MThmODUxYzlkOGU1MDJmYzVmOWQ2N2IxMDkxMDM0YTM5NjdhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAgLTQyLDcgKzQyLDYgQEAg
dGQgewogICAgIDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJDb21tYUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJDb25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJDb25zdGV4
cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29udGludWUu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9z
Y3JpcHQ+CkBAIC02MSw3ICs2MCw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxP
cmlnaW4uanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJGbGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjksNyArNjcsNiBAQCB0ZCB7CiAg
ICAgPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJG
dW5jLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3JpcHQ+
Ci0gICAgPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
RnVuY3Rpb25MaWtlQmxvY2suanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJIaWdoWm9t
YmllRmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTc5LDcgKzc2LDYgQEAgdGQgewogICAgIDxzY3Jp
cHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IklubGluZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRy
aW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTk2LDkgKzkyLDcgQEAgdGQgewogICAgIDxzY3JpcHQg
c3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmFtZVJlc29s
dmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3Jj
PSJOYXRpdmVUeXBlSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOb3Jt
YWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTnVs
bExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9z
Y3JpcHQ+CkBAIC0xMDksMTAgKzEwMyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iUHJvcGVy
dHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVt
b3ZlZC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHRyVHlwZS5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3Njcmlw
dD4KQEAgLTE0MSwxMCArMTMxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotICAg
IDxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJUeXBlUmVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZh
cmlhYmxlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVkVmFsdWUuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKaW5kZXggYjRmNTA4NTlhODdhZmI2MGU1NGIz
NjBjNjA1OWM0YWFjOGMyM2JjYS4uYTlmZGVlY2U0NzU4NjY4NjYzZWQxMDMyZjcyYjIwM2U4MjA1
MmFhMSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2Rl
Z2VuLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5q
cwpAQCAtNTMsNyArNTMsNyBAQCBmdW5jdGlvbiBnZW5lcmF0ZVNQSVJWKHNwaXJ2LCBwcm9ncmFt
KQogICAgIHR5cGVNYXAuc2V0KHByb2dyYW0uaW50cmluc2ljcy51aW50MzIsIGN1cnJlbnRJZCsr
KTsKIAogICAgIGZvciAobGV0IGVudHJ5UG9pbnQgb2YgZmluZEVudHJ5UG9pbnRzKCkpIHsKLSAg
ICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5p
cXVlKGVudHJ5UG9pbnQsIFtdKTsKKyAgICAgICAgbGV0IGlubGluZWRTaGFkZXIgPSBlbnRyeVBv
aW50OwogICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFNoYWRlciwgbmV3
IFZpc2l0aW5nU2V0KGVudHJ5UG9pbnQpKTsKIAogICAgICAgICBsZXQgdHlwZUFuYWx5emVyID0g
bmV3IFNQSVJWVHlwZUFuYWx5emVyKHByb2dyYW0sIHR5cGVNYXAsIGN1cnJlbnRJZCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKaW5kZXgg
MTk4ODcyM2MzNTQ4MDgxYzY2N2ZhYzc4NjJmNDAyNjdmOWY4Yjg1Ny4uYzZkZGUwMDFhOTBiMDQ3
MjM4ZmE2MTU2NGYxZTY4ZGVkYWY5OTQyOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwpAQCAtMjksNTMgKzI5LDcxMCBAQCBsZXQgc3Rh
bmRhcmRMaWJyYXJ5ID0gYAogLy8gVGhpcyBpcyB0aGUgV1NMIHN0YW5kYXJkIGxpYnJhcnkuIElt
cGxlbWVudGF0aW9ucyBvZiBhbGwgb2YgdGhlc2UgdGhpbmdzIGFyZSBpbgogLy8gSW50cmluc2lj
cy5qcy4KIAotLy8gTmVlZCB0byBib290c3RyYXAgdm9pZCBmaXJzdC4KIG5hdGl2ZSB0eXBlZGVm
IHZvaWQ7Ci0KLW5hdGl2ZSB0eXBlZGVmIHVpbnQ4OwotbmF0aXZlIHR5cGVkZWYgaW50MzI7Ci1u
YXRpdmUgdHlwZWRlZiB1aW50MzI7CiBuYXRpdmUgdHlwZWRlZiBib29sOwotdHlwZWRlZiBpbnQg
PSBpbnQzMjsKLXR5cGVkZWYgdWludCA9IHVpbnQzMjsKLQotbmF0aXZlIHR5cGVkZWYgZmxvYXQz
MjsKLXR5cGVkZWYgZmxvYXQgPSBmbG9hdDMyOwotCi1uYXRpdmUgb3BlcmF0b3IgaW50MzIodWlu
dDMyKTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50OCk7Ci1uYXRpdmUgb3BlcmF0b3IgaW50
MzIoZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihpbnQzMik7Ci1uYXRpdmUgb3BlcmF0
b3IgdWludDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIoZmxvYXQpOwotbmF0aXZl
IG9wZXJhdG9yIHVpbnQ4KGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50OCh1aW50MzIpOwot
bmF0aXZlIG9wZXJhdG9yIHVpbnQ4KGZsb2F0KTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdChpbnQz
Mik7Ci1uYXRpdmUgb3BlcmF0b3IgZmxvYXQodWludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9h
dCh1aW50OCk7CituYXRpdmUgdHlwZWRlZiB1Y2hhcjsKK25hdGl2ZSB0eXBlZGVmIHVzaG9ydDsK
K25hdGl2ZSB0eXBlZGVmIHVpbnQ7CituYXRpdmUgdHlwZWRlZiBjaGFyOworbmF0aXZlIHR5cGVk
ZWYgc2hvcnQ7CituYXRpdmUgdHlwZWRlZiBpbnQ7CituYXRpdmUgdHlwZWRlZiBoYWxmOworbmF0
aXZlIHR5cGVkZWYgZmxvYXQ7CituYXRpdmUgdHlwZWRlZiBhdG9taWNfaW50OworbmF0aXZlIHR5
cGVkZWYgYXRvbWljX3VpbnQ7CitzdHJ1Y3QgYm9vbDIgeworICAgIGJvb2wgeDsKKyAgICBib29s
IHk7Cit9CitzdHJ1Y3QgYm9vbDMgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7CisgICAgYm9v
bCB6OworfQorc3RydWN0IGJvb2w0IHsKKyAgICBib29sIHg7CisgICAgYm9vbCB5OworICAgIGJv
b2wgejsKKyAgICBib29sIHc7Cit9CitzdHJ1Y3QgdWNoYXIyIHsKKyAgICB1Y2hhciB4OworICAg
IHVjaGFyIHk7Cit9CitzdHJ1Y3QgdWNoYXIzIHsKKyAgICB1Y2hhciB4OworICAgIHVjaGFyIHk7
CisgICAgdWNoYXIgejsKK30KK3N0cnVjdCB1Y2hhcjQgeworICAgIHVjaGFyIHg7CisgICAgdWNo
YXIgeTsKKyAgICB1Y2hhciB6OworICAgIHVjaGFyIHc7Cit9CitzdHJ1Y3QgdXNob3J0MiB7Cisg
ICAgdXNob3J0IHg7CisgICAgdXNob3J0IHk7Cit9CitzdHJ1Y3QgdXNob3J0MyB7CisgICAgdXNo
b3J0IHg7CisgICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7Cit9CitzdHJ1Y3QgdXNob3J0NCB7
CisgICAgdXNob3J0IHg7CisgICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7CisgICAgdXNob3J0
IHc7Cit9CitzdHJ1Y3QgdWludDIgeworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7Cit9CitzdHJ1
Y3QgdWludDMgeworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7CisgICAgdWludCB6OworfQorc3Ry
dWN0IHVpbnQ0IHsKKyAgICB1aW50IHg7CisgICAgdWludCB5OworICAgIHVpbnQgejsKKyAgICB1
aW50IHc7Cit9CitzdHJ1Y3QgY2hhcjIgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7Cit9Citz
dHJ1Y3QgY2hhcjMgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7CisgICAgY2hhciB6OworfQor
c3RydWN0IGNoYXI0IHsKKyAgICBjaGFyIHg7CisgICAgY2hhciB5OworICAgIGNoYXIgejsKKyAg
ICBjaGFyIHc7Cit9CitzdHJ1Y3Qgc2hvcnQyIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7
Cit9CitzdHJ1Y3Qgc2hvcnQzIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7CisgICAgc2hv
cnQgejsKK30KK3N0cnVjdCBzaG9ydDQgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKKyAg
ICBzaG9ydCB6OworICAgIHNob3J0IHc7Cit9CitzdHJ1Y3QgaW50MiB7CisgICAgaW50IHg7Cisg
ICAgaW50IHk7Cit9CitzdHJ1Y3QgaW50MyB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAg
aW50IHo7Cit9CitzdHJ1Y3QgaW50NCB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAgaW50
IHo7CisgICAgaW50IHc7Cit9CitzdHJ1Y3QgaGFsZjIgeworICAgIGhhbGYgeDsKKyAgICBoYWxm
IHk7Cit9CitzdHJ1Y3QgaGFsZjMgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7CisgICAgaGFs
ZiB6OworfQorc3RydWN0IGhhbGY0IHsKKyAgICBoYWxmIHg7CisgICAgaGFsZiB5OworICAgIGhh
bGYgejsKKyAgICBoYWxmIHc7Cit9CitzdHJ1Y3QgZmxvYXQyIHsKKyAgICBmbG9hdCB4OworICAg
IGZsb2F0IHk7Cit9CitzdHJ1Y3QgZmxvYXQzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7
CisgICAgZmxvYXQgejsKK30KK3N0cnVjdCBmbG9hdDQgeworICAgIGZsb2F0IHg7CisgICAgZmxv
YXQgeTsKKyAgICBmbG9hdCB6OworICAgIGZsb2F0IHc7Cit9CituYXRpdmUgdHlwZWRlZiBoYWxm
MngyOworbmF0aXZlIHR5cGVkZWYgaGFsZjJ4MzsKK25hdGl2ZSB0eXBlZGVmIGhhbGYyeDQ7Citu
YXRpdmUgdHlwZWRlZiBoYWxmM3gyOworbmF0aXZlIHR5cGVkZWYgaGFsZjN4MzsKK25hdGl2ZSB0
eXBlZGVmIGhhbGYzeDQ7CituYXRpdmUgdHlwZWRlZiBoYWxmNHgyOworbmF0aXZlIHR5cGVkZWYg
aGFsZjR4MzsKK25hdGl2ZSB0eXBlZGVmIGhhbGY0eDQ7CituYXRpdmUgdHlwZWRlZiBmbG9hdDJ4
MjsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0MngzOworbmF0aXZlIHR5cGVkZWYgZmxvYXQyeDQ7Citu
YXRpdmUgdHlwZWRlZiBmbG9hdDN4MjsKK25hdGl2ZSB0eXBlZGVmIGZsb2F0M3gzOworbmF0aXZl
IHR5cGVkZWYgZmxvYXQzeDQ7CituYXRpdmUgdHlwZWRlZiBmbG9hdDR4MjsKK25hdGl2ZSB0eXBl
ZGVmIGZsb2F0NHgzOworbmF0aXZlIHR5cGVkZWYgZmxvYXQ0eDQ7CituYXRpdmUgdHlwZWRlZiBz
YW1wbGVyOworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sMz47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXI0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhh
bGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZs
b2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVz
aG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVp
bnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxz
aG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MURBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFy
cmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0ND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJh
eTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29s
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFy
cmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNoYXI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVz
aG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8
Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGYyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8
Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXIyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQ0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxzaG9ydD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0ND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVj
aGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXI0
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hh
cjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRB
cnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRB
cnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50ND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXIzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGlu
dD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aW50
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhh
bGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2wyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNo
b3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWlu
dD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRB
cnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hh
cjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0ND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxp
bnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRB
cnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGYzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZs
b2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mz47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
M0Q8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVzaG9ydD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0ND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWlu
dDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXIz
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9y
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0Mj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUz
RDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29s
Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sND47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDQ+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUz
RDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxjaGFy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXI0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNE
PGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYzPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZs
b2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQ0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1
Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVDdWJlPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNo
b3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVDdWJlPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZUN1YmU8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hhcj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9y
dDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxpbnQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxm
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZUN1YmU8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0ND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
RGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8ZmxvYXQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkRB
cnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0
aEN1YmU8aGFsZj47CiAKK29wZXJhdG9yIHVjaGFyKHVjaGFyIHgpIHsKKyAgICByZXR1cm4geDsK
K30KK25hdGl2ZSBvcGVyYXRvciB1Y2hhcih1c2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFy
KHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVj
aGFyKHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpOworbmF0aXZlIG9wZXJhdG9y
IHVjaGFyKGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZsb2F0KTsKK25hdGl2ZSBvcGVy
YXRvciB1c2hvcnQodWNoYXIpOworb3BlcmF0b3IgdXNob3J0KHVzaG9ydCB4KSB7CisgICAgcmV0
dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KHVpbnQpOworbmF0aXZlIG9wZXJhdG9y
IHVzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoc2hvcnQpOworbmF0aXZlIG9w
ZXJhdG9yIHVzaG9ydChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChoYWxmKTsKK25hdGl2
ZSBvcGVyYXRvciB1c2hvcnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQodWNoYXIpOwor
bmF0aXZlIG9wZXJhdG9yIHVpbnQodXNob3J0KTsKK29wZXJhdG9yIHVpbnQodWludCB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdWludChjaGFyKTsKK25hdGl2ZSBvcGVy
YXRvciB1aW50KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGludCk7CituYXRpdmUgb3Bl
cmF0b3IgdWludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGZsb2F0KTsKK25hdGl2ZSBv
cGVyYXRvciBjaGFyKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVzaG9ydCk7CituYXRp
dmUgb3BlcmF0b3IgY2hhcih1aW50KTsKK29wZXJhdG9yIGNoYXIoY2hhciB4KSB7CisgICAgcmV0
dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgY2hhcihzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Ig
Y2hhcihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoaGFsZik7CituYXRpdmUgb3BlcmF0b3Ig
Y2hhcihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWNoYXIpOworbmF0aXZlIG9wZXJh
dG9yIHNob3J0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWludCk7CituYXRpdmUg
b3BlcmF0b3Igc2hvcnQoY2hhcik7CitvcGVyYXRvciBzaG9ydChzaG9ydCB4KSB7CisgICAgcmV0
dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoaW50KTsKK25hdGl2ZSBvcGVyYXRvciBz
aG9ydChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChmbG9hdCk7CituYXRpdmUgb3BlcmF0
b3IgaW50KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodXNob3J0KTsKK25hdGl2ZSBvcGVy
YXRvciBpbnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgaW50KGNoYXIpOworbmF0aXZlIG9wZXJh
dG9yIGludChzaG9ydCk7CitvcGVyYXRvciBpbnQoaW50IHgpIHsKKyAgICByZXR1cm4geDsKK30K
K25hdGl2ZSBvcGVyYXRvciBpbnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgaW50KGZsb2F0KTsK
K25hdGl2ZSBvcGVyYXRvciBoYWxmKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVzaG9y
dCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZih1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKGNo
YXIpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYo
aW50KTsKK29wZXJhdG9yIGhhbGYoaGFsZiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUg
b3BlcmF0b3IgaGFsZihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodWNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIGZsb2F0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodWludCk7
CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoc2hv
cnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQo
aGFsZik7CitvcGVyYXRvciBmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitvcGVy
YXRvciBib29sKGJvb2wgeCkgeworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9wZXJhdG9yIGlu
dChhdG9taWNfaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191aW50KTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7Citib29sIG9wZXJhdG9yJihib29sIGEsIGJv
b2wgYikKK3sKKyAgICByZXR1cm4gYSAmJiBiOworfQorYm9vbCBvcGVyYXRvcnwoYm9vbCBhLCBi
b29sIGIpCit7CisgICAgcmV0dXJuIGEgfHwgYjsKK30KK2Jvb2wgb3BlcmF0b3JeKGJvb2wgYSwg
Ym9vbCBiKQoreworICAgIGlmIChhKQorICAgICAgICByZXR1cm4gIWI7CisgICAgcmV0dXJuIGI7
Cit9Citib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQoreworICAgIHJldHVybiAhdmFsdWU7Cit9
CiBuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvciso
dWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvcisodWludDggYSwgdWludDggYikgeyByZXR1cm4g
dWludDgodWludChhKSArIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IrKGZsb2F0
LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsg
fQotdWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfQotdWlu
dDggb3BlcmF0b3IrKyh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9CiBuYXRpdmUg
aW50IG9wZXJhdG9yLShpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci0odWludCwgdWlu
dCk7Ci11aW50OCBvcGVyYXRvci0odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWlu
dChhKSAtIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LCBmbG9hdCk7
Ci1pbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWludCBv
cGVyYXRvci0tKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWludDggb3BlcmF0
b3ItLSh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUgaW50IG9wZXJh
dG9yKihpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7Ci11aW50
OCBvcGVyYXRvcioodWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSAqIHVp
bnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUg
aW50IG9wZXJhdG9yLyhpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwgaW50
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRv
cjw9KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7CituYXRpdmUg
Ym9vbCBvcGVyYXRvcj49KGludCwgaW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LCB1
aW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50IG9w
ZXJhdG9yKih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50LCB1aW50KTsK
LXVpbnQ4IG9wZXJhdG9yLyh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEp
IC8gdWludChiKSk7IH0KK25hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7CituYXRp
dmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjw9KHVp
bnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOworbmF0aXZlIGJv
b2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQs
IGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBm
bG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxv
YXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0KTsKK25hdGl2
ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShm
bG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9hdCk7CituYXRp
dmUgYm9vbCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yJihp
bnQsIGludCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsIGludCk7CiBuYXRpdmUgaW50IG9w
ZXJhdG9yXihpbnQsIGludCk7CkBAIC04OCwzMDIgKzc0NSwxMDk3IEBAIG5hdGl2ZSB1aW50IG9w
ZXJhdG9yXih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yfih1aW50KTsKIG5hdGl2
ZSB1aW50IG9wZXJhdG9yPDwodWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVp
bnQsIHVpbnQpOwotdWludDggb3BlcmF0b3ImKHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVp
bnQ4KHVpbnQoYSkgJiB1aW50KGIpKTsgfQotdWludDggb3BlcmF0b3J8KHVpbnQ4IGEsIHVpbnQ4
IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgfCB1aW50KGIpKTsgfQotdWludDggb3BlcmF0b3Je
KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgXiB1aW50KGIpKTsgfQot
dWludDggb3BlcmF0b3J+KHVpbnQ4IHZhbHVlKSB7IHJldHVybiB1aW50OCh+dWludCh2YWx1ZSkp
OyB9Ci11aW50OCBvcGVyYXRvcjw8KHVpbnQ4IGEsIHVpbnQgYikgeyByZXR1cm4gdWludDgodWlu
dChhKSA8PCAoYiAmIDcpKTsgfQotdWludDggb3BlcmF0b3I+Pih1aW50OCBhLCB1aW50IGIpIHsg
cmV0dXJuIHVpbnQ4KHVpbnQoYSkgPj4gKGIgJiA3KSk7IH0KLW5hdGl2ZSBmbG9hdCBvcGVyYXRv
ci8oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0oaW50LCBpbnQpOwotbmF0
aXZlIGJvb2wgb3BlcmF0b3I9PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I9PSh1aW50OCBh
LCB1aW50OCBiKSB7IHJldHVybiB1aW50KGEpID09IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9w
ZXJhdG9yPT0oYm9vbCwgYm9vbCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LCBmbG9h
dCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LCBpbnQpOwotbmF0aXZlIGJvb2wgb3BlcmF0
b3I8KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcjwodWludDggYSwgdWludDggYikgeyByZXR1
cm4gdWludChhKSA8IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxv
YXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShpbnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVy
YXRvcjw9KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcjw9KHVpbnQ4IGEsIHVpbnQ4IGIpIHsg
cmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0b3I8PShmbG9h
dCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGludCwgaW50KTsKLW5hdGl2ZSBib29s
IG9wZXJhdG9yPih1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I+KHVpbnQ4IGEsIHVpbnQ4IGIp
IHsgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4oZmxv
YXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPj0oaW50LCBpbnQpOwotbmF0aXZlIGJv
b2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I+PSh1aW50OCBhLCB1aW50
OCBiKSB7IHJldHVybiB1aW50KGEpID49IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJhdG9y
Pj0oZmxvYXQsIGZsb2F0KTsKLQotYm9vbCBvcGVyYXRvciYoYm9vbCBhLCBib29sIGIpCi17Ci0g
ICAgaWYgKGEpCi0gICAgICAgIHJldHVybiBiOwotICAgIHJldHVybiBmYWxzZTsKK3VjaGFyIG9w
ZXJhdG9yKyh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgKyB1
aW50KGIpKTsKIH0KLQotYm9vbCBvcGVyYXRvcnwoYm9vbCBhLCBib29sIGIpCi17Ci0gICAgaWYg
KGEpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChiKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICByZXR1cm4gZmFsc2U7Cit1Y2hhciBvcGVyYXRvci0odWNoYXIgYSwgdWNoYXIgYikg
eworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIC0gdWludChiKSk7CiB9Ci0KLWJvb2wgb3BlcmF0
b3JeKGJvb2wgYSwgYm9vbCBiKQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gIWI7Ci0g
ICAgcmV0dXJuIGI7Cit1Y2hhciBvcGVyYXRvcioodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJl
dHVybiB1Y2hhcih1aW50KGEpICogdWludChiKSk7CiB9Ci0KLWJvb2wgb3BlcmF0b3J+KGJvb2wg
dmFsdWUpCi17Ci0gICAgcmV0dXJuICF2YWx1ZTsKK3VjaGFyIG9wZXJhdG9yLyh1Y2hhciBhLCB1
Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgLyB1aW50KGIpKTsKIH0KLQotcHJv
dG9jb2wgQWRkYWJsZSB7Ci0gICAgQWRkYWJsZSBvcGVyYXRvcisoQWRkYWJsZSwgQWRkYWJsZSk7
Cit1Y2hhciBvcGVyYXRvciYodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1
aW50KGEpICYgdWludChiKSk7CiB9Ci0KLXByb3RvY29sIEVxdWF0YWJsZSB7Ci0gICAgYm9vbCBv
cGVyYXRvcj09KEVxdWF0YWJsZSwgRXF1YXRhYmxlKTsKK3VjaGFyIG9wZXJhdG9yfCh1Y2hhciBh
LCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgfCB1aW50KGIpKTsKIH0KLQot
cmVzdHJpY3RlZCBvcGVyYXRvcjxUPiBUKCkKLXsKLSAgICBUIGRlZmF1bHRWYWx1ZTsKLSAgICBy
ZXR1cm4gZGVmYXVsdFZhbHVlOwordWNoYXIgb3BlcmF0b3JeKHVjaGFyIGEsIHVjaGFyIGIpIHsK
KyAgICByZXR1cm4gdWNoYXIodWludChhKSBeIHVpbnQoYikpOwogfQotCi1yZXN0cmljdGVkIG9w
ZXJhdG9yPFQ+IFQoVCB4KQotewotICAgIHJldHVybiB4OwordWNoYXIgb3BlcmF0b3J+KHVjaGFy
IGEpIHsKKyAgICByZXR1cm4gdWNoYXIofnVpbnQoYSkpOwogfQotCi1vcGVyYXRvcjxUOkVxdWF0
YWJsZT4gYm9vbChUIHgpCi17Ci0gICAgcmV0dXJuIHggIT0gVCgpOworYm9vbCBvcGVyYXRvcj09
KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA9PSB1aW50KGIpOwogfQot
Ci1zdHJ1Y3QgdmVjMjxUPiB7Ci0gICAgVCB4OwotICAgIFQgeTsKK2Jvb2wgb3BlcmF0b3I8KHVj
aGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8IHVpbnQoYik7CiB9Ci0KLXR5
cGVkZWYgaW50MiA9IHZlYzI8aW50PjsKLXR5cGVkZWYgdWludDIgPSB2ZWMyPHVpbnQ+OwotdHlw
ZWRlZiBmbG9hdDIgPSB2ZWMyPGZsb2F0PjsKLQotb3BlcmF0b3I8VD4gdmVjMjxUPihUIHgsIFQg
eSkKLXsKLSAgICB2ZWMyPFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0
LnkgPSB5OwotICAgIHJldHVybiByZXN1bHQ7Citib29sIG9wZXJhdG9yPD0odWNoYXIgYSwgdWNo
YXIgYikgeworICAgIHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7CiB9Ci0KLWJvb2wgb3BlcmF0
b3I9PTxUOkVxdWF0YWJsZT4odmVjMjxUPiBhLCB2ZWMyPFQ+IGIpCi17Ci0gICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueTsKK2Jvb2wgb3BlcmF0b3I+KHVjaGFyIGEsIHVjaGFyIGIp
IHsKKyAgICByZXR1cm4gdWludChhKSA+IHVpbnQoYik7CiB9Ci0KLXRocmVhZCBUKiBvcGVyYXRv
ciZbXTxUPih0aHJlYWQgdmVjMjxUPiogZm9vLCB1aW50IGluZGV4KQotewotICAgIGlmIChpbmRl
eCA9PSAwKQotICAgICAgICByZXR1cm4gJmZvby0+eDsKLSAgICBpZiAoaW5kZXggPT0gMSkKLSAg
ICAgICAgcmV0dXJuICZmb28tPnk7Ci0gICAgdHJhcDsKK2Jvb2wgb3BlcmF0b3I+PSh1Y2hhciBh
LCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsKIH0KLQotc3RydWN0
IHZlYzM8VD4gewotICAgIFQgeDsKLSAgICBUIHk7Ci0gICAgVCB6OwordXNob3J0IG9wZXJhdG9y
Kyh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgKyB1aW50
KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvci0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0
dXJuIHVzaG9ydCh1aW50KGEpIC0gdWludChiKSk7Cit9Cit1c2hvcnQgb3BlcmF0b3IqKHVzaG9y
dCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAqIHVpbnQoYikpOwor
fQordXNob3J0IG9wZXJhdG9yLyh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNo
b3J0KHVpbnQoYSkgLyB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVyYXRvciYodXNob3J0IGEsIHVz
aG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICYgdWludChiKSk7Cit9Cit1c2hv
cnQgb3BlcmF0b3J8KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWlu
dChhKSB8IHVpbnQoYikpOworfQordXNob3J0IG9wZXJhdG9yXih1c2hvcnQgYSwgdXNob3J0IGIp
IHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgXiB1aW50KGIpKTsKK30KK3VzaG9ydCBvcGVy
YXRvcn4odXNob3J0IGEpIHsKKyAgICByZXR1cm4gdXNob3J0KH51aW50KGEpKTsKK30KK2Jvb2wg
b3BlcmF0b3I9PSh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA9PSB1
aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjwodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0
dXJuIHVpbnQoYSkgPCB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHVzaG9ydCBhLCB1c2hv
cnQgYikgeworICAgIHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7Cit9Citib29sIG9wZXJhdG9y
Pih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+IHVpbnQoYik7Cit9
Citib29sIG9wZXJhdG9yPj0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQo
YSkgPj0gdWludChiKTsKK30KK3VjaGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWludCBiKSB7Cisg
ICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3VzaG9ydCBvcGVyYXRv
cjw8KHVzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgPDwgKGIg
JiA2NTUzNSkpOworfQordWNoYXIgb3BlcmF0b3I+Pih1Y2hhciBhLCB1aW50IGIpIHsKKyAgICBy
ZXR1cm4gdWNoYXIodWludChhKSA+PiAoYiAmIDI1NSkpOworfQordXNob3J0IG9wZXJhdG9yPj4o
dXNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSA+PiAoYiAmIDY1
NTM1KSk7Cit9CitjaGFyIG9wZXJhdG9yKyhjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBj
aGFyKGludChhKSArIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yLShjaGFyIGEsIGNoYXIgYikg
eworICAgIHJldHVybiBjaGFyKGludChhKSAtIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yKihj
aGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAqIGludChiKSk7Cit9Citj
aGFyIG9wZXJhdG9yLyhjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAv
IGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yJihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVy
biBjaGFyKGludChhKSAmIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yfChjaGFyIGEsIGNoYXIg
YikgeworICAgIHJldHVybiBjaGFyKGludChhKSB8IGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9y
XihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSBeIGludChiKSk7Cit9
CitjaGFyIG9wZXJhdG9yfihjaGFyIGEpIHsKKyAgICByZXR1cm4gY2hhcih+aW50KGEpKTsKK30K
K2Jvb2wgb3BlcmF0b3I9PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPT0g
aW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4g
aW50KGEpID4gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KGNoYXIgYSwgY2hhciBiKSB7Cisg
ICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPChjaGFyIGEsIGNo
YXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPCBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPD0o
Y2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsKK30KK3Nob3J0
IG9wZXJhdG9yKyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAr
IGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvci0oc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJl
dHVybiBzaG9ydChpbnQoYSkgLSBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IqKHNob3J0IGEs
IHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpICogaW50KGIpKTsKK30KK3Nob3J0
IG9wZXJhdG9yLyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAv
IGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvciYoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJl
dHVybiBzaG9ydChpbnQoYSkgJiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3J8KHNob3J0IGEs
IHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIHwgaW50KGIpKTsKK30KK3Nob3J0
IG9wZXJhdG9yXihzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSBe
IGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvcn4oc2hvcnQgYSkgeworICAgIHJldHVybiBzaG9y
dCh+aW50KGEpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAg
cmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihzaG9ydCBhLCBzaG9y
dCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I+PShz
aG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7Cit9Citib29s
IG9wZXJhdG9yPChzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA8IGludChi
KTsKK30KK2Jvb2wgb3BlcmF0b3I8PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGlu
dChhKSA8PSBpbnQoYik7Cit9CitjaGFyIG9wZXJhdG9yPDwoY2hhciBhLCB1aW50IGIpIHsKKyAg
ICByZXR1cm4gY2hhcihpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9wZXJhdG9yPDwo
c2hvcnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA8PCAoYiAmIDY1NTM1
KSk7Cit9CitjaGFyIG9wZXJhdG9yPj4oY2hhciBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gY2hh
cihpbnQoYSkgPj4gKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9wZXJhdG9yPj4oc2hvcnQgYSwgdWlu
dCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA+PiAoYiAmIDY1NTM1KSk7Cit9Cit1Y2hh
ciBvcGVyYXRvcisrKHVjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK3Vj
aGFyIG9wZXJhdG9yLS0odWNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAxOworfQor
dXNob3J0IG9wZXJhdG9yKysodXNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsK
K30KK3VzaG9ydCBvcGVyYXRvci0tKHVzaG9ydCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAt
IDE7Cit9Cit1aW50IG9wZXJhdG9yKysodWludCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAr
IDE7Cit9Cit1aW50IG9wZXJhdG9yLS0odWludCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAt
IDE7Cit9CitjaGFyIG9wZXJhdG9yKysoY2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAr
IDE7Cit9CitjaGFyIG9wZXJhdG9yLS0oY2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAt
IDE7Cit9CitzaG9ydCBvcGVyYXRvcisrKHNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVl
ICsgMTsKK30KK3Nob3J0IG9wZXJhdG9yLS0oc2hvcnQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFs
dWUgLSAxOworfQoraW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVl
ICsgMTsKK30KK2ludCBvcGVyYXRvci0tKGludCB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAt
IDE7Cit9CitoYWxmIG9wZXJhdG9yKysoaGFsZiB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAr
IDE7Cit9CitoYWxmIG9wZXJhdG9yLS0oaGFsZiB2YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAt
IDE7Cit9CitmbG9hdCBvcGVyYXRvcisrKGZsb2F0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVl
ICsgMTsKK30KK2Zsb2F0IG9wZXJhdG9yLS0oZmxvYXQgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFs
dWUgLSAxOworfQoraGFsZiBvcGVyYXRvcisoaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
aGFsZihmbG9hdChhKSArIGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3ItKGhhbGYgYSwgaGFs
ZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgLSBmbG9hdChiKSk7Cit9CitoYWxmIG9w
ZXJhdG9yKihoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpICogZmxv
YXQoYikpOworfQoraGFsZiBvcGVyYXRvci8oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
aGFsZihmbG9hdChhKSAvIGZsb2F0KGIpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmIGEsIGhh
bGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA9PSBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0
b3I8KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQoYik7Cit9
Citib29sIG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkg
PD0gZmxvYXQoYik7Cit9Citib29sIG9wZXJhdG9yPChoYWxmIGEsIGhhbGYgYikgeworICAgIHJl
dHVybiBmbG9hdChhKSA8IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KGhhbGYgYSwgaGFs
ZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDw9IGZsb2F0KGIpOwogfQogCi10eXBlZGVmIGlu
dDMgPSB2ZWMzPGludD47Ci10eXBlZGVmIHVpbnQzID0gdmVjMzx1aW50PjsKLXR5cGVkZWYgZmxv
YXQzID0gdmVjMzxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzM8VD4oVCB4LCBUIHksIFQgeikK
LXsKLSAgICB2ZWMzPFQ+IHJlc3VsdDsKK29wZXJhdG9yIGJvb2wyKGJvb2wgeCwgYm9vbCB5KSB7
CisgICAgYm9vbDIgcmVzdWx0OwogICAgIHJlc3VsdC54ID0geDsKICAgICByZXN1bHQueSA9IHk7
Ci0gICAgcmVzdWx0LnogPSB6OwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+
IHZlYzM8VD4odmVjMjxUPiB2MiwgVCB6KQotewotICAgIHZlYzM8VD4gcmVzdWx0OwotICAgIHJl
c3VsdC54ID0gdjIueDsKLSAgICByZXN1bHQueSA9IHYyLnk7CitvcGVyYXRvciBib29sMyhib29s
IHgsIGJvb2wgeSwgYm9vbCB6KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CiAgICAgcmVzdWx0LnogPSB6OwogICAgIHJldHVybiByZXN1
bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzM8VD4oVCB4LCB2ZWMyPFQ+IHYyKQotewotICAgIHZl
YzM8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHYyLng7Ci0g
ICAgcmVzdWx0LnogPSB2Mi55Oworb3BlcmF0b3IgYm9vbDMoYm9vbDIgeCwgYm9vbCB5KSB7Cisg
ICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55
OworICAgIHJlc3VsdC56ID0geTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotCi1ib29sIG9wZXJh
dG9yPT08VDpFcXVhdGFibGU+KHZlYzM8VD4gYSwgdmVjMzxUPiBiKQotewotICAgIHJldHVybiBh
LnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKLX0KLQotdGhyZWFkIFQqIG9w
ZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMzPFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17Ci0gICAgaWYg
KGluZGV4ID09IDApCi0gICAgICAgIHJldHVybiAmZm9vLT54OwotICAgIGlmIChpbmRleCA9PSAx
KQotICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICBpZiAoaW5kZXggPT0gMikKLSAgICAgICAg
cmV0dXJuICZmb28tPno7Ci0gICAgdHJhcDsKLX0KLQotc3RydWN0IHZlYzQ8VD4gewotICAgIFQg
eDsKLSAgICBUIHk7Ci0gICAgVCB6OwotICAgIFQgdzsKK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwg
Ym9vbDIgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
LQotdHlwZWRlZiBpbnQ0ID0gdmVjNDxpbnQ+OwotdHlwZWRlZiB1aW50NCA9IHZlYzQ8dWludD47
Ci10eXBlZGVmIGZsb2F0NCA9IHZlYzQ8ZmxvYXQ+OwotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQg
eCwgVCB5LCBUIHosIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKK29wZXJhdG9yIGJvb2w0
KGJvb2wgeCwgYm9vbCB5LCBib29sIHosIGJvb2wgdykgeworICAgIGJvb2w0IHJlc3VsdDsKICAg
ICByZXN1bHQueCA9IHg7CiAgICAgcmVzdWx0LnkgPSB5OwogICAgIHJlc3VsdC56ID0gejsKICAg
ICByZXN1bHQudyA9IHc7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLQotb3BlcmF0b3I8VD4gdmVj
NDxUPih2ZWMyPFQ+IHYyLCBUIHosIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQueCA9IHYyLng7Ci0gICAgcmVzdWx0LnkgPSB2Mi55OwotICAgIHJlc3VsdC56ID0gejsK
LSAgICByZXN1bHQudyA9IHc7CitvcGVyYXRvciBib29sNChib29sMiB4LCBib29sIHksIGJvb2wg
eikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OwogICAgIHJldHVy
biByZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCB2ZWMyPFQ+IHYyLCBUIHcp
Ci17Ci0gICAgdmVjNDxUPiByZXN1bHQ7CitvcGVyYXRvciBib29sNChib29sIHgsIGJvb2wyIHks
IGJvb2wgeikgeworICAgIGJvb2w0IHJlc3VsdDsKICAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVz
dWx0LnkgPSB2Mi54OwotICAgIHJlc3VsdC56ID0gdjIueTsKLSAgICByZXN1bHQudyA9IHc7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6
OwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHks
IHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7CitvcGVyYXRvciBib29sNChib29s
IHgsIGJvb2wgeSwgYm9vbDIgeikgeworICAgIGJvb2w0IHJlc3VsdDsKICAgICByZXN1bHQueCA9
IHg7CiAgICAgcmVzdWx0LnkgPSB5OwotICAgIHJlc3VsdC56ID0gdjIueDsKLSAgICByZXN1bHQu
dyA9IHYyLnk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPih2ZWMyPFQ+IHYyYSwgdmVj
MjxUPiB2MmIpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2MmEueDsK
LSAgICByZXN1bHQueSA9IHYyYS55OwotICAgIHJlc3VsdC56ID0gdjJiLng7Ci0gICAgcmVzdWx0
LncgPSB2MmIueTsKK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wyIHkpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAg
cmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPih2ZWMzPFQ+IHYzLCBUIHcpCi17Ci0gICAgdmVjNDxU
PiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2My54OwotICAgIHJlc3VsdC55ID0gdjMueTsKLSAg
ICByZXN1bHQueiA9IHYzLno7CitvcGVyYXRvciBib29sNChib29sMyB4LCBib29sIHkpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7
CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBib29sNChib29sIHgsIGJvb2wzIHkpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56
ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
IG9wZXJhdG9yLmxlbmd0aChib29sMikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRv
ci5sZW5ndGgoYm9vbDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3Ro
KGJvb2w0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVyYXRvciB1Y2hhcjIodWNoYXIgeCwgdWNo
YXIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXIzKHVjaGFyIHgs
IHVjaGFyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIyIHgsIHVjaGFyIHkpIHsKKyAgICB1Y2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXIzKHVjaGFy
IHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhciB6LCB1Y2hhciB3
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJlc3VsdC56ID0gejsKICAgICByZXN1bHQudyA9IHc7CiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgsIHZlYzM8VD4gdjMpCi17Ci0gICAg
dmVjNDxUPiByZXN1bHQ7CitvcGVyYXRvciB1Y2hhcjQodWNoYXIyIHgsIHVjaGFyIHksIHVjaGFy
IHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3Vs
dC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hhciB4LCB1Y2hhcjIgeSwgdWNoYXIg
eikgeworICAgIHVjaGFyNCByZXN1bHQ7CiAgICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55
ID0gdjMueDsKLSAgICByZXN1bHQueiA9IHYzLnk7Ci0gICAgcmVzdWx0LncgPSB2My56OworICAg
IHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQotCi1ib29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZl
YzQ8VD4gYSwgdmVjNDxUPiBiKQotewotICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
LnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53Oworb3BlcmF0b3IgdWNoYXI0KHVjaGFyIHgs
IHVjaGFyIHksIHVjaGFyMiB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53
ID0gei55OworICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLXRocmVhZCBUKiBvcGVyYXRvciZbXTxU
Pih0aHJlYWQgdmVjNDxUPiogZm9vLCB1aW50IGluZGV4KQotewotICAgIGlmIChpbmRleCA9PSAw
KQotICAgICAgICByZXR1cm4gJmZvby0+eDsKLSAgICBpZiAoaW5kZXggPT0gMSkKLSAgICAgICAg
cmV0dXJuICZmb28tPnk7Ci0gICAgaWYgKGluZGV4ID09IDIpCi0gICAgICAgIHJldHVybiAmZm9v
LT56OwotICAgIGlmIChpbmRleCA9PSAzKQotICAgICAgICByZXR1cm4gJmZvby0+dzsKLSAgICB0
cmFwOworb3BlcmF0b3IgdWNoYXI0KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
LQotbmF0aXZlIHRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgVFtdLCB1aW50KTsKLW5h
dGl2ZSB0aHJlYWRncm91cCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWRncm91cCBUW10sIHVpbnQp
OwotbmF0aXZlIGRldmljZSBUKiBvcGVyYXRvciZbXTxUPihkZXZpY2UgVFtdLCB1aW50KTsKLW5h
dGl2ZSBjb25zdGFudCBUKiBvcGVyYXRvciZbXTxUPihjb25zdGFudCBUW10sIHVpbnQpOwotCi1u
YXRpdmUgdWludCBvcGVyYXRvci5sZW5ndGg8VD4odGhyZWFkIFRbXSk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvci5sZW5ndGg8VD4odGhyZWFkZ3JvdXAgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9y
Lmxlbmd0aDxUPihkZXZpY2UgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihj
b25zdGFudCBUW10pOwotCi11aW50IG9wZXJhdG9yLmxlbmd0aDxULCB1aW50IGxlbmd0aD4oVFts
ZW5ndGhdKQotewotICAgIHJldHVybiBsZW5ndGg7CitvcGVyYXRvciB1Y2hhcjQodWNoYXIzIHgs
IHVjaGFyIHkpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsK
KyAgICByZXR1cm4gcmVzdWx0OwogfQotYDsKLQotZnVuY3Rpb24gaW50VG9TdHJpbmcoeCkKLXsK
LSAgICBzd2l0Y2ggKHgpIHsKLSAgICBjYXNlIDA6Ci0gICAgICAgIHJldHVybiAieCI7Ci0gICAg
Y2FzZSAxOgotICAgICAgICByZXR1cm4gInkiOwotICAgIGNhc2UgMjoKLSAgICAgICAgcmV0dXJu
ICJ6IjsKLSAgICBjYXNlIDM6Ci0gICAgICAgIHJldHVybiAidyI7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZ2VuZXJhdGUgc3RhbmRhcmQgbGlicmFy
eS4iKTsKLSAgICB9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNoYXIzIHkpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAg
ICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQotCi0vLyBUaGVyZSBhcmUgNDgxIHN3aXp6bGUgb3BlcmF0b3JzLCBzbyB3ZSBjb21waWxl
IHRoZW0gYXMgbmF0aXZlIGZ1bmN0aW9ucwotc3RhbmRhcmRMaWJyYXJ5ICs9IFN3aXp6bGVPcC5h
bGxTd2l6emxlT3BlcmF0b3JzKCkuam9pbigiO1xuIikgKyAiOyI7Ci1jb25zb2xlLmxvZyhzdGFu
ZGFyZExpYnJhcnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3VpbnQgb3BlcmF0b3Iu
bGVuZ3RoKHVjaGFyMikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgo
dWNoYXIzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjQp
IHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVzaG9ydDIodXNob3J0IHgsIHVzaG9ydCB5
KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0Myh1c2hvcnQgeCwg
dXNob3J0IHksIHVzaG9ydCB6KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDModXNob3J0MiB4LCB1c2hvcnQgeSkgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55Owor
ICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0
Myh1c2hvcnQgeCwgdXNob3J0MiB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNo
b3J0IHosIHVzaG9ydCB3KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydDIgeCwgdXNo
b3J0IHksIHVzaG9ydCB6KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3VsdC53
ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwg
dXNob3J0MiB5LCB1c2hvcnQgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1
bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0
IHgsIHVzaG9ydCB5LCB1c2hvcnQyIHopIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJl
c3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVz
aG9ydDIgeCwgdXNob3J0MiB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVz
dWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNo
b3J0MyB4LCB1c2hvcnQgeSkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3Vs
dC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQg
eCwgdXNob3J0MyB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0g
eS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQy
KSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQzKSB7Cisg
ICAgcmV0dXJuIDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1c2hvcnQ0KSB7CisgICAgcmV0
dXJuIDQ7Cit9CitvcGVyYXRvciB1aW50Mih1aW50IHgsIHVpbnQgeSkgeworICAgIHVpbnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50Myh1aW50IHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAg
cmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50Myh1aW50
MiB4LCB1aW50IHkpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7Cisg
ICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciB1aW50Myh1aW50IHgsIHVpbnQyIHkpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0g
eS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQg
eSwgdWludCB6LCB1aW50IHcpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50MiB4LCB1aW50IHks
IHVpbnQgeikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQyIHksIHVpbnQg
eikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50IHgsIHVpbnQgeSwgdWludDIgeikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1aW50NCh1aW50MiB4LCB1aW50MiB5KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciB1aW50NCh1aW50MyB4LCB1aW50IHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7
CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1aW50
NCh1aW50IHgsIHVpbnQzIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53
ID0geS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50
MikgeworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgodWludDMpIHsKKyAg
ICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQ0KSB7CisgICAgcmV0dXJu
IDQ7Cit9CitvcGVyYXRvciBjaGFyMihjaGFyIHgsIGNoYXIgeSkgeworICAgIGNoYXIyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBjaGFyMyhjaGFyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hh
cjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVz
dWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyMyhjaGFyMiB4
LCBjaGFyIHkpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitvcGVyYXRvciBjaGFyMyhjaGFyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIgeSwg
Y2hhciB6LCBjaGFyIHcpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyMiB4LCBjaGFyIHksIGNo
YXIgeikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIyIHksIGNoYXIgeikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChjaGFyIHgsIGNoYXIgeSwgY2hhcjIgeikgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBjaGFyNChjaGFyMiB4LCBjaGFyMiB5KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56
ID0geS54OworICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBjaGFyNChjaGFyMyB4LCBjaGFyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7Cisg
ICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBjaGFyNChj
aGFyIHgsIGNoYXIzIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0g
eS56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMikg
eworICAgIHJldHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoY2hhcjMpIHsKKyAgICBy
ZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXI0KSB7CisgICAgcmV0dXJuIDQ7
Cit9CitvcGVyYXRvciBzaG9ydDIoc2hvcnQgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MiByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3Igc2hvcnQzKHNob3J0IHgsIHNob3J0IHksIHNob3J0IHopIHsKKyAg
ICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7Cisg
ICAgcmVzdWx0LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDMo
c2hvcnQyIHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQzKHNob3J0IHgsIHNob3J0MiB5KSB7CisgICAgc2hv
cnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAg
cmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChz
aG9ydCB4LCBzaG9ydCB5LCBzaG9ydCB6LCBzaG9ydCB3KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsK
KyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0
NChzaG9ydDIgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0
KHNob3J0IHgsIHNob3J0MiB5LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7Cisg
ICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQo
c2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQyIHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAg
cmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChz
aG9ydDIgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3Vs
dC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQz
IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54Owor
ICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0g
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0
MyB5KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHNob3J0MikgeworICAgIHJl
dHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQzKSB7CisgICAgcmV0dXJuIDM7
Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29w
ZXJhdG9yIGludDIoaW50IHgsIGludCB5KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgaW50MyhpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDMoaW50MiB4LCBpbnQgeSkgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50MyhpbnQgeCwg
aW50MiB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBpbnQ0KGludCB4LCBpbnQgeSwgaW50IHosIGludCB3KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9
IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBp
bnQ0KGludDIgeCwgaW50IHksIGludCB6KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJl
c3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwg
aW50MiB5LCBpbnQgeikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGludCB5LCBpbnQy
IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJlc3VsdC56ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludDIgeCwgaW50MiB5KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGludDQoaW50MyB4LCBpbnQgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56Owor
ICAgIHJlc3VsdC53ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChp
bnQgeCwgaW50MyB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAg
IHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQyKSB7Cisg
ICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQzKSB7CisgICAgcmV0dXJu
IDM7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9Citv
cGVyYXRvciBoYWxmMihoYWxmIHgsIGhhbGYgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBoYWxmMyhoYWxmIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmMyhoYWxmMiB4LCBoYWxmIHkp
IHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRv
ciBoYWxmMyhoYWxmIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYgeSwgaGFsZiB6LCBo
YWxmIHcpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmVzdWx0LncgPSB3OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmMiB4LCBoYWxmIHksIGhhbGYgeikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgu
eTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYyIHksIGhhbGYgeikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAg
cmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhhbGYgeSwgaGFsZjIgeikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56
ID0gei54OworICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVy
YXRvciBoYWxmNChoYWxmMiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54Owor
ICAgIHJlc3VsdC53ID0geS55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxm
NChoYWxmMyB4LCBoYWxmIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0
LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBoYWxmNChoYWxmIHgsIGhh
bGYzIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChoYWxmMikgeworICAgIHJl
dHVybiAyOworfQordWludCBvcGVyYXRvci5sZW5ndGgoaGFsZjMpIHsKKyAgICByZXR1cm4gMzsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGY0KSB7CisgICAgcmV0dXJuIDQ7Cit9CitvcGVy
YXRvciBmbG9hdDIoZmxvYXQgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
b3BlcmF0b3IgZmxvYXQzKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0
LnogPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxvYXQyIHgs
IGZsb2F0IHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgZmxvYXQzKGZsb2F0IHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0Lnog
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBm
bG9hdCB5LCBmbG9hdCB6LCBmbG9hdCB3KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1
bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDIg
eCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJlc3Vs
dC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgs
IGZsb2F0MiB5LCBmbG9hdCB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0
LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQyIHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0Lncg
PSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDIgeCwg
ZmxvYXQyIHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geS54OworICAgIHJlc3VsdC53ID0geS55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQzIHgsIGZsb2F0
IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3Vs
dC55ID0geC55OworICAgIHJlc3VsdC56ID0geC56OworICAgIHJlc3VsdC53ID0geTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0MyB5KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZsb2F0MikgeworICAgIHJldHVybiAyOwor
fQordWludCBvcGVyYXRvci5sZW5ndGgoZmxvYXQzKSB7CisgICAgcmV0dXJuIDM7Cit9Cit1aW50
IG9wZXJhdG9yLmxlbmd0aChmbG9hdDQpIHsKKyAgICByZXR1cm4gNDsKK30KK2Jvb2wgb3BlcmF0
b3I9PShib29sMiBhLCBib29sMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShib29sMyBhLCBib29sMyBiKSB7CisgICAgcmV0dXJu
IGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRv
cj09KGJvb2w0IGEsIGJvb2w0IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0g
Yi55ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK30KK2A7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKaW5kZXggYzk0NzlhMjg1YmEw
ZTEzNTM1ZGVhMzdmN2ZjMWE2M2JjNzFjZjMxNi4uM2I4NDg4OGE3MDU1NzYwZDYwZWE2ODMyMWM1
NDM4MWQ2YmY0NDc2OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhdGVtZW50Q2xvbmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YXRlbWVudENsb25lci5qcwpAQCAtMjcsMTEgKzI3LDkgQEAKIGNsYXNzIFN0YXRlbWVudENsb25l
ciBleHRlbmRzIFJld3JpdGVyIHsKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAg
ICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJh
bWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSk7CiAgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgRnVuY0RlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCiAgICAg
ICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICB0eXBlUGFy
YW1ldGVycywKICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBh
cmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmJvZHkudmlzaXQodGhpcyks
CiAgICAgICAgICAgICBub2RlLmlzQ2FzdCwgbm9kZS5zaGFkZXJUeXBlKTsKQEAgLTQ0LDcgKzQy
LDYgQEAgY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IE5hdGl2ZUZ1bmMoCiAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9k
ZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAotICAgICAg
ICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1l
dGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW1l
dGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmlzQ2FzdCwg
bm9kZS5zaGFkZXJUeXBlKTsKICAgICAgICAgcmVzdWx0LmlzUmVzdHJpY3RlZCA9IG5vZGUuaXNS
ZXN0cmljdGVkOwpAQCAtNTQsNTIgKzUxLDI0IEBAIGNsYXNzIFN0YXRlbWVudENsb25lciBleHRl
bmRzIFJld3JpdGVyIHsKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBuZXcgTmF0aXZlVHlwZSgKLSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5h
bWUsIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRl
ci52aXNpdCh0aGlzKSkpOworICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUuYmFzZU5hbWUs
IG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKSkpOwogICAgIH0KICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBuZXcgVHlwZURlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVy
ID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS50eXBlLnZp
c2l0KHRoaXMpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAg
ewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUoCi0gICAgICAgICAgICBub2Rl
Lm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAo
dHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKICAgICAg
ICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCiAgICAgICAgICAgICByZXN1bHQuYWRk
KGZpZWxkLnZpc2l0KHRoaXMpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAg
Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICBy
ZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwg
bm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbERl
Y2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xEZWNsKG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2Rl
LmV4dGVuZHMpCi0gICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwcm90b2NvbC52aXNpdCh0
aGlzKSk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVyZXMpCi0g
ICAgICAgICAgICByZXN1bHQuYWRkKHNpZ25hdHVyZS52aXNpdCh0aGlzKSk7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUs
IE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwgdGhpcykpOwotICAgIH0KLSAgICAKLSAgICB2aXNp
dFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29sUmVm
KG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEJvb2xMaXRl
cmFsKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IEJvb2xMaXRlcmFsKG5vZGUub3Jp
Z2luLCBub2RlLnZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCmluZGV4IDRmOThjNTczYTFhMzgyMzdlMTY0NTBhZTEw
Yjg2Y2IyZTYxZDEyMzAuLjc0NDFkZWVlZDQzZDA2MmRiMTMwMzY3NjQ5MGYzNjhjZWI2ZDgzZDgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExheW91dEJ1
aWxkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0
QnVpbGRlci5qcwpAQCAtMzksOCArMzksNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4
dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBpZiAobm9kZS5zaXplICE9IG51bGwpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChub2RlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0
aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRvIGxheW91dCBmb3IgZ2Vu
ZXJpYyB0eXBlOiAiICsgbm9kZSk7CiAgICAgICAgIGxldCBvbGRPZmZzZXQgPSB0aGlzLl9vZmZz
ZXQ7CiAgICAgICAgIHRoaXMuX29mZnNldCA9IDA7CiAgICAgICAgIHN1cGVyLnZpc2l0U3RydWN0
VHlwZShub2RlKTsKQEAgLTYwLDEyICs1OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIg
ZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fb2Zmc2V0ICs9IHNpemU7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUpCi0gICAgewotICAgICAgICBz
dXBlci52aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKTsKLSAgICAgICAgbm9kZS5mdW5jLmRp
ZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxlbWVudGF0aW9uRGF0
YSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAg
c3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwpAQCAtNzYsMTMgKzY4LDYgQEAgY2xhc3MgU3RydWN0
TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgZm9yIChsZXQg
YXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFy
Z3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxU
eXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7
Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50
cykKLSAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50
aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLm5hdGl2
ZUZ1bmNJbnN0YW5jZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXN1bHRUeXBl
LCB0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9TdHJ1Y3RUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlw
ZS5qcwppbmRleCBmOWQ4YzdkYTQ4NTgzMjE2MWU1NWQyMmE0Mzg3NjI5OTMzN2NiOTM2Li4zOTQ3
ZmRiYWMwNzAwMGRlODBmZmY2NWZkNjZjNmUwMDU4YTI3ZWMxIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKQEAgLTI1LDEyICsyNSwxMSBAQAogInVzZSBz
dHJpY3QiOwogCiBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBv
cmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFy
YW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9maWVsZHMgPSBuZXcgTWFw
KCk7CiAgICAgfQogICAgIApAQCAtNDQsNyArNDMsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVu
ZHMgVHlwZSB7CiAgICAgCiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAg
ICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCB0eXBlUGFy
YW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgCiAgICAgZ2V0
IGZpZWxkTmFtZXMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMua2V5cygpOyB9CiAgICAgZmllbGRC
eU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmdldChuYW1lKTsgfQpAQCAtNTgsMzIg
KzU2LDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1lbnRzID0gbnVs
bCkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsOwotICAgICAgICBsZXQg
dHlwZVBhcmFtZXRlcnMgPSB0aGlzLnR5cGVQYXJhbWV0ZXJzOwotICAgICAgICAKLSAgICAgICAg
aWYgKHR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1lbnRzLmxlbmd0
aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBudW1iZXIgb2Yg
dHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHRoaXMudHlwZVBhcmFtZXRlcnMs
IHR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBbXTsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRlcyA9IG5ldyBJ
bnN0YW50aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RU
eXBlKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgZm9y
IChsZXQgZmllbGQgb2YgdGhpcy5maWVsZHMpIHsKLSAgICAgICAgICAgIGxldCBuZXdGaWVsZCA9
IGZpZWxkOwotICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbikKLSAgICAgICAgICAgICAgICBu
ZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBuZXdG
aWVsZCA9IG5ld0ZpZWxkLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAgICAgICAg
ICByZXN1bHQuYWRkKG5ld0ZpZWxkKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVy
LCBvZmZzZXQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwpCkBAIC05NCw2
ICs2Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAKICAgICB0b1N0
cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5uYW1lICsgIjwi
ICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IHsgIiArIEFycmF5LmZyb20odGhpcy5maWVsZHMp
LmpvaW4oIjsgIikgKyAiOyB9IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QgIiArIHRoaXMubmFt
ZSArICIgeyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSArICI7IH0iOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0
aXR1dGlvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0aXR1dGlvbi5q
cwppbmRleCA2YTIyM2Y2Nzk0YTg1NmM2NDMwOGRmNDBhYjkxOGFjYTIwODZmYjI5Li40YWNkZmZj
ZWNjNTYxYTIzMzQyMDMzZTFiOGRkMzFiYWUzMzU2NmI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpzCkBAIC00MCwxMiArNDAsOCBAQCBjbGFzcyBT
dWJzdGl0dXRpb24gZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAg
ICAgewogICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSB0aGlzLl9tYXAuZ2V0KG5vZGUudHlwZSk7
Ci0gICAgICAgIGlmIChyZXBsYWNlbWVudCkgewotICAgICAgICAgICAgaWYgKG5vZGUudHlwZUFy
Z3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVj
dGVkIHR5cGUgYXJndW1lbnRzIG9uIHR5cGUgdmFyaWFibGUiKTsKLSAgICAgICAgICAgIGxldCBy
ZXN1bHQgPSByZXBsYWNlbWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9CisgICAgICAgIGlmIChyZXBsYWNlbWVudCkKKyAg
ICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CiAg
ICAgICAgIAogICAgICAgICBsZXQgcmVzdWx0ID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcwppbmRleCA1YWYyYmRmOTNhODA1
ZmMwOGMyOWYxZWEwNTEwY2UyOWUyODBhNTZmLi4xN2I2MTg0OGFiNWQ4YmM5MmE3NDU5ZGU4ZDY0
MDMxNDQwMDE3OWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcwpAQCAtMzUsMzEgKzM1LDMxIEBAIGZ1bmN0
aW9uIHN5bnRoZXNpemVFbnVtRnVuY3Rpb25zKHByb2dyYW0pCiAgICAgICAgIGxldCBzaGFkZXJU
eXBlOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAg
ICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvcj09IiwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sICJib29sIiwgW10pLCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9
PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIpLAogICAgICAgICAgICAgWwotICAg
ICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlw
ZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpLAotICAgICAgICAgICAgICAgIG5ldyBG
dW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwg
dHlwZS5uYW1lLCBbXSkpCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5v
cmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKSwKKyAgICAg
ICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVS
ZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAg
aXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PiBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0Lmxv
YWRWYWx1ZSgpKTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgIAog
ICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0eXBlLm9y
aWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIo
KSksIFtdLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxs
LCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpXSwKKyAgICAgICAgICAg
IHR5cGUub3JpZ2luLCAib3BlcmF0b3IudmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBS
ZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwg
bnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAg
IGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwog
ICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAg
ICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcg
UmV3cml0ZXIoKSksIFtdLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3Jp
Z2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpXSwKKyAg
ICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5cGUudmlz
aXQobmV3IFJld3JpdGVyKCkpLAorICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUu
b3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSldLAogICAg
ICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZl
RnVuYyk7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0g
ICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCBuZXcgVHlwZVJlZih0eXBl
Lm9yaWdpbiwgdHlwZS5uYW1lLCBbXSksIFtdLAorICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJv
cGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSksCiAgICAg
ICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIHR5cGUuYmFzZVR5
cGUudmlzaXQobmV3IFJld3JpdGVyKCkpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5
cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZh
bHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKaW5kZXggZjc4MTZmMmIyNTJlOWJhNGRhOWVjODRkZWY2
MTFjNTVlNGJmZTNhOS4uMGFhNzU2MGVhNTNmZWFiYzk3NzlkMjA4YmM0YWRlNjliMTljODg0MiAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVj
dEFjY2Vzc29ycy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVz
aXplU3RydWN0QWNjZXNzb3JzLmpzCkBAIC0zMSwyOCArMzEsOCBAQCBmdW5jdGlvbiBzeW50aGVz
aXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgCiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHR5cGUuZmllbGRzKSB7Ci0gICAgICAgICAg
ICBmdW5jdGlvbiBjcmVhdGVUeXBlUGFyYW1ldGVycygpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHR5cGUudHlwZVBhcmFtZXRlcnMubWFwKAotICAgICAgICAgICAgICAg
ICAgICB0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQobmV3IFR5cGVQYXJhbWV0
ZXJSZXdyaXRlcigpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg
IGZ1bmN0aW9uIGNyZWF0ZVR5cGVBcmd1bWVudHMoKQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFy
YW1ldGVyLnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIHNldHVwSW1wbGVtZW50YXRpb25EYXRhKG5hdGl2
ZUZ1bmMsIGltcGxlbWVudGF0aW9uKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIG5h
dGl2ZUZ1bmMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbiA9IHN1YnN0aXR1dGlvbiA9PiB7Ci0g
ICAgICAgICAgICAgICAgICAgIGxldCBuZXdUeXBlID0gdHlwZS5pbnN0YW50aWF0ZShuYXRpdmVG
dW5jLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGxldCBzdWJzdGl0dXRlID0gc3Vic3RpdHV0aW9uLm1hcC5nZXQodHlwZVBhcmFt
ZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGUpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHN1YnN0aXR1dGUgZm9y
IHR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBzdWJzdGl0dXRlOwotICAgICAgICAgICAgICAgICAgICB9KSk7Ci0gICAgICAg
ICAgICAgICAgICAgIHJldHVybiB7dHlwZTogbmV3VHlwZSwgZmllbGROYW1lOiBmaWVsZC5uYW1l
fTsKLSAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMudmlzaXRJ
bXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9PiB7CiAg
ICAgICAgICAgICAgICAgICAgIC8vIFZpc2l0aW5nIHRoZSB0eXBlIGZpcnN0IGVuc3VyZXMgdGhh
dCB0aGUgc3RydWN0IGxheW91dCBidWlsZGVyIGZpZ3VyZXMgb3V0IHRoZSBmaWVsZCdzCiAgICAg
ICAgICAgICAgICAgICAgIC8vIG9mZnNldC4KQEAgLTg5LDIzICs2OSwyMSBAQCBmdW5jdGlvbiBz
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGZ1bmN0aW9uIGNyZWF0ZUZpZWxkVHlwZSgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZpZWxkLnR5cGUudmlzaXQobmV3IFN1YnN0aXR1dGlvbih0eXBlLnR5cGVQ
YXJhbWV0ZXJzLCB0eXBlUGFyYW1ldGVycykpOworICAgICAgICAgICAgICAgIHJldHVybiBmaWVs
ZC50eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IAogICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZVJlZigpCiAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSwgY3JlYXRlVHlw
ZUFyZ3VtZW50cygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0YW50aWF0
ZSh0eXBlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbGV0IGlz
Q2FzdCA9IGZhbHNlOwogICAgICAgICAgICAgbGV0IHNoYWRlclR5cGU7Ci0gICAgICAgICAgICBs
ZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgICAgICBsZXQgbmF0aXZlRnVuYzsKIAogICAgICAg
ICAgICAgLy8gVGhlIGdldHRlcjogb3BlcmF0b3IuZmllbGQKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2ZUZ1bmMg
PSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksIHR5cGVQYXJhbWV0ZXJzLAorICAg
ICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lLCBjcmVh
dGVGaWVsZFR5cGUoKSwKICAgICAgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQu
b3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpXSwgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAg
ICAgICAgICAgIHNldHVwSW1wbGVtZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFzZV0sIG9m
ZnNldCwgc3RydWN0U2l6ZSwgZmllbGRTaXplKSA9PiB7CiAgICAgICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGZpZWxkU2l6ZSksIDApOwpAQCAtMTE1LDkgKzkz
LDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAg
ICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAg
IC8vIFRoZSBzZXR0ZXI6IG9wZXJhdG9yLmZpZWxkPQotICAgICAgICAgICAgdHlwZVBhcmFtZXRl
cnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgbmF0aXZlRnVuYyA9IG5l
dyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIg
KyBmaWVsZC5uYW1lICsgIj0iLCBjcmVhdGVUeXBlUmVmKCksIHR5cGVQYXJhbWV0ZXJzLAorICAg
ICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1lICsgIj0i
LCBjcmVhdGVUeXBlUmVmKCksCiAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgICAg
ICBuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZVR5cGVSZWYoKSks
CiAgICAgICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVs
bCwgY3JlYXRlRmllbGRUeXBlKCkpCkBAIC0xMzQsMTAgKzExMSw4IEBAIGZ1bmN0aW9uIHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIC8vIFRoZSBhbmRlcjog
b3BlcmF0b3ImLmZpZWxkCiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cEFuZGVyKGFkZHJlc3NT
cGFjZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNy
ZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBO
YXRpdmVGdW5jKAogICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRvciYu
IiArIGZpZWxkLm5hbWUsIG5ldyBQdHJUeXBlKGZpZWxkLm9yaWdpbiwgYWRkcmVzc1NwYWNlLCBj
cmVhdGVGaWVsZFR5cGUoKSksCi0gICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzLAog
ICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sIG51bGws
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKaW5kZXggYTY0MWQzMDQ2NDkz
ZGFiYzJkNzQ1ZTdkMGVjOTZkMGJkZDQ0MWJiYy4uN2FkNGFkN2I0NTA1NjVlNGM1NmRiNTkwYTYy
MDlmOGU3MTJlMmQwYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApA
QCAtMzYsNyArMzYsNiBAQAogPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDb25zdGV4cHJGb2xkZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTU1LDcg
KzU0LDYgQEAKIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmll
cy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC02Myw3ICs2MSw2IEBA
CiA8c2NyaXB0IHNyYz0iRm9yTG9vcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuYy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iRnVuY0luc3RhbnRpYXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY1Bh
cmFtZXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY3Rpb25MaWtlQmxvY2suanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgpA
QCAtNzMsNyArNzAsNiBAQAogPHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Iklu
bGluZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludHJp
bnNpY3MuanMiPjwvc2NyaXB0PgpAQCAtOTAsOSArODYsNyBAQAogPHNjcmlwdCBzcmM9Ik5hbWVG
aW5kZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
TmF0aXZlRnVuY0luc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlSW5zdGFuY2UuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
dWxsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0xMDMsMTAgKzk3LDYgQEAKIDxzY3JpcHQgc3JjPSJQ
cm9wZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3Zl
ZC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IlByb3RvY29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9j
b2xGdW5jRGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJl
Y3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjEsNyBAQAogPHNjcmlw
dCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlh
YmxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxU
eXBlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4
IDMyMmEwYTcxNzg1MGQ3MzI5MDg0OGU5M2JmOTViZDNhMjQyNDFjNjYuLjEyNDkwNmNlMmM1YTZk
NTA2MDYyY2E0YjQ5YjA2ZTRhYTkzMzMyYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Rlc3QuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
VGVzdC5qcwpAQCAtMTg3LDcgKzE4Nyw3IEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rp
b24oKSB7CiAgICAgICAgIHJ1bnMgb3ZlciBtdWx0aXBsZSBsaW5lcyAqLwogICAgICAgICBib29s
IGZvbygpIHsgcmV0dXJuIHRydWU7IH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUpOwogCiAg
ICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYApAQCAtMjAwLDkyICsyMDAsOTIg
QEAgdGVzdHMuY29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKIAogdGVzdHMubGl0ZXJhbEJv
b2wgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oKSB7
IHJldHVybiB0cnVlOyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIH0KIAogdGVzdHMuaWRlbnRp
dHlCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9v
KGJvb2wgeCkgeyByZXR1cm4geDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuaW50U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KCJpbnQgZm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhp
bnQgeCwgaW50IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgNyldKSwgLTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAtMik7CiAgICAgcHJv
Z3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgLTUpXSksIC0zNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQg
eCwgaW50IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgMildKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgLTIpXSksIC0zKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTIpXSksIC0zKTsKIH0KIAogdGVz
dHMudWludFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAo
InVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCA3KV0pLCA0Mjk0OTY3Mjk0KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1
aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWlu
dCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCAyKV0pLCAzKTsKIH0KIAogdGVzdHMudWludDhTaW1wbGVNYXRoID0g
ZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4
LCB1aW50OCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28o
dWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwg
NSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBt
YWtlVWludDgocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNSksIG1ha2VVaW50
OChwcm9ncmFtLCA3KV0pLCAyNTQpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1
aW50OCB4LCB1aW50OCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50
OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDIpXSksIDMpOwogfQogCiB0ZXN0cy5lcXVhbGl0eSA9
IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50IHgs
IHVpbnQgeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VV
aW50KHByb2dyYW0sIDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludDggeCwgdWlu
dDggeSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VV
aW50OChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VV
aW50OChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgo
cHJvZ3JhbSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9n
cmFtLCA3KV0pLCB0cnVlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCwg
aW50IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHBy
b2dyYW0sIDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUp
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVl
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgsIGJvb2wgeSkgeyByZXR1
cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwg
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubG9naWNhbE5l
Z2F0aW9uID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZv
byhib29sIHgpIHsgcmV0dXJuICF4OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwogfQogCiB0
ZXN0cy5ub3RFcXVhbGl0eSA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KCJib29sIGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBt
YWtlVWludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9v
bCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KCJib29sIGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHBy
b2dyYW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29s
IHgsIGJvb2wgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0K
IAogdGVzdHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTI5OCwxMyArMjk4
LDEzIEBAIHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5jdGlvbigpCiB0ZXN0cy5nZW5l
cmFsTmVnYXRpb24gPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJv
b2wgZm9vKGludCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMuYWRkMSA9IGZ1
bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4KSB7IHJl
dHVybiB4ICsgMTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0MildKSwgNDMpOwogfQogCiB0ZXN0cy5zaW1wbGVHZW5lcmljID0gZnVuY3Rpb24oKSB7CkBA
IC0zMTIsNyArMzEyLDcgQEAgdGVzdHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewogICAg
ICAgICBUIGlkPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgZm9vKGludCB4KSB7
IHJldHVybiBpZCh4KSArIDE7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMubmFtZVJlc29sdXRpb25GYWls
dXJlID0gZnVuY3Rpb24oKQpAQCAtMzMxLDcgKzMzMSw3IEBAIHRlc3RzLnNpbXBsZVZhcmlhYmxl
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIp
OwogfQogCiB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQpAQCAtMzQ0LDcgKzM0
NCw3IEBAIHRlc3RzLnNpbXBsZUFzc2lnbm1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSks
IDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBsZURlZmF1bHQg
PSBmdW5jdGlvbigpCkBAIC0zNTYsNyArMzU2LDcgQEAgdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCkBA
IC0zNjksNyArMzY5LDcgQEAgdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAg
ICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQo
MCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmlj
ZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEz
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtU
eXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dy
YW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAog
dGVzdHMuZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKQEAgLTM4Miw3ICszODIsNyBAQCB0
ZXN0cy5kZXJlZmVyZW5jZVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZm
ZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0
ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0
cihidWZmZXIsIDApKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKICAgICBpZiAoYnVmZmVy
LmdldCgwKSAhPSA1MikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBidWZmZXIg
dG8gY29udGFpbiA1MiBidXQgaXQgY29udGFpbnM6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KQEAg
LTM5Niw3ICszOTYsNyBAQCB0ZXN0cy5zaW1wbGVNYWtlUHRyID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuICZ4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0
cikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVy
OiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1
YWxzKHByb2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBAIC00MTgsNyArNDE4LDcgQEAgdGVzdHMu
dGhyZWFkQXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJh
eVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCBy
ZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcg
QXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBj
aGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDMyLDcgKzQzMiw3IEBAIHRl
c3RzLnRocmVhZEFycmF5TG9hZEludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAg
bGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAg
IGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1
ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0u
aW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkp
XSk7CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVk
VmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9n
cmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCks
IDEpKV0pOwogICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQogCkBAIC00NDYs
NyArNDQ2LDcgQEAgdGVzdHMuZGV2aWNlQXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwog
ICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsK
LSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVk
VmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9n
cmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCks
IDEpKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtU
eXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIs
IDApLCAxKSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAt
NDYzLDEwICs0NjMsMTAgQEAgdGVzdHMudGhyZWFkQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkKICAg
ICBsZXQgYXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlw
ZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAg
ICAgICAgIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2
NSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUlu
dChwcm9ncmFtLCA2NSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2
NSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwog
ICAgIGlmIChidWZmZXIuZ2V0KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIu
Z2V0KDApKTsKIH0KQEAgLTQ4NCwxMCArNDg0LDEwIEBAIHRlc3RzLmRldmljZUFycmF5U3RvcmUg
PSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAg
IG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCks
IDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1h
a2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
YXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkg
IT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1
ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7
CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJv
Z3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0x
MTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC01MDUsMzIgKzUwNSwxNCBAQCB0ZXN0cy5k
ZXZpY2VBcnJheVN0b3JlSW50TGl0ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYXJyYXlSZWYg
PSBUeXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAgIG5ldyBFQXJy
YXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKKyAgICBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSld
KTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIgKyBidWZmZXIu
Z2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYs
IG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlmIChidWZmZXIu
Z2V0KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3Jl
ZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KIAot
dGVzdHMuc2ltcGxlUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlBZGRh
YmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAg
VCBhZGQ8VDpNeUFkZGFibGU+KFQgYSwgVCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1
cm4gYSArIGI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIGFkZCh4LCA3Myk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA0NSldKSwgNDUgKyA3Myk7Ci19Ci0KIHRlc3RzLnR5cGVNaXNtYXRjaFJldHVy
biA9IGZ1bmN0aW9uKCkKIHsKICAgICBjaGVja0ZhaWwoCkBAIC02NjYsNyArNjQ4LDcgQEAgdGVz
dHMuc2ltcGxlU3RydWN0ID0gZnVuY3Rpb24oKQogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigyKTsKICAgICBidWZmZXIuc2V0KDAsIDYyKTsKICAgICBidWZmZXIuc2V0KDEsIDI0KTsKLSAg
ICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW25ldyBUeXBl
ZFZhbHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CisgICAgbGV0IHJlc3Vs
dCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5
cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMo
c3RydWN0VHlwZSkpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6
ICIgKyByZXN1bHQudHlwZSk7CiAgICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7CkBAIC02
NzcsMzQgKzY1OSw2IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIgKyB4
ICsgIikiKTsKIH0KIAotdGVzdHMuZ2VuZXJpY1N0cnVjdEluc3RhbmNlID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0g
ICAgICAgICAgICBUIHg7Ci0gICAgICAgICAgICBUIHk7Ci0gICAgICAgIH0KLSAgICAgICAgRm9v
PGludD4gZm9vKEZvbzxpbnQ+IGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vPGludD4g
cmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LnggPSBmb28ueTsKLSAgICAgICAgICAgIHJlc3Vs
dC55ID0gZm9vLng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgbGV0IHN0cnVjdFR5cGUgPSBUeXBlUmVmLmluc3RhbnRpYXRlKHByb2dyYW0udHlw
ZXMuZ2V0KCJGb28iKSwgW3Byb2dyYW0uaW50cmluc2ljcy5pbnQzMl0pOwotICAgIGxldCBidWZm
ZXIgPSBuZXcgRUJ1ZmZlcigyKTsKLSAgICBidWZmZXIuc2V0KDAsIDYyKTsKLSAgICBidWZmZXIu
c2V0KDEsIDI0KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7
Ci0gICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7Ci0gICAgbGV0IHkgPSByZXN1bHQuZVB0
ci5nZXQoMSk7Ci0gICAgaWYgKHggIT0gMjQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3Jv
bmcgcmVzdWx0IGZvciB4OiAiICsgeCArICIgKHkgPSAiICsgeSArICIpIik7Ci0gICAgaWYgKHkg
IT0gNjIpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsg
eSArICIgKHggKyAiICsgeCArICIpIik7Ci19Ci0KIHRlc3RzLmRvdWJsZUdlbmVyaWNDYWxsc0Rv
dWJsZUdlbmVyaWMgPSBmdW5jdGlvbigpCiB7CiAgICAgZG9QcmVwKGAKQEAgLTc0Nyw3ICs3MDEs
NyBAQCB0ZXN0cy5yZXR1cm5OdWxsID0gZnVuY3Rpb24oKQogICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKICAgICAgICAgdGhyZWFkIGludCogZm9vKCkgeyByZXR1cm4gbnVsbDsgfQogICAgIGAp
OwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7
CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAg
IGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJu
IHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3Vs
dC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAt
NzY2LDcgKzcyMCw3IEBAIHRlc3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGwgPSBmdW5jdGlvbigp
CiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1Ry
YXBFcnJvcik7CiB9CiAKQEAgLTc4MCw3ICs3MzQsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6
ZWROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAg
ICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkg
PT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03OTcsNyArNzUxLDcgQEAgdGVz
dHMucGFzc051bGxUb1B0ck1vbm9tb3JwaGljID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAg
YCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJhciIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW10pLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBA
IC04NTcsNyArODExLDcgQEAgdGVzdHMucmV0dXJuTnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgdGhyZWFkIGludFtdIGZvbygpIHsg
cmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzQXJyYXlSZWYpCiAgICAg
ICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGFuIGFycmF5IHJlZmVyZW5j
ZTogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVx
dWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtODc2LDcgKzgzMCw3IEBAIHRlc3Rz
LmRlcmVmZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQog
ICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0K
IApAQCAtODkwLDcgKzg0NCw3IEBAIHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGxBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUg
aW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTA0LDcgKzg1OCw3IEBAIHRlc3RzLmRl
ZmF1bHRJbml0aWFsaXplZE51bGxBcnJheVJlZkludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAg
ICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJv
cik7CiB9CiAKQEAgLTkyMSw3ICs4NzUsNyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBo
aWNBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFp
bCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAor
ICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTQ0LDEzICs4OTgsMTMg
QEAgdGVzdHMucGFzc051bGxUb1B0clBvbHltb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB0
ZXN0cy5yZXR1cm5JbnRMaXRlcmFsVWludCA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludCBmb28oKSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVy
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAg
IGNoZWNrTnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0
Mik7CiB9CiAKIHRlc3RzLnJldHVybkludExpdGVyYWxGbG9hdCA9IGZ1bmN0aW9uKCkKIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiZmxvYXQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsKLSAg
ICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5iYWRJbnRMaXRlcmFsRm9ySW50ID0gZnVuY3Rp
b24oKQpAQCAtOTg4LDcgKzk0Miw3IEBAIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbCA9IGZ1bmN0
aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVm
ZmVyLnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAw
KSldKSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNl
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMp
OwogfQogCiB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9uKCkKQEAg
LTEwMDUsNyArOTU5LDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHkgPSBmdW5j
dGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1
ZmZlci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwg
MCkpXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmlj
ZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEz
KTsKIH0KIAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHlSZXZlcnNlID0gZnVuY3Rp
b24oKQpAQCAtMTAyMiw2NSArOTc2LDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBv
bHlSZXZlcnNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1
ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7Ci19Ci0KLXRlc3RzLm51bGxUeXBlVmFyaWFibGVV
bmlmeSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgbGVmdCA9IG5ldyBOdWxsVHlwZShleHRlcm5h
bE9yaWdpbik7Ci0gICAgbGV0IHJpZ2h0ID0gbmV3IFR5cGVWYXJpYWJsZShleHRlcm5hbE9yaWdp
biwgIlQiLCBudWxsKTsKLSAgICBpZiAobGVmdC5lcXVhbHMocmlnaHQpKQotICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFu
ZCAiICsgcmlnaHQpOwotICAgIGlmIChyaWdodC5lcXVhbHMobGVmdCkpCi0gICAgICAgIHRocm93
IG5ldyBFcnJvcigiU2hvdWxkIG5vdCBiZSBlcXVhbCBidXQgYXJlOiAiICsgbGVmdCArICIgYW5k
ICIgKyByaWdodCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlPcmRlcihhcnJheSwgY2FsbGJh
Y2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiByZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgb3Jk
ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghYXJyYXkubGVuZ3RoKQotICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjay5jYWxsKG51bGwsIG9yZGVyKTsKLSAgICAgICAgICAgIAot
ICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgewotICAg
ICAgICAgICAgICAgIGxldCBuZXh0QXJyYXkgPSBhcnJheS5jb25jYXQoKTsKLSAgICAgICAgICAg
ICAgICBuZXh0QXJyYXkuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgICAgIHJlY3Vyc2UobmV4
dEFycmF5LCBjYWxsYmFjaywgb3JkZXIuY29uY2F0KFthcnJheVtpXV0pKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmVjdXJzZShhcnJheSwgY2FsbGJhY2ss
IFtdKTsKLSAgICB9Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlQYWlyKHRoaW5ncykKLSAgICB7
Ci0gICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0
aGluZ3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhp
bmdzLmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGkgIT0gaikKLSAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0LnB1c2goW3RoaW5nc1tpXSwgdGhpbmdzW2pdXSk7Ci0gICAgICAg
ICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0g
ICAgZXZlcnlPcmRlcigKLSAgICAgICAgZXZlcnlQYWlyKFsibnVsbFR5cGUiLCAidmFyaWFibGVU
eXBlIiwgInB0clR5cGUiXSksCi0gICAgICAgIG9yZGVyID0+IHsKLSAgICAgICAgICAgIGxldCB0
eXBlcyA9IHt9OwotICAgICAgICAgICAgdHlwZXMubnVsbFR5cGUgPSBuZXcgTnVsbFR5cGUoZXh0
ZXJuYWxPcmlnaW4pOwotICAgICAgICAgICAgdHlwZXMudmFyaWFibGVUeXBlID0gbmV3IFR5cGVW
YXJpYWJsZShleHRlcm5hbE9yaWdpbiwgIlQiLCBudWxsKTsKLSAgICAgICAgICAgIHR5cGVzLnB0
clR5cGUgPSBuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImNvbnN0YW50IiwgbmV3IE5hdGl2
ZVR5cGUoZXh0ZXJuYWxPcmlnaW4sICJmb29fdCIsIFtdKSk7Ci0gICAgICAgICAgICBsZXQgdW5p
ZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChbdHlwZXMudmFyaWFibGVU
eXBlXSk7Ci0gICAgICAgICAgICBmb3IgKGxldCBbbGVmdE5hbWUsIHJpZ2h0TmFtZV0gb2Ygb3Jk
ZXIpIHsKLSAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IHR5cGVzW2xlZnROYW1lXTsKLSAgICAg
ICAgICAgICAgICBsZXQgcmlnaHQgPSB0eXBlc1tyaWdodE5hbWVdOwotICAgICAgICAgICAgICAg
IGxldCByZXN1bHQgPSBsZWZ0LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcmlnaHQpOwotICAg
ICAgICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkluIG9yZGVyICIgKyBvcmRlciArICIgY2Fubm90IHVuaWZ5ICIgKyBsZWZ0ICsgIiB3
aXRoICIgKyByaWdodCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXVuaWZpY2F0
aW9uQ29udGV4dC52ZXJpZnkoKS5yZXN1bHQpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJJbiBvcmRlciAiICsgb3JkZXIubWFwKHZhbHVlID0+ICIoIiArIHZhbHVlICsgIikiKSAr
ICIgY2Fubm90IHZlcmlmeSIpOwotICAgICAgICB9KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShl
eHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBF
UHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24o
KQpAQCAtMTA5MSw4ICs5ODcsOCBAQCB0ZXN0cy5kb3VibGVOb3QgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gISF4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCkBAIC0xMTA3LDEx
NCArMTAwMyw2IEBAIHRlc3RzLnNpbXBsZVJlY3Vyc2lvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAg
KGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKIH0KIAotdGVzdHMucHJvdG9jb2xNb25v
U2lnUG9seURlZiA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHN0cnVjdCBJbnRBbmQ8VD4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAg
ICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihp
bnQgZmlyc3QsIFQgc2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VD4gcmVz
dWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1
bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAg
fQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQ+
IGludEFuZChJbnRBbmRhYmxlLCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIGludCBmb288VDpJ
bnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kKQotICAgICAgICB7Ci0gICAgICAgICAgICBJ
bnRBbmQ8aW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNlY29uZCk7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZDsKLSAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMildKSwgNTQgKyAxMik7Ci19
Ci0KLXRlc3RzLnByb3RvY29sUG9seVNpZ1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAg
ICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAg
IEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZp
cnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0g
ICAgICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KEludEFuZGFibGUsIFQpOwotICAgICAgICB9
Ci0gICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25kKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiByZXN1bHQgPSBpbnRBbmQoZmlyc3QsIHNl
Y29uZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZDsK
LSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFt
LCAxMildKSwgNTQgKyAxMik7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJs
ZVBvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAg
ICAgICAgIFQgc2Vjb25kOwotICAgICAgICAgICAgVSB0aGlyZDsKLSAgICAgICAgfQotICAgICAg
ICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KGludCBmaXJzdCwgVCBzZWNvbmQsIFUgdGhpcmQp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAg
ICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNv
bmQ7Ci0gICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAg
ICAgICAgICBJbnRBbmQ8VCwgVT4gaW50QW5kPFQsIFU+KEludEFuZGFibGUsIFQsIFUpOwotICAg
ICAgICB9Ci0gICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0LCBpbnQgc2Vjb25k
LCBpbnQgdGhpcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxpbnQsIGludD4gcmVz
dWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUlu
dChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQotdGVzdHMucHJvdG9jb2xEb3Vi
bGVQb2x5U2lnRG91YmxlUG9seURlZkV4cGxpY2l0ID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAg
ICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhp
cmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmly
c3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwg
VT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAg
ICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhp
cmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJ
bnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJs
ZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZDxpbnQsIGludD4oZmlyc3QsIHNlY29u
ZCwgdGhpcmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNv
bmQgKyByZXN1bHQudGhpcmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1
NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0sIDM5KV0pLCA1NCArIDEy
ICsgMzkpOwotfQotCiB0ZXN0cy52YXJpYWJsZVNoYWRvd2luZyA9IGZ1bmN0aW9uKCkKIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC0xMjI5LDcgKzEwMTcsNyBAQCB0ZXN0cy52YXJp
YWJsZVNoYWRvd2luZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oKQogICAgICAgICB7CkBAIC0xMjQyLDcgKzEwMzAsNyBAQCB0ZXN0cy52YXJpYWJs
ZVNoYWRvd2luZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNyk7CiB9CiAKIHRlc3RzLmlmU3RhdGVtZW50ID0gZnVuY3Rpb24o
KQpAQCAtMTI1NywxMyArMTA0NSwxMyBAQCB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwg
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgOCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA2KTsKIH0KIAog
dGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQpAQCAtMTI4MCwxMyArMTA2OCwxMyBA
QCB0ZXN0cy5pZkVsc2VTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CiB9CiAKIHRlc3RzLmlmRWxzZUlmU3RhdGVt
ZW50ID0gZnVuY3Rpb24oKQpAQCAtMTMwMywxMyArMTA5MSwxMyBAQCB0ZXN0cy5pZkVsc2VJZlN0
YXRlbWVudCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
Nik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA5KV0pLCA2KTsKIH0KIAogdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rp
b24oKQpAQCAtMTMyOCwxMyArMTExNiwxMyBAQCB0ZXN0cy5pZkVsc2VJZkVsc2VTdGF0ZW1lbnQg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAx
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOSldKSwgMTApOwogfQogCiB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKQEAgLTEz
ODcsMTMgKzExNzUsMTMgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgOCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgOCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOwogICAgIGNoZWNrRmFp
bCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBA
IC0xNDE5LDEzICsxMjA3LDEzIEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0p
LCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogICAgIGNoZWNrRmFp
bCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBA
IC0xNDQ5LDcgKzEyMzcsNyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA2KTsKIH0KIAogdGVzdHMuc2ltcGxlV2hpbGUgPSBmdW5j
dGlvbigpCkBAIC0xNDYyLDM5ICsxMjUwLDcgQEAgdGVzdHMuc2ltcGxlV2hpbGUgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDEpXSksIDE2KTsKLX0KLQotdGVzdHMucHJvdG9jb2xNb25vUG9seVNpZ0RvdWJsZVBv
bHlEZWZFeHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IHsKLSAgICAgICAgICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgICAgICAg
ICBzdHJ1Y3QgSW50QW5kPFQsIFU+IHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGZpcnN0Owot
ICAgICAgICAgICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgICAgICAgICAgVSB0aGly
ZDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFu
ZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5z
ZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJk
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgICAgICAg
ICAgSW50QW5kPFQsIGludD4gaW50QW5kPFQ+KEludEFuZGFibGUsIFQsIGludCk7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIGludCBmb288VDpJbnRBbmRhYmxlPihUIGZpcnN0
LCBpbnQgc2Vjb25kLCBpbnQgdGhpcmQpCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZDxpbnQ+KGZpcnN0LCBzZWNv
bmQsIHRoaXJkKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJl
c3VsdC5zZWNvbmQgKyByZXN1bHQudGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgYCk7Ci0gICAgICAgICAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpLCBtYWtlSW50KHByb2dyYW0s
IDM5KV0pOwotICAgICAgICB9LAotICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJy
b3IpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTYpOwogfQogCiB0ZXN0cy5hbWJpZ3VvdXNPdmVybG9h
ZFNpbXBsZSA9IGZ1bmN0aW9uKCkKQEAgLTE1MzcsNyArMTI5Myw3IEBAIHRlc3RzLmludE92ZXJs
b2FkUmVzb2x1dGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbyhmbG9hdCkgeyByZXR1
cm4gMzsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25SZXZlcnNlT3JkZXIg
PSBmdW5jdGlvbigpCkBAIC0xNTQ4LDcgKzEzMDQsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29s
dXRpb25SZXZlcnNlT3JkZXIgPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb28oaW50KSB7IHJl
dHVybiAxOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwg
W10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
ciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludE92ZXJsb2FkUmVzb2x1dGlvbkdlbmVyaWMgPSBm
dW5jdGlvbigpCkBAIC0xNTU4LDcgKzEzMTQsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRp
b25HZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQpIHsgcmV0dXJuIDI7
IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10p
LCAxKTsKIH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0xNTY3
LDE5ICsxMzIzLDcgQEAgdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAg
ICAgIGludCBmb288VD4oVCB4KSB7IHJldHVybiAzNDc4OyB9CiAgICAgICAgIGludCBiYXIoKSB7
IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMuaW50TGl0
ZXJhbEdlbmVyaWNXaXRoUHJvdG9jb2xzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZVRvSW50IHsKLSAgICAg
ICAgICAgIG9wZXJhdG9yIGludChNeUNvbnZlcnRpYmxlVG9JbnQpOwotICAgICAgICB9Ci0gICAg
ICAgIGludCBmb288VDpNeUNvbnZlcnRpYmxlVG9JbnQ+KFQgeCkgeyByZXR1cm4gaW50KHgpOyB9
Ci0gICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9Ci0gICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSks
IDM0NzgpOwogfQogCiB0ZXN0cy51aW50TGl0ZXJhbEdlbmVyaWMgPSBmdW5jdGlvbigpCkBAIC0x
NTg4LDE5ICsxMzMyLDcgQEAgdGVzdHMudWludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQog
ICAgICAgICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFy
KCkgeyByZXR1cm4gZm9vKDQydSk7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDM0NzgpOwotfQotCi10ZXN0cy51
aW50TGl0ZXJhbEdlbmVyaWNXaXRoUHJvdG9jb2xzID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZVRvVWludCB7
Ci0gICAgICAgICAgICBvcGVyYXRvciB1aW50KE15Q29udmVydGlibGVUb1VpbnQpOwotICAgICAg
ICB9Ci0gICAgICAgIHVpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvVWludD4oVCB4KSB7IHJldHVy
biB1aW50KHgpOyB9Ci0gICAgICAgIHVpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQydSk7IH0KLSAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJiYXIiLCBbXSksIDM0NzgpOwogfQogCiB0ZXN0cy5pbnRMaXRlcmFsR2VuZXJpY1NwZWNp
ZmljID0gZnVuY3Rpb24oKQpAQCAtMTYwOSw3ICsxMzQxLDcgQEAgdGVzdHMuaW50TGl0ZXJhbEdl
bmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgVCBmb288VD4oVCB4KSB7IHJldHVy
biB4OyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oaW50KDQyKSk7IH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtd
LCBbXSksIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJhciIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5zaW1wbGVDb25zdGV4cHIgPSBmdW5jdGlvbigp
CkBAIC0xNjI0LDcgKzEzNTYsNyBAQCB0ZXN0cy5zaW1wbGVDb25zdGV4cHIgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gZm9vPDQyPihiKTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDU4KV0pLCA1OCArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDU4KV0pLCA1OCArIDQy
KTsKIH0KIAogdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCkBAIC0xNjQwLDggKzEzNzIsOCBAQCB0
ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTAp
XSksIDIwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDIwKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAg
ewpAQCAtMTY1OCw4ICsxMzkwLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICAKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEwKV0pLCAxOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDEwKV0pLCAxOSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAog
ICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE2OTUsNyArMTQyNyw3IEBAIHRlc3RzLmJy
ZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
Nyk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQog
ICAgICAgICAgICAgewpAQCAtMTcwNSw3ICsxNDM3LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oKQogICAgICAgICAgICAgewpAQCAt
MTcxNCw3ICsxNDQ2LDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogICAgIGNoZWNrRmFpbCgK
ICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0x
NzQzLDcgKzE0NzUsNyBAQCB0ZXN0cy5jb250aW51ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMTgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgMTgpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4g
ZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNzY5LDggKzE1MDEsOCBA
QCB0ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAxMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCA4
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTc4Miw3ICsxNTE0LDcgQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAK
ICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTc5OCw3ICsxNTMwLDcgQEAg
dGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCAxOSk7CiB9CiAKIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCkBAIC0xODE0LDkgKzE1
NDYsOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1
bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAx
MCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAg
ICAgIHsKQEAgLTE4MjcsOSArMTU1OSw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg0MSw5ICsxNTczLDkgQEAgdGVzdHMuZm9y
TG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODU2LDEw
ICsxNTg4LDEwIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNildKSwgMTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTEp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAg
ICB7CkBAIC0xODcyLDExICsxNjA0LDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3
KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGlu
dCB4KQogICAgICAgICB7CkBAIC0xODg5LDExICsxNjIxLDExIEBAIHRlc3RzLmZvckxvb3AgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xOTA3LDExICsxNjM5LDExIEBAIHRlc3Rz
LmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCld
KSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIHByb2dyYW0gPSBkb1By
ZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xOTI2LDExICsxNjU4
LDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3Vt
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwogICAgIGNo
ZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIHZvaWQgZm9vKGlu
dCB4KQpAQCAtMTk1MCwxMSArMTY4MiwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwog
ICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBm
b28oaW50IHgpCkBAIC0xOTczLDExICsxNzA1LDExIEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0p
LCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA1KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
Nyk7CiB9CiAKIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTk5Niw3ICsx
NzI4LDcgQEAgdGVzdHMuY2hhaW5Db25zdGV4cHIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYmFyPDQyPihiKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU4
KV0pLCA1OCArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDU4KV0pLCA1OCArIDQyKTsKIH0KIAogdGVzdHMu
Y2hhaW5HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMjAxNSw3ICsxNzQ3LDcgQEAgdGVzdHMuY2hh
aW5HZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcigmeCk7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzNyldKSwgMzcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwg
MzcpXSksIDM3KTsKIH0KIAogdGVzdHMuY2hhaW5TdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC0yMDM4
LDcgKzE3NzAsNyBAQCB0ZXN0cy5jaGFpblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBmb28oJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDY1
NyldKSwgNDY1Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbbWFrZUludChwcm9ncmFtLCA0NjU3KV0pLCA0NjU3KTsKIH0KIAogdGVzdHMuY2hh
aW5TdHJ1Y3ROZXdseVZhbGlkID0gZnVuY3Rpb24oKQpAQCAtMjA2Myw3ICsxNzk1LDcgQEAgdGVz
dHMuY2hhaW5TdHJ1Y3ROZXdseVZhbGlkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBi
dWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc4NDUzKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRW
YWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3ODQ1Myk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5i
b3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNp
Y3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3ODQ1Myk7CiB9CiAKIHRlc3RzLmNo
YWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQpAQCAtMjA4OCw3ICsxODIwLDcgQEAgdGVzdHMu
Y2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9
IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgNzkyMDEpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtUeXBlZFZhbHVlLmJv
eChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2lj
cy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtUeXBlZFZhbHVlLmJveChuZXcg
UHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDc5MjAxKTsKIH0KIAogdGVzdHMucGFyYW1DaGFp
blN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIxMTMsODkgKzE4NDUsNyBAQCB0ZXN0cy5w
YXJhbUNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZm
ZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1
ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7Ci19Ci0KLXRlc3Rz
LnNpbXBsZVByb3RvY29sRXh0ZW5kcyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGZvbyh0
aHJlYWQgRm9vKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyIDogRm9vIHsKLSAg
ICAgICAgICAgIHZvaWQgYmFyKHRocmVhZCBCYXIqKTsKLSAgICAgICAgfQotICAgICAgICB2b2lk
IGZ1eno8VDpGb28+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28ocCk7
Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBidXp6PFQ6QmFyPih0aHJlYWQgVCogcCkKLSAgICAg
ICAgewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJhcihwKTsKLSAgICAgICAg
fQotICAgICAgICB2b2lkIGZvbyh0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAg
ICAqcCA9ICpwICsgNzQzOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBpbnQq
IHApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA5MTsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgdGhpbmd5KGludCBhKQotICAgICAgICB7Ci0gICAgICAgICAgICBidXp6KCZhKTsK
LSAgICAgICAgICAgIHJldHVybiBhOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0aGluZ3kiLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNjQyKV0pLCA2NDIgKyA3NDMgKyA5MSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRXh0ZW5k
c1R3byA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGZvbyh0aHJlYWQgRm9vKik7Ci0gICAg
ICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyIHsKLSAgICAgICAgICAgIHZvaWQgYmFyKHRocmVh
ZCBCYXIqKTsKLSAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXogOiBGb28sIEJhciB7Ci0g
ICAgICAgICAgICB2b2lkIGJheih0aHJlYWQgQmF6Kik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9p
ZCBmdXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHAp
OwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGJhcihwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIHh1eno8
VDpCYXo+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBmdXp6KHApOwotICAg
ICAgICAgICAgYnV6eihwKTsKLSAgICAgICAgICAgIGJheihwKTsKLSAgICAgICAgfQotICAgICAg
ICB2b2lkIGZvbyh0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpw
ICsgNzQzOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYmFyKHRocmVhZCBpbnQqIHApCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICpwID0gKnAgKyA5MTsKLSAgICAgICAgfQotICAgICAgICB2b2lk
IGJheih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgMzk7
Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewotICAgICAg
ICAgICAgeHV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhpbmd5Iiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEgKyAzOSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1
ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJp
bnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CiB9CiAKIHRlc3Rz
LnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtMjIwNyw3ICsxODU3LDcgQEAgdGVzdHMu
cHJlZml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjUpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkK
QEAgLTIyMTgsNyArMTg2OCw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuICsreDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOwogfQogCiB0ZXN0
cy5wb3N0Zml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCkBAIC0yMjMwLDcgKzE4ODAsNyBAQCB0ZXN0
cy5wb3N0Zml4UGx1c1BsdXMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA2NCldKSwgNjUpOwogfQogCiB0ZXN0cy5wb3N0Zml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlv
bigpCkBAIC0yMjQxLDcgKzE4OTEsNyBAQCB0ZXN0cy5wb3N0Zml4UGx1c1BsdXNSZXN1bHQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCsrOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CiB9CiAK
IHRlc3RzLnByZWZpeE1pbnVzTWludXMgPSBmdW5jdGlvbigpCkBAIC0yMjUzLDcgKzE5MDMsNyBA
QCB0ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucHJlZml4TWludXNNaW51c1Jlc3VsdCA9
IGZ1bmN0aW9uKCkKQEAgLTIyNjQsNyArMTkxNCw3IEBAIHRlc3RzLnByZWZpeE1pbnVzTWludXNS
ZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gLS14OwogICAgICAgICB9CiAg
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2
Myk7CiB9CiAKIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQpAQCAtMjI3Niw3
ICsxOTI2LDcgQEAgdGVzdHMucG9zdGZpeE1pbnVzTWludXMgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0p
LCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNN
aW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIyODcsNyArMTkzNyw3IEBAIHRlc3RzLnBvc3Rm
aXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgtLTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wbHVzRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAt
MjI5OSw3ICsxOTQ5LDcgQEAgdGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0p
LCAzODUgKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsKIH0KIAogdGVzdHMu
cGx1c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMTAsNyArMTk2MCw3IEBAIHRlc3Rz
LnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCArPSA0
MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLm1pbnVzRXF1YWxz
ID0gZnVuY3Rpb24oKQpAQCAtMjMyMiw3ICsxOTcyLDcgQEAgdGVzdHMubWludXNFcXVhbHMgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUg
LSA0Mik7CiB9CiAKIHRlc3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjMz
Myw3ICsxOTgzLDcgQEAgdGVzdHMubWludXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geCAtPSA0MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDM4NSldKSwgMzg1IC0gNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgLSA0Mik7CiB9
CiAKIHRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQpAQCAtMjM0NSw3ICsxOTk1LDcgQEAg
dGVzdHMudGltZXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMzg1KV0pLCAzODUgKiA0Mik7CiB9CiAKIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0
ID0gZnVuY3Rpb24oKQpAQCAtMjM1Niw3ICsyMDA2LDcgQEAgdGVzdHMudGltZXNFcXVhbHNSZXN1
bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geCAqPSA0MjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
Mzg1KV0pLCAzODUgKiA0Mik7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFscyA9IGZ1bmN0aW9uKCkK
QEAgLTIzNjgsNyArMjAxOCw3IEBAIHRlc3RzLmRpdmlkZUVxdWFscyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
Mzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0Mikg
fCAwKTsKIH0KIAogdGVzdHMuZGl2aWRlRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjM3
OSw3ICsyMDI5LDcgQEAgdGVzdHMuZGl2aWRlRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHggLz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAv
IDQyKSB8IDApOwogfQogCiB0ZXN0cy50d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKQEAgLTIz
OTAsNyArMjA0MCw3IEBAIHRlc3RzLnR3b0ludExpdGVyYWxzID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIDQyID09IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0
cnVlKTsKIH0KIAogdGVzdHMudW5pZnlEaWZmZXJlbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKQEAg
LTI0NzksNyArMjEyOSw3IEBAIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXQgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0MiAq
IDUgKyA0MiAqIDQxIC8gMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKIH0KIAogdGVzdHMuYnVp
bGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCkBAIC0yNTAw
LDcgKzIxNTAsNyBAQCB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0VXNpbmdBcnJheVJlZmVyZW5j
ZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoQGFycmF5KTsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8g
Mik7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQpAQCAt
MjUyNiw3ICsyMTc2LDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3QgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gZm9vWzBdICsgZm9vWzFdICogMzsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDk4ICsgMTkgKiAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkgKiAzKTsKIH0KIAogdGVzdHMub3Zl
cnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmREb1N0b3JlcyA9IGZ1bmN0aW9uKCkKQEAgLTI1NTIsNyAr
MjIwMiw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnggKyBmb28ueTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFtdKSwgNDk4ICsgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCA0OTggKyAxOSk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2Ny
aXB0U3RydWN0QW5kVXNlUG9pbnRlcnMgPSBmdW5jdGlvbigpCkBAIC0yNTgyLDcgKzIyMzIsNyBA
QCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGJhcigmZm9vKTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwg
NDk4ICsgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA0OTggKyAxOSk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0
QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3RseSA9IGZ1bmN0aW9uKCkKQEAgLTI2MjksNyArMjI3OSw3
IEBAIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Mb2NhbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBiYXIoQHgpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ4KTsKIH0KIAog
dGVzdHMubWFrZUFycmF5UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCkBAIC0yNjQ5LDcgKzIy
OTksNyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tUG9pbnRlciA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBiYXooJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0OCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ4KTsK
IH0KIAogdGVzdHMubWFrZUFycmF5UmVmRnJvbUFycmF5UmVmID0gZnVuY3Rpb24oKQpAQCAtMjY4
Miw3ICsyMzMyLDcgQEAgdGVzdHMuc2ltcGxlTGVuZ3RoID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIChAYXJyYXkpLmxlbmd0aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc1NCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA3NTQpOwogfQogCiB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0
aW9uKCkKQEAgLTI2OTQsNyArMjM0NCw3IEBAIHRlc3RzLm5vbkFycmF5UmVmQXJyYXlMZW5ndGhT
dWNjZWVkID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGFycmF5Lmxlbmd0aDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDc1NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NTQpOwogfQogCiB0ZXN0cy5ub25BcnJheVJl
ZkFycmF5TGVuZ3RoRmFpbCA9IGZ1bmN0aW9uKCkKQEAgLTI3OTMsNyArMjQ0Myw3IEBAIHRlc3Rz
LnNpbXBsZUdldHRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28ueTsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgNzgwNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc4MDQpOwogfQogCiB0ZXN0cy5zaW1wbGVTZXR0
ZXIgPSBmdW5jdGlvbigpCkBAIC0yODE4LDcgKzI0NjgsNyBAQCB0ZXN0cy5zaW1wbGVTZXR0ZXIg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLng7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDc4MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCA3ODA0KTsKIH0KIAogdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0
aW9uKCkKQEAgLTI5MDMsMzU0ICsyNTUzLDEwMyBAQCB0ZXN0cy5nZW5lcmljQWNjZXNzb3JzID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby5zdW07CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTdXBl
ckJhc2ljIiwgW10sIFtdKSwgMSArIDIgKyAzICsgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSwgW10pLCA5MzIp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0
ZXIiLCBbXSwgW10pLCA1MyArIDkzMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0WkdldHRlciIsIFtdLCBbXSksIDEgKyAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBb
XSwgW10pLCAxICsgMiArIDMgKiA1ICsgNCk7Ci19Ci0KLXRlc3RzLmJpdFN1YnNjcmlwdEFjY2Vz
c29yID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
cHJvdG9jb2wgTXlCaXRtYXNrYWJsZSA6IEVxdWF0YWJsZSB7Ci0gICAgICAgICAgICBNeUJpdG1h
c2thYmxlIG9wZXJhdG9yJihNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAg
ICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3J8KE15Qml0bWFza2FibGUsIE15Qml0bWFza2FibGUp
OwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcn4oTXlCaXRtYXNrYWJsZSk7Ci0g
ICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yPDwoTXlCaXRtYXNrYWJsZSwgdWludCk7
Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yPj4oTXlCaXRtYXNrYWJsZSwgdWlu
dCk7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUJpdG1hc2thYmxlKGludCk7Ci0gICAgICAgIH0K
LSAgICAgICAgVCBtYXNrRm9yQml0SW5kZXg8VDpNeUJpdG1hc2thYmxlPih1aW50IGluZGV4KQot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gVCgxKSA8PCBpbmRleDsKLSAgICAgICAgfQot
ICAgICAgICBib29sIG9wZXJhdG9yW108VDpNeUJpdG1hc2thYmxlPihUIHZhbHVlLCB1aW50IGlu
ZGV4KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYm9vbCh2YWx1ZSAmIG1hc2tGb3JC
aXRJbmRleDxUPihpbmRleCkpOwotICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3JbXT08VDpN
eUJpdG1hc2thYmxlPihUIHZhbHVlLCB1aW50IGluZGV4LCBib29sIGJpdCkKLSAgICAgICAgewot
ICAgICAgICAgICAgVCBtYXNrID0gbWFza0ZvckJpdEluZGV4PFQ+KGluZGV4KTsKLSAgICAgICAg
ICAgIGlmIChiaXQpCi0gICAgICAgICAgICAgICAgdmFsdWUgfD0gbWFzazsKLSAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICB2YWx1ZSAmPSB+bWFzazsKLSAgICAgICAgICAgIHJldHVy
biB2YWx1ZTsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChpbnQpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAzMjsKLSAgICAgICAgfQotICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aCh1aW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7
Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RJbnRTZXRCaXQzKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1szXSA9IHRydWU7Ci0gICAgICAgICAg
ICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludFNldEdldEJpdDUo
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgZm9vWzVdID0g
dHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBmb29bNV07Ci0gICAgICAgIH0KLSAgICAgICAgYm9v
bCB0ZXN0SW50R2V0Qml0MSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAg
ICAgICAgICByZXR1cm4gZm9vWzFdOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0VWludFN1
bUJpdHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vID0gNDI7Ci0gICAgICAgICAg
ICBpbnQgcmVzdWx0OwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZvb1tpXSkKLSAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0Kys7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0Owot
ICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0VWludFN3YXBCaXRzKCkKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwg
Zm9vLmxlbmd0aCAvIDI7ICsraSkgewotICAgICAgICAgICAgICAgIGJvb2wgdG1wID0gZm9vW2ld
OwotICAgICAgICAgICAgICAgIGZvb1tpXSA9IGZvb1tmb28ubGVuZ3RoIC0gaSAtIDFdOwotICAg
ICAgICAgICAgICAgIGZvb1tmb28ubGVuZ3RoIC0gaSAtIDFdID0gdG1wOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgRm9v
IHsKLSAgICAgICAgICAgIHVpbnQgZjsKLSAgICAgICAgICAgIHVpbnQgZzsKLSAgICAgICAgfQot
ICAgICAgICBvcGVyYXRvciBGb28odWludCBmLCB1aW50IGcpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZiA9IGY7Ci0gICAgICAgICAgICBy
ZXN1bHQuZyA9IGc7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAg
ICAgIGludCBvcGVyYXRvci5oKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBpbnQoKGZvby5mICYgMHhmZmZmKSB8ICgoZm9vLmcgJiAweGZmZmYpIDw8IDE2KSk7Ci0gICAg
ICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yLmg9KEZvbyBmb28sIGludCB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgZm9vLmYgJj0gfjB4ZmZmZnU7Ci0gICAgICAgICAgICBmb28uZiB8
PSB1aW50KHZhbHVlKSAmIDB4ZmZmZjsKLSAgICAgICAgICAgIGZvby5nICY9IH4weGZmZmZ1Owot
ICAgICAgICAgICAgZm9vLmcgfD0gKHVpbnQodmFsdWUpID4+IDE2KSAmIDB4ZmZmZjsKLSAgICAg
ICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RMVmFsdWVFbXVs
YXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9vOwotICAgICAgICAgICAgZm9v
LmYgPSA0MjsKLSAgICAgICAgICAgIGZvby5nID0gMzc7Ci0gICAgICAgICAgICBmb3IgKHVpbnQg
aSA9IDA7IGkgPCBmb28uaC5sZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICBmb28uaFtpXSBe
PSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGludChmb28uZiArIGZvby5nKTsKLSAgICAgICAg
fQotICAgICAgICBzdHJ1Y3QgQmFyIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAgICAg
Rm9vIGI7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yLmMoQmFyIGJhcikKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50KGJhci5hLmgpLCB1aW50KGJhci5iLmgp
KTsKLSAgICAgICAgfQotICAgICAgICBCYXIgb3BlcmF0b3IuYz0oQmFyIGJhciwgRm9vIGZvbykK
LSAgICAgICAgewotICAgICAgICAgICAgYmFyLmEuaCA9IGludChmb28uZik7Ci0gICAgICAgICAg
ICBiYXIuYi5oID0gaW50KGZvby5nKTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAgICAg
IH0KLSAgICAgICAgaW50IHRlc3RDcmF6eUxWYWx1ZUVtdWxhdGlvbigpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIEJhciBiYXI7Ci0gICAgICAgICAgICBiYXIuYS5mID0gMTsKLSAgICAgICAgICAg
IGJhci5hLmcgPSAyOwotICAgICAgICAgICAgYmFyLmIuZiA9IDM7Ci0gICAgICAgICAgICBiYXIu
Yi5nID0gNDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGJhci5jLmgubGVuZ3Ro
OyBpICs9IDIpCi0gICAgICAgICAgICAgICAgYmFyLmMuaFtpXSBePSB0cnVlOwotICAgICAgICAg
ICAgcmV0dXJuIGludChiYXIuYS5mICsgYmFyLmEuZyArIGJhci5iLmYgKyBiYXIuYi5nKTsKLSAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEludFNldEJpdDMiLCBbXSwgW10pLCA4KTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50U2V0R2V0Qml0NSIsIFtdLCBbXSksIHRy
dWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJ
bnRHZXRCaXQxIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFVpbnRTdW1CaXRzIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0VWludFN3YXBCaXRzIiwg
W10sIFtdKSwgMTQwOTI4NjE0NCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMTMwOTkxKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RDcmF6eUxWYWx1ZUVt
dWxhdGlvbiIsIFtdLCBbXSksIDQzNjk2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTdXBlckJhc2ljIiwgW10pLCAxICsgMiArIDMgKyA0KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyRGlk
U2V0WSIsIFtdKSwgOTMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RaU2V0dGVyIiwgW10pLCA1MyArIDkzMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WkdldHRlciIsIFtdKSwgMSArIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxh
dGlvbiIsIFtdKSwgMSArIDIgKyAzICogNSArIDQpOwogfQogCiB0ZXN0cy5uZXN0ZWRTdWJzY3Jp
cHRMVmFsdWVFbXVsYXRpb25TaW1wbGUgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYAogICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgIGludFs3XSBhcnJh
eTsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGluZGV4
KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKLSAgICAg
ICAgfQotICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vIGZvbywgdWludCBpbmRleCwgaW50IHZh
bHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb28uYXJyYXlbaW5kZXhdID0gdmFsdWU7Ci0g
ICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3Iu
bGVuZ3RoKEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXku
bGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIGludCBzdW0oRm9vIGZvbykKLSAgICAgICAgewot
ICAgICAgICAgICAgaW50IHJlc3VsdCA9IDA7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGZv
by5sZW5ndGg7IGktLTspCi0gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGZvb1tpXTsKLSAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0g
ICAgICAgICAgICBGb29bNl0gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRv
ci5sZW5ndGgoQmFyIGJhcikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJh
eS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWlu
dCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07
Ci0gICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgs
IEZvbyB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZh
bHVlOwotICAgICAgICAgICAgcmV0dXJuIGJhcjsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3Vt
KEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJl
c3VsdCArPSBzdW0oYmFyW2ldKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAg
IH0KLSAgICAgICAgc3RydWN0IEJheiB7Ci0gICAgICAgICAgICBCYXJbNV0gYXJyYXk7Ci0gICAg
ICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW10oQmF6IGJheiwgdWludCBpbmRleCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAg
ICAgICAgQmF6IG9wZXJhdG9yW109KEJheiBiYXosIHVpbnQgaW5kZXgsIEJhciB2YWx1ZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgYmF6LmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAg
ICAgcmV0dXJuIGJhejsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChC
YXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmF6LmFycmF5Lmxlbmd0aDsK
LSAgICAgICAgfQotICAgICAgICBpbnQgc3VtKEJheiBiYXopCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGludCByZXN1bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXoubGVuZ3Ro
OyBpLS07KQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmF6W2ldKTsKLSAgICAgICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXModGhy
ZWFkIEJheiogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei0+
bGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSAoKmJheilbaV0u
bGVuZ3RoOyBqLS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gKCpiYXop
W2ldW2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgICgqYmF6KVtpXVtq
XVtrXSA9IGludChpICsgaiArIGspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFNldFZhbHVlc0FuZFN1bSgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEJheiBiYXo7Ci0gICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7Ci0gICAg
ICAgICAgICByZXR1cm4gc3VtKGJheik7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRW
YWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6
OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgZm9yICh1aW50IGkg
PSBiYXoubGVuZ3RoOyBpLS07KSB7Ci0gICAgICAgICAgICAgICAgZm9yICh1aW50IGogPSBiYXpb
aV0ubGVuZ3RoOyBqLS07KSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodWludCBrID0gYmF6
W2ldW2pdLmxlbmd0aDsgay0tOykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJheltpXVtqXVtr
XSAqPSBpbnQoayk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzQW5kU3VtIiwgW10sIFtd
KSwgMTU3NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtIiwgW10sIFtdKSwgNTU2NSk7Ci19Ci0KLXRl
c3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCi17
Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgRm9vPFQ+IHsKLSAg
ICAgICAgICAgIFRbN10gYXJyYXk7CisgICAgICAgICAgICBpbnRbN10gYXJyYXk7CiAgICAgICAg
IH0KLSAgICAgICAgVCBvcGVyYXRvcltdPFQ+KEZvbzxUPiBmb28sIHVpbnQgaW5kZXgpCisgICAg
ICAgIGludCBvcGVyYXRvcltdKEZvbyBmb28sIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAg
ICAgICAgIHJldHVybiBmb28uYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEZvbzxU
PiBvcGVyYXRvcltdPTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4LCBUIHZhbHVlKQorICAgICAg
ICBGb28gb3BlcmF0b3JbXT0oRm9vIGZvbywgdWludCBpbmRleCwgaW50IHZhbHVlKQogICAgICAg
ICB7CiAgICAgICAgICAgICBmb28uYXJyYXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICBy
ZXR1cm4gZm9vOwogICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KEZv
bzxUPiBmb28pCisgICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEZvbyBmb28pCiAgICAgICAg
IHsKICAgICAgICAgICAgIHJldHVybiBmb28uYXJyYXkubGVuZ3RoOwogICAgICAgICB9Ci0gICAg
ICAgIHByb3RvY29sIE15QWRkYWJsZSB7Ci0gICAgICAgICAgICBNeUFkZGFibGUgb3BlcmF0b3Ir
KE15QWRkYWJsZSwgTXlBZGRhYmxlKTsKLSAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRk
YWJsZT4oRm9vPFQ+IGZvbykKKyAgICAgICAgaW50IHN1bShGb28gZm9vKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJl
c3VsdCArPSBmb29baV07CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0g
ICAgICAgIHN0cnVjdCBCYXI8VD4gewotICAgICAgICAgICAgRm9vPFQ+WzZdIGFycmF5OworICAg
ICAgICBzdHJ1Y3QgQmFyIHsKKyAgICAgICAgICAgIEZvb1s2XSBhcnJheTsKICAgICAgICAgfQot
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihCYXI8VD4gYmFyKQorICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aChCYXIgYmFyKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
YmFyLmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXTxU
PihCYXI8VD4gYmFyLCB1aW50IGluZGV4KQorICAgICAgICBGb28gb3BlcmF0b3JbXShCYXIgYmFy
LCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYmFyLmFycmF5W2lu
ZGV4XTsKICAgICAgICAgfQotICAgICAgICBCYXI8VD4gb3BlcmF0b3JbXT08VD4oQmFyPFQ+IGJh
ciwgdWludCBpbmRleCwgRm9vPFQ+IHZhbHVlKQorICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFy
IGJhciwgdWludCBpbmRleCwgRm9vIHZhbHVlKQogICAgICAgICB7CiAgICAgICAgICAgICBiYXIu
YXJyYXlbaW5kZXhdID0gdmFsdWU7CiAgICAgICAgICAgICByZXR1cm4gYmFyOwogICAgICAgICB9
Ci0gICAgICAgIFQgc3VtPFQ6TXlBZGRhYmxlPihCYXI8VD4gYmFyKQorICAgICAgICBpbnQgc3Vt
KEJhciBiYXIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIFQgcmVzdWx0OworICAgICAgICAgICAg
aW50IHJlc3VsdCA9IDA7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhci5sZW5ndGg7IGkt
LTspCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9IHN1bShiYXJbaV0pOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmF6PFQ+IHsKLSAgICAg
ICAgICAgIEJhcjxUPls1XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJheiB7CisgICAgICAgICAg
ICBCYXJbNV0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9wZXJhdG9yW108VD4o
QmF6PFQ+IGJheiwgdWludCBpbmRleCkKKyAgICAgICAgQmFyIG9wZXJhdG9yW10oQmF6IGJheiwg
dWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheVtpbmRl
eF07CiAgICAgICAgIH0KLSAgICAgICAgQmF6PFQ+IG9wZXJhdG9yW109PFQ+KEJhejxUPiBiYXos
IHVpbnQgaW5kZXgsIEJhcjxUPiB2YWx1ZSkKKyAgICAgICAgQmF6IG9wZXJhdG9yW109KEJheiBi
YXosIHVpbnQgaW5kZXgsIEJhciB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmF6LmFy
cmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGJhejsKICAgICAgICAgfQot
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihCYXo8VD4gYmF6KQorICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aChCYXogYmF6KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4g
YmF6LmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4o
QmF6PFQ+IGJheikKKyAgICAgICAgaW50IHN1bShCYXogYmF6KQogICAgICAgICB7Ci0gICAgICAg
ICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAgICAg
Zm9yICh1aW50IGkgPSBiYXoubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3VsdCAr
PSBzdW0oYmF6W2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAg
ICAgICAgcHJvdG9jb2wgTXlDb252ZXJ0aWJsZUZyb21VaW50IHsKLSAgICAgICAgICAgIG9wZXJh
dG9yIE15Q29udmVydGlibGVGcm9tVWludCh1aW50KTsKLSAgICAgICAgfQotICAgICAgICBwcm90
b2NvbCBTZXRWYWx1YWJsZSA6IE15QWRkYWJsZSwgTXlDb252ZXJ0aWJsZUZyb21VaW50IHsgfQot
ICAgICAgICB2b2lkIHNldFZhbHVlczxUOlNldFZhbHVhYmxlPih0aHJlYWQgQmF6PFQ+KiBiYXop
CisgICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKICAgICAgICAgewogICAg
ICAgICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewogICAgICAgICAgICAg
ICAgIGZvciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewogICAgICAgICAgICAg
ICAgICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAg
ICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBUKGkgKyBqICsgayk7CisgICAgICAg
ICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaW50IHRlc3RT
ZXRWYWx1ZXNBbmRTdW0oKQogICAgICAgICB7Ci0gICAgICAgICAgICBCYXo8aW50PiBiYXo7Cisg
ICAgICAgICAgICBCYXogYmF6OwogICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwogICAgICAg
ICAgICAgcmV0dXJuIHN1bShiYXopOwogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFs
dWVzTXV0YXRlVmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAgICAgICAgQmF6PGludD4g
YmF6OworICAgICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsK
ICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewogICAgICAgICAg
ICAgICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewpAQCAtMzI2MSw4ICsy
NjYwLDggQEAgdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uR2VuZXJpYyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZh
bHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdLCBb
XSksIDU1NjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdKSwgMTU3NSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtIiwg
W10pLCA1NTY1KTsKIH0KIAogdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTMyNzMs
MTAgKzI2NzIsMTAgQEAgdGVzdHMuYm9vbEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFs
c2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsK
IH0KIAogdGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzI4NywxMCArMjY4NiwxMCBA
QCB0ZXN0cy5ib29sQml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSB8IGI7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSks
IG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1
ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRy
dWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZh
bHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRy
dWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMuYm9vbEJp
dFhvciA9IGZ1bmN0aW9uKCkKQEAgLTMzMDEsMTAgKzI3MDAsMTAgQEAgdGVzdHMuYm9vbEJpdFhv
ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSld
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wo
cHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChw
cm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXROb3QgPSBmdW5jdGlv
bigpCkBAIC0zMzE1LDggKzI3MTQsOCBAQCB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwg
ZmFsc2UpOwogfQogCiB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMzI3LDEwICsy
NzI2LDEwIEBAIHRlc3RzLmludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50
KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9n
cmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAt
NyldKSwgLTcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0p
LCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50
KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMuaW50Qml0T3IgPSBmdW5jdGlvbigp
CkBAIC0zMzQxLDEwICsyNzQwLDEwIEBAIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBt
YWtlSW50KHByb2dyYW0sIC03KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQo
cHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dy
YW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0p
LCA2NTUzNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC0xKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAK
IHRlc3RzLmludEJpdFhvciA9IGZ1bmN0aW9uKCkKQEAgLTMzNTUsMTAgKzI3NTQsMTAgQEAgdGVz
dHMuaW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyld
KSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2
NTQ5Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMSksIG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIC0xKSwg
bWFrZUludChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9n
cmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigp
CkBAIC0zMzY5LDEwICsyNzY4LDEwIEBAIHRlc3RzLmludEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDEpXSksIC0yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSldKSwgLTY1NTM2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAtMSldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgLTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpXSksIC02NTUzNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAtMSldKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCAtMSk7CiB9CiAKIHRlc3RzLmludExTaGlm
dCA9IGZ1bmN0aW9uKCkKQEAgLTMzODMsMTAgKzI3ODIsMTAgQEAgdGVzdHMuaW50TFNoaWZ0ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjYyMTQwKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0zMik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VV
aW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIC0zMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CiB9CiAKIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKQEAgLTMzOTcsMTAgKzI3
OTYsMTAgQEAgdGVzdHMuaW50UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWlu
dChwcm9ncmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHBy
b2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIC0xKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgLTEpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1h
a2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50Qml0QW5kID0gZnVuY3Rp
b24oKQpAQCAtMzQxMSwxMCArMjgxMCwxMCBAQCB0ZXN0cy51aW50Qml0QW5kID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjg5KTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VV
aW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjg5KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDg1NzMyKV0pLCAwKTsKIH0KIAogdGVzdHMudWludEJpdE9yID0gZnVuY3Rp
b24oKQpAQCAtMzQyNSwxMCArMjgyNCwxMCBAQCB0ZXN0cy51aW50Qml0T3IgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gYSB8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDQyOTQ5NjcyOTUpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAt
MSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3RzLnVpbnRC
aXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zNDM5LDEwICsyODM4LDEwIEBAIHRlc3RzLnVpbnRCaXRY
b3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA2KTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkz
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgLTcpXSksIDYpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9n
cmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CiB9CiAKIHRlc3RzLnVpbnRCaXRO
b3QgPSBmdW5jdGlvbigpCkBAIC0zNDUzLDEwICsyODUyLDEwIEBAIHRlc3RzLnVpbnRCaXROb3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50KHByb2dyYW0sIDEpXSksIDQyOTQ5NjcyOTQpOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NjU1MzUpXSksIDQyOTQ5MDE3NjApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMCldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpXSksIDQy
OTQ5NjcyOTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSldKSwgNDI5NDkwMTc2MCk7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIC0xKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCldKSwgNDI5NDk2NzI5NSk7CiB9CiAK
IHRlc3RzLnVpbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNDY3LDEwICsyODY2LDEwIEBAIHRl
c3RzLnVpbnRMU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA8PCBiOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMildKSwgMjYyMTQwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgNDI5NDk2NzI2NCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJv
Z3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0p
LCAxMjgpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2
MjE0MCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNDI5NDk2
NzI2NCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0K
IAogdGVzdHMudWludFJTaGlmdCA9IGZ1bmN0aW9uKCkKQEAgLTM0ODEsMTAgKzI4ODAsMTAgQEAg
dGVzdHMudWludFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9n
cmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMildKSwgMTYzODMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAxMzQyMTc3MjcpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
MCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMTYzODMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEzNDIxNzcyNyk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVz
dHMudWludDhCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zNDk1LDEwICsyODk0LDEwIEBAIHRlc3Rz
LnVpbnQ4Qml0QW5kID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgJiBiOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNyldKSwgMSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dy
YW0sIDQyKV0pLCA0Mik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dy
YW0sIC03KV0pLCAyNDkpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dy
YW0sIDg1NzMyKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDcpXSksIDEpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQy
KV0pLCA0Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSks
IDI0OSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwg
MCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0T3IgPSBmdW5jdGlvbigpCkBAIC0zNTA5LDEwICsyOTA4
LDEwIEBAIHRlc3RzLnVpbnQ4Qml0T3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YSB8IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VV
aW50OChwcm9ncmFtLCA3KV0pLCA3KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
VWludDgocHJvZ3JhbSwgNDIpXSksIDI1NSk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtl
VWludDgocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNDIpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgo
cHJvZ3JhbSwgLTcpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9n
cmFtLCA4NTczMildKSwgMjI4KTsKIH0KIAogdGVzdHMudWludDhCaXRYb3IgPSBmdW5jdGlvbigp
CkBAIC0zNTIzLDEwICsyOTIyLDEwIEBAIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyMTMpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CisgICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCA2KTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjEzKTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50OChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCks
IG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKIH0KIAogdGVzdHMudWludDhCaXRO
b3QgPSBmdW5jdGlvbigpCkBAIC0zNTM3LDEwICsyOTM2LDEwIEBAIHRlc3RzLnVpbnQ4Qml0Tm90
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpXSksIDI1NCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1
NTM1KV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAwKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpXSksIDI1NCk7CisgICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgNjU1MzUpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKV0pLCAwKTsKKyAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
OChwcm9ncmFtLCAwKV0pLCAyNTUpOwogfQogCiB0ZXN0cy51aW50OExTaGlmdCA9IGZ1bmN0aW9u
KCkKQEAgLTM1NTEsMTAgKzI5NTAsMTAgQEAgdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gYSA8PCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMjI0KTsKLSAgICBjaGVj
a1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWlu
dDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1
NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjUyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSks
IG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIyNCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VV
aW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy51aW50OFJTaGlmdCA9IGZ1bmN0aW9u
KCkKQEAgLTM1NjUsMTAgKzI5NjQsMTAgQEAgdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAwKTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTUpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1NSk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUp
LCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKQEAg
LTM2MjQsMTcgKzMwMjMsMTcgQEAgdGVzdHMuZmxvYXRNYXRoID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZsb2F0KHgpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwg
Ny41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NyIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzkiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10sIFtdKSwgNyk7
Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwg
W10sIFtdKSwgNy41KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSksIHRydWUp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282Iiwg
W10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb283IiwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb285IiwgW10pLCA3LjUpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTIiLCBbXSksIDcpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtdKSwgNy41KTsK
ICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQg
YmFyKGludCB4KQpAQCAtMzcyOSw3ICszMTI4LDcgQEAgdGVzdHMuZ2VuZXJpY0Nhc3RJbmZlciA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LnJlYWwgKyB4LmltYWc7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMuYm9vbGVhbk1hdGggPSBmdW5jdGlv
bigpCkBAIC0zNzY4LDE0ICszMTY3LDE0IEBAIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlIHx8IGZhbHNlOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCBmYWxzZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzYiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb283IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFtdLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
XSksIGZhbHNlKTsKIH0KIAogdGVzdHMuYm9vbGVhblNob3J0Y2lyY3VpdGluZyA9IGZ1bmN0aW9u
KCkKQEAgLTM4MTYsMTAgKzMyMTUsMTAgQEAgdGVzdHMuYm9vbGVhblNob3J0Y2lyY3VpdGluZyA9
IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogCi0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRUcnVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JUcnVlIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJvckZhbHNlIiwgW10sIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJhbmRUcnVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImFuZEZhbHNlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdKSwgMSk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvckZhbHNlIiwgW10pLCAyKTsK
IH0KIAogdGVzdHMudHlwZWRlZkFycmF5ID0gZnVuY3Rpb24oKQpAQCAtMzgzMiw3ICszMjMxLDcg
QEAgdGVzdHMudHlwZWRlZkFycmF5ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGFy
cmF5VHlwZWRlZlswXTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDApOwogfQogCiB0ZXN0
cy5zaGFkZXJUeXBlcyA9IGZ1bmN0aW9uKCkKQEAgLTQwODQsMjQgKzM0ODMsMjQgQEAgdGVzdHMu
YnVpbHRpblZlY3RvcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYiA9PSBjOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSwgW10pLCA1KTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb291IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MyIsIFtdLCBbXSksIDMpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U0IiwgW10s
IFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vdTUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb291NiIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZiIsIFtdLCBbXSksIDMpOwotICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIsIFtdLCBbXSks
IDQpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29m
MyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb29mNCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjYiLCBbXSwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIs
IFtdKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291IiwgW10pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwgNCk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U0Iiwg
W10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b291NSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vdTYiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZiIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YyIiwgW10pLCA0KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSksIDMpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNCIsIFtdKSwg
NSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUi
LCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvb2Y2IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5T
dHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC00MTIxLDcgKzM1MjAsNyBAQCB0ZXN0cy5pbnN0YW50aWF0
ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgueC54Owog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCA0Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQzKTsKIH0KIAogdGVzdHMuaW5zdGFudGlhdGVT
dHJ1Y3RJblN0cnVjdFdpdGhJbnQyID0gZnVuY3Rpb24oKQpAQCAtNDEzOCw3ICszNTM3LDcgQEAg
dGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdFdpdGhJbnQyID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHgueC54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Myk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQzKTsK
IH0KIAogdGVzdHMuc2ltcGxlRW51bSA9IGZ1bmN0aW9uKCkKQEAgLTQyNjMsMzIgKzM2NjIsMzIg
QEAgdGVzdHMuc2ltcGxlRW51bSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28o
aW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwg
W10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwg
W10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSks
IGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRy
dWUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2Fy
IiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJpbnRGYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10sIFtdKSwg
Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1
ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZmFtaW5lVmFsdWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdLCBbXSksIDIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAxKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1
ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50V2FyQmFja3dhcmRzIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdLCBbXSks
IDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERl
YXRoQmFja3dhcmRzIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIpOworICAg
IGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10pLCAz
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2lt
cGxlRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdKSwgZmFs
c2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RT
aW1wbGVOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1
YWwiLCBbXSksIHRydWUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiaW50V2FyIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludERlYXRoIiwgW10pLCAzKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwg
W10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZh
bWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10pLCAzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtd
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIs
IFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50V2FyQmFja3dhcmRzIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSksIDEpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2Fy
ZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludERlYXRoQmFja3dhcmRzIiwgW10pLCAzKTsKIH0KIAogdGVzdHMuZW51bVdpdGhNYW51
YWxWYWx1ZXMgPSBmdW5jdGlvbigpCkBAIC00MzE3LDEwICszNzE2LDEwIEBAIHRlc3RzLmVudW1X
aXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0
aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwg
MjMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRo
IiwgW10sIFtdKSwgLTQyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ3YXIiLCBbXSksIDcyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSksIDIzKTsKKyAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgLTQyKTsKIH0K
IAogdGVzdHMuZW51bVdpdGhvdXRaZXJvID0gZnVuY3Rpb24oKQpAQCAtNDM3NywxMCArMzc3Niwx
MCBAQCB0ZXN0cy5lbnVtV2l0aFNvbWVNYW51YWxWYWx1ZXMgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gRm9vLkRlYXRoOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgNzIpOwotICAg
IGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBb
XSksIDczKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJw
ZXN0aWxlbmNlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDcyKTsKKyAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSksIDczKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10p
LCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0
aCIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljRnVuY3Rpb24gPSBm
dW5jdGlvbigpCkBAIC00MzkxLDggKzM3OTAsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJp
Y0Z1bmN0aW9uID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgdGVzdFgoKSB7IHJldHVybiBmb288
QXhpcy5YPigpOyB9CiAgICAgICAgIGludCB0ZXN0WSgpIHsgcmV0dXJuIGZvbzxBeGlzLlk+KCk7
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5l
bnVtQ29uc3RleHByR2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTQ0MTIsOCArMzgxMSw4
IEBAIHRlc3RzLmVudW1Db25zdGV4cHJHZW5lcmljU3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGZvbyhmKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSwgW10pLCAwKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10sIFtdKSwg
MSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIs
IFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0WSIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLnRyYXAgPSBmdW5jdGlvbigpCkBAIC00NDM5LDE0
ICszODM4LDE0IEBAIHRlc3RzLnRyYXAgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsK
ICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAxKV0pLCA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA0KTsKICAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAzKV0pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJh
cEVycm9yKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMyIsIFtdKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9
CiAKQEAgLTQ0NzAsOSArMzg2OSw5IEBAIHRlc3RzLnN3aXp6bGUgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gcXVpeC56OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtd
KSwgNik7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzMiLCBbXSwgW10pLCA0KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNik7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDQpOwogfQogCiB0ZXN0cy5lbnVtV2l0
aEV4cGxpY2l0SW50QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ1OTcsMzIgKzM5OTYsMzIgQEAgdGVz
dHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gRm9vKGludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwg
MSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJF
cXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBb
XSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwg
W10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludFdhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
d2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAy
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFs
dWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwg
MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxl
bmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJk
cyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBb
XSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAy
KTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIs
IFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBb
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxz
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5v
dE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtd
KSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVy
YWwiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxp
dGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNl
QmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1X
aXRoVWludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00NzQ3LDMyICs0MTQ2LDMyIEBAIHRlc3RzLmVu
dW1XaXRoVWludEJhc2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKHVpbnRE
ZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwg
W10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJk
ZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwg
W10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFs
c2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RB
bm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInVpbnRGYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdLCBb
XSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
clZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAy
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZh
bHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtd
KSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMyk7
Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhckJh
Y2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInVpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZUJhY2t3
YXJkcyIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNl
IiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwg
W10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyIiwgW10pLCAwKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10pLCAxKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5j
ZSIsIFtdKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludERlYXRoIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZSIsIFtd
KSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVh
dGhWYWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZUxpdGVyYWwiLCBbXSksIDEpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VW
YWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50V2FyQmFja3dhcmRzIiwgW10pLCAw
KTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFt
aW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ1aW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludERlYXRoQmFja3dhcmRz
IiwgW10pLCAzKTsKIH0KIAogdGVzdHMuZW51bUZsb2F0QmFzZSA9IGZ1bmN0aW9uKCkKQEAgLTQ4
MTgsNyArNDIxNyw3IEBAIHRlc3RzLmVtcHR5U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIDQ2OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Nik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ2KTsKIH0KIAogdGVz
dHMuZW51bVN0cnVjdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODU3LDkgKzQyNTYsOSBAQCB0ZXN0
cy5zaW1wbGVTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSld
KSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0p
LCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7
CiB9CiAKIHRlc3RzLmV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKQEAgLTQ4NzAs
NyArNDI2OSw3IEBAIHRlc3RzLmV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKICAg
ICB0ZXh0ICs9ICJ9IH0iOwogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKHRleHQpOwogICAgIGZv
ciAobGV0IGkgPSAwOyBpIDwgMHhmZjsgKytpKQotICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgaSld
KSwgaSAqIDEuNSk7CisgICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOwogfQogCiB0
ZXN0cy5ub3RRdWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaCA9IGZ1bmN0aW9uKCkKQEAgLTQ4OTEs
NyArNDI5MCw3IEBAIHRlc3RzLm5vdFF1aXRlRXhoYXVzdGl2ZVVpbnQ4U3dpdGNoV2l0aERlZmF1
bHQgPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0p
LCBpICogMS41KTsKIH0KIAogdGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCkBA
IC00OTEzLDkgKzQzMTIsOSBAQCB0ZXN0cy5zd2l0Y2hGYWxsVGhyb3VnaCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA3NjcpXSksIDI3ICsgNzYyNCArIDQ5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwg
NzYyNCArIDQ5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3Njcp
XSksIDI3ICsgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0ICsgNDkpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkK
QEAgLTQ5MzgsOSArNDMzNyw5IEBAIHRlc3RzLnN3aXRjaEJyZWFrID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDc2NyldKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY5KV0pLCA3NjI0KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAwKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDY5KV0pLCA3NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuZW51bVN3
aXRjaEJyZWFrRXhoYXVzdGl2ZSA9IGZ1bmN0aW9uKCkKQEAgLTQ5NjYsOSArNDM2NSw5IEBAIHRl
c3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28i
LCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkEiKV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJv
Z3JhbSwgIkZvbyIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtOb3RR
dWl0ZUV4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBAIC01MDIxLDkgKzQ0MjAsOSBAQCB0ZXN0cy5l
bnVtU3dpdGNoQnJlYWtOb3RRdWl0ZUV4aGF1c3RpdmVXaXRoRGVmYXVsdCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0o
cHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIi
KV0pLCA3NjI0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkIiKV0pLCA3
NjI0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CiB9CiAKIHRlc3RzLnNpbXBs
ZVJlY3Vyc2l2ZVN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTUwNzIsNyArNDQ3MSw3IEBAIHRlc3Rz
Lm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuID0gZnVuY3Rpb24oKQog
ICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIC01MTEpLAor
ICAgICAgICAoKSA9PiBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgLTUxMSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwog
fQogCkBAIC01MDk4LDcgKzQ0OTcsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdp
dGhQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28uYmFyLT5iYXIg
LSBiYXIuZm9vLT5mb287CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIC01MTEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAtNTExKTsKIH0K
IAogdGVzdHMubGlua2VkTGlzdCA9IGZ1bmN0aW9uKCkKQEAgLTUxMTksNyArNDUxOCw3IEBAIHRl
c3RzLmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5uZXh0LT5u
ZXh0LT52YWx1ZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDMpOwogfQogCiB0ZXN0cy5w
b2ludGVyVG9Qb2ludGVyID0gZnVuY3Rpb24oKQpAQCAtNTE0Miw3ICs0NTQxLDcgQEAgdGVzdHMu
cG9pbnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc2ICsgMzkgKyA4Myk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc2ICsgMzkgKyA4Myk7CiB9
CiAKIHRlc3RzLmFycmF5UmVmVG9BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTUxNjUsNyArNDU2
NCw3IEBAIHRlc3RzLmFycmF5UmVmVG9BcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc2ICsgMzkgKyA4Myk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDc2
ICsgMzkgKyA4Myk7CiB9CiAKIHRlc3RzLnBvaW50ZXJHZXR0ZXIgPSBmdW5jdGlvbigpCkBAIC01
MjQ2LDk0ICs0NjQ1LDYgQEAgdGVzdHMuc2V0dGVyV2l0aE1hdGNoZWRUeXBlID0gZnVuY3Rpb24o
KQogICAgIGApOwogfQogCi10ZXN0cy5vcGVyYXRvcldpdGhVbmluZmVycmFibGVUeXBlVmFyaWFi
bGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAo
YAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3IrPFQ+KEZvbyBhLCBGb28gYikKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgICAg
IHJlc3VsdC54ID0gYS54ICsgYi54OwotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlw
ZUVycm9yKTsKLX0KLQotdGVzdHMub3BlcmF0b3JXaXRob3V0VW5pbmZlcnJhYmxlVHlwZVZhcmlh
YmxlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
c3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgfQotICAgICAgICBGb28g
b3BlcmF0b3IrKEZvbyBhLCBGb28gYikKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIHJlc3Vs
dDsKLSAgICAgICAgICAgIHJlc3VsdC54ID0gYS54ICsgYi54OwotICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAg
ICAgICAgRm9vIGE7Ci0gICAgICAgICAgICBhLnggPSA2NDU7Ci0gICAgICAgICAgICBGb28gYjsK
LSAgICAgICAgICAgIGIueCA9IC0zNTsKLSAgICAgICAgICAgIHJldHVybiAoYSArIGIpLng7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDY0NSAtIDM1KTsKLX0KLQotdGVzdHMub3BlcmF0b3JDYXN0
V2l0aFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0Zh
aWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKLSAg
ICAgICAgICAgICAgICBpbnQgeDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG9wZXJhdG9y
PFQ+IEZvbyhpbnQgeCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBGb28gcmVzdWx0
OwotICAgICAgICAgICAgICAgIHJlc3VsdC54ID0geDsKLSAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3Rh
bmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhUeXBlVmFyaWFi
bGVJbmZlcnJlZEZyb21SZXR1cm5UeXBlID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnQgeDsKLSAg
ICAgICAgfQotICAgICAgICBwcm90b2NvbCBCYXJhYmxlIHsKLSAgICAgICAgICAgIHZvaWQgYmFy
KHRocmVhZCBCYXJhYmxlKiwgaW50KTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJl
YWQgZmxvYXQqIHJlc3VsdCwgaW50IHZhbHVlKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcmVz
dWx0ID0gZmxvYXQodmFsdWUpOwotICAgICAgICB9Ci0gICAgICAgIG9wZXJhdG9yPFQ6QmFyYWJs
ZT4gVChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICBUIHJlc3VsdDsKLSAgICAgICAg
ICAgIGJhcigmcmVzdWx0LCBmb28ueCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICB9Ci0gICAgICAgIGludCBmb28oKQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gZm9v
OwotICAgICAgICAgICAgZm9vLnggPSA3NTsKLSAgICAgICAgICAgIGZsb2F0IHggPSBmbG9hdChm
b28pOwotICAgICAgICAgICAgcmV0dXJuIGludCh4ICogMS41KTsKLSAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgMTEyKTsKLX0KLQogdGVzdHMuaW5jV3JvbmdBcmd1bWVudExlbmd0aCA9IGZ1bmN0aW9u
KCkKIHsKICAgICBjaGVja0ZhaWwoCkBAIC01ODIzLDcgKzUxMzQsNyBAQCB0ZXN0cy5hbmRlcldp
dGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5mb287CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5hbmRlcldpdGhXcm9u
Z051bWJlck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNTg5Nyw3ICs1MjA4LDcgQEAgdGVz
dHMuYW5kZXJXaXRoQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gKEB4
KS5mb287CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5wb2lu
dGVySW5kZXhHZXR0ZXIgPSBmdW5jdGlvbigpCkBAIC02MDgzLDcgKzUzOTQsNyBAQCB0ZXN0cy5p
bmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVy
biB4WzY2Nl07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5p
bmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHMgPSBmdW5jdGlvbigpCkBAIC02MTY4
LDcgKzU0NzksNyBAQCB0ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIChAeClbZmxvYXQoLTEpXTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAxMyk7CiB9CiAKIHRlc3RzLmRldmljZVB0clB0ciA9IGZ1bmN0aW9uKCkKQEAgLTYy
MDcsMzA2ICs1NTE4LDYgQEAgdGVzdHMuY29uc3RhbnRQdHJQdHIgPSBmdW5jdGlvbigpCiAgICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkls
bGVnYWwgcG9pbnRlciB0byBub24tcHJpbWl0aXZlIHR5cGU6IGludDMyKiBjb25zdGFudCogY29u
c3RhbnQiKSAhPSAtMSk7CiB9CiAKLXRlc3RzLnBvaW50ZXJJbmRleEdldHRlckluUHJvdG9jb2wg
PSBmdW5jdGlvbigpCi17Ci0gICAgZm9yIChsZXQgYWRkcmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFj
ZXMpIHsKLSAgICAgICAgY2hlY2tGYWlsKAotICAgICAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXSgke2FkZHJlc3NTcGFjZX0gRm9vKiwgdWludCk7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJh
dG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgYCksCi0gICAgICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJD
YW5ub3QgaGF2ZSBnZXR0ZXIgZm9yIHBvaW50ZXIgdHlwZSIpICE9IC0xKTsKLSAgICB9Ci19Ci0K
LXRlc3RzLmxvbmVJbmRleFNldHRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9v
IHsKLSAgICAgICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBv
cGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVy
YXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0g
ICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2Yo
IkV2ZXJ5IHNldHRlciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIiKSAhPSAtMSk7Ci19Ci0K
LXRlc3RzLm5vdExvbmVJbmRleFNldHRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAg
ZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBvcGVyYXRv
cltdKEZvbywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBp
bnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109
KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10ZXN0cy5p
bmRleFNldHRlcldpdGhNaXNtYXRjaGVkVHlwZUluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9j
b2wgRm9vIHsKLSAgICAgICAgICAgICAgICBmbG9hdCBvcGVyYXRvcltdKEZvbywgdWludCk7Ci0g
ICAgICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3Jb
XT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJTZXR0
ZXIgYW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUiKSAhPSAtMSk7Ci19Ci0KLXRl
c3RzLmluZGV4T3BlcmF0b3JXcm9uZ0FyZ3VtZW50TGVuZ3RoSW5Qcm90b2NvbCA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9w
ZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUHJvdG9j
b2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5vdCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlIikgIT0g
LTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQg
b3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNv
cnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAg
ICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIGludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFu
Y2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9m
IHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4T3BlcmF0b3JTZXR0ZXJXcm9u
Z0FyZ3VtZW50TGVuZ3RoSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwo
Ci0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAg
ICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPSgpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkg
eyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGlu
dCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJp
YWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVj
a0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28g
ewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28pOwotICAgICAgICAgICAgfQot
ICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJh
ciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIs
IHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBu
dW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAg
IGludCBvcGVyYXRvcltdPShGb28sIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBz
dHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJl
dHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7
IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2Yg
V1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJh
bWV0ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9y
W109KEZvbywgaW50LCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1
Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVy
biA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJl
dHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5
cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0
ZXJzIikgIT0gLTEpOwotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJQb2ludGVySW5Qcm90b2Nv
bCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChg
Ci0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQq
IG9wZXJhdG9yW109KHRocmVhZCBGb28qIHB0ciwgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShC
YXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFy
LCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJDYW5ub3QgaGF2
ZSBzZXR0ZXIgZm9yIHBvaW50ZXIgdHlwZSIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0
ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hl
Y2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9v
IHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShpbnQsIEZvbyk7Ci0gICAgICAgICAg
ICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1
aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJEaWQgbm90IGZpbmQg
ZnVuY3Rpb24gbmFtZWQgb3BlcmF0b3JbXT0gd2l0aCBhcmd1bWVudHMgRm9vLHVpbnQzMiIpICE9
IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTm9HZXR0ZXJPdmVybG9hZEZpeGVkSW5Q
cm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBG
b28gewotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCB1aW50KTsKLSAgICAgICAgICAg
IEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgc3Ry
dWN0IEJhciB7IH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0
MjsgfQotICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJh
cigpOyB9Ci0gICAgYCk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJXaXRoTm90aGluZ1dyb25nSW5Q
cm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0
aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICB9Ci0gICAgICAgIGludCBiYXI8VDpGb28+
KFQgeCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIHhbNDJdOwotICAgICAgICB9Ci0g
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRo
cmVhZCBCYXIqLCB1aW50KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIz
NDsKLSAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b28oKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEJhcigpKTsKLSAgICAgICAg
fQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJXaXRoV3JvbmdOdW1i
ZXJPZkFyZ3VtZW50c0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSgpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9y
JltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlu
dCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAg
ICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUHJvdG9jb2wncyB0eXBlIHZhcmlhYmxlIChGb28pIG5v
dCBtZW50aW9uZWQgaW4gc2lnbmF0dXJlIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50
KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3Vs
dDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFy
YW1ldGVycyBmb3Igb3BlcmF0b3ImW10iKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAg
ICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQsIHVpbnQp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAg
IHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJl
dHVybiAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51
bWJlciBvZiBwYXJhbWV0ZXJzIGZvciBvcGVyYXRvciZbXSIpICE9IC0xKTsKLX0KLQotdGVzdHMu
aW5kZXhBbmRlckRvZXNudFJldHVyblBvaW50ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3Rv
Y29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZv
bywgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAg
ICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJSZXR1
cm4gdHlwZSBvZiBhbmRlciBpcyBub3QgYSBwb2ludGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5p
bmRleEFuZGVyRG9lc250VGFrZVJlZmVyZW5jZUluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0g
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9j
b2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXShGb28gZm9v
LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAg
ICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlBhcmFt
ZXRlciB0byBhbmRlciBpcyBub3QgYSByZWZlcmVuY2UiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmlu
ZGV4QW5kZXJXaXRoQXJyYXlSZWZJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb29bXSBhcnJheSwgZmxvYXQgaW5kZXgpOwot
ICAgICAgICB9Ci0gICAgICAgIGludCBiYXI8VDpGb28+KHRocmVhZCBUW10geCkKLSAgICAgICAg
ewotICAgICAgICAgICAgcmV0dXJuIHhbMS41XTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3Qg
QmFyIHsgfQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyW10sIGZs
b2F0KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAg
ICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIGludCBmb28oKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBCYXIgeDsKLSAgICAgICAgICAgIHJldHVybiBiYXIoQHgpOwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAxMjM0KTsKLX0KLQogdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC02NTIyLDcg
KzU1MzMsNyBAQCB0ZXN0cy5hbmRSZXR1cm5lZEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuICpwdHI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDM1NCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDM1NCk7CiB9
CiAKIG9rVG9UZXN0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1R5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCmlu
ZGV4IDdjMjg3OTE4OTUzYTViMWQ1ZTM1ZTg1MGUzMzBmMzg5ZGY2ZTc2ZTguLjIxYTMzMTk1OGUx
MzRiZDk5NTgwM2JkYTgxZmNjY2MxZWZiNDRjNmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZS5qcwpAQCAtMjUsNyArMjUsNiBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBl
IGV4dGVuZHMgTm9kZSB7Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gW107IH0K
ICAgICBnZXQga2luZCgpIHsgcmV0dXJuIFR5cGU7IH0KICAgICBnZXQgaXNQdHIoKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIGdldCBpc0FycmF5KCkgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTM3LDE1
ICszNiw2IEBAIGNsYXNzIFR5cGUgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgaXNFbnVtKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2Nv
bCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgcmV0dXJuIHBy
b3RvY29sLmhhc0hlaXIodGhpcyk7Ci0gICAgfQotICAgIAotICAgIGdldCBpbnN0YW50aWF0ZWRU
eXBlKCkgeyByZXR1cm4gdGhpcy52aXNpdChuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCkpOyB9
Ci0gICAgCiAgICAgLy8gSGF2ZSB0byBjYWxsIHRoZXNlIG9uIHRoZSB1bmlmeU5vZGUuCiAgICAg
YXJndW1lbnRGb3JBbmRPdmVybG9hZChvcmlnaW4sIHZhbHVlKQogICAgIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCmluZGV4IDZjMGY5YzE3NGY1MzIzNTY0MWY0Y2Qz
MDJjYWI0YzNhYWIyN2MxNDMuLmQ3YjAwY2QyYzczZWIzYTVhODgyMzRiZjI5ZGMzYTZhYzdiNzFj
M2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwpAQCAtMjUsMjMg
KzI1LDIxIEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVEZWYgZXh0ZW5kcyBUeXBlIHsK
LSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKQorICAg
IGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZSkKICAgICB7CiAgICAgICAgIHN1cGVyKCk7
CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5h
bWU7Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7CiAgICAg
ICAgIHRoaXMuX3R5cGUgPSB0eXBlOwogICAgIH0KICAgICAKICAgICBnZXQgb3JpZ2luKCkgeyBy
ZXR1cm4gdGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1l
OyB9Ci0gICAgZ2V0IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRl
cnM7IH0KICAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7IH0KICAgICAKICAgICB0
b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSAr
ICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiA9ICIgKyB0aGlzLnR5cGU7CisgICAgICAg
IHJldHVybiAidHlwZWRlZiAiICsgdGhpcy5uYW1lICsgIiA9ICIgKyB0aGlzLnR5cGU7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVm
UmVzb2x2ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2
ZXIuanMKaW5kZXggYTgxZWFiNDJkOTQ4ZmNhM2U5MzBjNjg1N2E5NjRkZGNjZmNlZTU3Zi4uMDkx
Yjg0MzU0MmFjYTU5MWRmZjIyZDBhNjVhMzU0OWI4Y2NlMDFlMiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcwpAQCAtMzQsMjEgKzM0LDkg
QEAgY2xhc3MgVHlwZURlZlJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgdmlzaXRUeXBl
UmVmKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl92aXNpdGluZy5kb1Zpc2l0KG5vZGUsICgp
ID0+IHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1
bWVudHMpCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgICAg
ICAgICAgaWYgKG5vZGUudHlwZSBpbnN0YW5jZW9mIFR5cGVEZWYpIHsKLSAgICAgICAgICAgICAg
ICBsZXQgdW5pZmljYXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChub2RlLnR5
cGUudHlwZVBhcmFtZXRlcnMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IG5vZGUudHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiYXJndW1lbnQvcGFyYW1ldGVyIG1pc21hdGNoIChz
aG91bGQgaGF2ZSBiZWVuIGNhdWdodCBlYXJsaWVyKSIpOwotICAgICAgICAgICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgICAgICAgICBub2RlLnR5cGVBcmd1bWVudHNbaV0udW5pZnkodW5pZmljYXRpb25Db250ZXh0
LCBub2RlLnR5cGUudHlwZVBhcmFtZXRlcnNbaV0pOwotICAgICAgICAgICAgICAgIGxldCB2ZXJp
ZmljYXRpb25SZXN1bHQgPSB1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCF2ZXJpZmljYXRpb25SZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHJl
ZmVyZW5jZSB0byBhIHR5cGUgZGVmaW5pdGlvbiB2aW9sYXRlcyBwcm90b2NvbCBjb25zdHJhaW50
czogIiArIHZlcmlmaWNhdGlvblJlc3VsdC5yZWFzb24pOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIGxldCBuZXdUeXBlID0gbm9kZS50eXBlLnR5cGUuc3Vic3RpdHV0ZVRvVW5p
ZmljYXRpb24obm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQpOwot
ICAgICAgICAgICAgICAgIG5ld1R5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICAgICAgbm9k
ZS5zZXRUeXBlQW5kQXJndW1lbnRzKG5ld1R5cGUsIFtdKTsKKyAgICAgICAgICAgICAgICBub2Rl
LnR5cGUudmlzaXQodGhpcyk7CisgICAgICAgICAgICAgICAgbm9kZS5zZXRUeXBlKG5vZGUudHlw
ZS50eXBlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVBhcmFtZXRlclJld3JpdGVyLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmQwMzdjOTI3Mjc1MTYwZmM0NWViMmY5YTg2
NjkxNzc3MTE2YmEwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5q
cworKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgVHlwZVBhcmFtZXRl
clJld3JpdGVyIHsKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlLm9yaWdpbiwg
bm9kZS5uYW1lLCBub2RlLnR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpKTsKLSAgICB9Ci0gICAg
Ci0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcg
VHlwZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUucHJvdG9jb2wpOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJl
Zi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKaW5kZXggZjJi
MzIyZjNhZjZhNzMwODYxNDFlNTZkNjkzZWZjZTFjMzUxZGFmYy4uNGY3NDliNzQwODU4MjkzYTk3
ZWI0YTgxMzNjZWY3YmI4ZjA5YjA1YiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlUmVmLmpzCkBAIC0yNSw2OSArMjUsNTggQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlw
ZVJlZiBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFy
Z3VtZW50cykKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUpCiAgICAgewogICAgICAgICBz
dXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25h
bWUgPSBuYW1lOwogICAgICAgICB0aGlzLnR5cGUgPSBudWxsOwotICAgICAgICB0aGlzLl90eXBl
QXJndW1lbnRzID0gdHlwZUFyZ3VtZW50czsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIHdyYXAo
dHlwZSkKICAgICB7Ci0gICAgICAgIGlmICh0eXBlIGluc3RhbmNlb2YgVHlwZVJlZiAmJiAhdHlw
ZS50eXBlQXJndW1lbnRzKQorICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYpCiAg
ICAgICAgICAgICByZXR1cm4gdHlwZTsKICAgICAgICAgbGV0IG5hbWUgPSB0eXBlLm5hbWU7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgbmFtZSwgW10pOwor
ICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUpOwogICAg
ICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
ICAgIAotICAgIHN0YXRpYyBpbnN0YW50aWF0ZSh0eXBlLCB0eXBlQXJndW1lbnRzKQorICAgIHN0
YXRpYyBpbnN0YW50aWF0ZSh0eXBlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBU
eXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUsIHR5cGVBcmd1bWVudHMpOworICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSk7CiAgICAgICAg
IHJlc3VsdC50eXBlID0gdHlwZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgCiAg
ICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkg
eyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4g
dGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIAogICAgIGdldCB1bmlmeU5vZGUoKQogICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0
dXJuIHRoaXMudHlwZS51bmlmeU5vZGU7Ci0gICAgICAgIHJldHVybiB0aGlzOworICAgICAgICBy
ZXR1cm4gdGhpcy50eXBlLnVuaWZ5Tm9kZTsKICAgICB9CiAgICAgCiAgICAgcG9wdWxhdGVEZWZh
dWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFy
Z3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnBvcHVsYXRlRGVm
YXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5u
b3QgZ2V0IGRlZmF1bHQgdmFsdWUgb2YgYSB0eXBlIGluc3RhbnRpYXRpb24iKTsKKyAgICAgICAg
cmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7CiAg
ICAgfQogICAgIAogICAgIGdldCBzaXplKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBl
QXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZ2V0IHNpemUgb2YgYSB0eXBlIGluc3RhbnRp
YXRpb24iKTsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5zaXplOwogICAgIH0KICAgICAKICAg
ICBnZXQgaXNQcmltaXRpdmUoKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVu
dHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5pc1ByaW1pdGl2ZTsKLSAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgZGV0ZXJtaW5lIGlmIGFuIHVuaW5zdGFudGlh
dGVkIHR5cGUgaXMgcHJpbWl0aXZlOiAiICsgdGhpcyk7CisgICAgICAgIHJldHVybiB0aGlzLnR5
cGUuaXNQcmltaXRpdmU7CiAgICAgfQogICAgIAotICAgIHNldFR5cGVBbmRBcmd1bWVudHModHlw
ZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzZXRUeXBlKHR5cGUpCiAgICAgewogICAgICAgICB0aGlz
Ll9uYW1lID0gbnVsbDsKICAgICAgICAgdGhpcy50eXBlID0gdHlwZTsKLSAgICAgICAgdGhpcy5f
dHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHVuaWZ5SW1w
bCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQpAQCAtOTYsMTIgKzg1LDYgQEAgY2xhc3MgVHlw
ZVJlZiBleHRlbmRzIFR5cGUgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBp
ZiAoIXRoaXMudHlwZS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGUpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAodGhpcy50eXBlQXJndW1lbnRzLmxl
bmd0aCAhPSBvdGhlci50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnR5cGVBcmd1bWVudHMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzW2ldLnVuaWZ5
KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZUFyZ3VtZW50c1tpXSkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICAKQEAgLTEwOSw5ICs5Miw3IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsK
ICAgICB7CiAgICAgICAgIGlmICghdGhpcy5uYW1lKQogICAgICAgICAgICAgcmV0dXJuIHRoaXMu
dHlwZS50b1N0cmluZygpOwotICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lOwotICAgICAgICByZXR1cm4gdGhpcy5uYW1l
ICsgIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iOworICAgICAgICByZXR1cm4gdGhpcy5u
YW1lOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVZhcmlhYmxlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZh
cmlhYmxlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzIxOGE5NTlmNTFkMWVl
YjlkMDUxNGI5NTBkZWM5NjcyZmEwYjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJs
ZS5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVWYXJp
YWJsZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcHJvdG9j
b2wpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmln
aW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl9wcm90b2NvbCA9
IHByb3RvY29sOwotICAgIH0KLSAgICAKLSAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4gdGhpcy5f
b3JpZ2luOyB9Ci0gICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9Ci0gICAgZ2V0
IHByb3RvY29sKCkgeyByZXR1cm4gdGhpcy5fcHJvdG9jb2w7IH0KLSAgICAKLSAgICBnZXQgaXNQ
cmltaXRpdmUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3Byb3RvY29sICYmIHRoaXMu
X3Byb3RvY29sLmlzUHJpbWl0aXZlOwotICAgIH0KLSAgICAKLSAgICBnZXQgaXNVbmlmaWFibGUo
KSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgaW5oZXJpdHMocHJvdG9jb2wpCi0gICAgewot
ICAgICAgICBpZiAoIXByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9
OwotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3Vs
dDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgIiArIHRoaXMgKyAiIGRvZXMgbm90IGhh
dmUgYSBwcm90b2NvbCJ9OwotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbC5pbmhlcml0cyhw
cm90b2NvbCk7Ci0gICAgfQotICAgIAotICAgIHR5cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9u
Q29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAoIShvdGhlciBpbnN0YW5jZW9mIFR5
cGUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAKLSAgICAgICAgcmV0dXJu
IHRoaXMuX3R5cGVWYXJpYWJsZVVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsK
LSAgICB9Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyKTsKLSAgICB9Ci0gICAgCi0gICAgdmVyaWZ5QXNBcmd1bWVudCh1bmlmaWNh
dGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNv
bnRleHQuZmluZCh0aGlzKTsKLSAgICAgICAgCi0gICAgICAgIC8vIFRoZSB0aGluZyB3ZSBnZXQg
dW5pZmllZCB3aXRoIG11c3QgYmUgYSB0eXBlIHZhcmlhYmxlIHRoYXQgYWNjZXB0cyBhIGJyb2Fk
ZXIgc2V0IG9mCi0gICAgICAgIC8vIHRoaW5ncyB0aGFuIHdlIGRvLgotICAgICAgICBpZiAoIShy
ZWFsVGhpcyBpbnN0YW5jZW9mIFR5cGVWYXJpYWJsZSkpCi0gICAgICAgICAgICByZXR1cm4ge3Jl
c3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgYXJndW1lbnQgIiArIHRoaXMgKyAi
IGNhbm5vdCBiZSBwYXNzZWQgdG8gbm9uLXR5cGUtdmFyaWFibGUgcGFyYW1ldGVyIHR5cGUgIiAr
IHJlYWxUaGlzfTsKLSAgICAgICAgCi0gICAgICAgIGlmICghdGhpcy5wcm90b2NvbCkgewotICAg
ICAgICAgICAgaWYgKHJlYWxUaGlzLnByb3RvY29sKQotICAgICAgICAgICAgICAgIHJldHVybiB7
cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSB2YXJpYWJsZSB3aXRob3V0IHByb3RvY29sICIg
KyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIHBhcmFtZXRlciB0eXBlIHZhcmlhYmxlIHdp
dGggcHJvdG9jb2wgIiArIHJlYWxUaGlzLnByb3RvY29sfTsKLSAgICAgICAgICAgIHJldHVybiB7
cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9
IHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocmVhbFRoaXMucHJvdG9jb2wpOwotICAgICAgICBpZiAo
IXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNv
bjogIlByb3RvY29sICIgKyB0aGlzLnByb3RvY29sICsgIiBkb2VzIG5vdCBzdWJzdW1lIHByb3Rv
Y29sICIgKyByZWFsVGhpcy5wcm90b2NvbCArICIgKHBhc3NpbmcgdHlwZSAiICsgdGhpcyArICIg
dG8gdHlwZSAiICsgcmVhbFRoaXMgKyAiKTogIiArIHJlc3VsdC5yZWFzb259OwotICAgICAgICBy
ZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzUGFyYW1ldGVy
KHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5wcm90b2NvbCkK
LSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgbGV0IHJlYWxUaGlz
ID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBy
ZWFsVGhpcy5pbmhlcml0cyh0aGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVz
dWx0KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlICIg
KyByZWFsVGhpcyArICIgZG9lcyBub3QgaW5oZXJpdCBwcm90b2NvbCAiICsgdGhpcy5wcm90b2Nv
bCArICIgKHBhc3NpbmcgdHlwZSAiICsgcmVhbFRoaXMgKyAiIHRvIHR5cGUgIiArIHRoaXMgKyAi
KTogIiArIHJlc3VsdC5yZWFzb259OwotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0g
ICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLm5h
bWUgKyAodGhpcy5wcm90b2NvbCA/ICI6IiArIHRoaXMucHJvdG9jb2wubmFtZSA6ICIiKTsKLSAg
ICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVW
YXJpYWJsZVRyYWNrZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFy
aWFibGVUcmFja2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZTllMjlhYWUx
NDU0OTI3Y2QwZDUxMzljMDg1MjM5MWY4MzVmN2M3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVW
YXJpYWJsZVRyYWNrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNs
YXNzIFR5cGVWYXJpYWJsZVRyYWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICBjb25zdHJ1Y3Rv
cigpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl9zZXQgPSBuZXcgU2V0
KCk7Ci0gICAgfQotICAgIAotICAgIGdldCBzZXQoKSB7IHJldHVybiB0aGlzLl9zZXQ7IH0KLSAg
ICAKLSAgICBfY29uc2lkZXIodGhpbmcpCi0gICAgewotICAgICAgICBpZiAodGhpbmcuaXNVbmlm
aWFibGUpCi0gICAgICAgICAgICB0aGlzLl9zZXQuYWRkKHRoaW5nKTsKLSAgICB9Ci0gICAgCi0g
ICAgdmlzaXRUeXBlUmVmKG5vZGUpCi0gICAgewotICAgICAgICBpZiAobm9kZS50eXBlQXJndW1l
bnRzLmxlbmd0aCkgewotICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUu
dHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgdGhpcy5fY29uc2lkZXIo
bm9kZS50eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRWYXJpYWJsZVJlZihub2RlKQotICAg
IHsKLSAgICAgICAgdGhpcy5fY29uc2lkZXIobm9kZS52YXJpYWJsZSk7Ci0gICAgfQotfQotCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRl
eHQuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQu
anMKaW5kZXggMGExM2RlNDNkNTMyNmUxMzU3Yzg3Zjg4NTlkOWQ2MDE1ZTBjYWQ0Ny4uMGI1ZmM0
ZDA4NmI2NDYxZmZmOTk4OGMwOTdjZTcwYzc0ODFmMTRkNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcwpAQCAtMjUsOSArMjUs
OCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBVbmlmaWNhdGlvbkNvbnRleHQgewotICAgIGNv
bnN0cnVjdG9yKHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gbmV3IFNldCh0eXBlUGFyYW1ldGVycyk7CiAgICAg
ICAgIHRoaXMuX25leHRNYXAgPSBuZXcgTWFwKCk7CiAgICAgICAgIHRoaXMuX2V4dHJhTm9kZXMg
PSBuZXcgU2V0KCk7CiAgICAgfQpAQCAtNDUsMTAgKzQ0LDYgQEAgY2xhc3MgVW5pZmljYXRpb25D
b250ZXh0IHsKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB1bmlmeSBu
b24tdW5pZmlhYmxlIHRoaW5ncyAiICsgYSArICIgYW5kICIgKyBiKTsKICAgICAgICAgfQogICAg
ICAgICAKLSAgICAgICAgLy8gTWFrZSBzdXJlIHRoYXQgdHlwZSBwYXJhbWV0ZXJzIGRvbid0IGVu
ZCB1cCBiZWluZyByb290cy4KLSAgICAgICAgaWYgKGEuaXNVbmlmaWFibGUgJiYgYi5pc1VuaWZp
YWJsZSAmJiB0aGlzLl90eXBlUGFyYW1ldGVycy5oYXMoYikpCi0gICAgICAgICAgICBbYSwgYl0g
PSBbYiwgYV07Ci0gICAgICAgIAogICAgICAgICB0aGlzLl9uZXh0TWFwLnNldChhLCBiKTsKICAg
ICB9CiAgICAgCkBAIC04NCwxNSArNzksMTIgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsK
ICAgICAgICAgICAgIHJlc3VsdC5hZGQobm9kZSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQotICAgIAotICAgIHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFt
ZXRlcnM7IH0KKwogICAgICp0eXBlQXJndW1lbnRzKCkKICAgICB7CiAgICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiB0aGlzLm5vZGVzKSB7CiAgICAgICAgICAgICBpZiAoIXR5cGVBcmd1
bWVudC5pc1VuaWZpYWJsZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAg
IGlmICh0aGlzLl90eXBlUGFyYW1ldGVycy5oYXModHlwZUFyZ3VtZW50KSkKLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgIHlpZWxkIHR5cGVBcmd1bWVudDsKICAgICAgICAg
fQogICAgIH0KQEAgLTExMSwyOCArMTAzLDkgQEAgY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsK
ICAgICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKICAgICAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1l
dGVyIG9mIHRoaXMuX3R5cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0g
dHlwZVBhcmFtZXRlci52ZXJpZnlBc1BhcmFtZXRlcih0aGlzKTsKLSAgICAgICAgICAgIGlmICgh
cmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9
Ci0gICAgICAgIGxldCBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMgPSAwOwotICAgICAgICBsZXQg
YXJndW1lbnRTZXQgPSBuZXcgU2V0KCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBv
ZiB0aGlzLnR5cGVBcmd1bWVudHMoKSkgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVB
cmd1bWVudC52ZXJpZnlBc0FyZ3VtZW50KHRoaXMpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQu
cmVzdWx0KQotICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgICAgICBpZiAo
dHlwZUFyZ3VtZW50LmlzTGl0ZXJhbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIGFyZ3VtZW50U2V0LmFkZCh0aGlzLmZpbmQodHlwZUFyZ3VtZW50KSk7Ci0gICAgICAg
ICAgICBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMrKzsKLSAgICAgICAgfQotICAgICAgICBpZiAo
YXJndW1lbnRTZXQuc2l6ZSA9PSBudW1UeXBlVmFyaWFibGVBcmd1bWVudHMpCi0gICAgICAgICAg
ICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwg
cmVhc29uOiAiVHlwZSB2YXJpYWJsZXMgdXNlZCBhcyBhcmd1bWVudHMgZ290IHVuaWZpZWQgd2l0
aCBlYWNoIG90aGVyIn07CisgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKICAgICB9Ci0g
ICAgCisKICAgICBnZXQgY29udmVyc2lvbkNvc3QoKQogICAgIHsKICAgICAgICAgbGV0IHJlc3Vs
dCA9IDA7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9y
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcwppbmRleCA0YmYw
NTMxM2UyODU3ZDcxZWZlNTEzZWUxZTM1ZjA1MGRlZjUzMzZkLi40NjZlZTc3MDU1ZGRkYmViMTI3
Njc1MDA4NzBmYTM2Yjc0NDI4Mzk2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9WaXNpdG9yLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zp
c2l0b3IuanMKQEAgLTM0LDE3ICszNCwxMCBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICB2aXNpdEZ1
bmMobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKTsKLSAg
ICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAg
ICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgcGFy
YW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0
aGlzKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAg
ewotICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRG
dW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7
CkBAIC02MSwxMiArNTQsNiBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy52aXNpdEZ1
bmMobm9kZSk7CiAgICAgfQogICAgIAotICAgIHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUp
Ci0gICAgewotICAgICAgICB0aGlzLnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbm9kZS5mdW5j
LnZpc2l0SW1wbGVtZW50YXRpb25EYXRhKG5vZGUuaW1wbGVtZW50YXRpb25EYXRhLCB0aGlzKTsK
LSAgICB9Ci0gICAgCiAgICAgdmlzaXRCbG9jayhub2RlKQogICAgIHsKICAgICAgICAgZm9yIChs
ZXQgc3RhdGVtZW50IG9mIG5vZGUuc3RhdGVtZW50cykKQEAgLTc5LDYyICs2NiwyNyBAQCBjbGFz
cyBWaXNpdG9yIHsKICAgICAgICAgICAgIGV4cHJlc3Npb24udmlzaXQodGhpcyk7CiAgICAgfQog
ICAgIAotICAgIHZpc2l0UHJvdG9jb2xSZWYobm9kZSkKLSAgICB7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwcm90b2Nv
bCBvZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICBwcm90b2NvbC52aXNpdCh0aGlzKTsKLSAg
ICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykKLSAgICAgICAgICAg
IHNpZ25hdHVyZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5v
ZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJn
dW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0KICAg
ICAKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5
cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TmF0aXZlVHlwZUluc3Rh
bmNlKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7CiAgICAgICAg
IGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCiAgICAgICAgICAg
ICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0VHlwZURl
Zihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5
cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAg
ICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKICAgICB2aXNpdFN0cnVj
dFR5cGUobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9k
ZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7
CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQogICAgICAgICAgICAgZmll
bGQudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUp
Ci0gICAgewotICAgICAgICBOb2RlLnZpc2l0KG5vZGUucHJvdG9jb2wsIHRoaXMpOwotICAgIH0K
LSAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAg
ICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGaWVsZChu
b2RlKQogICAgIHsKICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtMzM2LDE4ICsy
ODgsOCBAQCBjbGFzcyBWaXNpdG9yIHsKICAgICAKICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5v
ZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJn
dW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgICAgICBm
b3IgKGxldCBhcmd1bWVudCBvZiBub2RlLmFyZ3VtZW50TGlzdCkKICAgICAgICAgICAgIE5vZGUu
dmlzaXQoYXJndW1lbnQsIHRoaXMpOwotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9
IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1
bWVudHMpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCBhcmd1bWVudCBvZiBhY3R1YWxUeXBl
QXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICBhcmd1bWVudC52aXNpdCh0aGlzKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfTsKLSAgICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2Rl
LmFjdHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICBoYW5kbGVUeXBlQXJndW1lbnRzKG5vZGUu
aW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9k
ZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmV0
dXJuVHlwZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXN1bHRUeXBlLCB0aGlz
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZCBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dTTC5tZApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZDNiNjY1Njc4MjZhNTFkZDZjNzU0ZDRlOWIyNGQ3NTc4OTcyYmIzZC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9XU0wubWQKKysrIC9kZXYvbnVsbApAQCAtMSw0NzkgKzAsMCBAQAotIyBX
ZWJHUFUgU2hhZGluZyBMYW5ndWFnZQotCi1XZWJHUFUgU2hhZGluZyBMYW5ndWFnZSwgb3IgV1NM
IGZvciBzaG9ydCwgaXMgYSB0eXBlLXNhZmUgbG93LW92ZXJoZWFkIHByb2dyYW1taW5nIGxhbmd1
YWdlIGZvciBHUFVzIChncmFwaGljcyBwcm9jZXNzaW5nIHVuaXRzKS4gVGhpcyBkb2N1bWVudCBl
eHBsYWlucyBob3cgV1NMIHdvcmtzLgotCi0jIEdvYWxzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBh
Y2hpZXZlIHRoZSBmb2xsb3dpbmcgZ29hbHM6Ci0KLS0gV1NMIHNob3VsZCBmZWVsICpmYW1pbGlh
ciogdG8gQysrIHByb2dyYW1tZXJzLgotLSBXU0wgc2hvdWxkIGJlIGhhdmUgYSAqc291bmQqIGFu
ZCAqZGVjaWRhYmxlKiB0eXBlIHN5c3RlbS4KLS0gV1NMIHNob3VsZCBub3QgcGVybWl0ICpvdXQt
b2YtYm91bmRzKiBtZW1vcnkgYWNjZXNzZXMuCi0tIFdTTCBzaG91bGQgYmUgaGF2ZSAqbG93IG92
ZXJoZWFkKi4KLQotVGhlIGNvbWJpbmF0aW9uIG9mIGEgc291bmQgdHlwZSBzeXN0ZW0gYW5kIGJv
dW5kcyBjaGVja2luZyBtYWtlcyBXU0wgYSBzZWN1cmUgc2hhZGVyIGxhbmd1YWdlOiB0aGUgbGFu
Z3VhZ2UgaXRzZWxmIGlzIHJlc3BvbnNpYmxlIGZvciBpc29sYXRpbmcgdGhlIHNoYWRlciBmcm9t
IHRoZSByZXN0IG9mIHRoZSBHUFUuCi0KLSMgRmFtaWxpYXIgU3ludGF4Ci0KLVdTTCBpcyBiYXNl
ZCBvbiBDIHN5bnRheCwgYnV0IGV4Y2x1ZGVzIGZlYXR1cmVzIHRoYXQgYXJlIGVpdGhlciB1bm5l
Y2Vzc2FyeSwgaW5zZWN1cmUsIG9yIHJlcGxhY2VkIGJ5IG90aGVyIFdTTCBmZWF0dXJlczoKLQot
LSBObyBzdHJpbmdzLgotLSBObyBgcmVnaXN0ZXJgLCBgdm9sYXRpbGVgLCBgY29uc3RgLCBgcmVz
dHJpY3RgLCBvciBgZXh0ZXJuYCBrZXl3b3Jkcy4KLS0gTm8gdW5pb25zLiBgdW5pb25gIGlzIG5v
dCBhIGtleXdvcmQuCi0tIE5vIGdvdG8gb3IgbGFiZWxzLiBgZ290b2AgaXMgbm90IGEga2V5d29y
ZC4KLS0gTm8gYCpgIHBvaW50ZXJzLgotLSBFZmZlY3RsZXNzIGV4cHJlc3Npb25zIGFyZSBub3Qg
c3RhdGVtZW50cyAoYGEgKyBiO2AgaXMgYSBwYXJzZSBlcnJvcikuCi0tIE5vIHVuZGVmaW5lZCB2
YWx1ZXMgKGBpbnQgeDtgIGluaXRpYWxpemVzIHggdG8gMCkuCi0tIE5vIGF1dG9tYXRpYyB0eXBl
IGNvbnZlcnNpb25zIChgaW50IHg7IHVpbnQgeSA9IHg7YCBpcyBhIHR5cGUgZXJyb3IpLgotLSBO
byByZWN1cnNpb24uCi0tIE5vIGR5bmFtaWMgbWVtb3J5IGFsbG9jYXRpb24uCi0tIE5vIG1vZHVs
YXJpdHkuIFRoZSB3aG9sZSBwcm9ncmFtIGlzIG9uZSBmaWxlLgotCi1PbiB0b3Agb2YgdGhpcyBi
YXJlIEMtbGlrZSBmb3VuZGF0aW9uLCBXU0wgYWRkcyBzZWN1cmUgdmVyc2lvbnMgb2YgZmFtaWxp
YXIgQysrIGZlYXR1cmVzOgotCi0tIFR5cGUtc2FmZSBwb2ludGVycyAoYF5gKSBhbmQgYXJyYXkg
cmVmZXJlbmNlcyAoYFtdYCkuCi0tIEdlbmVyaWNzIHRvIHJlcGxhY2UgdGVtcGxhdGVzLgotLSBP
cGVyYXRvciBvdmVybG9hZGluZy4gQnVpbHQtaW4gb3BlcmF0aW9ucyBsaWtlIGBpbnQgb3BlcmF0
b3IrKGludCwgaW50KWAgYXJlIGp1c3QgbmF0aXZlIGZ1bmN0aW9ucy4KLS0gQ2FzdCBvdmVybG9h
ZGluZy4gQnVpbHQtaW4gY2FzdHMgbGlrZSBgb3BlcmF0b3IgaW50KGRvdWJsZSlgIGFyZSBqdXN0
IG5hdGl2ZSBmdW5jdGlvbnMuCi0tIEdldHRlcnMgYW5kIHNldHRlcnMuIFByb3BlcnR5IGFjY2Vz
c2VzIGxpa2UgYHZlYy54YCByZXNvbHZlIHRvIG92ZXJsb2FkcyBsaWtlIGBmbG9hdCBvcGVyYXRv
ci5maWVsZChmbG9hdDQpYC4KLS0gQXJyYXkgYWNjZXNzIG92ZXJsb2FkaW5nLiBBcnJheSBhY2Nl
c3NlcyBsaWtlIGB2ZWNbMF1gIHJlc29sdmUgdG8gdmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0
b3JbXShmbG9hdDQsIHVpbnQpYC4KLQotSW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucywgV1NMIGlz
IHNob3duIGJ5IGV4YW1wbGUgc3RhcnRpbmcgd2l0aCBpdHMgQy1saWtlIGZvdW5kYXRpb24gYW5k
IHRoZW4gYnVpbGRpbmcgdXAgdG8gaW5jbHVkZSBtb3JlIHNvcGhpc3RpY2F0ZWQgZmVhdHVyZXMg
bGlrZSBnZW5lcmljcy4KLQotIyMgQ29tbW9uIHN1YnNldCBvZiBDIGFuZCBXU0wKLQotVGhlIGZv
bGxvd2luZyBpcyBhIHZhbGlkIFdTTCBmdW5jdGlvbiBkZWZpbml0aW9uOgotCi0gICAgaW50IGZv
byhpbnQgeCwgaW50IHksIGJvb2wgcCkKLSAgICB7Ci0gICAgICAgIGlmIChwKQotICAgICAgICAg
ICAgcmV0dXJuIHggLSB5OwotICAgICAgICByZXR1cm4geCArIHk7Ci0gICAgfQotCi1XU0wgc291
cmNlIGZpbGVzIGJlaGF2ZSBzaW1pbGFybHkgdG8gQyBzb3VyY2UgZmlsZXM6Ci0KLS0gVG9wLWxl
dmVsIHN0YXRlbWVudHMgbXVzdCBiZSB0eXBlIG9yIGZ1bmN0aW9uIGRlZmluaXRpb25zLgotLSBX
U0wgdXNlcyBzdHJ1Y3R1cmVkIEMgY29udHJvbCBmbG93IGNvbnN0cnVjdHMsIGxpa2UgYGlmYCwg
YHdoaWxlYCwgYGZvcmAsIGBkb2AsIGBicmVha2AsIGFuZCBgY29udGludWVgLgotLSBXU0wgdXNl
cyBDLWxpa2UgYHN3aXRjaGAgc3RhdGVtZW50cywgYnV0IGRvZXMgbm90IGFsbG93IHRoZW0gdG8g
b3ZlcmxhcCBvdGhlciBjb250cm9sIGZsb3cgKGkuZS4gbm8gW0R1ZmYncyBkZXZpY2VdKGh0dHBz
Oi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0R1ZmYlMjdzX2RldmljZSkpLgotLSBXU0wgYWxsb3dz
IHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBhbnl3aGVyZSBDKysgd291bGQuCi0KLVdTTCB0eXBlcyBk
aWZmZXIgZnJvbSBDIHR5cGVzLiBGb3IgZXhhbXBsZSwgdGhpcyBpcyBhbiBhcnJheSBvZiA0MiBp
bnRlZ2VycyBpbiBXU0w6Ci0KLSAgICBpbnRbNDJdIGFycmF5OwotCi1UaGUgdHlwZSBuZXZlciBz
dXJyb3VuZHMgdGhlIHZhcmlhYmxlLCBsaWtlIGl0IHdvdWxkIGluIEMgKGBpbnQgYXJyYXlbNDJd
YCkuCi0KLSMjIFR5cGUtc2FmZSBwb2ludGVycwotCi1XU0wgaW5jbHVkZXMgYSBzZWN1cmUgcG9p
bnRlciB0eXBlLiBUbyBlbXBoYXNpemUgdGhhdCBpdCBpcyBub3QgbGlrZSB0aGUgQyBwb2ludGVy
LCBXU0wgdXNlcyBgXmAgZm9yIHRoZSBwb2ludGVyIHR5cGUgYW5kIGZvciBkZXJlZmVyZW5jZS4g
TGlrZSBpbiBDLCBgJmAgaXMgdXNlZCB0byB0YWtlIHRoZSBhZGRyZXNzIG9mIGEgdmFsdWUuICBC
ZWNhdXNlIEdQVXMgaGF2ZSBkaWZmZXJlbnQga2luZHMgb2YgbWVtb3JpZXMsIHBvaW50ZXJzIG11
c3QgYmUgYW5ub3RhdGVkIHdpdGggYW4gYWRkcmVzcyBzcGFjZSAob25lIG9mIGB0aHJlYWRgLCBg
dGhyZWFkZ3JvdXBgLCBgZGV2aWNlYCwgb3IgYGNvbnN0YW50YCkuIEZvciBleGFtcGxlOgotCi0g
ICAgdm9pZCBiYXIodGhyZWFkIGludF4gcCkKLSAgICB7Ci0gICAgICAgIF5wICs9IDQyOwotICAg
IH0KLSAgICBpbnQgZm9vKCkKLSAgICB7Ci0gICAgICAgIGludCB4ID0gMjQ7Ci0gICAgICAgIGJh
cigmeCk7Ci0gICAgICAgIHJldHVybiB4OyAvLyBSZXR1cm5zIDY2LgotICAgIH0KLQotUG9pbnRl
cnMgY2FuIGJlIGBudWxsYC4gRWFjaCBwb2ludGVyIGFjY2VzcyBpcyBudWxsLWNoZWNrZWQsIHRo
b3VnaCBtb3N0IHBvaW50ZXIgYWNjZXNzZXMgKGxpa2UgdGhpcyBvbmUpIHdpbGwgbm90IGhhdmUg
YSBudWxsIGNoZWNrLiBXU0wgcGxhY2VzIGVub3VnaCBjb25zdHJhaW50cyBvbiB0aGUgcHJvZ3Jh
bW1lciB0aGF0IHByb2dyYW1zIGFyZSBlYXN5IGZvciB0aGUgY29tcGlsZXIgdG8gYW5hbHl6ZS4g
VGhlIGNvbXBpbGVyIHdpbGwgYWx3YXlzIGtub3cgdGhhdCBgXnAgKz0gNDJgIGFkZHMgYDQyYCB0
byBgeGAgaW4gdGhpcyBjYXNlLgotCi1XU0wgcG9pbnRlcnMgZG8gbm90IHN1cHBvcnQgY2FzdGlu
ZyBvciBwb2ludGVyIGFyaXRobWV0aWMuIEFsbCBtZW1vcnkgYWNjZXNzaWJsZSB0byBhIHNoYWRl
ciBvdXRsaXZlcyB0aGUgc2hhZGVyLiBUaGlzIGlzIGV2ZW4gdHJ1ZSBvZiBsb2NhbCB2YXJpYWJs
ZXMuIFRoaXMgaXMgcG9zc2libGUgYmVjYXVzZSBXU0wgZG9lcyBub3Qgc3VwcG9ydCByZWN1cnNp
b24uIFRoZXJlZm9yZSwgbG9jYWwgdmFyaWFibGVzIHNpbXBseSBnZXQgZ2xvYmFsIHN0b3JhZ2Uu
IExvY2FsIHZhcmlhYmxlcyBhcmUgaW5pdGlhbGl6ZWQgYXQgdGhlIHBvaW50IG9mIHRoZWlyIGRl
Y2xhcmF0aW9uLiBIZW5jZSwgdGhlIGZvbGxvd2luZyBpcyBhIHZhbGlkIHByb2dyYW0sIHdoaWNo
IHdpbGwgZXhoaWJpdCB0aGUgc2FtZSBiZWhhdmlvciBvbiBldmVyeSBXU0wgaW1wbGVtZW50YXRp
b246Ci0KLSAgICB0aHJlYWQgaW50XiBmb28oKQotICAgIHsKLSAgICAgICAgaW50IHggPSA0MjsK
LSAgICAgICAgcmV0dXJuICZ4OwotICAgIH0KLSAgICBpbnQgYmFyKCkKLSAgICB7Ci0gICAgICAg
IHRocmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAgICAgdGhyZWFkIGludF4gcSA9IGZvbygpOwot
ICAgICAgICBecCA9IDUzOwotICAgICAgICByZXR1cm4gXnE7IC8vIFJldHVybnMgNTMuCi0gICAg
fQotICAgIGludCBiYXooKQotICAgIHsKLSAgICAgICAgdGhyZWFkIGludF4gcCA9IGZvbygpOwot
ICAgICAgICBecCA9IDUzOwotICAgICAgICBmb28oKTsKLSAgICAgICAgcmV0dXJuIF5wOyAvLyBS
ZXR1cm5zIDQyLgotICAgIH0KLQotSXQncyBwb3NzaWJsZSB0byBwb2ludCB0byBhbnkga2luZCBv
ZiBkYXRhIHR5cGUuIEZvciBleGFtcGxlLCBgdGhyZWFkIGRvdWJsZVs0Ml1eYCBpcyBhIHBvaW50
ZXIgdG8gYW4gYXJyYXkgb2YgNDIgZG91Ymxlcy4KLQotIyMgVHlwZS1zYWZlIGFycmF5IHJlZmVy
ZW5jZXMKLQotV1NMIHN1cHBvcnRzIGFycmF5IHJlZmVyZW5jZXMgdGhhdCBjYXJyeSBhIHBvaW50
ZXIgdG8gdGhlIGJhc2Ugb2YgdGhlIGFycmF5IGFuZCB0aGUgYXJyYXkncyBsZW5ndGguIFRoaXMg
YWxsb3dzIGFjY2Vzc2VzIHRvIHRoZSBhcnJheSB0byBiZSBib3VuZHMtY2hlY2tlZC4KLQotQW4g
YXJyYXkgcmVmZXJlbmNlIGNhbiBiZSBjcmVhdGVkIHVzaW5nIHRoZSBgQGAgb3BlcmF0b3I6Ci0K
LSAgICBpbnRbNDJdIGFycmF5OwotICAgIHRocmVhZCBpbnRbXSBhcnJheVJlZiA9IEBhcnJheTsK
LQotQm90aCBhcnJheXMgYW5kIGFycmF5IHJlZmVyZW5jZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFu
ZCBzdG9yZWQgdG8gdXNpbmcgYG9wZXJhdG9yW11gOgotCi0gICAgaW50IHggPSBhcnJheVtpXTsK
LSAgICBpbnQgeSA9IGFycmF5UmVmW2ldOwotCi1Cb3RoIGFycmF5cyBhbmQgYXJyYXkgcmVmZXJl
bmNlcyBrbm93IHRoZWlyIGxlbmd0aDoKLQotICAgIHVpbnQgYXJyYXlMZW5ndGggPSBhcnJheS5s
ZW5ndGg7Ci0gICAgdWludCBhcnJheVJlZkxlbmd0aCA9IGFycmF5UmVmLmxlbmd0aDsKLQotR2l2
ZW4gYW4gYXJyYXkgb3IgYXJyYXkgcmVmZXJlbmNlLCBpdCdzIHBvc3NpYmxlIHRvIGdldCBhIHBv
aW50ZXIgdG8gb25lIG9mIGl0cyBlbGVtZW50czoKLQotICAgIHRocmVhZCBpbnReIHB0cjEgPSAm
YXJyYXlbaV07Ci0gICAgdGhyZWFkIGludF4gcHRyMiA9ICZhcnJheVJlZltpXTsKLQotQSBwb2lu
dGVyIGlzIGxpa2UgYW4gYXJyYXkgcmVmZXJlbmNlIHdpdGggb25lIGVsZW1lbnQuIEl0J3MgcG9z
c2libGUgdG8gcGVyZm9ybSB0aGlzIGNvbnZlcnNpb246Ci0KLSAgICB0aHJlYWQgaW50W10gcmVm
ID0gQHB0cjE7Ci0gICAgcmVmWzBdIC8vIEVxdWl2YWxlbnQgdG8gXnB0cjEuCi0gICAgcmVmLmxl
bmd0aCAvLyAwIGlmIHB0cjEgd2FzIG51bGwsIDEgaWYgcHRyMSB3YXMgbm90IG51bGwuCi0KLVNp
bWlsYXJseSwgdXNpbmcgYEBgIG9uIGEgbm9uLXBvaW50ZXIgdmFsdWUgcmVzdWx0cyBpbiBhIHJl
ZmVyZW5jZSBvZiBsZW5ndGggMToKLQotICAgIGludCB4OwotICAgIHRocmVhZCBpbnRbXSByZWYg
PSBAeDsKLSAgICByZWZbMF0gLy8gQWxpYXNlcyB4LgotICAgIHJlZi5sZW5ndGggLy8gUmV0dXJu
cyAxLgotCi1JdCdzIG5vdCBsZWdhbCB0byB1c2UgYEBgIG9uIGFuIGFycmF5IHJlZmVyZW5jZToK
LQotICAgIHRocmVhZCBpbnRbXSByZWY7Ci0gICAgdGhyZWFkIGludFtdW10gcmVmZXJlZiA9IEBy
ZWY7IC8vIEVycm9yIQotCi0jIyBHZW5lcmljcwotCi1XU0wgc3VwcG9ydHMgZ2VuZXJpYyB0eXBl
cyB1c2luZyBhIHNpbXBsZSBzeW50YXguIFdTTCdzIGdlbmVyaWMgYXJlIGRlc2lnbmVkIHRvIGlu
dGVncmF0ZSBjbGVhbmx5IGludG8gdGhlIGNvbXBpbGVyIHBpcGVsaW5lOgotCi0tIEdlbmVyaWNz
IGhhdmUgdW5hbWJpZ3VvdXMgc3ludGF4LgotLSBHZW5lcmljIGZ1bmN0aW9ucyBjYW4gYmUgdHlw
ZSBjaGVja2VkIGJlZm9yZSB0aGV5IGFyZSBpbnN0YW50aWF0ZWQuCi0KLVNlbWFudGljIGVycm9y
cyBpbnNpZGUgZ2VuZXJpYyBmdW5jdGlvbnMgc2hvdyB1cCBvbmNlIHJlZ2FyZGxlc3Mgb2YgdGhl
IG51bWJlciBvZiB0aW1lcyB0aGUgZ2VuZXJpYyBmdW5jdGlvbiBpcyBpbnN0YW50aWF0ZWQuCi0K
LVRoaXMgaXMgYSBzaW1wbGUgZ2VuZXJpYyBmdW5jdGlvbjoKLQotICAgIFQgaWRlbnRpdHk8VD4o
VCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIFQgdG1wID0gdmFsdWU7Ci0gICAgICAgIHJldHVybiB0
bXA7Ci0gICAgfQotCi1XU0wgYWxzbyBzdXBwb3J0cyBzdHJ1Y3RzLCB3aGljaCBhcmUgYWxzbyBh
bGxvd2VkIHRvIGJlIGdlbmVyaWM6Ci0KLSAgICAvLyBOb3QgZ2VuZXJpYy4KLSAgICBzdHJ1Y3Qg
Rm9vIHsKLSAgICAgICAgaW50IHg7Ci0gICAgICAgIGRvdWJsZSB5OwotICAgIH0KLSAgICAvLyBH
ZW5lcmljLgotICAgIHN0cnVjdCBCYXI8VCwgVT4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFUg
eTsKLSAgICB9Ci0KLVR5cGUgcGFyYW1ldGVycyBjYW4gYWxzbyBiZSBjb25zdGFudCBleHByZXNz
aW9ucy4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGluaXRpYWxpemVBcnJheTxULCB1aW50IGxl
bmd0aD4odGhyZWFkIFRbbGVuZ3RoXV4gYXJyYXksIFQgdmFsdWUpCi0gICAgewotICAgICAgICBm
b3IgKHVpbnQgaSA9IGxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICheYXJyYXkpW2ldID0gdmFs
dWU7Ci0gICAgfQotCi1Db25zdGFudCBleHByZXNzaW9ucyBwYXNzZWQgYXMgdHlwZSBhcmd1bWVu
dHMgbXVzdCBvYmV5IGEgdmVyeSBuYXJyb3cgZGVmaW5pdGlvbiBvZiBjb25zdGFudG5lc3MuIE9u
bHkgbGl0ZXJhbHMgYW5kIHJlZmVyZW5jZXMgdG8gb3RoZXIgY29uc3RhbnQgcGFyYW1ldGVycyBx
dWFsaWZ5LgotCi1XU0wgaXMgZ3VhcmFudGVlZCB0byBjb21waWxlIGdlbmVyaWNzIGJ5IGluc3Rh
bnRpYXRpb24uIFRoaXMgaXMgb2JzZXJ2YWJsZSwgc2luY2UgZnVuY3Rpb25zIGNhbiByZXR1cm4g
cG9pbnRlcnMgdG8gdGhlaXIgbG9jYWxzLiBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgdGhpcyBwaGVu
b21lbm9uOgotCi0gICAgdGhyZWFkIGludF4gYWxsb2NhdGU8dWludD4oKQotICAgIHsKLSAgICAg
ICAgaW50IHg7Ci0gICAgICAgIHJldHVybiAmeDsKLSAgICB9Ci0KLVRoZSBgYWxsb2NhdGVgIGZ1
bmN0aW9uIHdpbGwgcmV0dXJuIGEgZGlmZmVyZW50IHBvaW50ZXIgZm9yIGVhY2ggdW5zaWduZWQg
aW50ZWdlciBjb25zdGFudCBwYXNzZWQgYXMgYSB0eXBlIHBhcmFtZXRlci4gVGhpcyBhbGxvY2F0
aW9uIGlzIGNvbXBsZXRlbHkgc3RhdGljLCBzaW5jZSB0aGUgYHVpbnRgIHBhcmFtZXRlciBtdXN0
IGJlIGdpdmVuIGEgY29tcGlsZS10aW1lIGNvbnN0YW50LgotCi1XU0wncyBgdHlwZWRlZmAgdXNl
cyBhIHNsaWdodGx5IGRpZmZlcmVudCBzeW50YXggdGhhbiBDLiBGb3IgZXhhbXBsZToKLQotICAg
IHN0cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAgICAgVCByZWFsOwotICAgICAgICBUIGltYWc7Ci0g
ICAgfQotICAgIHR5cGVkZWYgRkNvbXBsZXggPSBDb21wbGV4PGZsb2F0PjsKLQotYHR5cGVkZWZg
IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBnZW5lcmljIHR5cGVzOgotCi0gICAgc3RydWN0IEZvbzxU
LCBVPiB7Ci0gICAgICAgIFQgeDsKLSAgICAgICAgVSB5OwotICAgIH0KLSAgICB0eXBlZGVmIEJh
cjxUPiA9IEZvbzxULCBUPjsKLQotIyMgUHJvdG9jb2xzCi0KLVByb3RvY29scyBlbmFibGUgZ2Vu
ZXJpYyBmdW5jdGlvbnMgdG8gd29yayB3aXRoIGRhdGEgb2YgZ2VuZXJpYyB0eXBlLiBCZWNhdXNl
IGEgZnVuY3Rpb24gbXVzdCBiZSB0eXBlLWNoZWNrYWJsZSBiZWZvcmUgaW5zdGFudGlhdGlvbiwg
dGhlIGZvbGxvd2luZyB3b3VsZCBub3QgYmUgbGVnYWw6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAu
Li4gfQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7IC4uLiB9Ci0gICAgCi0gICAgVCBmb288VD4o
VCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBiYXIodmFsdWUpOyAvLyBFcnJvciEKLSAg
ICB9Ci0KLVRoZSBjYWxsIHRvIGBiYXJgIGRvZXNuJ3QgdHlwZSBjaGVjayBiZWNhdXNlIHRoZSBj
b21waWxlciBjYW5ub3Qga25vdyB0aGF0IGBmb288VD5gIHdpbGwgYmUgaW5zdGFudGlhdGVkIHdp
dGggYFQgPSBpbnRgIG9yIGBUID0gZG91YmxlYC4gUHJvdG9jb2xzIGVuYWJsZSB0aGUgcHJvZ3Jh
bW1lciB0byB0ZWxsIHRoZSBjb21waWxlciB3aGF0IHRvIGV4cGVjdCBvZiBhIHR5cGUgdmFyaWFi
bGU6Ci0KLSAgICBpbnQgYmFyKGludCkgeyAuLi4gfQotICAgIGRvdWJsZSBiYXIoZG91YmxlKSB7
IC4uLiB9Ci0gICAgCi0gICAgcHJvdG9jb2wgU3VwcG9ydHNCYXIgewotICAgICAgICBTdXBwb3J0
c0JhciBiYXIoU3VwcG9ydHNCYXIpOwotICAgIH0KLSAgICAKLSAgICBUIGZvbzxUOlN1cHBvcnRz
QmFyPihUIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGJhcih2YWx1ZSk7Ci0gICAgfQot
ICAgIAotICAgIGludCB4ID0gZm9vKDQyKTsKLSAgICBkb3VibGUgeSA9IGZvbyg0LjIpOwotCi1Q
cm90b2NvbHMgaGF2ZSBhdXRvbWF0aWMgcmVsYXRpb25zaGlwcyB0byBvbmUgYW5vdGhlciBiYXNl
ZCBvbiB3aGF0IGZ1bmN0aW9ucyB0aGV5IGNvbnRhaW46Ci0KLSAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICB2b2lkIGZvbyhGb28pOwotICAgIH0KLSAgICBwcm90b2NvbCBCYXIgewotICAgICAg
ICB2b2lkIGZvbyhCYXIpOwotICAgICAgICB2b2lkIGJhcihCYXIpOwotICAgIH0KLSAgICB2b2lk
IGZ1eno8VDpGb28+KFQgeCkgeyAuLi4gfQotICAgIHZvaWQgYnV6ejxUOkJhcj4oVCB4KQotICAg
IHsKLSAgICAgICAgZnV6eih4KTsgLy8gT0ssIGJlY2F1c2UgQmFyIGlzIG1vcmUgc3BlY2lmaWMg
dGhhbiBGb28uICAgIAotICAgIH0KLQotUHJvdG9jb2xzIGNhbiBhbHNvIG1peCBvdGhlciBwcm90
b2NvbHMgaW4gZXhwbGljaXRseS4gTGlrZSBpbiB0aGUgZXhhbXBsZSBhYm92ZSwgdGhlIGV4YW1w
bGUgYmVsb3cgcmVsaWVzIG9uIHRoZSBmYWN0IHRoYXQgYEJhcmAgaXMgYSBtb3JlIHNwZWNpZmlj
IHByb3RvY29sIHRoYW4gYEZvb2AuIEhvd2V2ZXIsIHRoaXMgZXhhbXBsZSBkZWNsYXJlcyB0aGlz
IGV4cGxpY2l0bHkgKGBwcm90b2NvbCBCYXIgOiBGb29gKSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24g
dGhlIGxhbmd1YWdlIHRvIGluZmVyIGl0OgotCi0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAg
dm9pZCBmb28oRm9vKTsKLSAgICB9Ci0gICAgcHJvdG9jb2wgQmFyIDogRm9vIHsKLSAgICAgICAg
dm9pZCBiYXIoQmFyKTsKLSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0K
LSAgICB2b2lkIGJ1eno8VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9L
LCBiZWNhdXNlIEJhciBpcyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLSMj
IE92ZXJsb2FkaW5nCi0KLVdTTCBzdXBwb3J0cyBvdmVybG9hZGluZyB2ZXJ5IHNpbWlsYXJseSB0
byBob3cgQysrIGRvZXMgaXQuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBmb28oaW50KTsgICAg
Ly8gMQotICAgIHZvaWQgZm9vKGRvdWJsZSk7IC8vIDIKLSAgICAKLSAgICBpbnQgeDsKLSAgICBm
b28oeCk7IC8vIGNhbGxzIDEKLSAgICAKLSAgICBkb3VibGUgeTsKLSAgICBmb28oeSk7IC8vIGNh
bGxzIDIKLQotV1NMIGF1dG9tYXRpY2FsbHkgc2VsZWN0cyB0aGUgbW9zdCBzcGVjaWZpYyBvdmVy
bG9hZCBpZiBnaXZlbiBtdWx0aXBsZSBjaG9pY2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQg
Zm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lkIGZvbyhkb3VibGUpOyAvLyAyCi0gICAgdm9pZCBm
b288VD4oVCk7ICAgLy8gMwotCi0gICAgZm9vKDEpOyAvLyBjYWxscyAxCi0gICAgZm9vKDEuKTsg
Ly8gY2FsbHMgMgotICAgIGZvbygxdSk7IC8vIGNhbGxzIDMKLQotR2VuZXJpYyBmdW5jdGlvbnMg
bGlrZSBgZm9vPFQ+YCBjYW4gYmUgY2FsbGVkIHdpdGggb3Igd2l0aG91dCBhbGwgb2YgdGhlaXIg
dHlwZSBhcmd1bWVudHMgc3VwcGxpZWQuIElmIHRoZXkgYXJlIG5vdCBzdXBwbGllZCwgdGhlIGZ1
bmN0aW9uIHBhcnRpY2lwYXRlcyBpbiBvdmVybG9hZCByZXNvbHV0aW9uIGxpa2UgYW55IG90aGVy
IGZ1bmN0aW9uIHdvdWxkLiBGdW5jdGlvbnMgYXJlIHJhbmtlZCBieSBob3cgc3BlY2lmaWMgdGhl
eSBhcmU7IGZ1bmN0aW9uIEEgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIGZ1bmN0aW9uIEIgaWYgQSdz
IHBhcmFtZXRlciB0eXBlcyBjYW4gYmUgdXNlZCBhcyBhcmd1bWVudCB0eXBlcyBmb3IgYSBjYWxs
IHRvIEIgYnV0IG5vdCB2aWNlLXZlcnNhLiBJZiBvbmUgZnVuY3Rpb25zIG1vcmUgc3BlY2lmaWMg
dGhhbiBhbGwgb3RoZXJzIHRoZW4gdGhpcyBmdW5jdGlvbiBpcyBzZWxlY3RlZCwgb3RoZXJ3aXNl
IGEgdHlwZSBlcnJvciBpcyBpc3N1ZWQuCi0KLSMjIE9wZXJhdG9yIE92ZXJsb2FkaW5nCi0KLU1h
bnkgV1NMIG9wZXJhdGlvbnMgZGVzdWdhciB0byBjYWxscyB0byBmdW5jdGlvbnMuIFRob3NlIGZ1
bmN0aW9ucyBhcmUgY2FsbGVkICpvcGVyYXRvciBvdmVybG9hZHMqIGFuZCBhcmUgZGVjbGFyZWQg
dXNpbmcgc3ludGF4IHRoYXQgaW52b2x2ZXMgdGhlIGtleXdvcmQgYG9wZXJhdG9yYC4gVGhlIGZv
bGxvd2luZyBvcGVyYXRpb25zIHJlc3VsdCBpbiBjYWxscyB0byBvcGVyYXRvciBvdmVybG9hZHM6
Ci0KLS0gTnVtZXJpY2FsIG9wZXJhdG9ycyAoYCtgLCBgLWAsIGAqYCwgYC9gLCBldGMuKS4KLS0g
SW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgKGArK2AsIGAtLWApLgotLSBDYXN0aW5nIChgdHlwZSh2
YWx1ZSlgKS4KLS0gQWNjZXNzaW5nIHZhbHVlcyBpbiBhcnJheXMgKGBbXWAsIGBbXT1gLCBgJltd
YCkuCi0tIEFjY2Vzc2luZyBmaWVsZHMgKGAuZmllbGRgLCBgLmZpZWxkPWAsIGAmLmZpZWxkYCku
Ci0KLVdTTCdzIG9wZXJhdG9yIG92ZXJsb2FkaW5nIGlzIGRlc2lnbmVkIHRvIHN5bnRoZXNpemUg
bWFueSBvcGVyYXRvcnMgZm9yIHlvdToKLQotLSBSZWFkLW1vZGlmeS13cml0ZSBvcGVyYXRvcnMg
bGlrZSBgKz1gIGFyZSBkZXN1Z2FyZWQgdG8gYSBsb2FkIG9mIHRoZSBsb2FkIHZhbHVlLCB0aGUg
dW5kZXJseWluZyBvcGVyYXRvciAobGlrZSBgK2ApLCBhbmQgYSBzdG9yZSBvZiB0aGUgbmV3IHZh
bHVlLiBJdCdzIG5vdCBwb3NzaWJsZSB0byBvdmVycmlkZSBgKz1gLCBgLT1gLCBldGMuCi0tIGB4
KytgIGFuZCBgKyt4YCBib3RoIGNhbGwgdGhlIHNhbWUgb3BlcmF0b3Igb3ZlcmxvYWQuIGBvcGVy
YXRvcisrYCB0YWtlcyB0aGUgb2xkIHZhbHVlIGFuZCByZXR1cm5zIGEgbmV3IG9uZTsgZm9yIGV4
YW1wbGUgdGhlIGJ1aWx0LWluIGArK2AgZm9yIGBpbnRgIGNvdWxkIGJlIHdyaXR0ZW4gYXM6IGBp
bnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsgMTsgfWAuCi0tIGBvcGVy
YXRvcj09YCBjYW4gYmUgb3ZlcmxvYWRlZCwgYnV0IGAhPWAgaXMgYXV0b21hdGljYWxseSBzeW50
aGVzaXplZCBhbmQgY2Fubm90IGJlIG92ZXJsb2FkZWQuCi0KLVNvbWUgb3BlcmF0b3JzIGFuZCBv
dmVybG9hZHMgYXJlIHJlc3RyaWN0ZWQ6Ci0KLS0gYCFgLCBgJiZgLCBhbmQgYHx8YCBhcmUgYnVp
bHQtaW4gb3BlcmF0aW9ucyBvbiB0aGUgYGJvb2xgIHR5cGUuCi0tIFNlbGYtY2FzdHMgKGBUKFQp
YCkgYXJlIGFsd2F5cyB0aGUgaWRlbnRpdHkgZnVuY3Rpb24uCi0tIENhc3RzIHdpdGggbm8gYXJn
dW1lbnRzIChgVCgpYCkgYWx3YXlzIHJldHVybiB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhhdCB0
eXBlLiBFdmVyeSB0eXBlIGhhcyBhIGRlZmF1bHQgdmFsdWUgKGAwYCwgYG51bGxgLCBvciB0aGUg
ZXF1aXZhbGVudCBmb3IgZWFjaCBmaWVsZCkuCi0KLUNhc3Qgb3ZlcmxvYWRpbmcgYWxsb3dzIGZv
ciBzdXBwb3J0aW5nIGNvbnZlcnNpb25zIGJldHdlZW4gdHlwZXMgYW5kIGZvciBjcmVhdGluZyBj
b25zdHJ1Y3RvcnMgZm9yIGN1c3RvbSB0eXBlcy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIGNhc3Qg
b3ZlcmxvYWRpbmcgYmVpbmcgdXNlZCB0byBjcmVhdGUgYSBjb25zdHJ1Y3RvcjoKLQotICAgIHN0
cnVjdCBDb21wbGV4PFQ+IHsKLSAgICAgICAgVCByZWFsOwotICAgICAgICBUIGltYWc7Ci0gICAg
fQotICAgIG9wZXJhdG9yPFQ+IENvbXBsZXg8VD4oVCByZWFsLCBUIGltYWcpCi0gICAgewotICAg
ICAgICBDb21wbGV4PFQ+IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LnJlYWwgPSByZWFsOwotICAg
ICAgICByZXN1bHQuaW1hZyA9IGltYWc7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQot
ICAgIAotICAgIENvbXBsZXg8ZmxvYXQ+IGkgPSBDb21wbGV4PGZsb2F0PigwLCAxKTsKLQotV1NM
IHN1cHBvcnRzIGFjY2Vzc29yIG92ZXJsb2FkaW5nIGFzIHBhcnQgb2YgdGhlIG9wZXJhdG9yIG92
ZXJsb2FkaW5nIHN5bnRheC4gVGhpcyBnaXZlcyB0aGUgcHJvZ3JhbW1lciBicm9hZCBwb3dlcnMu
IEZvciBleGFtcGxlOgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAg
ICBpbnQgeTsKLSAgICB9Ci0gICAgaW50IG9wZXJhdG9yLnN1bShGb28gZm9vKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7Ci0gICAgfQotCi1JdCdzIHBvc3NpYmxlIHRvIHNh
eSBgZm9vLnN1bWAgdG8gY2FsbCB0aGUgYG9wZXJhdG9yLnN1bWAgZnVuY3Rpb24uIEJvdGggZ2V0
dGVycyBhbmQgc2V0dGVycyBjYW4gYmUgcHJvdmlkZWQ6Ci0KLSAgICBzdHJ1Y3QgRm9vIHsKLSAg
ICAgICAgaW50IHZhbHVlOwotICAgIH0KLSAgICBkb3VibGUgb3BlcmF0b3IuZG91YmxlVmFsdWUo
Rm9vIHZhbHVlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGRvdWJsZSh2YWx1ZS52YWx1ZSk7Ci0g
ICAgfQotICAgIEZvbyBvcGVyYXRvci5kb3VibGVWYWx1ZT0oRm9vIHZhbHVlLCBkb3VibGUgZG91
YmxlVmFsdWUpCi0gICAgewotICAgICAgICB2YWx1ZS52YWx1ZSA9IGludChkb3VibGVWYWx1ZSk7
Ci0gICAgICAgIHJldHVybiB2YWx1ZTsKLSAgICB9Ci0KLVByb3ZpZGluZyBib3RoIGdldHRlciBh
bmQgc2V0dGVyIG92ZXJsb2FkcyBtYWtlcyBgZG91YmxlVmFsdWVgIGJlaGF2ZSBhbG1vc3QgYXMg
aWYgaXQgd2FzIGEgZmllbGQgb2YgYEZvb2AuIEZvciBleGFtcGxlLCBpdCdzIHBvc3NpYmxlIHRv
IHNheToKLQotICAgIEZvbyBmb287Ci0gICAgZm9vLnZhbHVlID0gNDI7Ci0gICAgZm9vLmRvdWJs
ZVZhbHVlICo9IDI7IC8vIE5vdyBmb28udmFsdWUgaXMgODQKLQotSXQncyBhbHNvIHBvc3NpYmxl
IHRvIHByb3ZpZGUgYW4gYWRkcmVzcy1nZXR0aW5nIG92ZXJsb2FkIGNhbGxlZCBhbiAqYW5kZXIq
OgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAgdGhy
ZWFkIGludF4gb3BlcmF0b3ImLnZhbHVlQWxpYXModGhyZWFkIEZvb14gZm9vKQotICAgIHsKLSAg
ICAgICAgcmV0dXJuICZmb28tPnZhbHVlOwotICAgIH0KLQotUHJvdmlkaW5nIGp1c3QgdGhpcyBv
dmVybG9hZCBmb3IgYSBwb2ludGVyIHR5cGUgaW4gZXZlcnkgYWRkcmVzcyBzcGFjZSBnaXZlcyB0
aGUgc2FtZSBwb3dlciBhcyBvdmVybG9hZGluZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzLiBBZGRpdGlv
bmFsbHksIGl0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIGAmZm9vLnZhbHVlQWxpYXNgLgotCi1UaGUg
c2FtZSBvdmVybG9hZGluZyBwb3dlciBpcyBwcm92aWRlZCBmb3IgYXJyYXkgYWNjZXNzZXMuIEZv
ciBleGFtcGxlOgotCi0gICAgc3RydWN0IFZlY3RvcjxUPiB7Ci0gICAgICAgIFQgeDsKLSAgICAg
ICAgVCB5OwotICAgIH0KLSAgICB0aHJlYWQgVF4gb3BlcmF0b3ImW10odGhyZWFkIFReIHB0ciwg
dWludCBpbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBpbmRleCA/ICZwdHItPnkgOiAmcHRy
LT54OwotICAgIH0KLQotQWx0ZXJuYXRpdmVseSwgaXQncyBwb3NzaWJsZSB0byBvdmVybG9hZCBn
ZXR0ZXJzIGFuZCBzZXR0ZXJzIChgb3BlcmF0b3JbXWAgYW5kIGBvcGVyYXRvcltdPWApLgotCi0j
IE1hcHBpbmcgb2YgQVBJIGNvbmNlcHRzCi0KLVdTTCBpcyBkZXNpZ25lZCB0byBiZSB1c2VmdWwg
YXMgYm90aCBhIGdyYXBoaWNzIHNoYWRpbmcgbGFuZ3VhZ2UgYW5kIGFzIGEgY29tcHV0YXRpb24g
bGFuZ3VhZ2UuIEhvd2V2ZXIsIHRoZXNlIHR3byBlbnZpcm9ubWVudHMgaGF2ZQotc2xpZ2h0bHkg
ZGlmZmVyZW50IHNlbWFudGljcy4KLQotV2hlbiB1c2luZyBXU0wgYXMgYSBncmFwaGljcyBzaGFk
aW5nIGxhbmd1YWdlLCB0aGVyZSBpcyBhIGRpc3RpbmN0aW9uIGJldHdlZW4gKmVudHJ5LXBvaW50
cyogYW5kICpub24tZW50cnktcG9pbnRzKi4gRW50cnkgcG9pbnRzIGFyZSB0b3AtbGV2ZWwgZnVu
Y3Rpb25zIHdoaWNoIGhhdmUgZWl0aGVyIHRoZSBgdmVydGV4YCBvciBgZnJhZ21lbnRgIGtleXdv
cmQgaW4gZnJvbnQgb2YgdGhlaXIgZGVjbGFyYXRpb24uIEVudHJ5IHBvaW50cyBtYXkgbm90IGJl
IGZvcndhcmQgZGVjbGFyZWQuIEFuIGVudHJ5IHBvaW50IGFubm90YXRlZCB3aXRoIHRoZSBgdmVy
dGV4YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBhcyBhIGZyYWdtZW50IHNoYWRlciwgYW5kIGFu
IGVudHJ5IHBvaW50IGFubm90YXRlZCB3aXRoIHRoZSBgZnJhZ21lbnRgIGtleXdvcmQgbWF5IG5v
dCBiZSB1c2VkIGFzIGEgdmVydGV4IHNoYWRlci4gTm8gYXJndW1lbnQgbm9yIHJldHVybiB2YWx1
ZSBvZiBhbiBlbnRyeSBwb2ludCBtYXkgYmUgYSBwb2ludGVyLiBFbnRyeSBwb2ludHMgbXVzdCBu
b3QgYWNjZXB0IHR5cGUgYXJndW1lbnRzIChhbHNvIGtub3duIGFzICJnZW5lcmljcyIpLgotCi0j
IyBWZXJ0ZXggZW50cnkgcG9pbnRzCi0KLVdlYkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIFdT
TCB2ZXJ0ZXggc2hhZGVyIGluIGZvdXIgd2F5czoKLQotLSBBdHRyaWJ1dGVzCi0tIEJ1ZmZlcmVk
IGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBsZXJzCi0KLUVhY2ggb2YgdGhlc2UgQVBJIG9i
amVjdHMgaXMgcmVmZXJyZWQgdG8gYnkgbmFtZSBmcm9tIHRoZSBBUEkuIFZhcmlhYmxlcyBpbiBX
U0wgYXJlIG5vdCBhbm5vdGF0ZWQgd2l0aCBleHRyYSBBUEktdmlzaWJsZSBuYW1lcyAobGlrZSB0
aGV5IGFyZSBpbiBzb21lIG90aGVyIGdyYXBoaWNzIEFQSXMpLgotCi1WYXJpYWJsZXMgYXJlIHBh
c3NlZCB0byB2ZXJ0ZXggc2hhZGVycyBhcyBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9p
bnQuIEVhY2ggYnVmZmVyIGlzIHJlcHJlc2VudGVkIGFzIGFuIGFyZ3VtZW50IHdpdGggYW4gYXJy
YXkgcmVmZXJlbmNlIHR5cGUgKHVzaW5nIHRoZSBgW11gIHN5bnRheCkuIFRleHR1cmVzIGFuZCBz
YW1wbGVycyBhcmUgcmVwcmVzZW50ZWQgYnkgYXJndW1lbnRzIHdpdGggdGhlIGB0ZXh0dXJlYCBh
bmQgYHNhbXBsZXJgIHR5cGVzLCByZXNwZWN0aXZlbHkuIEFsbCBvdGhlciBub24tYnVpbHRpbiBh
cmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkgcG9pbnQgYXJlIGltcGxpZWQgdG8gYmUgYXR0cmli
dXRlcy4KLQotU29tZSBhcmd1bWVudHMgYXJlIHJlY29nbml6ZWQgYnkgdGhlIGNvbXBpbGVyIGZy
b20gdGhlaXIgbmFtZSBhbmQgdHlwZS4gVGhlc2UgYXJndW1lbnRzIHByb3ZpZGUgYnVpbHQtaW4g
ZnVuY3Rpb25hbGl0eSBpbmhlcmVudCBpbiB0aGUgZ3JhcGhpY3MgcGlwZWxpbmUuIEZvciBleGFt
cGxlLCBhbiBhcmd1bWVudCBvZiB0aGUgZm9ybSBgaW50IHdzbF92ZXJ0ZXhJRGAgcmVmZXJzIHRv
IHRoZSBJRCBvZiB0aGUgY3VycmVudCB2ZXJ0ZXgsIGFuZCBpcyBub3QgcmVjb2duaXplZCBhcyBh
biBhdHRyaWJ1dGUuIEFsbCBub24tYnVpbHRpbiBhcmd1bWVudHMgdG8gYSB2ZXJ0ZXggZW50cnkg
cG9pbnQgbXVzdCBiZSBhc3NvY2lhdGVkIHdpdGggYW4gQVBJIG9iamVjdCB3aGVuZXZlciBhbnkg
ZHJhdyBjYWxsIHVzaW5nIHRoZSB2ZXJ0ZXggZW50cnkgcG9pbnQgaXMgaW52b2tlZC4gT3RoZXJ3
aXNlLCB0aGUgZHJhdyBjYWxsIHdpbGwgZmFpbC4KLQotVGhlIG9ubHkgd2F5IHRvIHBhc3MgZGF0
YSBiZXR3ZWVuIHN1Y2Nlc3NpdmUgc2hhZGVyIHN0YWdlcyB3aXRoaW4gYSBzaW5nbGUgZHJhdyBj
YWxsIGlzIGJ5IHJldHVybiB2YWx1ZS4gQW4gZW50cnkgcG9pbnQgbXVzdCBpbmRpY2F0ZSB0aGF0
IGl0IHJldHVybnMgYSBjb2xsZWN0aW9uIG9mIHZhbHVlcyBjb250YWluZWQgd2l0aGluIGEgc3Ry
dWN0dXJlLiBFdmVyeSB2YXJpYWJsZSBpbnNpZGUgdGhpcyBzdHJ1Y3R1cmUsIHJlY3Vyc2l2ZWx5
LCBpcyBwYXNzZWQgdG8gdGhlIG5leHQgc3RhZ2UgaW4gdGhlIGdyYXBoaWNzIHBpcGVsaW5lLiBN
ZW1iZXJzIG9mIHRoaXMgc3RydWN0IG1heSBhbHNvIGJlIG91dHB1dCBidWlsdC1pbiB2YXJpYWJs
ZXMuIEZvciBleGFtcGxlLCBhIHZlcnRleCBlbnRyeSBwb2ludCBtYXkgcmV0dXJuIGEgc3RydWN0
IHdoaWNoIGNvbnRhaW5zIGEgbWVtYmVyIGBmbG9hdDQgd3NsX1Bvc2l0aW9uYCwgYW5kIHRoaXMg
dmFyaWFibGUgd2lsbCByZXByZXNlbnQgdGhlIHJhc3Rlcml6ZWQgcG9zaXRpb24gb2YgdGhlIHZl
cnRleC4gQnVmZmVycyAoYXMgZGVzY3JpYmVkIGJ5IFdTTCBhcnJheSByZWZlcmVuY2VzKSwgdGV4
dHVyZXMsIGFuZCBzYW1wbGVycyBtdXN0IG5vdCBiZSBwcmVzZW50IGluIHRoaXMgcmV0dXJuZWQg
c3RydWN0LiBCdWlsdC1pbiB2YXJpYWJsZXMgbXVzdCBuZXZlciBhcHBlYXIgdHdpY2UgaW5zaWRl
IHRoZSByZXR1cm5lZCBzdHJ1Y3R1cmUuCi0KLSMjIEZyYWdtZW50IGVudHJ5IHBvaW50cwotCi1G
cmFnbWVudCBlbnRyeSBwb2ludHMgbWF5IGFjY2VwdCBvbmUgYXJndW1lbnQgd2l0aCB0aGUgdHlw
ZSB0aGF0IHRoZSBwcmV2aW91cyBzaGFkZXIgc3RhZ2UgcmV0dXJuZWQuIFRoZSBhcmd1bWVudCBu
YW1lIGZvciB0aGlzIGFyZ3VtZW50IG11c3QgYmUgYHN0YWdlSW5gLiBJbiBhZGRpdGlvbiB0byB0
aGlzIGFyZ3VtZW50LCBmcmFnbWVudCBlbnRyeSBwb2ludHMgbWF5IGFjY2VwdCBidWZmZXJzLCB0
ZXh0dXJlcywgYW5kIHNhbXBsZXJzIGFzIGFyZ3VtZW50cyBpbiB0aGUgc2FtZSB3YXkgdGhhdCB2
ZXJ0ZXggZW50cnkgcG9pbnRzIGFjY2VwdCB0aGVtLiBGcmFnbWVudCBlbnRyeSBwb2ludHMgYWxz
byBtdXN0IHJldHVybiBhIHN0cnVjdCwgYW5kIGFsbCBtZW1iZXJzIG9mIHRoaXMgc3RydWN0IG11
c3QgYmUgYnVpbHQtaW4gdmFyaWFibGVzLiBUaGUgc2V0IG9mIHJlY29nbml6ZWQgYnVpbHQtaW4g
dmFyaWFibGVzIHdoaWNoIG1heSBiZSBhY2NlcHRlZCBvciByZXR1cm5lZCBmcm9tIGFuIGVudHJ5
IHBvaW50IGlzIGRpZmZlcmVudCBiZXR3ZWVuIGFsbCB0eXBlcyBvZiBlbnRyeSBwb2ludHMuCi0K
LUZvciBleGFtcGxlLCB0aGlzIHdvdWxkIGJlIGEgdmFsaWQgZ3JhcGhpY3MgcHJvZ3JhbToKLQot
ICAgIHN0cnVjdCBWZXJ0ZXhJbnB1dCB7Ci0gICAgICAgIGZsb2F0MiBwb3NpdGlvbjsKLSAgICAg
ICAgZmxvYXQzIGNvbG9yOwotICAgIH0KLSAgICAKLSAgICBzdHJ1Y3QgVmVydGV4T3V0cHV0IHsK
LSAgICAgICAgZmxvYXQ0IHdzbF9Qb3NpdGlvbjsKLSAgICAgICAgZmxvYXQzIGNvbG9yOwotICAg
IH0KLSAgICAKLSAgICBzdHJ1Y3QgRnJhZ21lbnRPdXRwdXQgewotICAgICAgICBmbG9hdDQgd3Ns
X0NvbG9yOwotICAgIH0KLSAgICAKLSAgICB2ZXJ0ZXggVmVydGV4T3V0cHV0IHZlcnRleFNoYWRl
cihWZXJ0ZXhJbnB1dCB2ZXJ0ZXhJbnB1dCkgewotICAgICAgICBWZXJ0ZXhPdXRwdXQgcmVzdWx0
OwotICAgICAgICByZXN1bHQud3NsX1Bvc2l0aW9uID0gZmxvYXQ0KHZlcnRleElucHV0LnBvc2l0
aW9uLCAwLiwgMS4pOwotICAgICAgICByZXN1bHQuY29sb3IgPSB2ZXJ0ZXhJbnB1dC5jb2xvcjsK
LSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgZnJhZ21lbnQgRnJhZ21l
bnRPdXRwdXQgZnJhZ21lbnRTaGFkZXIoVmVydGV4T3V0cHV0IHN0YWdlSW4pIHsKLSAgICAgICAg
RnJhZ21lbnRPdXRwdXQgcmVzdWx0OwotICAgICAgICByZXN1bHQud3NsX0NvbG9yID0gZmxvYXQ0
KHN0YWdlSW4uY29sb3IsIDEuKTsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0KLSMj
IENvbXB1dGUgZW50cnkgcG9pbnRzCi0KLVdlYkdQVSdzIEFQSSBwYXNzZXMgZGF0YSB0byBhIGNv
bXB1dGUgc2hhZGVyIGluIHRocmVlIHdheXM6Ci0KLS0gQnVmZmVyZWQgZGF0YQotLSBUZXh0dXJl
IGRhdGEKLS0gU2FtcGxlcnMKLQotQ29tcHV0ZSBlbnRyeSBwb2ludHMgc3RhcnQgd2l0aCB0aGUg
a2V5d29yZCBgY29tcHV0ZWAuIFRoZSByZXR1cm4gdHlwZSBmb3IgYSBjb21wdXRlIGVudHJ5IHBv
aW50IG11c3QgYmUgYHZvaWRgLiBFYWNoIGJ1ZmZlciBpcyByZXByZXNlbnRlZCBhcyBhbiBhcmd1
bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0eXBlICh1c2luZyB0aGUgYFtdYCBzeW50YXgp
LiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFyZ3VtZW50cyB3aXRo
IHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0eXBlcywgcmVzcGVjdGl2ZWx5LiBDb21wdXRl
IGVudHJ5IHBvaW50cyBtYXkgYWxzbyBhY2NlcHQgYnVpbHQtaW4gdmFyaWFibGVzIGFzIGFyZ3Vt
ZW50cy4gQXJndW1lbnRzIG9mIGFueSBvdGhlciB0eXBlIGFyZSBkaXNhbGxvd2VkLiBBcmd1bWVu
dHMgbWF5IG5vdCB1c2UgdGhlIGB0aHJlYWRncm91cGAgbWVtb3J5IHNwYWNlLgotCi0jIEVycm9y
IGhhbmRsaW5nCi0KLUVycm9ycyBtYXkgb2NjdXIgZHVyaW5nIHNoYWRlciBwcm9jZXNzaW5nLiBG
b3IgZXhhbXBsZSwgdGhlIHNoYWRlciBtYXkgYXR0ZW1wdCB0byBkZXJlZmVyZW5jZSBhIGBudWxs
YCBhcnJheSByZWZlcmVuY2UuIElmIHRoaXMgb2NjdXJzLCB0aGUgc2hhZGVyIHN0YWdlIGltbWVk
aWF0ZWx5IGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuIFRoZSBlbnRyeSBwb2ludCBpbW1lZGlhdGVs
eSByZXR1cm5zIGEgc3RydWN0IHdpdGggYWxsIGZpZWxkcyBzZXQgdG8gMC4gQWZ0ZXIgdGhpcyBl
dmVudCwgc3Vic2VxdWVudCBzaGFkZXIgc3RhZ2VzIHdpbGwgcHJvY2VlZCBhcyBpZiB0aGVyZSB3
YXMgbm8gcHJvYmxlbS4KLQotQnVmZmVyIGFuZCB0ZXh0dXJlIHJlYWRzIGFuZCB3cml0ZXMgYmVm
b3JlIHRoZSBlcnJvciBhbGwgY29tcGxldGUsIGFuZCBoYXZlIHRoZSBzYW1lIHNlbWFudGljcyBh
cyBpZiBubyBlcnJvciBoYWQgb2NjdXJyZWQuIEJ1ZmZlciBhbmQgdGV4dHVyZSByZWFkcyBhbmQg
d3JpdGVzIGFmdGVyIHRoZSBlcnJvciBkbyBub3Qgb2NjdXIuCi0KLSMgU3VtbWFyeQotCi1XU0wg
aXMgYSB0eXBlLXNhZmUgbGFuZ3VhZ2UgYmFzZWQgb24gQyBzeW50YXguIEl0IGVsaW1pbmF0ZXMg
c29tZSBDIGZlYXR1cmVzLCBsaWtlIHVuaW9ucyBhbmQgcG9pbnRlciBjYXN0cywgYnV0IGFkZHMg
b3RoZXIgbW9kZXJuIGZlYXR1cmVzIGluIHRoZWlyIHBsYWNlLCBsaWtlIGdlbmVyaWNzIGFuZCBv
dmVybG9hZGluZy4KLQotIyBBZGRpdGlvbmFsIExpbWl0YXRpb25zCi0KLVRoZSBmb2xsb3dpbmcg
YWRkaXRpb25hbCBsaW1pdGF0aW9ucyBtYXkgYmUgcGxhY2VkIG9uIGEgV1NMIHByb2dyYW06Ci0K
LS0gYGRldmljZWAsIGBjb25zdGFudGAsIGFuZCBgdGhyZWFkZ3JvdXBgIHBvaW50ZXJzIGNhbm5v
dCBwb2ludCB0byBkYXRhIHRoYXQgbWF5IGhhdmUgcG9pbnRlcnMgaW4gaXQuIFRoaXMgc2FmZXR5
IGNoZWNrIGlzIG5vdCBkb25lIGFzIHBhcnQgb2YgdGhlIG5vcm1hbCB0eXBlIHN5c3RlbSBjaGVj
a3MuIEl0J3MgcGVyZm9ybWVkIG9ubHkgYWZ0ZXIgaW5zdGFudGlhdGlvbi4KLS0gUG9pbnRlcnMg
YW5kIGFycmF5IHJlZmVyZW5jZXMgKGNvbGxlY3RpdmVseSwgKnJlZmVyZW5jZXMqKSBtYXkgYmUg
cmVzdHJpY3RlZCB0byBzdXBwb3J0IGNvbXBpbGluZyB0byBTUElSLVYgKmxvZ2ljYWwgbW9kZSou
IEluIHRoaXMgbW9kZSwgYXJyYXlzIG11c3Qgbm90IHRyYW5zaXRpdmVseSBob2xkIHJlZmVyZW5j
ZXMuIFJlZmVyZW5jZXMgbXVzdCBiZSBpbml0aWFsaXplZCB1cG9uIGRlY2xhcmF0aW9uIGFuZCBu
ZXZlciByZWFzc2lnbmVkLiBGdW5jdGlvbnMgdGhhdCByZXR1cm4gcmVmZXJlbmNlcyBtdXN0IGhh
dmUgb25lIHJldHVybiBwb2ludC4gVGVybmFyeSBleHByZXNzaW9ucyBtYXkgbm90IHJldHVybiBy
ZWZlcmVuY2VzLgotLSBHcmFwaGljcyBlbnRyeSBwb2ludHMgbXVzdCB0cmFuc2l0aXZlbHkgbmV2
ZXIgcmVmZXIgdG8gdGhlIGB0aHJlYWRncm91cGAgbWVtb3J5IHNwYWNlLgotCi0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENoZWNrZXIuanMKaW5kZXggNGNhZGM3ZDBkOWU2
YTZkZmRhNTU1ZGFiODlkMDI3MTc3MGRiZDlhNy4uMGViNGU4MWVjMmZjMzYzOTk3MGQ5YzYzYTNm
YmNjZTk5NmNiNDEwYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
V3JhcENoZWNrZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV3JhcENo
ZWNrZXIuanMKQEAgLTUyLDExICs1Miw2IEBAIGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiRm91bmQgdW53cmFwcGVkICIgKyBub2Rl
LmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIgKyBvcmlnaW5TdHJpbmcobm9kZSkgKyAiOiAiICsg
bm9kZSArICJcbldoaWxlIHZpc2l0aW5nICIgKyB0aGlzLl9zdGFydE5vZGUuY29uc3RydWN0b3Iu
bmFtZSArICIgYXQgIiArIG9yaWdpblN0cmluZyh0aGlzLl9zdGFydE5vZGUub3JpZ2luKSArICI6
ICIgKyB0aGlzLl9zdGFydE5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdENvbnN0ZXhwclR5
cGVQYXJhbWV0ZXIobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5v
ZGUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAg
ICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwpAQCAtNzYsMTQgKzcxLDQgQEAgY2xh
c3MgV3JhcENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB7CiAgICAgICAgIHRoaXMuX2Zv
dW5kVW53cmFwcGVkKG5vZGUpOwogICAgIH0KLSAgICAKLSAgICB2aXNpdFR5cGVWYXJpYWJsZShu
b2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5fZm91bmRVbndyYXBwZWQobm9kZSk7Ci0gICAgfQot
ICAgIAotICAgIC8vIE5PVEU6IFRoaXMgZG9lcyBub3Qga25vdyBob3cgdG8gaGFuZGxlIE5hdGl2
ZVR5cGVJbnN0YW5jZSwgYmVjYXVzZSB0aGlzIGlzIG5ldmVyIGNhbGxlZCBvbiBpbnN0YW50aWF0
ZWQKLSAgICAvLyBjb2RlLiBPbmNlIGNvZGUgaXMgaW5zdGFudGlhdGVkLCB5b3UgY2Fubm90IGlu
c3RhbnRpYXRlIGl0IGZ1cnRoZXIuCi0gICAgCi0gICAgLy8gTk9URTogVGhpcyBuZWVkcyB0byBi
ZSBrZXB0IGluIHN5bmMgd2l0aCBBdXRvV3JhcHBlci4KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IDgwOTRiMTkzNzgxYjRhYTliMGMzOTA5ZTlhOTFkMjgx
NWYyYjJhYmEuLjBkZDA0ZWYyZDE0MTAxOGNkZTRkMzA5NWRjOGI3MGYxOWYwMTczMjEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtMzYsNyArMzYsNiBAQAog
PHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29t
bWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTU1LDcgKzU0LDYgQEAKIDxzY3JpcHQg
c3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmllbGQuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iRmxhdHRlblByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRmxvYXRMaXRl
cmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC02Myw3ICs2MSw2IEBACiA8c2NyaXB0IHNyYz0iRm9y
TG9vcC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuYy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iRnVuY0RlZi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iRnVuY0luc3RhbnRp
YXRvci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRnVuY1BhcmFtZXRlci5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iRnVuY3Rpb25MaWtlQmxvY2suanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwvc2NyaXB0PgpAQCAtNzMsNyArNzAsNiBAQAog
PHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJJbmxpbmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJh
bFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0
PgpAQCAtOTAsOSArODYsNyBAQAogPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
TmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZlRnVuY0luc3RhbmNl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJOYXRpdmVUeXBlSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
Ik5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik51
bGxMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsVHlwZS5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMDMsMTAgKzk3LDYgQEAKIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJQcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZC5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29s
RGVjbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xGdW5jRGVjbC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlYWRNb2RpZnlXcml0ZUV4
cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMi
Pjwvc2NyaXB0PgpAQCAtMTMxLDEwICsxMjEsNyBAQAogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZVJl
Zi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4K
QEAgLTM0NCw3ICszMzEsNyBAQCBmdW5jdGlvbiBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZyb21D
b21waWxhdGlvbiA9IGZhbHNlKSB7CiAgICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWlsYWJs
ZVZlcnRleFNoYWRlcnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAgIGN1
cnJlbnRGcmFnbWVudFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVudFNo
YWRlclNlbGVjdC5zZWxlY3RlZEluZGV4XTsKIAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIgPSBw
cm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIsIFtd
KTsKKyAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAgICBf
aW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0aW5n
U2V0KGN1cnJlbnRWZXJ0ZXhTaGFkZXIpKTsKIAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBbXTsK
QEAgLTQyNiw3ICs0MTMsNyBAQCBmdW5jdGlvbiBydW5TaGFkZXJzKCkgewogICAgICAgICBmdW5j
LnBhcmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFyZ3Vt
ZW50RVB0cnNbaV0uc2l6ZSk7CiAgICAgbGV0IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3Jh
bSkucnVuRnVuYyhmdW5jKTsKIAotICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dyYW0u
ZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoY3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7Cisg
ICAgaW5saW5lZEZyYWdtZW50U2hhZGVyID0gY3VycmVudEZyYWdtZW50U2hhZGVyOwogICAgIF9p
bmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNpdGlu
Z1NldChjdXJyZW50RnJhZ21lbnRTaGFkZXIpKTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdtZW50
U2hhZGVyOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346942</attachid>
            <date>2018-08-10 17:10:21 -0700</date>
            <delta_ts>2018-08-10 19:41:56 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180810171020.patch</filename>
            <type>text/plain</type>
            <size>1340615</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTBjZTMxNjgwYTgxMTViMTgwYjA0ZjEwMzU5ZDRmM2Qy
ZjU5MmFiNS4uM2IyNmFjZjNmN2FhM2UyYWJhMjQ2M2UzNjgzZTkzMTQ3YTc3YzQyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0xMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0xMCAgRGF2aWQgRmVudG9uICA8ZGF2aWRfZmVudG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aW1lb3V0cyBpbiBUZXN0V2ViS2l0QVBJLlByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5BdWRpb1dp
dGhXZWJBdWRpbyBhbmQgVGVzdFdlYktpdEFQSS5QcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUuV2Vi
QXVkaW8uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggMTVkZDdjY2FiOTQ2
OTJhMzJhY2QyN2I5ZGFjOTZjOGE4ZjU1ZDY1OC4uNDlhNWZiNjg2MjZjOTAyNDRlODQ2MmFkNzE4
ZmYxZTg1OWZkNjIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNTgs
NyArNTgsNiBAQCBsb2FkKCJDaGVja2VyLmpzIik7CiBsb2FkKCJDbG9uZVByb2dyYW0uanMiKTsK
IGxvYWQoIkNvbW1hRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiQ29uc3RleHByRm9sZGVyLmpzIik7
Ci1sb2FkKCJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJDb250aW51ZS5qcyIp
OwogbG9hZCgiQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJEZXJl
ZmVyZW5jZUV4cHJlc3Npb24uanMiKTsKQEAgLTc3LDcgKzc2LDYgQEAgbG9hZCgiRXhwcmVzc2lv
bkZpbmRlci5qcyIpOwogbG9hZCgiRXh0ZXJuYWxPcmlnaW4uanMiKTsKIGxvYWQoIkZpZWxkLmpz
Iik7CiBsb2FkKCJGaW5kSGlnaFpvbWJpZXMuanMiKTsKLWxvYWQoIkZsYXR0ZW5Qcm90b2NvbEV4
dGVuZHMuanMiKTsKIGxvYWQoIkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWwuanMiKTsKIGxvYWQoIkZsb2F0TGl0ZXJhbFR5cGUuanMiKTsKQEAg
LTg1LDcgKzgzLDYgQEAgbG9hZCgiRm9sZENvbnN0ZXhwcnMuanMiKTsKIGxvYWQoIkZvckxvb3Au
anMiKTsKIGxvYWQoIkZ1bmMuanMiKTsKIGxvYWQoIkZ1bmNEZWYuanMiKTsKLWxvYWQoIkZ1bmNJ
bnN0YW50aWF0b3IuanMiKTsKIGxvYWQoIkZ1bmNQYXJhbWV0ZXIuanMiKTsKIGxvYWQoIkZ1bmN0
aW9uTGlrZUJsb2NrLmpzIik7CiBsb2FkKCJIaWdoWm9tYmllRmluZGVyLmpzIik7CkBAIC05NSw3
ICs5Miw2IEBAIGxvYWQoIkluZGV4RXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiSW5mZXJUeXBlc0Zv
ckNhbGwuanMiKTsKIGxvYWQoIklubGluZS5qcyIpOwogbG9hZCgiSW5saW5lci5qcyIpOwotbG9h
ZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsLmpzIik7CiBs
b2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiSW50cmluc2ljcy5qcyIpOwpAQCAtMTEy
LDkgKzEwOCw3IEBAIGxvYWQoIk5hbWVDb250ZXh0LmpzIik7CiBsb2FkKCJOYW1lRmluZGVyLmpz
Iik7CiBsb2FkKCJOYW1lUmVzb2x2ZXIuanMiKTsKIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKLWxv
YWQoIk5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyIpOwogbG9hZCgiTmF0aXZlVHlwZS5qcyIpOwotbG9h
ZCgiTmF0aXZlVHlwZUluc3RhbmNlLmpzIik7CiBsb2FkKCJOb3JtYWxVc2VQcm9wZXJ0eVJlc29s
dmVyLmpzIik7CiBsb2FkKCJOdWxsTGl0ZXJhbC5qcyIpOwogbG9hZCgiTnVsbFR5cGUuanMiKTsK
QEAgLTEyNSwxMCArMTE5LDYgQEAgbG9hZCgiUHJlcGFyZS5qcyIpOwogbG9hZCgiUHJvZ3JhbS5q
cyIpOwogbG9hZCgiUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiKTsKIGxv
YWQoIlByb3BlcnR5UmVzb2x2ZXIuanMiKTsKLWxvYWQoIlByb3RvY29sLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbERlY2wuanMiKTsKLWxvYWQoIlByb3RvY29sRnVuY0RlY2wuanMiKTsKLWxvYWQoIlBy
b3RvY29sUmVmLmpzIik7CiBsb2FkKCJQdHJUeXBlLmpzIik7CiBsb2FkKCJSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJSZWN1cnNpb25DaGVja2VyLmpzIik7CkBAIC0xNTMs
MTAgKzE0Myw3IEBAIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQoIlR5cGVEZWYuanMi
KTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwogbG9hZCgiVHlwZU9yVmFyaWFibGVSZWYu
anMiKTsKLWxvYWQoIlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyIpOwogbG9hZCgiVHlwZVJlZi5q
cyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlLmpzIik7Ci1sb2FkKCJUeXBlVmFyaWFibGVUcmFja2Vy
LmpzIik7CiBsb2FkKCJUeXBlZFZhbHVlLmpzIik7CiBsb2FkKCJVaW50TGl0ZXJhbC5qcyIpOwog
bG9hZCgiVWludExpdGVyYWxUeXBlLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0F1dG9XcmFwcGVyLmpzCmluZGV4IDgwYWU3ZDkyYTRmYTYyNjY2ZGIyYTJmZjUyMjBkMTQ5
YTdmMzhlOWMuLjIxNmE3ZTJlMzNkZTk5MWIwNmFiNjM2ZGI1Y2ZjYWI0MDVkOGVlMjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCkBAIC0zNSwxMSAr
MzUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0
dXJuIG5vZGU7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihu
b2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7CkBAIC02MCwxMSArNTUsNiBAQCBjbGFzcyBBdXRv
V3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChu
b2RlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0
R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbm9kZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKaW5kZXgg
YjVhZTBmZTQ5ZmNlZGM4ZmE3NmE2Njc5M2NmZTBjYjFmMDhiNDU3MS4uZjA2NmFjMzIwYTlkY2U0
MjFkNGY4ZWZkMzYzMzNhMjRlYTc2MmZiZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKQEAgLTI1LDExICsyNSwxMCBAQAogInVzZSBzdHJp
Y3QiOwogCiBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorICAg
IGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRMaXN0KQogICAgIHsKICAgICAgICAg
c3VwZXIob3JpZ2luKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMu
X3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAgICAgICB0aGlzLl9hcmd1bWVudExp
c3QgPSBhcmd1bWVudExpc3Q7CiAgICAgICAgIHRoaXMuZnVuYyA9IG51bGw7CiAgICAgICAgIHRo
aXMuX2lzQ2FzdCA9IGZhbHNlOwpAQCAtMzcsNzEgKzM2LDQxIEBAIGNsYXNzIENhbGxFeHByZXNz
aW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgfQogICAgIAogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhp
cy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBhcmd1bWVudExpc3QoKSB7IHJldHVybiB0aGlz
Ll9hcmd1bWVudExpc3Q7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5faXNDYXN0
OyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9CiAg
ICAgCi0gICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBh
cmFtZXRlcnNJblNjb3BlLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUpCisgICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJs
ZU92ZXJsb2FkcywgbmFtZSwgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBl
KQogICAgIHsKLSAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBsZXQgY2FsbCA9IG5l
dyBDYWxsRXhwcmVzc2lvbihvcmlnaW4sIG5hbWUsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIGNh
bGwuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50
LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7CiAgICAgICAgIGNhbGwucG9zc2libGVPdmVybG9h
ZHMgPSBwb3NzaWJsZU92ZXJsb2FkczsKICAgICAgICAgaWYgKHJldHVyblR5cGUpCiAgICAgICAg
ICAgICBjYWxsLnNldENhc3REYXRhKHJldHVyblR5cGUpOwotICAgICAgICByZXR1cm4ge2NhbGws
IHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRl
cnNJblNjb3BlLCB0eXBlQXJndW1lbnRzKX07CisgICAgICAgIHJldHVybiB7Y2FsbCwgcmVzdWx0
VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKX07CiAgICAgfQogICAgIAotICAg
IHJlc29sdmUocG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFy
Z3VtZW50cykKKyAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKQogICAgIHsKICAgICAgICAg
aWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5h
bWVkICIgKyB0aGlzLm5hbWUpOwogICAgICAgICAKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gbnVs
bDsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJh
bWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJblNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoISh0eXBl
UGFyYW1ldGVyIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFtZXRlci5wcm90b2NvbCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxldCBzaWduYXR1cmVzID0KLSAgICAgICAg
ICAgICAgICB0eXBlUGFyYW1ldGVyLnByb3RvY29sLnByb3RvY29sRGVjbC5zaWduYXR1cmVzQnlO
YW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAg
ICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZXMsIHRoaXMudHlwZUFy
Z3VtZW50cywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAg
ICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGxl
dCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCisgICAgICAgICAgICBwb3NzaWJsZU92
ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOworICAgICAgICBp
ZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3Zlcmxv
YWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSBudWxsOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghb3ZlcmxvYWQpIHsKLSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92
ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy50eXBl
QXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7Ci0gICAgICAg
ICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5wdXNo
KC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJE
aWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0
aCAiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJ0eXBlIGFyZ3VtZW50cyA8IiArIHRoaXMudHlw
ZUFyZ3VtZW50cyArICI+IGFuZCAiOwotICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gImFyZ3Vt
ZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOwotICAgICAgICAgICAgICAg
IGlmICh0aGlzLnJldHVyblR5cGUpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFu
ZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5UeXBlOwotICAgICAgICAgICAgICAgIGlmIChm
YWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNv
bnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQotICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgbWVzc2FnZSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJn
dW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgdHlwZUFyZ3VtZW50VHlwZSA9
IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAgICBsZXQgdHlwZVBhcmFtZXRlciA9IG92ZXJs
b2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1l
dGVyIGluc3RhbmNlb2YgQ29uc3RleHByVHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5cGVQYXJhbWV0ZXIudHlwZS5lcXVhbHNXaXRo
Q29tbWl0KHR5cGVBcmd1bWVudFR5cGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmluZyArICIgY29uc3RleHByIHR5cGUgYXJn
dW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1YWw6IGFyZ3VtZW50ID0gIiArIHR5cGVB
cmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgdHlwZVBhcmFtZXRlci50eXBlKTsKKyAg
ICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsg
dGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJh
cmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBlcyArICIpIjsKKyAgICAgICAgICAg
IGlmICh0aGlzLnJldHVyblR5cGUpCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJl
dHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7CisgICAgICAgICAgICBpZiAoZmFpbHVyZXMu
bGVuZ3RoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4i
ICsgZmFpbHVyZXMuam9pbigiXG4iKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlc1tpXTsKLSAgICAg
ICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5
cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVu
Yy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAg
ICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGU7
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXJndW1lbnRUeXBlLmVxdWFsc1dpdGhDb21taXQo
cGFyYW1ldGVyVHlwZSk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIGFy
Z3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMgbm90IGVxdWFsIGFmdGVyIHR5cGUgYXJndW1lbnQg
c3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9ICIgKyBhcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIg
PSAiICsgcGFyYW1ldGVyVHlwZSk7CkBAIC0xMTIsMTAgKzgxLDcgQEAgY2xhc3MgQ2FsbEV4cHJl
c3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICByZXNvbHZlVG9PdmVybG9hZChvdmVybG9h
ZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9IG92ZXJsb2FkLmZ1bmM7Ci0gICAgICAgIHRo
aXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2FkLnR5cGVBcmd1bWVudHMubWFwKHR5cGVB
cmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBlID8gdHlwZUFyZ3VtZW50LnZp
c2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1bWVudCk7Ci0gICAgICAgIHRoaXMuaW5z
dGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50czsK
LSAgICAgICAgbGV0IHJlc3VsdCA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRl
VG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMs
IG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgIGxldCByZXN1bHQgPSBvdmVy
bG9hZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJOdWxsIHJldHVybiB0eXBlIik7CiAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CkBAIC0xMjUsMTEgKzkxLDEwIEBAIGNsYXNz
IENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgCiAgICAgYmVjb21lQ2Fz
dChyZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBUeXBl
UmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHRoaXMuX3R5cGVBcmd1bWVudHMpOworICAgICAg
ICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFtZSk7
CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUudHlwZSA9IHJldHVyblR5cGU7CiAgICAgICAgIHRo
aXMuX25hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IHRydWU7
Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBbXTsKICAgICB9CiAgICAgCiAgICAgc2V0
Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAgLTE0MSw4ICsxMDYsNiBAQCBjbGFzcyBDYWxsRXhwcmVz
c2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHRvU3RyaW5nKCkKICAgICB7CiAgICAgICAg
IHJldHVybiAodGhpcy5pc0Nhc3QgPyAib3BlcmF0b3IgIiArIHRoaXMucmV0dXJuVHlwZSA6IHRo
aXMubmFtZSkgKwotICAgICAgICAgICAgIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iICsK
LSAgICAgICAgICAgICh0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPyAiPDwiICsgdGhpcy5hY3R1
YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6ICIiKSArCiAgICAgICAgICAgICAiKCIgKyB0aGlzLmFy
Z3VtZW50TGlzdCArICIpIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DYWxsRnVuY3Rpb24uanMKaW5kZXggZjBmMDM5ZjU0NjJkMDc4MWQ4MmIzNDY0Yzg3NDc4
NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVkODFkODM5NDU2Y2RlNGM0NTk3NzBiY2MzMzBmYyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwpAQCAtMjUs
MTcgKzI1LDE3IEBACiAidXNlIHN0cmljdCI7CiAKIC8vIFRoaXMgYWxsb3dzIHlvdSB0byBwYXNz
IHN0cnVjdHMgYW5kIGFycmF5cyBpbi1wbGFjZSwgYnV0IGl0J3MgYSBtb3JlIGFubm95aW5nIEFQ
SS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBh
cmd1bWVudExpc3QpCitmdW5jdGlvbiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1l
bnRMaXN0KQogewogICAgIGxldCBhcmd1bWVudFR5cGVzID0gYXJndW1lbnRMaXN0Lm1hcChhcmd1
bWVudCA9PiBhcmd1bWVudC50eXBlKTsKLSAgICBsZXQgZnVuY09yRmFpbHVyZXMgPSByZXNvbHZl
SW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlw
ZXMsIHRydWUpOworICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rp
b24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgdHJ1ZSk7CiAgICAgaWYgKCEoZnVuY09y
RmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5jKSkgewogICAgICAgICBsZXQgZmFpbHVyZXMgPSBmdW5j
T3JGYWlsdXJlczsKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+
IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiPCIgKyB0eXBlQXJn
dW1lbnRzICsgIj4oIiArIGFyZ3VtZW50TGlzdCArICIpIiArIChmYWlsdXJlcy5sZW5ndGggPyAi
OyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsKKyAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9u
IGNhbGwgIiArIG5hbWUgKyAiKCIgKyBhcmd1bWVudExpc3QgKyAiKSIgKyAoZmFpbHVyZXMubGVu
Z3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7CiAgICAgfQog
ICAgIGxldCBmdW5jID0gZnVuY09yRmFpbHVyZXM7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBm
dW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgbGV0IHR5cGUgPSBhcmd1bWVu
dFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5cGU7CisgICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRU
eXBlc1tpXTsKICAgICAgICAgdHlwZS52aXNpdChuZXcgU3RydWN0TGF5b3V0QnVpbGRlcigpKTsK
ICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1lbnRMaXN0W2ld
LmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0No
ZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4MzZjMTU0ODZmZDI1ODBjNThlOTYwNmNhZDU5NmVjYi4u
NWRjYTQ2MGZiOTZjMTQ4MzljYjg5ZjA1ZjE3MzRkNDM5Y2U5NWI1YiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC00Myw4ICs0Myw2IEBAIGNsYXNzIENoZWNr
ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIGZvciAobGV0IHR5cGUgb2Yg
bm9kZS50eXBlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGRvU3RhdGVtZW50KHR5cGUpOwotICAg
ICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAg
ICAgICAgIGRvU3RhdGVtZW50KHByb3RvY29sKTsKICAgICAgICAgZm9yIChsZXQgZnVuY3Mgb2Yg
bm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2Yg
ZnVuY3MpIHsKICAgICAgICAgICAgICAgICB0aGlzLnZpc2l0RnVuYyhmdW5jKTsKQEAgLTU5LDgg
KzU3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIF9jaGVja1NoYWRl
clR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBSZWxheCB0aGVzZSBjaGVja3Mg
b25jZSB3ZSBoYXZlIGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIHRleHR1cmVzIGFuZCBzYW1wbGVy
cy4KLSAgICAgICAgaWYgKG5vZGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoICE9IDApCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnRy
eSBwb2ludCAiICsgbm9kZS5uYW1lICsgIiBtdXN0IG5vdCBoYXZlIHR5cGUgYXJndW1lbnRzLiIp
OwogICAgICAgICBsZXQgc2hhZGVyRnVuYyA9IG5vZGU7CiAgICAgICAgIHN3aXRjaCAobm9kZS5z
aGFkZXJUeXBlKSB7CiAgICAgICAgIGNhc2UgInZlcnRleCI6CkBAIC04NCwxNSArODAsNiBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmICghZnVuYy5uYW1lLnN0
YXJ0c1dpdGgoIm9wZXJhdG9yIikpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBv
cGVyYXRvciBvdmVybG9hZCBuYW1lOiAiICsgZnVuYy5uYW1lKTsKICAgICAgICAgCi0gICAgICAg
IGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAg
ICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBmdW5jLnBhcmFtZXRlclR5cGVzKQotICAg
ICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAg
ICAgTm9kZS52aXNpdChmdW5jLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVW
YXJpYWJsZVRyYWNrZXIpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMu
dHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5z
ZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyICIg
KyB0eXBlUGFyYW1ldGVyICsgIiB0byBvcGVyYXRvciAiICsgZnVuYy50b0RlY2xTdHJpbmcoKSAr
ICIgaXMgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgIH0K
LSAgICAgICAgCiAgICAgICAgIGxldCBjaGVja0dldHRlciA9IChraW5kKSA9PiB7CiAgICAgICAg
ICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzID0ga2luZCA9PSAiaW5kZXgiID8gMiA6IDE7
CiAgICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCAhPSBudW1FeHBlY3RlZFBh
cmFtZXRlcnMpCkBAIC0xMTUsMTEgKzEwMiwxMCBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgICAgICBpZiAoIWdldHRlckZ1bmNzKQogICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIkV2ZXJ5IHNldHRl
ciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIsIGJ1dCBkaWQgbm90IGZpbmQgYW55IGZ1bmN0
aW9uIG5hbWVkICIgKyBnZXR0ZXJOYW1lICsgIiB0byBtYXRjaCAiICsgZnVuYy5uYW1lKTsKICAg
ICAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gZnVuYy5wYXJhbWV0ZXJUeXBlcy5zbGljZSgw
LCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgLSAxKTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9
IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIFtdLCBhcmd1bWVudFR5cGVzLCBudWxs
KTsKKyAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVy
RnVuY3MsIGFyZ3VtZW50VHlwZXMsIG51bGwpOwogICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5m
dW5jKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9y
aWdpblN0cmluZywgIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsgZnVuYy5uYW1lICsg
IiB3aXRoIGFyZ3VtZW50cyAiICsgYXJndW1lbnRUeXBlcyArIChvdmVybG9hZC5mYWlsdXJlcy5s
ZW5ndGggPyAiOyB0cmllZDpcbiIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCJcbiIpIDogIiIp
KTsKLSAgICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBl
LnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMu
dHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAg
ICBsZXQgcmVzdWx0VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZTsKICAgICAgICAgICAg
IGlmICghcmVzdWx0VHlwZS5lcXVhbHModmFsdWVUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJTZXR0ZXIgYW5kIGdl
dHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUgKGdldHRlciBhdCAiICsgb3ZlcmxvYWQuZnVu
Yy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBzYXlzICIgKyByZXN1bHRUeXBlICsgIiB3aGlsZSB0
aGlzIHNldHRlciBzYXlzICIgKyB2YWx1ZVR5cGUgKyAiKSIpOwogICAgICAgICB9OwpAQCAtMjEx
LDIzICsxOTcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAg
IH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgZm9y
IChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHR5
cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcgVHlwZVZhcmlhYmxlVHJhY2tlcigpOwotICAgICAgICAg
ICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMpCi0g
ICAgICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsK
LSAgICAgICAgICAgIE5vZGUudmlzaXQoc2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJl
c29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAgICAgZm9yIChsZXQgdHlw
ZVBhcmFtZXRlciBvZiBzaWduYXR1cmUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgV1R5cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciB0byBwcm90b2NvbCBzaWduYXR1cmUgbm90IGluZmVy
cmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyhub2RlLnR5cGVWYXJpYWJsZSkpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Ioc2lnbmF0dXJlLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKCIgKyBub2RlLm5hbWUgKyAiKSBu
b3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZTogIiArIHNpZ25hdHVyZSk7Ci0gICAgICAgICAgICB0
aGlzLl9jaGVja09wZXJhdG9yT3ZlcmxvYWQoc2lnbmF0dXJlLCBuYW1lID0+IG5vZGUuc2lnbmF0
dXJlc0J5TmFtZShuYW1lKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgdmlzaXRFbnVt
VHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5iYXNlVHlwZS52aXNpdCh0aGlzKTsKQEAg
LTI3OCwyOSArMjQ3LDEyIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkVu
dW0gZG9lcyBub3QgaGF2ZSBhIG1lbWJlciB3aXRoIHRoZSB2YWx1ZSB6ZXJvIik7CiAgICAgfQog
ICAgIAotICAgIF9jaGVja1R5cGVBcmd1bWVudHMob3JpZ2luLCB0eXBlUGFyYW1ldGVycywgdHlw
ZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZVBhcmFt
ZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IHR5
cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IHR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAoYXJndW1lbnRJ
c1R5cGUpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS5p
bmhlcml0cyh0eXBlUGFyYW1ldGVyc1tpXS5wcm90b2NvbCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBhcmd1bWVudCBkb2VzIG5vdCBpbmhlcml0IHBy
b3RvY29sOiAiICsgcmVzdWx0LnJlYXNvbik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFsc1dpdGhDb21taXQodHlwZVBhcmFtZXRlcnNbaV0u
dHlwZSkpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5v
cmlnaW5TdHJpbmcsICJXcm9uZyB0eXBlIGZvciBjb25zdGV4cHIiKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAg
ICAgICAgIGlmICghbm9kZS50eXBlKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUeXBl
IHJlZmVyZW5jZSB3aXRob3V0IGEgdHlwZSBpbiBjaGVja2VyOiAiICsgbm9kZSArICIgYXQgIiAr
IG5vZGUub3JpZ2luKTsKICAgICAgICAgaWYgKCEobm9kZS50eXBlIGluc3RhbmNlb2YgU3RydWN0
VHlwZSkpCiAgICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMu
X2NoZWNrVHlwZUFyZ3VtZW50cyhub2RlLm9yaWdpbiwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJz
LCBub2RlLnR5cGVBcmd1bWVudHMpOwogICAgIH0KICAgICAKICAgICB2aXNpdEFycmF5VHlwZShu
b2RlKQpAQCAtNDI2LDggKzM3OCw4IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4
cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3Nz
aWJsZUdldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywK
LSAgICAgICAgICAgICAgICBub2RlLmdldEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0
cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMsCisgICAgICAgICAg
ICAgICAgbm9kZS5nZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VU
eXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxGb3JH
ZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIG5vZGUucmVzdWx0VHlwZUZvckdldCA9IHJl
c3VsdC5yZXN1bHRUeXBlOwogICAgICAgICB9IGNhdGNoIChlKSB7CkBAIC00NDAsOCArMzkyLDgg
QEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgbGV0IGJhc2VG
b3JBbmQgPSBiYXNlVHlwZS5hcmd1bWVudEZvckFuZE92ZXJsb2FkKG5vZGUub3JpZ2luLCBub2Rl
LmJhc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJl
c3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJs
ZUFuZE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAg
ICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbXSwgW2Jhc2VGb3JBbmQsIC4uLmV4dHJh
QXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKKyAgICAgICAgICAgICAgICBu
b2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywKKyAgICAgICAgICAgICAgICBu
b2RlLmFuZEZ1bmNOYW1lLCBbYmFzZUZvckFuZCwgLi4uZXh0cmFBcmdzXSwgW3R5cGVGb3JBbmQs
IC4uLmV4dHJhQXJnVHlwZXNdLAogICAgICAgICAgICAgICAgIG51bGwpOwogICAgICAgICAgICAg
bm9kZS5jYWxsRm9yQW5kID0gcmVzdWx0LmNhbGw7CiAgICAgICAgICAgICBub2RlLnJlc3VsdFR5
cGVGb3JBbmQgPSByZXN1bHQucmVzdWx0VHlwZS51bmlmeU5vZGUucmV0dXJuVHlwZUZyb21BbmRP
dmVybG9hZChub2RlLm9yaWdpbik7CkBAIC00NjUsOSArNDE3LDkgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktdmFsdWUgKCIgKyBu
b2RlLnJlc3VsdFR5cGVGb3JHZXQgKyAiKSBkb2VzIG5vdCBtYXRjaCByZXN1bHQgdHlwZSByZXNv
bHZlZCBieS1wb2ludGVyICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yQW5kICsgIikiKTsKICAgICAg
ICAgCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Np
b24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZVNl
dE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAgICAg
ICAgICAgICAgICBub2RlLnNldEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdz
LCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBu
dWxsKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCisgICAg
ICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsCisgICAg
ICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzLCBu
dWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBudWxs
KTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvclNldCA9IHJlc3VsdC5jYWxsOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQucmVzdWx0VHlwZS5lcXVhbHMoYmFzZVR5cGUpKQogICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3Vs
dCB0eXBlIG9mIHNldHRlciAiICsgcmVzdWx0LmNhbGwuZnVuYyArICIgaXMgbm90IHRoZSBiYXNl
IHR5cGUgIiArIGJhc2VUeXBlKTsKQEAgLTY3NSw3ICs2MjcsNiBAQCBjbGFzcyBDaGVja2VyIGV4
dGVuZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAg
IHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudHMgPSBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5
cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgYXJn
dW1lbnRUeXBlcyA9IG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiB7CiAgICAgICAg
ICAgICBsZXQgbmV3QXJndW1lbnQgPSBhcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAg
IGlmICghbmV3QXJndW1lbnQpCkBAIC02ODcsNyArNjM4LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRl
bmRzIFZpc2l0b3IgewogICAgICAgICBpZiAobm9kZS5yZXR1cm5UeXBlKQogICAgICAgICAgICAg
bm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpOwogCi0gICAgICAgIGxldCByZXN1bHQgPSBub2Rl
LnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50
eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCByZXN1bHQgPSBub2Rl
LnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2Fkcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29u
c3RleHByRm9sZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHBy
Rm9sZGVyLmpzCmluZGV4IDFlNWFkNjYxNWIzOTI0M2MwNmEwYzQ1YWVmNzYzNGY2Mzc2NTM3NTAu
LjFmZDUyMzExMTQ0NjUyYmE2Zjg4ZWNiMTI2Yjc4NTc5Y2M3YjY4NWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMKQEAgLTM0LDcgKzM0
LDYgQEAgY2xhc3MgQ29uc3RleHByRm9sZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHN1
cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSk7CiAgICAgICAgIAogICAgICAgICBpZiAobm9k
ZS5uYW1lID09ICJvcGVyYXRvci0iCi0gICAgICAgICAgICAmJiAhbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aAogICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3QubGVuZ3RoID09IDEKICAg
ICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9kZS5pc0NvbnN0ZXhwcgog
ICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0udW5pZnlOb2RlLm5lZ0NvbnN0ZXhw
cikgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHBy
VHlwZVBhcmFtZXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhw
clR5cGVQYXJhbWV0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzE4MjZl
ZDU1ZjNmZTU2ZjdlMGVkMmEwM2RmZGEwMjhkYTViMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29u
c3RleHByVHlwZVBhcmFtZXRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotY2xhc3MgQ29uc3RleHByVHlwZVBhcmFtZXRlciBleHRlbmRzIFZhbHVlIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAg
ICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwot
ICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigp
IHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5f
bmFtZTsgfQotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCBp
c0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgaXNVbmlmaWFibGUoKSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgZ2V0IHZhcklzTFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAg
IHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBWYWx1ZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlci50eXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5p
ZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFz
QXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlv
bkNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQot
ICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAi
ICIgKyB0aGlzLm5hbWU7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCmluZGV4IDEyOTE0ZGEzMTM3ZmQ2YjkwZmVk
YTcyNTg2MjdlZmZmZmJkNGU1NDEuLjk5Njg2YWI0NDVmMTkwMWY4MjE1NmI3ZTQwODAwODMwM2Iy
OTJkODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxp
dGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxp
dGVyYWxUeXBlLmpzCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBl
KGNvbmZpZykKICAgICAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgICAgICB0aGlzLl9vcmlnaW4g
PSBvcmlnaW47CiAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAg
dGhpcy5wcmVmZXJyZWRUeXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVk
VHlwZU5hbWUsIFtdKTsKKyAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBUeXBl
UmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1lKTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQpAQCAtNTgs
NyArNTgsNyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgIHBy
ZXBhcmVUb1ZlcmlmeSh1bmlmaWNhdGlvbkNvbnRleHQpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICAg
ICAgaWYgKHJlYWxUaGlzIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlIHx8IHJlYWxUaGlzLmlzTGl0
ZXJhbCkgeworICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmlzTGl0ZXJhbCkgewogICAgICAgICAg
ICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChyZWFsVGhpcy51
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHRoaXMucHJlZmVycmVkVHlwZSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07CkBAIC03Niw3ICs3Niw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAgewogICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJhbFR5cGUgc2hvdWxkIG5ldmVyIGJlIHVzZWQg
YXMgYSB0eXBlIHBhcmFtZXRlciIpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGNv
bnZlcnNpb25Db3N0KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAg
bGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwppbmRleCAzMGU2
YjAzMWE2ZGQ2NjU5NzQwN2YzZjZiN2ZlNzEzZWQ4ZmRjYzRhLi4wMjk0NzgyYzBlNzkzYWEzNzk1
NzNmNTI4OGM2ZWU5ZThmOTAwNjljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgRXhwcmVz
c2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsK
ICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgZm9yIChs
ZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICB9
CkBAIC00NiwxMSArNDQsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7CiAgICAgfQogICAgIAotICAg
IHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y2FsbGJhY2sobm9kZS50eXBlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5v
ZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjE3MmQ5OGQxZTJjMDA4ZWRiNWQ4MTgzZjVl
ZWZkNjc4ZGM4ZWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZsYXR0ZW5Q
cm90b2NvbEV4dGVuZHMocHJvZ3JhbSkKLXsKLSAgICBsZXQgdmlzaXRpbmcgPSBuZXcgVmlzaXRp
bmdTZXQoKTsKLSAgICAKLSAgICBmdW5jdGlvbiBmbGF0dGVuKHByb3RvY29sKQotICAgIHsKLSAg
ICAgICAgaWYgKCFwcm90b2NvbC5leHRlbmRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCi0gICAgICAgIHZpc2l0aW5nLmRvVmlzaXQocHJvdG9jb2wsICgpID0+IHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHBhcmVudCBvZiBwcm90b2NvbC5leHRlbmRzKSB7Ci0gICAgICAg
ICAgICAgICAgcGFyZW50ID0gcGFyZW50LnByb3RvY29sRGVjbDsKLSAgICAgICAgICAgICAgICBm
bGF0dGVuKHBhcmVudCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIHBh
cmVudC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBuZXdTaWduYXR1cmUg
PSBzaWduYXR1cmUudmlzaXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3Vic3RpdHV0
aW9uKFtwYXJlbnQudHlwZVZhcmlhYmxlXSwgW3Byb3RvY29sLnR5cGVWYXJpYWJsZV0pKTsKLSAg
ICAgICAgICAgICAgICAgICAgcHJvdG9jb2wuYWRkKG5ld1NpZ25hdHVyZSk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvdG9jb2wuZXh0ZW5kcyA9IFtd
OwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJv
Z3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIGZsYXR0ZW4ocHJvdG9jb2wpOwotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKaW5kZXgg
ZTZjNTczN2RlMTZhNGE2NDhkODVhZGNhMTY5MzQ1NGI2MTQwNzI3ZS4uZDVkMWIxNTIzMGYwOWMx
MGEwYmMxMjVmMDNjZjVhZDRjZTNkZDJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcwpAQCAtMzAsNyArMzAsNyBAQCBsZXQgRmxvYXRMaXRlcmFs
ID0gY3JlYXRlTGl0ZXJhbCh7CiAgICAgCiAgICAgbmVnQ29uc3RleHByKG9yaWdpbikKICAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgSW50TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CiAgICAg
fSwKICAgICAKICAgICBjcmVhdGVUeXBlKG9yaWdpbiwgdmFsdWUpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuYy5qcwppbmRleCA2ZmE3YzlkMWI2ZjRiOTU4MzM1OTgxYzI3MjhiZTg2NWE1
NmU3M2FlLi42ZmM3MzMyNzYxZDQ2M2MzNWE4YzQwYzJhNzZmMmY0YjM2YzIzMjIzIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3Ry
aWN0IjsKIAogY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwg
c2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBh
cmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7CiAgICAgICAgIGlmICghKG9yaWdp
biBpbnN0YW5jZW9mIExleGVyVG9rZW4pKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgb3JpZ2luOiAiICsgb3JpZ2luKTsKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgRnVuYyBleHRl
bmRzIE5vZGUgewogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAg
ICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhp
cy5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2Fz
dDsKICAgICAgICAgdGhpcy5fc2hhZGVyVHlwZSA9IHNoYWRlclR5cGU7CkBAIC00OCw4ICs0Nyw2
IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4g
dGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAg
ICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0
IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICBn
ZXQgdHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMudHlwZVBh
cmFtZXRlcnM7IH0KICAgICBnZXQgcGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRl
cnM7IH0KICAgICBnZXQgcGFyYW1ldGVyVHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMu
bWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyBy
ZXR1cm4gdGhpcy5faXNDYXN0OyB9CkBAIC02NSw5ICs2Miw5IEBAIGNsYXNzIEZ1bmMgZXh0ZW5k
cyBOb2RlIHsKICAgICAgICAgaWYgKHRoaXMuc2hhZGVyVHlwZSkKICAgICAgICAgICAgIHJlc3Vs
dCArPSB0aGlzLnNoYWRlclR5cGUgKyAiICI7CiAgICAgICAgIGlmICh0aGlzLmlzQ2FzdCkKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3I8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAi
PiAiICsgdGhpcy5yZXR1cm5UeXBlOworICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvciAi
ICsgdGhpcy5yZXR1cm5UeXBlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0g
dGhpcy5yZXR1cm5UeXBlICsgIiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1l
dGVycyArICI+IjsKKyAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIg
KyB0aGlzLm5hbWU7CiAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKCIgKyB0aGlzLnBhcmFtZXRl
cnMgKyAiKSI7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0RlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNE
ZWYuanMKaW5kZXggMTFmYTA5MmUzYjIyNzhlMjE1YTBhNjdlOTUxZTE3ZGFiYTEzNmE4My4uY2Ew
NTk3ZmNkMjk0ZGZhYjYwNDQyMTRlMDc1NGY3ZWY5NDRiODc4ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzCkBAIC0yNSw5ICsyNSw5IEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nh
c3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBz
dXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJz
LCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuX2Jv
ZHkgPSBib2R5OwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KQEAg
LTM2LDggKzM2LDYgQEAgY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMgewogICAgIAogICAgIHJl
d3JpdGUocmV3cml0ZXIpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMu
bGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBhbiB1
bmluc3RhbnRpYXRlZCBmdW5jdGlvbiIpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhp
cy5fcmV0dXJuVHlwZS52aXNpdChyZXdyaXRlcik7CiAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMg
PSB0aGlzLl9wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3Jp
dGVyKSk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRv
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5Mjg2MmE2ZGQ4NTY1ZWUzN2U0MjA2MzFk
N2FmNzBkNTIyN2U1ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEZ1bmNJbnN0YW50aWF0
b3IgewotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLl9wcm9n
cmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhpcy5faW5zdGFuY2VzID0gbmV3IE1hcCgpOwotICAg
IH0KLSAgICAKLSAgICBnZXQgaW5zdGFuY2VzKCkgeyByZXR1cm4gdGhpcy5faW5zdGFuY2VzOyB9
Ci0gICAgCi0gICAgLy8gUmV0dXJucyBhIEZ1bmMgb2JqZWN0IHRoYXQgdW5pcXVlbHkgaWRlbnRp
ZmllcyBhIHBhcnRpY3VsYXIgc3lzdGVtIG9mIHR5cGUgYXJndW1lbnRzLiBZb3UgbXVzdAotICAg
IC8vIGludGFudGlhdGUgdGhpbmdzIHdpdGggY29uY3JldGUgdHlwZXMsIGJlY2F1c2UgdGhpcyBj
b2RlIGNhc3VhbGx5IGFzc3VtZXMgdGhpcy4gTm90ZSB0aGF0IHRoaXMKLSAgICAvLyB3aWxsIHJl
dHVybiBhIGRpZmZlcmVudCBmdW5jIGZyb20gYGZ1bmNgIG5vIG1hdHRlciB3aGF0LiBUaGlzIGVu
c3VyZXMgdGhhdCB3ZSBjYW4gdXNlIHRoZQotICAgIC8vIHJldHVybmVkIGZ1bmMgZm9yIHJld3Jp
dGVzIHRoYXQgaW5zdGFudGlhdGUgdHlwZXMgd2l0aG91dCBkZXN0cm95aW5nIG91ciBhYmlsaXR5
IHRvIGRvIG92ZXJsb2FkCi0gICAgLy8gcmVzb2x1dGlvbnMgb24gdGhlIG9yaWdpbmFsIFByb2dy
YW0uCi0gICAgZ2V0VW5pcXVlKGZ1bmMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBj
bGFzcyBGaW5kVHlwZVZhcmlhYmxlIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNp
dFR5cGVSZWYobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpIHsKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdHlwZSB2YXJpYWJsZTogIiArIG5vZGUgKyAiIHdoZW4g
aW5zdGFudGlhdGluZyAiICsgZnVuYyArICIgd2l0aCBhcmd1bWVudHMgIiArIHR5cGVBcmd1bWVu
dHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1
bWVudCBvZiB0eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KG5l
dyBGaW5kVHlwZVZhcmlhYmxlKCkpOwotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbmNlcyA9
IHRoaXMuX2luc3RhbmNlcy5nZXQoZnVuYyk7Ci0gICAgICAgIGlmICghaW5zdGFuY2VzKQotICAg
ICAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChmdW5jLCBpbnN0YW5jZXMgPSBbXSk7Ci0gICAg
ICAgIAotICAgICAgICBmb3IgKGxldCBpbnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAg
ICAgIGxldCBvayA9IHRydWU7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5zdGFuY2UudHlw
ZUFyZ3VtZW50cy5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNl
LnR5cGVBcmd1bWVudHNbaV0uZXF1YWxzKHR5cGVBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG9rID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZnVuYzsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHRoaXNJbnN0YW50aWF0b3IgPSB0aGlzOwot
ICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbiBleHRlbmRz
IFN1YnN0aXR1dGlvbiB7Ci0gICAgICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVyLnZpc2l0Q2Fs
bEV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8g
V2UgbWF5IGhhdmUgdG8gcmUtcmVzb2x2ZSB0aGUgZnVuY3Rpb24gY2FsbCwgaWYgaXQgd2FzIGEg
Y2FsbCB0byBhIHByb3RvY29sCi0gICAgICAgICAgICAgICAgLy8gc2lnbmF0dXJlLgotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQuZnVuYyBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpIHsK
LSAgICAgICAgICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChy
ZXN1bHQucG9zc2libGVPdmVybG9hZHMsIHJlc3VsdC50eXBlQXJndW1lbnRzLCByZXN1bHQuYXJn
dW1lbnRUeXBlcywgcmVzdWx0LnJldHVyblR5cGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkNvdWxkIG5vdCByZXNvbHZlIHByb3RvY29sIHNpZ25hdHVyZSBmdW5jdGlvbiBjYWxsIGR1cmlu
ZyBpbnN0YW50aWF0aW9uOiAiICsgcmVzdWx0LmZ1bmMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVu
Z3RoID8gIjsgdHJpZWQ6XG4iICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQuZnVuYy5pc05hdGl2ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5hdGl2
ZUZ1bmNJbnN0YW5jZSA9IHRoaXNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5mdW5jLCBy
ZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9u
KGZ1bmMudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGNsYXNzIElu
c3RhbnRpYXRpb25JbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBJbnN0YW50aWF0ZUltbWVk
aWF0ZXMgewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcHJlc2VydmUgY2VydGFpbiB0aGlu
Z3MgdGhhdCB3b3VsZCBoYXZlIGluc3RhbnRpYXRlZCwgYnV0IHRoYXQgd2UgY2Fubm90Ci0gICAg
ICAgICAgICAgICAgLy8gaW5zdGFudGlhdGUgd2l0aG91dCBicmVha2luZyBjaGFpbi1pbnN0YW50
aWF0aW9ucyAoZ2VuZXJpYyBmdW5jdGlvbiBjYWxscyBnZW5lcmljCi0gICAgICAgICAgICAgICAg
Ly8gZnVuY3Rpb24gc28gdGhlcmVmb3JlIHRoZSBpbnN0YW50aWF0ZWQgZ2VuZXJpYyBmdW5jdGlv
biBtdXN0IHN0aWxsIGhhdmUgdGhlIG9yaWdpbmFsCi0gICAgICAgICAgICAgICAgLy8gKHVuaW5z
dGFudGlhdGVkKSB0eXBlcyB0byBpbnN0YW50aWF0ZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0
IGl0IGNhbGxzKS4KLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNz
aW9uKAotICAgICAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5
cGVBcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChh
cmd1bWVudCA9PiBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKSkpOwotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gQXJy
YXkuZnJvbShub2RlLmFyZ3VtZW50VHlwZXMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmlz
Q2FzdCkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0dXJu
VHlwZSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMgPSBBcnJh
eS5mcm9tKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGxldCBpbnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGlvbkluc3Rh
bnRpYXRlSW1tZWRpYXRlcygpOwotICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGUg
ewotICAgICAgICAgICAgdmlzaXRGdW5jRGVmKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgbGV0IHJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0
aW9uKTsKLSAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gcmV0dXJuVHlwZS52aXNpdChpbnN0
YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZnVu
Yy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlv
bikpOwotICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpOwotICAgICAgICAg
ICAgICAgIGxldCBib2R5ID0gZnVuYy5ib2R5LnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAg
ICAgICAgICAgYm9keSA9IGJvZHkudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
b3JpZ2luLCBmdW5jLm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJhbWV0ZXJzLCBib2R5LCBmdW5j
LmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFu
Y2UoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
cmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cyksCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cykpLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5zaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24oc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgbGV0IHJlc3VsdGluZ0Z1bmMgPSBmdW5jLnZpc2l0KG5ldyBJbnN0YW50aWF0ZSgp
KTsKLSAgICAgICAgcmVzdWx0aW5nRnVuYy51bmluc3RhbnRpYXRlZFJldHVyblR5cGUgPSBmdW5j
LnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgbGV0IGluc3RhbmNlID0g
e2Z1bmM6IHJlc3VsdGluZ0Z1bmMsIHR5cGVBcmd1bWVudHN9OwotICAgICAgICBpbnN0YW5jZXMu
cHVzaChpbnN0YW5jZSk7Ci0gICAgICAgIHJldHVybiByZXN1bHRpbmdGdW5jOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0Zv
ckNhbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2Fs
bC5qcwppbmRleCA0NDZiMzUxZGE1NzE1YzY4YTM1ZDc2OTc5NjlkNjk4ZWM3M2U3NGY4Li42MDQ5
MTUzNjI1MWQwOWJjZTAzYTE0ZWQ2Nzc1MjJhMDJkMTNhNjQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwpAQCAtMjQsMTkgKzI0
LDExIEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwo
ZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKK2Z1bmN0aW9u
IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiB7Ci0g
ICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICYmIHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IGZ1
bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1
bWVudHMgKHBhc3NlZCAiICsgdHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBm
dW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwogICAgIGlmIChhcmd1bWVudFR5cGVz
Lmxlbmd0aCAhPSBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1
cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2Yg
YXJndW1lbnRzIChwYXNzZWQgIiArIGFyZ3VtZW50VHlwZXMubGVuZ3RoICsgIiwgcmVxdWlyZSAi
ICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwotICAgIGxldCB1bmlmaWNhdGlvbkNv
bnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KGZ1bmMudHlwZVBhcmFtZXRlcnNGb3JDYWxs
UmVzb2x1dGlvbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIGxldCBhcmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAg
ICAgIGxldCBwYXJhbWV0ZXIgPSBmdW5jLnR5cGVQYXJhbWV0ZXJzW2ldOwotICAgICAgICBpZiAo
IWFyZ3VtZW50LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcGFyYW1ldGVyKSkKLSAgICAgICAg
ICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywg
IlR5cGUgYXJndW1lbnQgIyIgKyAoaSArIDEpICsgIiBmb3IgcGFyYW1ldGVyICIgKyBwYXJhbWV0
ZXIubmFtZSArICIgZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgYXJndW1lbnQgKyAiLCByZXF1
aXJlICIgKyBwYXJhbWV0ZXIgKyAiKSIpfTsKLSAgICB9CisgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGFyZ3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCFhcmd1bWVudFR5cGVz
W2ldKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGFyZ3VtZW50IHR5cGUgYXQg
aSA9ICIgKyBpKTsKQEAgLTQ4LDE2ICs0MCw2IEBAIGZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxs
KGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiAgICAgbGV0
IHZlcmlmaWNhdGlvblJlc3VsdCA9IHVuaWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICBp
ZiAoIXZlcmlmaWNhdGlvblJlc3VsdC5yZXN1bHQpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTog
bmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgdmVyaWZpY2F0aW9uUmVzdWx0LnJl
YXNvbil9OwotICAgIGxldCBzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMgPSAhdHlwZUFyZ3VtZW50
cy5sZW5ndGg7Ci0gICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgdHlw
ZUFyZ3VtZW50cyA9IFtdOwotICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBl
UGFyYW1ldGVycykgewotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIGlmICh0eXBlQXJndW1lbnQgPT0gdHlw
ZVBhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsg
IiBkaWQgbm90IGdldCBhc3NpZ25lZCBhIHR5cGUiKX07Ci0gICAgICAgIGlmIChzaG91bGRCdWls
ZFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnRzLnB1c2godHlwZUFyZ3Vt
ZW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHQsIHR5cGVB
cmd1bWVudHN9OworICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0fTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCmluZGV4IGYwMjg3M2JkMjczZDkx
MGIzZGYwNGZkMmE1MWEzYzdjMGE0NjdjZWYuLjA5MDc0Njk5MjZmOGMwN2Q1MzM0YmIwMzA3ZGQz
NTE4NWI4ZTUyM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKQEAg
LTI4LDE4ICsyOCwxMyBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKIHsKICAgICBmb3IgKGxl
dCBmdW5jTGlzdCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3Ig
KGxldCBmdW5jIG9mIGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFt
ZXRlcnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3Rh
bnRpYXRvci5nZXRVbmlxdWUoZnVuYywgW10pCi0gICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5n
U2V0KGZ1bmMpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAogZnVuY3Rpb24gX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIHZpc2l0aW5nKQogewotICAgIGlmIChmdW5jLnR5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5saW5lIGZ1bmN0
aW9uIHRoYXQgaGFzIHR5cGUgcGFyYW1ldGVycyIpOwogICAgIGlmIChmdW5jLmlubGluZWQgfHwg
ZnVuYy5pc05hdGl2ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtNTUsMTQgKzUwLDEwIEBA
IGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKICAgICBm
dW5jLmlubGluZWQgPSB0cnVlOwogfQogCi1mdW5jdGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9u
KHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQ
b2ludCA9IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCBhcmd1bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKLSAgICBsZXQg
b3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQo
bmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5
UG9pbnQpOworICAgIGxldCBvdmVybG9hZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQucmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50
cnlQb2ludCk7CiAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICByZXR1cm4gb3Zlcmxv
YWQuZmFpbHVyZXM7Ci0gICAgaWYgKCFvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzKQotICAg
ICAgICByZXR1cm4gb3ZlcmxvYWQuZnVuYzsKLSAgICBsZXQgZnVuYyA9IHByb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUob3ZlcmxvYWQuZnVuYywgb3ZlcmxvYWQudHlwZUFyZ3VtZW50
cyk7Ci0gICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChv
dmVybG9hZC5mdW5jKSk7Ci0gICAgcmV0dXJuIGZ1bmM7CisgICAgcmV0dXJuIG92ZXJsb2FkLmZ1
bmM7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVy
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwppbmRleCA0OTFl
ZjNlMjIxZmMwNjMxOGVlMDM2N2EzODE2OTllNTcyM2JmZTVhLi40NzRjNTQ2OGJmNzE1N2NkNzNj
NTA5Yzc3Mzg4ZWQzMzk3ZWQ0ODM1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbmxpbmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZXIuanMKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0
ZXIgewogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBy
ZXN1bHQgPSBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgICAgICBpZiAocmVz
dWx0Lm5hdGl2ZUZ1bmNJbnN0YW5jZSkKKyAgICAgICAgaWYgKHJlc3VsdC5mdW5jLmlzTmF0aXZl
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0
aW5nLmRvVmlzaXQobm9kZS5mdW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRo
aXMuX3Byb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3Vs
dC5hY3R1YWxUeXBlQXJndW1lbnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1
bmM7CiAgICAgICAgICAgICBpZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAg
ICAgIF9pbmxpbmVGdW5jdGlvbih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEz
NDhhYmMxMjc2OTZiNmVlMzFlMGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlh
dGVJbW1lZGlhdGVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBl
UmVmKG5vZGUpCi0gICAgewotICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUp
OwotICAgICAgICBpZiAoIW5vZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYg
KG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJ0eXBlIGRvZXMgbm90IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgi
ICsgdHlwZS5jb25zdHJ1Y3Rvci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2Rl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50
eXBlQXJndW1lbnRzKS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpp
bmRleCA5MzNkZmUwMTEzMDJiMGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi43MmFmMDExZGNj
ZDNmMDJkOTFiZTUwN2NhNWFmZWNhYTlkMDc4MzY5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVj
bGFyZWQgdXNpbmcgImludCIgcmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAg
ICAgIC8vIHVzZSAiaW50IiBoZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkg
YXJlIHRoZSBzYW1lIHR5cGUuCiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsK
LSAgICAgICAgICAgICAgICB0aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUu
c2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgp
ID0+IHsgfTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNC
aXR3aXNlRXF1aXZhbGVudChsZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0
IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5NCArNDcsODY1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJh
eUNvbnN0cnVjdG9yLCBudW1iZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9
IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51
bWJlcjsKKyAgICAgICAgICAgIHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0g
ICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsK
LSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUg
fCAwLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2
YWx1ZSA9PiAodmFsdWUgKyAxKSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVh
bCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZh
dWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9
IGZ1bmN0aW9uKigpIHsgCi0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9
IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
aSB8IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgdHlwZWRlZiB1aW50MzI8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAg
ICAgICB0aGlzLnVpbnQzMiA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25l
ZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4g
aXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOwotICAgICAgICAgICAgICAg
IHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwot
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAg
ICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsK
LSAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4g
MDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsgCi0gICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0gICAgICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7CisgICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKKyAg
ICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5
cGVkZWYgdWludDg8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0
aGlzLnVpbnQ4ID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBl
LmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2
YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZiwgdmFsdWUpOwotICAgICAg
ICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFs
dWUgPSAwOwotICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZh
bHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgJiAweGZmLCB0eXBlKTsK
LSAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsg
MSkgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1
ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwot
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0g
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBjYXN0
VG9IYWxmKG51bWJlcikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJl
cikpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcgorICAgICAgICAgICAgaWYgKG51bWJl
ciA+IDY1NTA0KQorICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5J
VFk7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQorICAgICAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgICAgICAgICBpZiAobnVtYmVyID4g
MCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgJiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0y
NCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0wOworICAgICAgICAgICAgbGV0IGRvdWJsZUFy
cmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKKyAgICAgICAgICAgIGxldCB1aW50QXJyYXkgPSBu
ZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIpOworICAgICAgICAgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgICAgICAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4
ODA7CisgICAgICAgICAgICBsZXQgZXhwb25lbnQgPSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8
IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7CisgICAgICAgICAgICBsZXQgc2ln
bmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0g
JiAweGZjKSA+Pj4gMik7CisKKyAgICAgICAgICAgIGlmICgoZXhwb25lbnQgLSAxMDIzKSA8IC0x
NCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gMDsKKyAgICAgICAgICAgICAgICBzaWdu
aWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAg
ICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQg
LyAxMDI0OworICAgICAgICAgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlICo9IC0xOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0gPSAwOwogCisgICAgICAgICAgICB1
aW50QXJyYXlbN10gfD0gc2lnbjsKKyAgICAgICAgICAgIHVpbnRBcnJheVs3XSB8PSAoZXhwb25l
bnQgPj4+IDQpOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkg
JiAweGYwKTsKKyAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYp
OworICAgICAgICAgICAgdWludEFycmF5WzVdIHw9ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZj
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworICAg
ICAgICB9CisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIGZsb2F0MzI8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9p
ZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmZsb2F0ID0g
dHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KE1h
dGguZnJvdW5kKHZhbHVlKSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsK
LSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21G
bG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgdGhpcy52b2lkID0gdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAwOworICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoKSA9PiB7IH07CiAgICAg
ICAgICAgICB9KTsKLQorICAgICAgICAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBib29sPD4iLAorICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVm
IGJvb2wiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5ib29s
ID0gdHlwZTsKICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCBmYWxz
ZSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWNoYXIiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLnVjaGFyID0gdHlwZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNh
blJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAg
IHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRl
cmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1
ZSAmIDB4ZmYsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVl
c0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAw
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFs
dWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAgICAgICB0
eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVs
ZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
IH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBl
ZGVmIHVzaG9ydCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMudXNob3J0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAg
ICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9
IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlz
Qml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAw
OworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkg
PT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZmZmLCB0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEp
ICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZm
ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMg
PSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
PSAweGZmZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGks
IG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQiLAor
ICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnVpbnQgPSB0eXBl
OworICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVu
dCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwor
ICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhU
eXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1
Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAg
ICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOworICAgICAg
ICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgIm5hdGl2ZSB0eXBlZGVmIGNoYXIiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLmNoYXIgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQg
PSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5j
dGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZm
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDhB
cnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwg
bmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIHNob3J0IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAg
ICAgICAgICAgICAgdGhpcy5zaG9ydCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQ
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5
cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9
IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50MTZBcnJheSwgdmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAg
ICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2Fz
dChJbnQxNkFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgeworICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0
KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTog
dmFsdWUsIG5hbWU6IHZhbHVlfTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBpbnQiLAorICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICB0aGlzLmludCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUu
aXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVs
dFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdp
biwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUp
OworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVl
ICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gdmFsdWUgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9u
KigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZm
ZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGkgfCAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVl
fTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZl
IHR5cGVkZWYgaGFsZiIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAg
IHRoaXMuaGFsZiA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0
eXBlLmlzRmxvYXRpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0Jp
dHdpc2VFcXVpdmFsZW50KGNhc3RUb0hhbGYodmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9IYWxmKHZh
bHVlKTsKKyAgICAgICAgICAgICB9KTsKKworICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgZmxvYXQiLAorICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICB0aGlzLmZsb2F0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoTWF0aC5mcm91bmQodmFsdWUpLCB2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVy
LCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAg
ICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1
ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludCIsCisg
ICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX2ludCA9
IHR5cGU7CisgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0
IGhlcmUuCisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAg
ICAgICB9KTsKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsiYm9vbCIsICJ1
Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwg
ImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3ByaW1pdGl2ZVR5cGV9JHtpfWAsCisgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtwcmltaXRpdmVUeXBlfSR7
aX1gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91
dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJoYWxm
IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkg
eworICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAyOyBqIDw9IDQ7ICsraikgeworICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9eCR7an1gLAorICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtw
cmltaXRpdmVUeXBlfSR7aX14JHtqfWBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVk
ZWYgc2FtcGxlciIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMuc2FtcGxlciA9IHR5cGU7CisgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0
IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChsZXQg
dGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJy
YXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4
dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJl
M0QiLCAiVGV4dHVyZUN1YmUiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0
eXBlQXJndW1lbnR9PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0g
dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQg
dG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVy
ZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9
PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmVEZXB0aDJEIiwg
IlJXVGV4dHVyZURlcHRoMkQiLCAiVGV4dHVyZURlcHRoMkRBcnJheSIsICJSV1RleHR1cmVEZXB0
aDJEQXJyYXkiLCAiVGV4dHVyZURlcHRoQ3ViZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2YgWyJmbG9hdCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJl
VHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1l
bnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVz
aG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkg
eworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9w
ZXJhdG9yIHVjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFy
IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0
b3IgdXNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIi
LCAidXNob3J0IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgewor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJh
dG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1
c2hvcnQiLCAidWludCIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Ig
Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNo
YXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3Igc2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KGNhc3QoSW50MTZBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUg
b2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYiLCAi
ZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIG9wZXJhdG9yIGludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0
aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAi
aW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSBvcGVyYXRvciBoYWxmKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmlt
aXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiaGFsZiJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGludDMyKHVpbnQzMikiLAorICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBpbnQoYXRvbWljX2ludClgLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVl
KCkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gaW50MzIodWludDgpIiwKKyAgICAgICAg
ICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludChhdG9taWNfdWludClgLAogICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gaW50MzIoZmxvYXQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsYm9vbCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgCisKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsi
dWludCIsICJpbnQiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I9PSgke3ByaW1pdGl2ZVR5cGV9LCR7
cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2Fk
VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPCgke3ByaW1pdGl2ZVR5
cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0
LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I8PSgke3ByaW1p
dGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8
PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPigk
e3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0
b3I+PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBv
cGVyYXRvcjw+IHVpbnQzMihpbnQzMikiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3IrKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVl
KCkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAK
KwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+
IHVpbnQzMih1aW50OCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDAp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQzMihm
bG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KGludDMyKSIsCisg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAw
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KHVpbnQzMikiLAorICAgICAgICAg
ICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
RVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KGZsb2F0KSIsCisgICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIG9wZXJhdG9yPD4gZmxvYXQoaW50MzIpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvcioodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBmbG9hdCh1aW50MzIpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBmbG9hdCh1aW50OCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
RVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcis8PihpbnQsaW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKzw+KHVpbnQsdWludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcis8PihmbG9hdCxmbG9hdCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVm
dC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci08PihpbnQsaW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJp
Z2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IHVpbnQgb3BlcmF0b3ItPD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcnwoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwg
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3It
PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQs
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcio8PihpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSB8
IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqPD4odWludCx1aW50KSIsCisgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqPD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUo
KSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvci88PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQg
b3BlcmF0b3ImKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAm
IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
ci88Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciY8PihpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsdWludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdWludCBvcGVyYXRvciY8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yfDw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcjw8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8
PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAor
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0
b3J8PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5s
b2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcl48PihpbnQs
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcl48Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc2lu
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8PD4oaW50LHVpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPDwgcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cjw8PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I+Pjw+KGludCx1aW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFz
aW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+
PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGludCBvcGVyYXRvcn48PihpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgY29zaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+PD4odWlu
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci88PihmbG9hdCxmbG9hdCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVl
KCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC50YW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I9PTw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY2Vp
bChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08Pih1aW50LHVpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgZXhwKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQu
bG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5l
eHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09
PD4oYm9vbCxib29sKSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBsb2coZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGludCxp
bnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
Ym9vbCBvcGVyYXRvcjw8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
c3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PD4oZmxvYXQsZmxvYXQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdHJ1bmMoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1h
dGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVy
YXRvcjw9PD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBkZHgoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAg
ICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBib29sIG9wZXJhdG9yPD08Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgZGR5KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9PD4oZmxvYXQsZmxvYXQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcG93KGZsb2F0LGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUo
KSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPjw+KGludCxpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlzRmluaXRl
KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48Pih1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2luZihmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KHZhbHVlLmxvYWRWYWx1ZSgpID09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgfHwgKHZhbHVl
LmxvYWRWYWx1ZSgpID09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I+PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
Ym9vbCBpc25hbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29s
IG9wZXJhdG9yPj08PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNub3Jt
YWwoaGFsZikiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj08Pih1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVy
YXRvcj49PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIo
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXRhbjIobGVmdC5sb2Fk
VmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRy
ZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkg
aW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5v
ZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihU
W10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChy
ZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgYXNpbnQodWludCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChiaXR3aXNlQ2FzdChVaW50MzJBcnJheSwgSW50MzJBcnJheSwgdmFsdWUubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2Yg
U3dpenpsZU9wLmFsbFN3aXp6bGVPcGVyYXRvcnMoKSkgewotICAgICAgICAgICAgdGhpcy5fbWFw
LnNldChzd2l6emxlLnRvU3RyaW5nKCksIAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSwgbm9kZSkgPT4gewotICAgICAg
ICAgICAgICAgICAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSBuZXcgRUJ1ZmZlcihzd2l6emxlLm91
dFNpemUpOwotICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFkSW5kaWNlcyA9IHsgJ3gnOiAw
LCAneSc6IDEsICd6JzogMiwgJ3cnOiAzIH07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgc3dpenpsZS5vdXRTaXplOyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRCdWZmZXIuc2V0KGksIHZlYy5nZXQocmVhZEluZGljZXNbc3dpenpsZS5jb21wb25l
bnRzW2ldXSkpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRVB0cihvdXRwdXRCdWZmZXIsIDApOwotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEg
PSBzd2l6emxlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZyhzd2l6
emxlLnRvU3RyaW5nKCkpOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIEludDMy
QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgYXN1aW50KGludCkiLAorICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChJ
bnQzMkFycmF5LCBVaW50MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAg
IH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGludCBh
c3VpbnQoZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goYml0d2lzZUNhc3QoRmxvYXQzMkFycmF5LCBVaW50MzJBcnJheSwgdmFsdWUubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIGludCBhc2Zsb2F0KGludCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChJbnQzMkFycmF5LCBGbG9hdDMy
QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgYXNmbG9hdCh1aW50KSIsCisg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0
KFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYxNnRvZjMyKHVpbnQpIiwK
KyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7CisgICAg
ICAgICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYzMnRvZjE2KHVpbnQp
IiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5h
dGl2ZSB2b2lkIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgIm5hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEdyb3VwTWVtb3J5QmFycmllcldpdGhHcm91
cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKKyAgICAgICAgICAgIH0pOwogICAgIH0KICAg
ICAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NeWxlcy5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZWQ4ZjEzYjMwODJkZDYzNjhkMTRkMGQ4NjFlZjMwYTI1MjU2NjdlCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRt
bApAQCAtMCwwICsxLDE1MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5NeWxlczwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iTm9kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iVmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJld3JpdGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJWaXNpdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iQWRkcmVz
c1NwYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBbm9ueW1vdXNWYXJpYWJsZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJBcnJheVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFzc2lnbm1lbnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNo
ZWNrTG9vcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrUmVjdXJzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDaGVja1JldHVybnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNo
ZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1dyYXBw
ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ29tbWFF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEb3RFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVBcnJheVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRUJ1ZmZlckJ1aWxkZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVQdHIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkVudW1MaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtTWVtYmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRXZhbHVhdGlvbkNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXZhbHVh
dG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHByZXNzaW9uRmluZGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Rm9sZENvbnN0ZXhwcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1
bmNEZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJZGVu
dGl0eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklmU3RhdGVtZW50Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmRleEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJJbmxpbmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Iklu
dExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxleGVyVG9rZW4uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkxvZ2ljYWxOb3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ikxvb3BDaGVja2VyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPcmlnaW5L
aW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUHJlcGFyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlYWRN
b2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vyc2lv
bkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vyc2l2ZVR5cGVDaGVja2Vy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlTmFtZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJlc29sdmVPdmVybG9hZEltcGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZl
VHlwZURlZnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJh
cnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iU3RydWN0VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3Vic3RpdHV0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTeW50
aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUcmFwU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlUmVmLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVWludExpdGVy
YWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbmlmaWNhdGlvbkNvbnRleHQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlZhcmlhYmxlRGVjbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlZpc2l0aW5nU2V0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXU3ludGF4RXJyb3IuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IldUcmFwRXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldUeXBlRXJy
b3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldoaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iV3JhcENoZWNrZXIuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iVGVz
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGZ1bmN0aW9uKCkgeworICAgIHByZXBhcmUoKTsKK30pOworPC9zY3JpcHQ+CisKKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0ibWVzc2FnZXMiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwppbmRleCBjMzFi
YzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNjZTcxMjM0ZjVhYWNkZWYz
ZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xhc3MgTmFtZUNvbnRleHQg
ewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAgcmVzb2x2ZUZ1bmNPdmVy
bG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxv
d0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQogICAgIHsKICAg
ICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwogICAgICAgICBpZiAo
IWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtdfTsKICAgICAgICAg
Ci0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3Vt
ZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50KTsKKyAgICAg
ICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAKICAgICBnZXQgY3VycmVu
dFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9O
YW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5q
cwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIxZWU5YzdkLi40M2U0NzFh
YWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2IEBAIGNsYXNzIE5hbWVG
aW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29ya2xpc3QucHVzaChuYW1l
KTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRQcm90b2NvbFJlZihu
b2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAg
ICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4OTgxMjUyMjMyNTAzYmNm
YWJjMzAuLjY5ZDRmMmMxYjlhYjdkYzFjNTBjMzZkYTljYzljYTM3ZTM5MWNjMTggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKQEAgLTQxLDE5ICs0
MSwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhp
cy5fbmFtZUNvbnRleHQuZG9TdGF0ZW1lbnQoc3RhdGVtZW50LCAoKSA9PiBzdGF0ZW1lbnQudmlz
aXQodGhpcykpOwogICAgIH0KICAgICAKLSAgICBfdmlzaXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxk
TmFtZUNvbnRleHQobm9kZSkKKyAgICBfYnVpbGROYW1lQ29udGV4dCgpCiAgICAgewotICAgICAg
ICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwot
ICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsK
LSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5h
bWVDb250ZXh0OworICAgICAgICByZXR1cm4gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250
ZXh0KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewotICAgICAgICBs
ZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVyc0Fu
ZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkpOworICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1l
UmVzb2x2ZXIodGhpcy5fYnVpbGROYW1lQ29udGV4dChub2RlKSk7CiAgICAgICAgIG5vZGUucmV0
dXJuVHlwZS52aXNpdChjaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChjaGVja2VyKTsKQEAg
LTYxLDE2ICs1NiwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGxldCBjb250ZXh0V2l0
aFR5cGVQYXJhbWV0ZXJzID0gdGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNv
bnRleHQobm9kZSk7Ci0gICAgICAgIGxldCBjaGVja2VyV2l0aFR5cGVQYXJhbWV0ZXJzID0gbmV3
IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgbm9kZS5y
ZXR1cm5UeXBlLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBsZXQg
Y29udGV4dFdpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVDb250ZXh0KGNvbnRleHRXaXRoVHlwZVBh
cmFtZXRlcnMpOworICAgICAgICBsZXQgaW5uZXJDb250ZXh0ID0gdGhpcy5fYnVpbGROYW1lQ29u
dGV4dCgpOworICAgICAgICBsZXQgaW5uZXJDaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihpbm5l
ckNvbnRleHQpOworICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoaW5uZXJDaGVja2VyKTsK
ICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykgewotICAgICAg
ICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAg
ICAgICAgY29udGV4dFdpdGhQYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpOworICAgICAgICAgICAg
cGFyYW1ldGVyLnZpc2l0KGlubmVyQ2hlY2tlcik7CisgICAgICAgICAgICBpbm5lckNvbnRleHQu
YWRkKHBhcmFtZXRlcik7CiAgICAgICAgIH0KLSAgICAgICAgbGV0IGNoZWNrZXJXaXRoUGFyYW1l
dGVycyA9IG5ldyBOYW1lUmVzb2x2ZXIoY29udGV4dFdpdGhQYXJhbWV0ZXJzKTsKLSAgICAgICAg
bm9kZS5ib2R5LnZpc2l0KGNoZWNrZXJXaXRoUGFyYW1ldGVycyk7CisgICAgICAgIG5vZGUuYm9k
eS52aXNpdChpbm5lckNoZWNrZXIpOwogICAgIH0KICAgICAKICAgICB2aXNpdEJsb2NrKG5vZGUp
CkBAIC0xMTUsNDEgKzEwOCw5IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICBub2RlLmJvZHkudmlzaXQobmV3UmVzb2x2ZXIpOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgcGFyZW50
IG9mIG5vZGUuZXh0ZW5kcykKLSAgICAgICAgICAgIHBhcmVudC52aXNpdCh0aGlzKTsKLSAgICAg
ICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsK
LSAgICAgICAgbmFtZUNvbnRleHQuYWRkKG5vZGUudHlwZVZhcmlhYmxlKTsKLSAgICAgICAgbGV0
IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChs
ZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52
aXNpdChjaGVja2VyKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX25hbWVDb250ZXh0LmdldChQcm90b2Nv
bCwgbm9kZS5uYW1lKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCBw
cm90b2NvbCBuYW1lZCAiICsgbm9kZS5uYW1lKTsKLSAgICAgICAgbm9kZS5wcm90b2NvbERlY2wg
PSByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xGdW5jRGVjbChub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0gICAgICAgIGxldCBmdW5jcyA9
IHRoaXMuX25hbWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoIWZ1
bmNzKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiQ2Fubm90IGZpbmQgYW55IGZ1bmN0aW9ucyBuYW1lZCAiICsgbm9kZS5uYW1lKTsK
LSAgICAgICAgbm9kZS5wb3NzaWJsZU92ZXJsb2FkcyA9IGZ1bmNzOwotICAgIH0KLSAgICAKICAg
ICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7CiAgICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5l
dyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQ
YXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgdHlwZVBhcmFt
ZXRlci52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1l
dGVyKTsKLSAgICAgICAgfQogICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIo
bmFtZUNvbnRleHQpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQoY2hlY2tlcik7CiAgICAgfQpA
QCAtMTU3LDE1ICsxMTgsMjIgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgbmFtZUNvbnRl
eHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxl
dCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIHR5
cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5hZGQodHlw
ZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJl
c29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVs
ZHMpCiAgICAgICAgICAgICBmaWVsZC52aXNpdChjaGVja2VyKTsKICAgICB9CiAgICAgCisgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCisgICAgeworICAgICAgICBsZXQgdHlwZSA9IG5vZGUudHlwZTsK
KyAgICAgICAgaWYgKCF0eXBlKSB7CisgICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFtZUNvbnRl
eHQuZ2V0KFR5cGUsIG5vZGUubmFtZSk7CisgICAgICAgICAgICBpZiAoIXR5cGUpCisgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
Q291bGQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgbm9kZS5uYW1lKTsKKyAgICAgICAgICAgIG5v
ZGUudHlwZSA9IHR5cGU7CisgICAgICAgIH0KKyAgICB9CisKICAgICBfcmVzb2x2ZVR5cGVBcmd1
bWVudHModHlwZUFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewpAQCAtMTgxLDM2ICsxNDksMTYgQEAgY2xhc3Mg
TmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnQub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlR5cGUgYXJndW1lbnQgcmVzb2x2ZWQgdG8gd3Jvbmcga2luZCBvZiB0
aGluZzogIiArIHRoaW5nLmtpbmQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAodHlwZUFyZ3VtZW50W2ldIGluc3RhbmNlb2YgVmFsdWUKLSAgICAgICAgICAg
ICAgICAmJiAhdHlwZUFyZ3VtZW50W2ldLmlzQ29uc3RleHByKQorICAgICAgICAgICAgaWYgKHR5
cGVBcmd1bWVudFtpXSBpbnN0YW5jZW9mIFZhbHVlICYmICF0eXBlQXJndW1lbnRbaV0uaXNDb25z
dGV4cHIpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFyZ3VtZW50
W2ldLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCBjb25zdGV4cHIiKTsKICAgICAgICAg
fQogICAgIH0KICAgICAKLSAgICB2aXNpdFR5cGVSZWYobm9kZSkKKyAgICB2aXNpdE5hdGl2ZVR5
cGUobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRzKG5vZGUu
dHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIAotICAgICAgICBsZXQgdHlwZSA9IG5vZGUudHlwZTsK
LSAgICAgICAgaWYgKCF0eXBlKSB7Ci0gICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFtZUNvbnRl
eHQuZ2V0KFR5cGUsIG5vZGUubmFtZSk7Ci0gICAgICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
Q291bGQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgbm9kZS5uYW1lKTsKLSAgICAgICAgICAgIG5v
ZGUudHlwZSA9IHR5cGU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlLnR5
cGVQYXJhbWV0ZXJzLmxlbmd0aCAhPSBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3Jv
bmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIChwYXNzZWQgIiArIG5vZGUudHlwZUFyZ3VtZW50
cy5sZW5ndGggKyAiLCBleHBlY3RlZCAiICsgdHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAi
KSIpOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGUudHlwZVBhcmFtZXRlcnMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJJc1R5cGUgPSB0eXBlLnR5cGVQ
YXJhbWV0ZXJzW2ldIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlOwotICAgICAgICAgICAgbGV0IGFy
Z3VtZW50SXNUeXBlID0gbm9kZS50eXBlQXJndW1lbnRzW2ldIGluc3RhbmNlb2YgVHlwZTsKLSAg
ICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJJc1R5cGUgJiYgIWFyZ3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVk
IHR5cGUsIGJ1dCBnb3QgdmFsdWUgYXQgYXJndW1lbnQgIyIgKyBpKTsKLSAgICAgICAgICAgIGlm
ICghcGFyYW1ldGVySXNUeXBlICYmIGFyZ3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVkIHZh
bHVlLCBidXQgZ290IHR5cGUgYXQgYXJndW1lbnQgIyIgKyBpKTsKLSAgICAgICAgfQorICAgICAg
ICBmb3IobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCisgICAgICAgICAg
ICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0UmVmZXJl
bmNlVHlwZShub2RlKQpAQCAtMjc5LDggKzIyNyw2IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRl
bmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRzKG5vZGUudHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIAogICAgICAgICBsZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVu
Yywgbm9kZS5uYW1lKTsKICAgICAgICAgaWYgKGZ1bmNzKQogICAgICAgICAgICAgbm9kZS5wb3Nz
aWJsZU92ZXJsb2FkcyA9IGZ1bmNzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZUZ1bmMuanMKaW5kZXggYTU1MzM1MmQ5YWVlNjBiY2E2MmFkNmUxMjMyODhiODkwNTE4MjQ4
Ny4uZGMwZmY3ODFiNjkyZTE4NDYyNzg2NDg1MGVmNjhkZDM1YjlhOGYwNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCkBAIC0yNSwxMyArMjUsMTIgQEAK
ICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlRnVuYyBleHRlbmRzIEZ1bmMgewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUs
IHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7Ci0gICAg
ICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwg
cmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgdGhp
cy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbiA9IG51
bGw7CiAgICAgICAgIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YSA9IG51bGw7Ci0gICAgICAgIHRo
aXMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbiA9IChzdWJzdGl0dXRpb24pID0+IHt9OwogICAg
ICAgICB0aGlzLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9uRGF0YSwg
dmlzaXRvcikgPT4gbnVsbDsKICAgICAgICAgdGhpcy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBsZW1l
bnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRhdGEgPT4gbnVsbDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5OWI3ODI2MzUzNWE3MGQ5MzA5NjI2ZDU4NTAz
NTkwMDEwNWQ0MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0luc3RhbmNlLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBOYXRpdmVGdW5jSW5zdGFu
Y2UgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihmdW5jLCByZXR1cm5UeXBlLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUsIGltcGxlbWVudGF0aW9uRGF0YSkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwotICAgICAgICB0aGlzLl9mdW5jID0gZnVuYzsK
LSAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gaW1wbGVtZW50YXRpb25EYXRhOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgZnVuYygpIHsgcmV0dXJuIHRoaXMuX2Z1bmM7IH0KLSAgICBn
ZXQgaXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IGltcGxlbWVudGF0aW9uRGF0
YSgpIHsgcmV0dXJuIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YTsgfQotCi0gICAgdG9EZWNsU3Ry
aW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZlICIgKyBzdXBlci50b0RlY2xTdHJp
bmcoKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hdGl2ZVR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVU
eXBlLmpzCmluZGV4IGI4YjFhNDczMzBiNWZkNTFmZjAyMWFmMDY1ODY4NDRjMmFjYmE4ZWEuLjVj
YzE4NDkzODllYmExY2YyYTI2MWVhY2ZkODk4YTMyNWRmYjljMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcwpAQCAtMjUsMTQgKzI1LDE0IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1
Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSwgdHlwZUFyZ3VtZW50cykKICAgICB7Ci0gICAgICAgIGlmICghKHR5cGVQYXJhbWV0
ZXJzIGluc3RhbmNlb2YgQXJyYXkpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBl
IHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlwZVBhcmFtZXRlcnMpOworICAgICAgICBpZiAo
ISh0eXBlQXJndW1lbnRzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJ0eXBlIHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlwZUFyZ3VtZW50cyk7CiAg
ICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAg
dGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBh
cmFtZXRlcnM7CisgICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwog
ICAgICAgICB0aGlzLl9pc051bWJlciA9IGZhbHNlOwogICAgICAgICB0aGlzLl9pc0ludCA9IGZh
bHNlOwogICAgICAgICB0aGlzLl9pc0Zsb2F0aW5nID0gZmFsc2U7CkBAIC00MCw4ICs0MCwxNSBA
QCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgfQogICAgIAogICAgIGdldCBv
cmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJu
IHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90
eXBlUGFyYW1ldGVyczsgfQorICAgIGdldCBiYXNlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7
IH0KKyAgICBnZXQgbmFtZSgpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFt
ZTsKKyAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5
cGVBcmd1bWVudHM7IH0KICAgICBnZXQgaXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
CiAgICAgLy8gV2UgbGV0IEludHJpbnNpY3MuanMgc2V0IHRoZXNlIGFzIGl0IGxpa2VzLgpAQCAt
NTQsMTggKzYxLDkgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIGdldCBp
c1ByaW1pdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzUHJpbWl0aXZlOyB9CiAgICAgc2V0IGlzUHJp
bWl0aXZlKHZhbHVlKSB7IHRoaXMuX2lzUHJpbWl0aXZlID0gdmFsdWU7IH0KICAgICAKLSAgICBp
bnN0YW50aWF0ZSh0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IHRoaXMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlh
dGlvbiIpOwotICAgICAgICBpZiAoIXR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAg
cmV0dXJuIHRoaXM7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKHRoaXMs
IHR5cGVBcmd1bWVudHMpOwotICAgIH0KLSAgICAKICAgICB0b1N0cmluZygpCiAgICAgewotICAg
ICAgICByZXR1cm4gIm5hdGl2ZSB0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5
cGVQYXJhbWV0ZXJzICsgIj4iOworICAgICAgICByZXR1cm4gIm5hdGl2ZSB0eXBlZGVmICIgKyB0
aGlzLm5hbWU7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYXRpdmVUeXBlSW5zdGFuY2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYXRpdmVUeXBlSW5zdGFuY2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNhMzllNzc3ODcwMDQ5ZWQyMmQ3MDQxYTUyMDE0Y2M4ZTY5Y2JjNGYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBOYXRpdmVUeXBlSW5zdGFuY2UgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25z
dHJ1Y3Rvcih0eXBlLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0
eXBlQXJndW1lbnRzOwotICAgIH0KLSAgICAKLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMu
X3R5cGU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1
bWVudHM7IH0KLSAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl90eXBlLmlzUHJp
bWl0aXZlOyB9Ci0gICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAg
IHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudHlwZSAhPSBvdGhlci50eXBlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAodGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBvdGhlci50eXBlQXJndW1lbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlm
ICghdGhpcy50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIu
dHlwZUFyZ3VtZW50c1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIjwiICsgdGhpcy50eXBlQXJndW1lbnRz
ICsgIj4iOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTm9kZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKaW5k
ZXggODgxMDMwMTMwNzczZTcwZWE4OGUwYWI1OTc5NzRjZjU2MWY5ZDVlNC4uZWZlNGExYTQ4MmI0
NzIxZjJmYjNmZTU4Nzc2ZGFkYTZhZjc3ZDljMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTm9kZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Ob2RlLmpzCkBAIC04OCw5ICs4OCw5IEBAIGNsYXNzIE5vZGUgewogICAgIGdldCBpc0xpdGVy
YWwoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgCisKICAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQp
IHsgcmV0dXJuIDA7IH0KLSAgICAKKwogICAgIGVxdWFscyhvdGhlcikKICAgICB7CiAgICAgICAg
IGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7CkBAIC0x
MjMsMTEgKzEyMyw0IEBAIGNsYXNzIE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMu
dmlzaXQobmV3IFN1YnN0aXR1dGlvbihwYXJhbWV0ZXJzLCBhcmd1bWVudExpc3QpKTsKICAgICB9
Ci0gICAgCi0gICAgc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24ocGFyYW1ldGVycywgdW5pZmljYXRp
b25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuc3Vic3RpdHV0ZSgKLSAgICAg
ICAgICAgIHBhcmFtZXRlcnMsCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLm1hcCh0eXBlID0+IHVu
aWZpY2F0aW9uQ29udGV4dC5maW5kKHR5cGUpKSk7Ci0gICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9QYXJzZS5qcwppbmRleCA2ZDJiNDMxNjE1NjAxYWI5ZGQzZDA5MzhmYmZiMzg1
ZWUyYTRkYWYxLi5kODM4NjVjZDQwZTM0YjM3NTY4ZWY1ZjI3Y2U4NGExM2Y1MjA4YTI2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwpAQCAtMTIxLDEyICsxMjEsNiBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIGZ1bmN0
aW9uIHBhcnNlUHJvdG9jb2xSZWYoKQotICAgIHsKLSAgICAgICAgbGV0IHByb3RvY29sVG9rZW4g
PSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29s
UmVmKHByb3RvY29sVG9rZW4sIHByb3RvY29sVG9rZW4udGV4dCk7Ci0gICAgfQotICAgIAogICAg
IGZ1bmN0aW9uIGNvbnN1bWVFbmRPZlR5cGVBcmdzKCkKICAgICB7CiAgICAgICAgIGxldCByaWdo
dFNoaWZ0ID0gdHJ5Q29uc3VtZSgiPj4iKTsKQEAgLTEzNiwzNCArMTMwLDYgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICAgICAgY29uc3VtZSgiPiIpOwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBw
YXJzZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGVzdCgiPCIpKQotICAg
ICAgICAgICAgcmV0dXJuIFtdOwotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwot
ICAgICAgICBjb25zdW1lKCI8Iik7Ci0gICAgICAgIHdoaWxlICghdGVzdCgiPiIpKSB7Ci0gICAg
ICAgICAgICBsZXQgY29uc3RleHByID0gbGV4ZXIuYmFja3RyYWNraW5nU2NvcGUoKCkgPT4gewot
ICAgICAgICAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgICAgICAgICAg
bGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIGFz
c2VydE5leHQoIiwiLCAiPiIsICI+PiIpOwotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29u
c3RleHByVHlwZVBhcmFtZXRlcih0eXBlLm9yaWdpbiwgbmFtZS50ZXh0LCB0eXBlKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKGNvbnN0ZXhwcikKLSAgICAgICAgICAgICAgICBy
ZXN1bHQucHVzaChjb25zdGV4cHIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAg
IGxldCBwcm90b2NvbCA9IHRyeUNvbnN1bWUoIjoiKSA/IHBhcnNlUHJvdG9jb2xSZWYoKSA6IG51
bGw7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFR5cGVWYXJpYWJsZShuYW1lLCBu
YW1lLnRleHQsIHByb3RvY29sKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXRy
eUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBjb25zdW1lRW5kT2ZUeXBlQXJncygpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LSAgICAKICAgICBmdW5jdGlvbiBwYXJzZVRlcm0oKQogICAgIHsKICAgICAgICAgbGV0IHRva2Vu
OwpAQCAtMjIyLDcgKzE4OCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCB0b2tl
bjsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiLSIpKQotICAgICAgICAgICAgcmV0
dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtd
LCBbcGFyc2VUZXJtKCldKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24o
dG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbcGFyc2VUZXJtKCldKTsKICAgICAgICAg
bGV0IGxlZnQgPSBwYXJzZVRlcm0oKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
LiIpKQogICAgICAgICAgICAgbGVmdCA9IG5ldyBEb3RFeHByZXNzaW9uKHRva2VuLCBsZWZ0LCBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQpOwpAQCAtMjgyLDggKzI0OCw3IEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgICAgIGFkZHJlc3NTcGFjZSA9IHRva2VuLnRleHQ7CiAgICAgICAgIAog
ICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxl
dCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7Ci0gICAgICAgIGxldCB0eXBl
ID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0LCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAg
bGV0IHR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBuYW1lLnRleHQpOwogICAgICAgICAKICAgICAg
ICAgZnVuY3Rpb24gZ2V0QWRkcmVzc1NwYWNlKCkKICAgICAgICAgewpAQCAtMzE4LDExICsyODMs
MTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInR5
cGVkZWYiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRl
eHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsK
ICAgICAgICAgY29uc3VtZSgiPSIpOwogICAgICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwog
ICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4s
IG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBUeXBlRGVm
KG9yaWdpbiwgbmFtZSwgdHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGdlbmVyaWNQ
YXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNvbnN0cnVjdG9yKQpAQCAtMzM5LDEzICszMDMs
MTIgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAg
ICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAogICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdo
dCkgPT4KLSAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRv
ciIgKyB0b2tlbi50ZXh0LCBbXSwgW2xlZnQsIHJpZ2h0XSkpOworICAgICAgICAgICAgICAgIG5l
dyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtsZWZ0LCBy
aWdodF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VDYWxsRXhwcmVzc2lvbigp
CiAgICAgewogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0g
ICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAg
IGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGFyZ3VtZW50TGlzdCA9IFtdOwogICAgICAgICB3
aGlsZSAoIXRlc3QoIikiKSkgewpAQCAtMzU1LDcgKzMxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24obmFtZSwgbmFtZS50ZXh0LCB0eXBl
QXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxF
eHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgYXJndW1lbnRMaXN0KTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zNjMsNyArMzI2LDYgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
IHsKICAgICAgICAgcmV0dXJuIGxleGVyLnRlc3RTY29wZSgoKSA9PiB7CiAgICAgICAgICAgICBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgcGFyc2VUeXBlQXJndW1lbnRz
KCk7CiAgICAgICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTM4
MSw3ICszNDMsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQs
IGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlmIChuYW1lID09ICJvcGVyYXRvciIp
CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbmFtZTogIiArIG5hbWUpOwog
ICAgICAgICAKLSAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwg
W10sIGFyZ3MpOworICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCBuYW1l
LCBhcmdzKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gZmluaXNoUGFyc2luZ1Bvc3RJbmNy
ZW1lbnQodG9rZW4sIGxlZnQpCkBAIC00NTQsNyArNDE2LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJv
Z3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAg
ICBpZiAodGVzdCgiKysiLCAiLS0iKSkKICAgICAgICAgICAgIHJldHVybiBwYXJzZVByZUluY3Jl
bWVudCgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIrIiwgIi0iLCAifiIpKQot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiAr
IHRva2VuLnRleHQsIFtdLCBbcGFyc2VQb3NzaWJsZVByZWZpeCgpXSk7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwg
W3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1l
KCIqIikpCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlcmVmZXJlbmNlRXhwcmVzc2lvbih0b2tl
biwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3Vt
ZSgiJiIpKQpAQCAtNDYzLDcgKzQyNSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIHJldHVy
biBuZXcgTWFrZUFycmF5UmVmRXhwcmVzc2lvbih0b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgp
KTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiISIpKSB7CiAgICAgICAgICAgICBs
ZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVByZWZpeCgpOwotICAgICAgICAgICAgcmV0dXJu
IG5ldyBMb2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdp
biwgImJvb2wiLCBbXSwgW3JlbWFpbmRlcl0pKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9n
aWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29s
IiwgW3JlbWFpbmRlcl0pKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcGFyc2VQb3NzaWJs
ZVN1ZmZpeCgpOwogICAgIH0KQEAgLTQ5Myw3ICs0NTUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9n
cmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAg
IHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgWyI9PSIsICIhPSJdLCBwYXJz
ZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHksCiAgICAgICAgICAgICAodG9rZW4sIGxlZnQs
IHJpZ2h0KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVz
c2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbXSwgW2xlZnQsIHJpZ2h0XSk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0i
LCBbbGVmdCwgcmlnaHRdKTsKICAgICAgICAgICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiIT0i
KQogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgTG9naWNhbE5vdCh0b2tlbiwgcmVz
dWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTE5LDcgKzQ4MSw3IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAg
ICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0gICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJp
Z2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5ldyBDYWxs
RXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW2xlZnRdKSwgbmV3IENhbGxFeHBy
ZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW3JpZ2h0XSkpKTsKKyAgICAgICAgICAg
ICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5ldyBMb2dpY2FsRXhwcmVzc2lvbih0b2tlbiwgdG9r
ZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9uKGxlZnQub3JpZ2luLCAiYm9vbCIsIFtsZWZ0XSks
IG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJib29sIiwgW3JpZ2h0XSkpKTsKICAg
ICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VQb3NzaWJsZUxvZ2ljYWxBbmQoKQpAQCAtNjU2
LDcgKzYxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwg
bGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IGVsc2VCb2R5OwogICAgICAgICBp
ZiAodHJ5Q29uc3VtZSgiZWxzZSIpKQogICAgICAgICAgICAgZWxzZUJvZHkgPSBwYXJzZVN0YXRl
bWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IElmU3RhdGVtZW50KG9yaWdpbiwgbmV3IENhbGxF
eHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSks
IGJvZHksIGVsc2VCb2R5KTsKKyAgICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4s
IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlv
bmFsXSksIGJvZHksIGVsc2VCb2R5KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZVdoaWxl
KCkKQEAgLTY2Niw3ICs2MjgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9y
aWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBjb25kaXRpb25h
bCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1lKCIpIik7CiAgICAgICAgIGxl
dCBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Ao
b3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtd
LCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CisgICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9y
aWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29u
ZGl0aW9uYWxdKSwgYm9keSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VGb3IoKQpAQCAt
Njg3LDcgKzY0OSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBj
b25kaXRpb24gPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsK
LSAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb24ub3Jp
Z2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uXSk7CisgICAgICAgICAgICBjb25kaXRpb24gPSBu
ZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uXSk7
CiAgICAgICAgIH0KICAgICAgICAgbGV0IGluY3JlbWVudDsKICAgICAgICAgaWYgKHRyeUNvbnN1
bWUoIikiKSkKQEAgLTcwOCw3ICs2NzAsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGNvbnN1bWUo
IigiKTsKICAgICAgICAgbGV0IGNvbmRpdGlvbmFsID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAg
ICAgIGNvbnN1bWUoIikiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4s
IGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10s
IFtjb25kaXRpb25hbF0pKTsKKyAgICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4s
IGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2Nv
bmRpdGlvbmFsXSkpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVj
bHMoKQpAQCAtODU4LDEzICs4MjAsMTEgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2lu
OwogICAgICAgICBsZXQgcmV0dXJuVHlwZTsKICAgICAgICAgbGV0IG5hbWU7Ci0gICAgICAgIGxl
dCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgbGV0IGlzQ2FzdDsKICAgICAgICAgbGV0IHNoYWRl
clR5cGU7CiAgICAgICAgIGxldCBvcGVyYXRvclRva2VuID0gdHJ5Q29uc3VtZSgib3BlcmF0b3Ii
KTsKICAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4pIHsKICAgICAgICAgICAgIG9yaWdpbiA9IG9w
ZXJhdG9yVG9rZW47Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFt
ZXRlcnMoKTsKICAgICAgICAgICAgIHJldHVyblR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAg
ICAgIG5hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAgICAgICBpc0Nhc3QgPSB0cnVlOwpA
QCAtODc3LDQ0ICs4MzcsMTcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmln
aW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgb3JpZ2luID0gcmV0dXJuVHlwZS5vcmlnaW47CiAgICAgICAgICAgICBuYW1l
ID0gcGFyc2VGdW5jTmFtZSgpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycygpOwotICAgICAgICByZXR1
cm4gbmV3IEZ1bmMob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFy
YW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9y
aWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sRnVuY0RlY2woKQotICAgIHsKLSAg
ICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7Ci0gICAgICAgIHJldHVybiBuZXcgUHJv
dG9jb2xGdW5jRGVjbChmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1
bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hh
ZGVyVHlwZSk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlRnVuY0RlZigpCiAgICAg
ewogICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVuY0RlY2woKTsKICAgICAgICAgbGV0IGJvZHkg
PSBwYXJzZUJsb2NrKCk7Ci0gICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwg
ZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFy
YW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAg
IAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBv
cmlnaW4gPSBjb25zdW1lKCJwcm90b2NvbCIpOwotICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2Nv
bERlY2wob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkgewotICAg
ICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ7IikpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYWRk
RXh0ZW5kcyhwYXJzZVByb3RvY29sUmVmKCkpOwotICAgICAgICAgICAgICAgIGlmICghdHJ5Q29u
c3VtZSgiLCIpKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgICBjb25zdW1lKCJ7Iik7Ci0gICAgICAgIHdoaWxlICghdHJ5Q29uc3Vt
ZSgifSIpKSB7Ci0gICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgp
KTsKLSAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFt
ZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBm
dW5jLnNoYWRlclR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZpZWxkKCkK
QEAgLTkyOSw4ICs4NjIsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgb3JpZ2lu
ID0gY29uc3VtZSgic3RydWN0Iik7CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlk
ZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQ
YXJhbWV0ZXJzKCk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4s
IG5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RU
eXBlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgd2hpbGUg
KCF0cnlDb25zdW1lKCJ9IikpCiAgICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlRmllbGQoKSk7
CkBAIC05NDEsNyArODczLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmln
aW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMg
PSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJu
IG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwg
ZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5z
aGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBm
dW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwg
ZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VOYXRpdmUo
KQpAQCAtOTQ5LDkgKzg4MSw5IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbiA9IGNv
bnN1bWUoIm5hdGl2ZSIpOwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgidHlwZWRlZiIpKSB7CiAg
ICAgICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAg
ICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKKyAgICAgICAgICAg
IGxldCBwYXJzZWRBcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAgICAgICAg
IGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZShvcmlnaW4s
IG5hbWUudGV4dCwgcGFyYW1ldGVycyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5
cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcnNlZEFyZ3VtZW50cyk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHBhcnNlTmF0aXZlRnVuYygpOwogICAgIH0KQEAgLTk4NSw3ICs5MTcsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpCiAgICAgICAgICAgICBiYXNl
VHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBiYXNlVHlwZSA9
IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiLCBbXSk7CisgICAgICAgICAgICBiYXNlVHlwZSA9IG5l
dyBUeXBlUmVmKG5hbWUsICJpbnQiKTsKICAgICAgICAgY29uc3VtZSgieyIpOwogICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEVudW1UeXBlKG5hbWUsIG5hbWUudGV4dCwgYmFzZVR5cGUpOwogICAg
ICAgICB3aGlsZSAoIXRlc3QoIn0iKSkgewpAQCAtMTAxMywxMCArOTQ1LDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBl
bHNlIGlmICh0b2tlbi50ZXh0ID09ICJlbnVtIikKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBh
cnNlRW51bVR5cGUoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInByb3RvY29s
IikKLSAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQog
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwppbmRleCBhMjA0OGE5
YWQzZTgzYmQxOGI3NjQ0NGNhNTU0NmU0OGZlMDExOWEwLi5lN2MzZjIzNjYwNGY4YmEwODdhYzFl
NjZmNThkNjc4NjAxYzU3NmM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBh
cmUuanMKQEAgLTQyLDE2ICs0MiwxMyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAg
IGZvbGRDb25zdGV4cHJzKHByb2dyYW0pOwogICAgICAgICBsZXQgbmFtZVJlc29sdmVyID0gY3Jl
YXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFtZXNJblR5cGVzKHBy
b2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAgIHJlc29sdmVOYW1lc0luUHJvdG9jb2xzKHBy
b2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJv
Z3JhbSk7Ci0gICAgICAgIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0pOwogICAg
ICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhw
cm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJl
c29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5GdW5jdGlvbnMocHJvZ3JhbSk7Ci0g
ICAgICAgIAotICAgICAgICBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0pOworCiAgICAg
ICAgIGNoZWNrKHByb2dyYW0pOwogICAgICAgICBjaGVja0xpdGVyYWxUeXBlcyhwcm9ncmFtKTsK
ICAgICAgICAgcmVzb2x2ZVByb3BlcnRpZXMocHJvZ3JhbSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcwppbmRleCBiYmM0YjI0YTYyMjdiMWNlNWIwNmQ3MzNhYzIwZDky
YjU5NmE0YzczLi44ZmM2Zjc5M2VlNmU3M2VlY2E1YTZhYTc0YTQ0MGE2N2I4NmJlNmZhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKQEAgLTMxLDggKzMxLDYgQEAg
Y2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgICAgICB0aGlzLl90b3BMZXZlbFN0YXRl
bWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gbmV3IE1hcCgpOwogICAgICAg
ICB0aGlzLl90eXBlcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2xzID0gbmV3
IE1hcCgpOwotICAgICAgICB0aGlzLl9mdW5jSW5zdGFudGlhdG9yID0gbmV3IEZ1bmNJbnN0YW50
aWF0b3IodGhpcyk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0ID0gbmV3IE5hbWVD
b250ZXh0KCk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0LnByb2dyYW0gPSB0aGlz
OwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dC5yZWNvZ25pemVJbnRyaW5zaWNzKCk7
CkBAIC00Miw4ICs0MCw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQg
dG9wTGV2ZWxTdGF0ZW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzOyB9
CiAgICAgZ2V0IGZ1bmN0aW9ucygpIHsgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsgfQogICAgIGdl
dCB0eXBlcygpIHsgcmV0dXJuIHRoaXMuX3R5cGVzOyB9Ci0gICAgZ2V0IHByb3RvY29scygpIHsg
cmV0dXJuIHRoaXMuX3Byb3RvY29sczsgfQotICAgIGdldCBmdW5jSW5zdGFudGlhdG9yKCkgeyBy
ZXR1cm4gdGhpcy5fZnVuY0luc3RhbnRpYXRvcjsgfQogICAgIGdldCBnbG9iYWxOYW1lQ29udGV4
dCgpIHsgcmV0dXJuIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0OyB9CiAgICAgCiAgICAgYWRkKHN0
YXRlbWVudCkKQEAgLTU2LDggKzUyLDYgQEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewog
ICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwogICAgICAgICB9IGVsc2UgaWYgKHN0
YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpCiAgICAgICAgICAgICB0aGlzLl90eXBlcy5zZXQoc3Rh
dGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0
YW5jZW9mIFByb3RvY29sKQotICAgICAgICAgICAgdGhpcy5fcHJvdG9jb2xzLnNldChzdGF0ZW1l
bnQubmFtZSwgc3RhdGVtZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJTdGF0ZW1lbnQgaXMgbm90IGEgZnVuY3Rpb24gb3IgdHlwZTogIiArIHN0YXRlbWVu
dCk7CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3RhdGVtZW50cy5wdXNoKHN0YXRlbWVudCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzM2Y4NDU2NDc3ZWNhMmU4ZGNmNjZjZjQ1YzJkNDczY2EwODU3ZDg4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9y
KG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29y
aWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgfQotICAgIAot
ICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgp
IHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQga2luZCgpIHsgcmV0dXJuIFByb3RvY29s
OyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFt
ZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm90b2NvbERlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERl
Y2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MGJjZmNmMzNiYTczOTVjNTZk
OTUyYTU3OWQwOTkyN2IwYmU3NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xEZWNs
IGV4dGVuZHMgUHJvdG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMuZXh0ZW5kcyA9IFtd
OwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzID0gW107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVy
ZU1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fdHlwZVZhcmlhYmxlID0gbmV3IFR5cGVW
YXJpYWJsZShvcmlnaW4sIG5hbWUsIG51bGwpOwotICAgIH0KLSAgICAKLSAgICBhZGRFeHRlbmRz
KHByb3RvY29sKQotICAgIHsKLSAgICAgICAgdGhpcy5leHRlbmRzLnB1c2gocHJvdG9jb2wpOwot
ICAgIH0KLSAgICAKLSAgICBhZGQoc2lnbmF0dXJlKQotICAgIHsKLSAgICAgICAgaWYgKCEoc2ln
bmF0dXJlIGluc3RhbmNlb2YgUHJvdG9jb2xGdW5jRGVjbCkpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNpZ25hdHVyZSBpc24ndCBhIFByb3RvY29sRnVuY0RlY2wgYnV0IGEgIiArIHNp
Z25hdHVyZS5jb25zdHJ1Y3Rvci5uYW1lKTsKLSAgICAgICAgCi0gICAgICAgIHNpZ25hdHVyZS5w
cm90b2NvbERlY2wgPSB0aGlzOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0
dXJlKTsKLSAgICAgICAgbGV0IG92ZXJsb2FkcyA9IHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQoc2ln
bmF0dXJlLm5hbWUpOwotICAgICAgICBpZiAoIW92ZXJsb2FkcykKLSAgICAgICAgICAgIHRoaXMu
X3NpZ25hdHVyZU1hcC5zZXQoc2lnbmF0dXJlLm5hbWUsIG92ZXJsb2FkcyA9IFtdKTsKLSAgICAg
ICAgb3ZlcmxvYWRzLnB1c2goc2lnbmF0dXJlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHNpZ25h
dHVyZXMoKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVzOyB9Ci0gICAgc2lnbmF0dXJlc0J5TmFt
ZShuYW1lKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KG5hbWUpOyB9Ci0gICAgZ2V0
IHR5cGVWYXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZTsgfQotICAgIAotICAg
IHNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKG5hbWUsIHR5cGVWYXJpYWJsZSkKLSAg
ICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKFt0aGlzLnR5
cGVWYXJpYWJsZV0sIFt0eXBlVmFyaWFibGVdKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMu
c2lnbmF0dXJlc0J5TmFtZShuYW1lKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoc2lnbmF0dXJlID0+IHNp
Z25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pKTsKLSAgICB9Ci0gICAgCi0gICAgaW5oZXJpdHMo
b3RoZXJQcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghb3RoZXJQcm90b2NvbCkKLSAgICAg
ICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgCi0gICAgICAgIGlmIChvdGhl
clByb3RvY29sIGluc3RhbmNlb2YgUHJvdG9jb2xSZWYpCi0gICAgICAgICAgICBvdGhlclByb3Rv
Y29sID0gb3RoZXJQcm90b2NvbC5wcm90b2NvbERlY2w7Ci0gICAgICAgIAotICAgICAgICBmb3Ig
KGxldCBvdGhlclNpZ25hdHVyZSBvZiBvdGhlclByb3RvY29sLnNpZ25hdHVyZXMpIHsKLSAgICAg
ICAgICAgIGxldCBzaWduYXR1cmVzID0gdGhpcy5zaWduYXR1cmVzQnlOYW1lKG90aGVyU2lnbmF0
dXJlLm5hbWUpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiUHJvdG9jb2wgIiArIHRoaXMubmFtZSAr
ICIgZG9lcyBub3QgaGF2ZSBhIGZ1bmN0aW9uIG5hbWVkICIgKyBvdGhlclNpZ25hdHVyZS5uYW1l
ICsgIiAobG9va2luZyBhdCBzaWduYXR1cmUgIiArIG90aGVyU2lnbmF0dXJlICsgIikifTsKLSAg
ICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAgICAg
ICAgICAgc2lnbmF0dXJlcywgW10sCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUucGFy
YW1ldGVyVHlwZXMsCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZUZv
ck92ZXJsb2FkUmVzb2x1dGlvbik7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZp
bmQgbWF0Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsgb3RoZXJTaWduYXR1cmUgKyAiIGluICIgKyB0
aGlzLm5hbWUgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6ICIgKyBvdmVy
bG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAgICAgIGxldCBz
dWJzdGl0dXRlZFJldHVyblR5cGUgPQotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMucmV0
dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgb3Zl
cmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsK
LSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhvdGhlclNpZ25h
dHVyZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2Us
IHJlYXNvbjogIlJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIG90aGVyU2lnbmF0dXJl
LnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlfTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIGhhc0hl
aXIodHlwZSkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0
aW9uKFt0aGlzLl90eXBlVmFyaWFibGVdLCBbdHlwZV0pOwotICAgICAgICBsZXQgc2lnbmF0dXJl
cyA9IHRoaXMuc2lnbmF0dXJlczsKLSAgICAgICAgZm9yIChsZXQgb3JpZ2luYWxTaWduYXR1cmUg
b2Ygc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHNpZ25hdHVyZSA9IG9yaWdpbmFsU2ln
bmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSBy
ZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZS5wb3NzaWJsZU92ZXJsb2Fkcywgc2lnbmF0dXJl
LnR5cGVQYXJhbWV0ZXJzLCBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMsIHNpZ25hdHVyZS5yZXR1
cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQu
ZnVuYykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkRp
ZCBub3QgZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIgKyBvcmlnaW5hbFNpZ25hdHVyZSAr
ICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIikgd2l0
aCB0eXBlICIgKyB0eXBlICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVkOiAi
ICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIpIiA6ICIiKX07Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlZFJldHVyblR5cGUgPSBvdmVybG9hZC5mdW5j
LnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgb3Zl
cmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsK
LSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhzaWduYXR1cmUu
cmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFz
b246ICJBdCBzaWduYXR1cmUgIiArIG9yaWdpbmFsU2lnbmF0dXJlICsgIiAoYXQgIiArIG9yaWdp
bmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKTogcmV0dXJuIHR5cGUgbWlzbWF0
Y2ggYmV0d2VlbiAiICsgc2lnbmF0dXJlLnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0
ZWRSZXR1cm5UeXBlICsgIiBpbiBmb3VuZCBmdW5jdGlvbiAiICsgb3ZlcmxvYWQuZnVuYy50b0Rl
Y2xTdHJpbmcoKX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9Owot
ICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gInByb3Rv
Y29sICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIHRoaXMuc2lnbmF0dXJlcy5qb2luKCI7ICIpICsg
IjsgfSI7Ci0gICAgfQotfQotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Qcm90b2NvbEZ1bmNEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWI1
YzliOGU3MTYxODY4YTFjZTQ1ZDU4ODY2MzkyYzAyMjI0NGQzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRnVuY0RlY2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0K
LWNsYXNzIFByb3RvY29sRnVuY0RlY2wgZXh0ZW5kcyBGdW5jIHsKLSAgICBnZXQgdHlwZVBhcmFt
ZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBl
UGFyYW1ldGVycy5jb25jYXQodGhpcy5wcm90b2NvbERlY2wudHlwZVZhcmlhYmxlKTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29s
UmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYzBlYTMwZDc0OGQ4YjllMTYxMDdhOWY4MDhj
MjNiMzI4NjVlNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sUmVmIGV4dGVuZHMgUHJv
dG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMucHJvdG9jb2xEZWNsID0gbnVsbDsKLSAg
ICB9Ci0gICAgCi0gICAgaW5oZXJpdHMob3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5wcm90b2NvbERlY2wuaW5oZXJpdHMob3RoZXIpOwotICAgIH0KLSAgICAKLSAgICBoYXNIZWly
KHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaGFzSGVpcih0
eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci19CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKaW5kZXggMTkyMmU4ZWMy
N2ZjMzlkOTViNGFhOGJmYTlhNTZjOTEwZjZlNjhiMi4uNDlkYzg2MzdkNGUxNDNhOWIwN2Q1OWNm
M2ZiOTc1Y2Y4NGE2NWUxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUmVzb2x2ZU5hbWVzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVOYW1lcy5qcwpAQCAtMzUsMTIgKzM1LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5U
eXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCiAgICAgICAgIG5hbWVSZXNvbHZlci5kb1N0YXRl
bWVudCh0eXBlKTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5Qcm90b2NvbHMocHJvZ3Jh
bSwgbmFtZVJlc29sdmVyKQotewotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJv
dG9jb2xzLnZhbHVlcygpKQotICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQocHJvdG9j
b2wpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlTmFtZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBuYW1l
UmVzb2x2ZXIpCiB7CiAgICAgZm9yIChsZXQgZnVuY3Mgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFs
dWVzKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29s
dmVPdmVybG9hZEltcGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZl
T3ZlcmxvYWRJbXBsLmpzCmluZGV4IDdlMjIxNTZkZTFhYzVlMmE2YzcyNGFkMzQ2OWRjOTFlNzQ2
ZjI1NjYuLmQ1NGI5NGQzNmNkYjBiMDY4Mjk5NjI2YWYwNTY1YTgyYmE3Nzc1YzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5q
cwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIHJlc29s
dmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVPdmVy
bG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5
UG9pbnQgPSBmYWxzZSkKIHsKICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJOdWxsIGZ1bmN0aW9uczsgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGNhdWdodCBieSB0
aGUgY2FsbGVyLiIpOwpAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJ
bXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZQog
ICAgICAgICAgICAgZmFpbHVyZXMucHVzaChuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShm
dW5jLCAiRnVuY3Rpb24gaXMgYSAiICsgZnVuYy5zaGFkZXJUeXBlICsgIiBzaGFkZXIsIHNvIGl0
IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYW4gZXhpc3Rpbmcgc2hhZGVyLiIpKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5m
ZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJu
VHlwZSk7CisgICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFy
Z3VtZW50VHlwZXMsIHJldHVyblR5cGUpOwogICAgICAgICBpZiAob3ZlcmxvYWQuZmFpbHVyZSkK
ICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gob3ZlcmxvYWQuZmFpbHVyZSk7CiAgICAgICAgIGVs
c2UKQEAgLTc0LDcgKzc0LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlv
bnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAg
IGxldCBwYXJhbWV0ZXJGdW5jID0gc3VjY2Vzc2VzW2pdLmZ1bmM7CiAgICAgICAgICAgICBsZXQg
b3ZlcmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbCgKICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJG
dW5jLAotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRGdW5j
LnR5cGVQYXJhbWV0ZXJzIDogW10sCiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnBhcmFt
ZXRlclR5cGVzLAogICAgICAgICAgICAgICAgIGFyZ3VtZW50RnVuYy5yZXR1cm5UeXBlRm9yT3Zl
cmxvYWRSZXNvbHV0aW9uKTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCmluZGV4
IDNiZDJhNGQ2NWY1NjRmNzA4YjBlZjQ3NTllNDNiMmM4OGQ0OGMyMzQuLmU4N2JkYzNjMzQ4MzE5
OTUyZmY5ZDhmMDM5OWYzNDhlYTk1MGQ2MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKQEAgLTMxLDEzICszMSw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSkKICAgICAgICAgdHlwZS52aXNpdChyZXNv
bHZlcik7CiB9CiAKLWZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0p
Ci17Ci0gICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZlcigpOwotICAgIGZvciAo
bGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBwcm90
b2NvbC52aXNpdChyZXNvbHZlcik7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luRnVu
Y3Rpb25zKHByb2dyYW0pCiB7CiAgICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZl
cigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCBmNDBk
NmI4OGIyNmVlZGNiZjgyOWYxYmFiYjEwYTIwNDViN2E4ZTgzLi4xNzE1YWQwZmFiNzk5OWI5NjVi
YjAzOTAyMjU0MDE3ZDE3YjM5YjFlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9SZXdyaXRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9S
ZXdyaXRlci5qcwpAQCAtNTMsNDEgKzUzLDExIEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAvLyB0
aGF0LgogICAgIHZpc2l0RnVuY0RlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRO
YXRpdmVGdW5jKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0
YW5jZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpIHsg
cmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdFR5cGVEZWYobm9kZSkgeyByZXR1cm4gbm9kZTsgfQog
ICAgIHZpc2l0U3RydWN0VHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdFByb3Rv
Y29sRGVjbChub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRFbnVtVHlwZShub2RlKSB7
IHJldHVybiBub2RlOyB9CiAKLSAgICAvLyBUaGlzIGlzIGFsbW9zdCB3cm9uZy4gV2UgaW5zdGFu
dGlhdGUgRnVuYyBpbiBTdWJzdGl0dXRpb24gaW4gUHJvdG9jb2xEZWNsLiBUaGVuLCB3ZSBlbmQg
dXAKLSAgICAvLyBub3QgcmV3cml0aW5nIHR5cGUgdmFyaWFibGVzLiBJIHRoaW5rIHRoYXQganVz
dCB3b3JrcyBiZWNhdXNlIG5vdCByZXdyaXRpbmcgdGhlbSB0aGVyZSBpcyBPSy4KLSAgICAvLyBF
dmVyeXdoZXJlIGVsc2UsIGl0J3MgbWFuZGF0b3J5IHRoYXQgd2UgZG9uJ3QgcmV3cml0ZSB0aGVz
ZSBiZWNhdXNlIHdlIGFsd2F5cyBhc3N1bWUgdGhhdAotICAgIC8vIHR5cGUgdmFyaWFibGVzIGFy
ZSBvdXRzaWRlIHRoZSBzY29wZSBvZiByZXdyaXRpbmcuCi0gICAgdmlzaXRUeXBlVmFyaWFibGUo
bm9kZSkgeyByZXR1cm4gbm9kZTsgfQotCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUp
Ci0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRnVuY0RlY2woCi0gICAg
ICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS5yZXR1cm5U
eXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAocGFy
YW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLnBhcmFt
ZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAgICAg
ICAgbm9kZS5pc0Nhc3QsCi0gICAgICAgICAgICBub2RlLnNoYWRlclR5cGUpOwotICAgICAgICBy
ZXN1bHQucHJvdG9jb2xEZWNsID0gbm9kZS5wcm90b2NvbERlY2w7Ci0gICAgICAgIHJlc3VsdC5w
b3NzaWJsZU92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVPdmVybG9hZHM7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TmF0aXZlVHlwZUluc3RhbmNlKG5vZGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJbnN0YW5jZSgKLSAgICAgICAg
ICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudmlzaXQodGhpcykpKTsKLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IEZ1bmNQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0
KHRoaXMpKTsKQEAgLTEyNSwxNCArOTUsOSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0p
KTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAg
IHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5h
bWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmln
aW4sIG5vZGUubmFtZSk7CiAgICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5
cGUsIHRoaXMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjgy
LDYgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2Rl
LCByZXN1bHQpCiAgICAgewotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVh
bFR5cGVBcmd1bWVudHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5
cGVBcmd1bWVudCA9PiBhY3R1YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAg
IHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFj
dHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlw
ZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxU
eXBlQXJndW1lbnRzKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50
VHlwZXM7CiAgICAgICAgIGlmIChhcmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFy
Z3VtZW50VHlwZXMgPSBhcmd1bWVudFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRU
eXBlLnZpc2l0KHRoaXMpKTsKQEAgLTM0Miw3ICsyOTksNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAg
ICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAg
ICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVu
dCwgdGhpcykpKTsKICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShu
b2RlLCByZXN1bHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5o
dG1sCmluZGV4IDkzZjZiOWI5MzJkMjcyZDc3YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLjM2ODYx
OGY4NTFjOWQ4ZTUwMmZjNWY5ZDY3YjEwOTEwMzRhMzk2N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtNDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlw
dCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1h
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcg
KzYwLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRl
blByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5l
ZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxv
YXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CkBAIC02OSw3ICs2Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0i
Rm9yTG9vcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iRnVuY0luc3RhbnRpYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmNQ
YXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9j
ay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwv
c2NyaXB0PgpAQCAtNzksNyArNzYsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkluZmVyVHlw
ZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFs
VHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2Ny
aXB0PgpAQCAtOTYsOSArOTIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iTmF0aXZlRnVuY0luc3RhbmNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJbnN0
YW5jZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTEwOSwx
MCArMTAzLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2Nv
bEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTQxLDEwICsx
MzEsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlR5
cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVS
ZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVy
YWxUeXBlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1NQSVJWQ29kZWdlbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQ
SVJWQ29kZWdlbi5qcwppbmRleCBiNGY1MDg1OWE4N2FmYjYwZTU0YjM2MGM2MDU5YzRhYWM4YzIz
YmNhLi5hOWZkZWVjZTQ3NTg2Njg2NjNlZDEwMzJmNzJiMjAzZTgyMDUyYWExIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCkBAIC01Myw3ICs1Myw3
IEBAIGZ1bmN0aW9uIGdlbmVyYXRlU1BJUlYoc3BpcnYsIHByb2dyYW0pCiAgICAgdHlwZU1hcC5z
ZXQocHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQzMiwgY3VycmVudElkKyspOwogCiAgICAgZm9yIChs
ZXQgZW50cnlQb2ludCBvZiBmaW5kRW50cnlQb2ludHMoKSkgewotICAgICAgICBsZXQgaW5saW5l
ZFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoZW50cnlQb2ludCwg
W10pOworICAgICAgICBsZXQgaW5saW5lZFNoYWRlciA9IGVudHJ5UG9pbnQ7CiAgICAgICAgIF9p
bmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkU2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoZW50
cnlQb2ludCkpOwogCiAgICAgICAgIGxldCB0eXBlQW5hbHl6ZXIgPSBuZXcgU1BJUlZUeXBlQW5h
bHl6ZXIocHJvZ3JhbSwgdHlwZU1hcCwgY3VycmVudElkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAxOTg4NzIzYzM1NDgwODFj
NjY3ZmFjNzg2MmY0MDI2N2Y5ZjhiODU3Li40YTZkMzcxMDM1M2U0ODIwYzk4MzI2Y2QzY2M2N2U0
Y2FiMzMxOWQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFu
ZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRh
cmRMaWJyYXJ5LmpzCkBAIC0yOSw1MyArMjksNzg3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSBg
CiAvLyBUaGlzIGlzIHRoZSBXU0wgc3RhbmRhcmQgbGlicmFyeS4gSW1wbGVtZW50YXRpb25zIG9m
IGFsbCBvZiB0aGVzZSB0aGluZ3MgYXJlIGluCiAvLyBJbnRyaW5zaWNzLmpzLgogCi0vLyBOZWVk
IHRvIGJvb3RzdHJhcCB2b2lkIGZpcnN0LgogbmF0aXZlIHR5cGVkZWYgdm9pZDsKLQotbmF0aXZl
IHR5cGVkZWYgdWludDg7Ci1uYXRpdmUgdHlwZWRlZiBpbnQzMjsKLW5hdGl2ZSB0eXBlZGVmIHVp
bnQzMjsKIG5hdGl2ZSB0eXBlZGVmIGJvb2w7Ci10eXBlZGVmIGludCA9IGludDMyOwotdHlwZWRl
ZiB1aW50ID0gdWludDMyOwotCi1uYXRpdmUgdHlwZWRlZiBmbG9hdDMyOwotdHlwZWRlZiBmbG9h
dCA9IGZsb2F0MzI7Ci0KLW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50MzIpOwotbmF0aXZlIG9w
ZXJhdG9yIGludDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQzMihmbG9hdCk7Ci1uYXRp
dmUgb3BlcmF0b3IgdWludDMyKGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIodWludDgp
OwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDgo
aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQ4KHVpbnQzMik7Ci1uYXRpdmUgb3BlcmF0b3Ig
dWludDgoZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludDMyKTsKLW5hdGl2ZSBvcGVy
YXRvciBmbG9hdCh1aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQ4KTsKK25hdGl2
ZSB0eXBlZGVmIHVjaGFyOworbmF0aXZlIHR5cGVkZWYgdXNob3J0OworbmF0aXZlIHR5cGVkZWYg
dWludDsKK25hdGl2ZSB0eXBlZGVmIGNoYXI7CituYXRpdmUgdHlwZWRlZiBzaG9ydDsKK25hdGl2
ZSB0eXBlZGVmIGludDsKK25hdGl2ZSB0eXBlZGVmIGhhbGY7CituYXRpdmUgdHlwZWRlZiBmbG9h
dDsKK25hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQ7CituYXRpdmUgdHlwZWRlZiBhdG9taWNfdWlu
dDsKKworaGFsZiBzdGVwKGhhbGYgeSwgaGFsZiB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEg
OiAwOworfQorCitzdHJ1Y3QgYm9vbDIgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7Cit9Citz
dHJ1Y3QgYm9vbDMgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7CisgICAgYm9vbCB6OworfQor
c3RydWN0IGJvb2w0IHsKKyAgICBib29sIHg7CisgICAgYm9vbCB5OworICAgIGJvb2wgejsKKyAg
ICBib29sIHc7Cit9CitzdHJ1Y3QgdWNoYXIyIHsKKyAgICB1Y2hhciB4OworICAgIHVjaGFyIHk7
Cit9CitzdHJ1Y3QgdWNoYXIzIHsKKyAgICB1Y2hhciB4OworICAgIHVjaGFyIHk7CisgICAgdWNo
YXIgejsKK30KK3N0cnVjdCB1Y2hhcjQgeworICAgIHVjaGFyIHg7CisgICAgdWNoYXIgeTsKKyAg
ICB1Y2hhciB6OworICAgIHVjaGFyIHc7Cit9CitzdHJ1Y3QgdXNob3J0MiB7CisgICAgdXNob3J0
IHg7CisgICAgdXNob3J0IHk7Cit9CitzdHJ1Y3QgdXNob3J0MyB7CisgICAgdXNob3J0IHg7Cisg
ICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7Cit9CitzdHJ1Y3QgdXNob3J0NCB7CisgICAgdXNo
b3J0IHg7CisgICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7CisgICAgdXNob3J0IHc7Cit9Citz
dHJ1Y3QgdWludDIgeworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7Cit9CitzdHJ1Y3QgdWludDMg
eworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7CisgICAgdWludCB6OworfQorc3RydWN0IHVpbnQ0
IHsKKyAgICB1aW50IHg7CisgICAgdWludCB5OworICAgIHVpbnQgejsKKyAgICB1aW50IHc7Cit9
CitzdHJ1Y3QgY2hhcjIgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7Cit9CitzdHJ1Y3QgY2hh
cjMgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7CisgICAgY2hhciB6OworfQorc3RydWN0IGNo
YXI0IHsKKyAgICBjaGFyIHg7CisgICAgY2hhciB5OworICAgIGNoYXIgejsKKyAgICBjaGFyIHc7
Cit9CitzdHJ1Y3Qgc2hvcnQyIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7Cit9CitzdHJ1
Y3Qgc2hvcnQzIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7CisgICAgc2hvcnQgejsKK30K
K3N0cnVjdCBzaG9ydDQgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKKyAgICBzaG9ydCB6
OworICAgIHNob3J0IHc7Cit9CitzdHJ1Y3QgaW50MiB7CisgICAgaW50IHg7CisgICAgaW50IHk7
Cit9CitzdHJ1Y3QgaW50MyB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAgaW50IHo7Cit9
CitzdHJ1Y3QgaW50NCB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAgaW50IHo7CisgICAg
aW50IHc7Cit9CitzdHJ1Y3QgaGFsZjIgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7Cit9Citz
dHJ1Y3QgaGFsZjMgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7CisgICAgaGFsZiB6OworfQor
c3RydWN0IGhhbGY0IHsKKyAgICBoYWxmIHg7CisgICAgaGFsZiB5OworICAgIGhhbGYgejsKKyAg
ICBoYWxmIHc7Cit9CitzdHJ1Y3QgZmxvYXQyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7
Cit9CitzdHJ1Y3QgZmxvYXQzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7CisgICAgZmxv
YXQgejsKK30KK3N0cnVjdCBmbG9hdDQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAg
ICBmbG9hdCB6OworICAgIGZsb2F0IHc7Cit9CitzdHJ1Y3QgaGFsZjJ4MiB7CisgICAgaGFsZjIg
cm93MDsKKyAgICBoYWxmMiByb3cxOworfQorc3RydWN0IGhhbGYyeDMgeworICAgIGhhbGYzIHJv
dzA7CisgICAgaGFsZjMgcm93MTsKK30KK3N0cnVjdCBoYWxmMng0IHsKKyAgICBoYWxmNCByb3cw
OworICAgIGhhbGY0IHJvdzE7Cit9CitzdHJ1Y3QgaGFsZjN4MiB7CisgICAgaGFsZjIgcm93MDsK
KyAgICBoYWxmMiByb3cxOworICAgIGhhbGYyIHJvdzI7Cit9CitzdHJ1Y3QgaGFsZjN4MyB7Cisg
ICAgaGFsZjMgcm93MDsKKyAgICBoYWxmMyByb3cxOworICAgIGhhbGYzIHJvdzI7Cit9CitzdHJ1
Y3QgaGFsZjN4NCB7CisgICAgaGFsZjQgcm93MDsKKyAgICBoYWxmNCByb3cxOworICAgIGhhbGY0
IHJvdzI7Cit9CitzdHJ1Y3QgaGFsZjR4MiB7CisgICAgaGFsZjIgcm93MDsKKyAgICBoYWxmMiBy
b3cxOworICAgIGhhbGYyIHJvdzI7CisgICAgaGFsZjIgcm93MzsKK30KK3N0cnVjdCBoYWxmNHgz
IHsKKyAgICBoYWxmMyByb3cwOworICAgIGhhbGYzIHJvdzE7CisgICAgaGFsZjMgcm93MjsKKyAg
ICBoYWxmMyByb3czOworfQorc3RydWN0IGhhbGY0eDQgeworICAgIGhhbGY0IHJvdzA7CisgICAg
aGFsZjQgcm93MTsKKyAgICBoYWxmNCByb3cyOworICAgIGhhbGY0IHJvdzM7Cit9CitzdHJ1Y3Qg
ZmxvYXQyeDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworfQorc3RydWN0
IGZsb2F0MngzIHsKKyAgICBmbG9hdDMgcm93MDsKKyAgICBmbG9hdDMgcm93MTsKK30KK3N0cnVj
dCBmbG9hdDJ4NCB7CisgICAgZmxvYXQ0IHJvdzA7CisgICAgZmxvYXQ0IHJvdzE7Cit9CitzdHJ1
Y3QgZmxvYXQzeDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworICAgIGZs
b2F0MiByb3cyOworfQorc3RydWN0IGZsb2F0M3gzIHsKKyAgICBmbG9hdDMgcm93MDsKKyAgICBm
bG9hdDMgcm93MTsKKyAgICBmbG9hdDMgcm93MjsKK30KK3N0cnVjdCBmbG9hdDN4NCB7CisgICAg
ZmxvYXQ0IHJvdzA7CisgICAgZmxvYXQ0IHJvdzE7CisgICAgZmxvYXQ0IHJvdzI7Cit9CitzdHJ1
Y3QgZmxvYXQ0eDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworICAgIGZs
b2F0MiByb3cyOworICAgIGZsb2F0MiByb3czOworfQorc3RydWN0IGZsb2F0NHgzIHsKKyAgICBm
bG9hdDMgcm93MDsKKyAgICBmbG9hdDMgcm93MTsKKyAgICBmbG9hdDMgcm93MjsKKyAgICBmbG9h
dDMgcm93MzsKK30KK3N0cnVjdCBmbG9hdDR4NCB7CisgICAgZmxvYXQ0IHJvdzA7CisgICAgZmxv
YXQ0IHJvdzE7CisgICAgZmxvYXQ0IHJvdzI7CisgICAgZmxvYXQ0IHJvdzM7Cit9CituYXRpdmUg
dHlwZWRlZiBzYW1wbGVyOworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29s
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGlu
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Zmxv
YXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMURBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJv
b2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMURBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Zmxv
YXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNo
YXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
REFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxi
b29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNo
YXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFs
ZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZs
b2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0ND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVp
bnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hh
cjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNo
YXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
QXJyYXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyREFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNo
YXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkRBcnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhh
bGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxi
b29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTNEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8
aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTNEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZs
b2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1
Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9y
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2w+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9v
bDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZUN1YmU8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hh
cj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlQ3ViZTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZURlcHRoMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVEZXB0aEN1YmU8aGFsZj47CiAKK29wZXJhdG9yIHVjaGFyKHVjaGFyIHgpIHsKKyAgICBy
ZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciB1Y2hhcih1c2hvcnQpOworbmF0aXZlIG9wZXJh
dG9yIHVjaGFyKHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGNoYXIpOworbmF0aXZlIG9w
ZXJhdG9yIHVjaGFyKHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVjaGFyKGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZsb2F0KTsKK25h
dGl2ZSBvcGVyYXRvciB1c2hvcnQodWNoYXIpOworb3BlcmF0b3IgdXNob3J0KHVzaG9ydCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KHVpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoc2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVzaG9ydChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChoYWxm
KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQo
dWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQodXNob3J0KTsKK29wZXJhdG9yIHVpbnQodWlu
dCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdWludChjaGFyKTsKK25h
dGl2ZSBvcGVyYXRvciB1aW50KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGludCk7Citu
YXRpdmUgb3BlcmF0b3IgdWludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGZsb2F0KTsK
K25hdGl2ZSBvcGVyYXRvciBjaGFyKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVzaG9y
dCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcih1aW50KTsKK29wZXJhdG9yIGNoYXIoY2hhciB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgY2hhcihzaG9ydCk7CituYXRpdmUg
b3BlcmF0b3IgY2hhcihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoaGFsZik7CituYXRpdmUg
b3BlcmF0b3IgY2hhcihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIHNob3J0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWludCk7
CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoY2hhcik7CitvcGVyYXRvciBzaG9ydChzaG9ydCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoaW50KTsKK25hdGl2ZSBv
cGVyYXRvciBzaG9ydChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChmbG9hdCk7CituYXRp
dmUgb3BlcmF0b3IgaW50KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodXNob3J0KTsKK25h
dGl2ZSBvcGVyYXRvciBpbnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgaW50KGNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIGludChzaG9ydCk7CitvcGVyYXRvciBpbnQoaW50IHgpIHsKKyAgICByZXR1
cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBpbnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgaW50
KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBo
YWxmKHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZih1aW50KTsKK25hdGl2ZSBvcGVyYXRv
ciBoYWxmKGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoc2hvcnQpOworbmF0aXZlIG9wZXJh
dG9yIGhhbGYoaW50KTsKK29wZXJhdG9yIGhhbGYoaGFsZiB4KSB7CisgICAgcmV0dXJuIHg7Cit9
CituYXRpdmUgb3BlcmF0b3IgaGFsZihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodWNo
YXIpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgZmxv
YXQodWludCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoY2hhcik7CituYXRpdmUgb3BlcmF0b3Ig
ZmxvYXQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludCk7CituYXRpdmUgb3BlcmF0
b3IgZmxvYXQoaGFsZik7CitvcGVyYXRvciBmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitvcGVyYXRvciBib29sKGJvb2wgeCkgeworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9w
ZXJhdG9yIGludChhdG9taWNfaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191aW50
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7Citib29sIG9wZXJhdG9yJihi
b29sIGEsIGJvb2wgYikKK3sKKyAgICByZXR1cm4gYSAmJiBiOworfQorYm9vbCBvcGVyYXRvcnwo
Ym9vbCBhLCBib29sIGIpCit7CisgICAgcmV0dXJuIGEgfHwgYjsKK30KK2Jvb2wgb3BlcmF0b3Je
KGJvb2wgYSwgYm9vbCBiKQoreworICAgIGlmIChhKQorICAgICAgICByZXR1cm4gIWI7CisgICAg
cmV0dXJuIGI7Cit9Citib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQoreworICAgIHJldHVybiAh
dmFsdWU7Cit9CiBuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsIGludCk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvcisodWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvcisodWludDggYSwgdWludDggYikg
eyByZXR1cm4gdWludDgodWludChhKSArIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0
b3IrKGZsb2F0LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZh
bHVlICsgMTsgfQotdWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsg
MTsgfQotdWludDggb3BlcmF0b3IrKyh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9
CiBuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci0o
dWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvci0odWludDggYSwgdWludDggYikgeyByZXR1cm4g
dWludDgodWludChhKSAtIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0
LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsg
fQotdWludCBvcGVyYXRvci0tKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWlu
dDggb3BlcmF0b3ItLSh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUg
aW50IG9wZXJhdG9yKihpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWlu
dCk7Ci11aW50OCBvcGVyYXRvcioodWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWlu
dChhKSAqIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7
CiBuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09
KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7CituYXRpdmUgYm9v
bCBvcGVyYXRvcjw9KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7
CituYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9y
Kyh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKK25hdGl2
ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yLyh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50
OCh1aW50KGEpIC8gdWludChiKSk7IH0KK25hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWlu
dCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVy
YXRvcjw9KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOwor
bmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRv
cisoZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsK
K25hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVy
YXRvci8oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3Bl
cmF0b3I8PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9h
dCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9w
ZXJhdG9yJihpbnQsIGludCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsIGludCk7CiBuYXRp
dmUgaW50IG9wZXJhdG9yXihpbnQsIGludCk7CkBAIC04OCwzMDIgKzgyMiwyOTg4NSBAQCBuYXRp
dmUgdWludCBvcGVyYXRvcl4odWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcn4odWlu
dCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQgb3Bl
cmF0b3I+Pih1aW50LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yJih1aW50OCBhLCB1aW50OCBiKSB7
IHJldHVybiB1aW50OCh1aW50KGEpICYgdWludChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yfCh1aW50
OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIHwgdWludChiKSk7IH0KLXVpbnQ4
IG9wZXJhdG9yXih1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIF4gdWlu
dChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yfih1aW50OCB2YWx1ZSkgeyByZXR1cm4gdWludDgofnVp
bnQodmFsdWUpKTsgfQotdWludDggb3BlcmF0b3I8PCh1aW50OCBhLCB1aW50IGIpIHsgcmV0dXJu
IHVpbnQ4KHVpbnQoYSkgPDwgKGIgJiA3KSk7IH0KLXVpbnQ4IG9wZXJhdG9yPj4odWludDggYSwg
dWludCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpID4+IChiICYgNykpOyB9Ci1uYXRpdmUgZmxv
YXQgb3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwg
aW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9y
PT0odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA9PSB1aW50KGIpOyB9Ci1uYXRp
dmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsIGJvb2wpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShm
bG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGludCwgaW50KTsKLW5hdGl2ZSBi
b29sIG9wZXJhdG9yPCh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8KHVpbnQ4IGEsIHVpbnQ4
IGIpIHsgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwo
ZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0oaW50LCBpbnQpOwotbmF0aXZl
IGJvb2wgb3BlcmF0b3I8PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8PSh1aW50OCBhLCB1
aW50OCBiKSB7IHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJh
dG9yPD0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7Ci1u
YXRpdmUgYm9vbCBvcGVyYXRvcj4odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPih1aW50OCBh
LCB1aW50OCBiKSB7IHJldHVybiB1aW50KGEpID4gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3Bl
cmF0b3I+KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsK
LW5hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPj0odWlu
dDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9v
bCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7Ci0KLWJvb2wgb3BlcmF0b3ImKGJvb2wgYSwgYm9v
bCBiKQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gYjsKLSAgICByZXR1cm4gZmFsc2U7
Cit1Y2hhciBvcGVyYXRvcisodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1
aW50KGEpICsgdWludChiKSk7CiB9Ci0KLWJvb2wgb3BlcmF0b3J8KGJvb2wgYSwgYm9vbCBiKQot
ewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoYikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwordWNoYXIgb3BlcmF0b3ItKHVjaGFyIGEs
IHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAtIHVpbnQoYikpOwogfQotCi1i
b29sIG9wZXJhdG9yXihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0
dXJuICFiOwotICAgIHJldHVybiBiOwordWNoYXIgb3BlcmF0b3IqKHVjaGFyIGEsIHVjaGFyIGIp
IHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAqIHVpbnQoYikpOwogfQotCi1ib29sIG9wZXJh
dG9yfihib29sIHZhbHVlKQotewotICAgIHJldHVybiAhdmFsdWU7Cit1Y2hhciBvcGVyYXRvci8o
dWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIC8gdWludChiKSk7
CiB9Ci0KLXByb3RvY29sIEFkZGFibGUgewotICAgIEFkZGFibGUgb3BlcmF0b3IrKEFkZGFibGUs
IEFkZGFibGUpOwordWNoYXIgb3BlcmF0b3ImKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1
cm4gdWNoYXIodWludChhKSAmIHVpbnQoYikpOwogfQotCi1wcm90b2NvbCBFcXVhdGFibGUgewot
ICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7Cit1Y2hhciBvcGVyYXRv
cnwodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIHwgdWludChi
KSk7CiB9Ci0KLXJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVCgpCi17Ci0gICAgVCBkZWZhdWx0VmFs
dWU7Ci0gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK3VjaGFyIG9wZXJhdG9yXih1Y2hhciBhLCB1
Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgXiB1aW50KGIpKTsKIH0KLQotcmVz
dHJpY3RlZCBvcGVyYXRvcjxUPiBUKFQgeCkKLXsKLSAgICByZXR1cm4geDsKK3VjaGFyIG9wZXJh
dG9yfih1Y2hhciBhKSB7CisgICAgcmV0dXJuIHVjaGFyKH51aW50KGEpKTsKIH0KLQotb3BlcmF0
b3I8VDpFcXVhdGFibGU+IGJvb2woVCB4KQotewotICAgIHJldHVybiB4ICE9IFQoKTsKK2Jvb2wg
b3BlcmF0b3I9PSh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPT0gdWlu
dChiKTsKIH0KLQotc3RydWN0IHZlYzI8VD4gewotICAgIFQgeDsKLSAgICBUIHk7Citib29sIG9w
ZXJhdG9yPCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIp
OwogfQotCi10eXBlZGVmIGludDIgPSB2ZWMyPGludD47Ci10eXBlZGVmIHVpbnQyID0gdmVjMjx1
aW50PjsKLXR5cGVkZWYgZmxvYXQyID0gdmVjMjxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzI8
VD4oVCB4LCBUIHkpCi17Ci0gICAgdmVjMjxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4Owot
ICAgIHJlc3VsdC55ID0geTsKLSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcjw9KHVj
aGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOwogfQotCi1i
b29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzI8VD4gYSwgdmVjMjxUPiBiKQotewotICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Citib29sIG9wZXJhdG9yPih1Y2hhciBh
LCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOwogfQotCi10aHJlYWQg
VCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzI8VD4qIGZvbywgdWludCBpbmRleCkKLXsKLSAg
ICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgaWYgKGluZGV4
ID09IDEpCi0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIHRyYXA7Citib29sIG9wZXJhdG9y
Pj0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID49IHVpbnQoYik7CiB9
Ci0KLXN0cnVjdCB2ZWMzPFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5OwotICAgIFQgejsKK3VzaG9y
dCBvcGVyYXRvcisodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50
KGEpICsgdWludChiKSk7CiB9Ci0KLXR5cGVkZWYgaW50MyA9IHZlYzM8aW50PjsKLXR5cGVkZWYg
dWludDMgPSB2ZWMzPHVpbnQ+OwotdHlwZWRlZiBmbG9hdDMgPSB2ZWMzPGZsb2F0PjsKLQotb3Bl
cmF0b3I8VD4gdmVjMzxUPihUIHgsIFQgeSwgVCB6KQotewotICAgIHZlYzM8VD4gcmVzdWx0Owot
ICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHk7Ci0gICAgcmVzdWx0LnogPSB6Owot
ICAgIHJldHVybiByZXN1bHQ7Cit1c2hvcnQgb3BlcmF0b3ItKHVzaG9ydCBhLCB1c2hvcnQgYikg
eworICAgIHJldHVybiB1c2hvcnQodWludChhKSAtIHVpbnQoYikpOwogfQotCi1vcGVyYXRvcjxU
PiB2ZWMzPFQ+KHZlYzI8VD4gdjIsIFQgeikKLXsKLSAgICB2ZWMzPFQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQueCA9IHYyLng7Ci0gICAgcmVzdWx0LnkgPSB2Mi55OwotICAgIHJlc3VsdC56ID0gejsK
LSAgICByZXR1cm4gcmVzdWx0OwordXNob3J0IG9wZXJhdG9yKih1c2hvcnQgYSwgdXNob3J0IGIp
IHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgKiB1aW50KGIpKTsKIH0KLQotb3BlcmF0b3I8
VD4gdmVjMzxUPihUIHgsIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjMzxUPiByZXN1bHQ7Ci0gICAg
cmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9IHYyLnk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKK3VzaG9ydCBvcGVyYXRvci8odXNob3J0IGEsIHVzaG9ydCBi
KSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIC8gdWludChiKSk7CiB9Ci0KLWJvb2wgb3Bl
cmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJu
IGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwordXNob3J0IG9wZXJhdG9y
Jih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgJiB1aW50
KGIpKTsKIH0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMzPFQ+KiBmb28s
IHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgIHJldHVybiAmZm9v
LT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICBp
ZiAoaW5kZXggPT0gMikKLSAgICAgICAgcmV0dXJuICZmb28tPno7Ci0gICAgdHJhcDsKK3VzaG9y
dCBvcGVyYXRvcnwodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50
KGEpIHwgdWludChiKSk7CiB9Ci0KLXN0cnVjdCB2ZWM0PFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5
OwotICAgIFQgejsKLSAgICBUIHc7Cit1c2hvcnQgb3BlcmF0b3JeKHVzaG9ydCBhLCB1c2hvcnQg
YikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSBeIHVpbnQoYikpOwogfQotCi10eXBlZGVm
IGludDQgPSB2ZWM0PGludD47Ci10eXBlZGVmIHVpbnQ0ID0gdmVjNDx1aW50PjsKLXR5cGVkZWYg
ZmxvYXQ0ID0gdmVjNDxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIFQg
eiwgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICBy
ZXN1bHQueSA9IHk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsKLSAgICBy
ZXR1cm4gcmVzdWx0OwordXNob3J0IG9wZXJhdG9yfih1c2hvcnQgYSkgeworICAgIHJldHVybiB1
c2hvcnQofnVpbnQoYSkpOwogfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4gdjIsIFQg
eiwgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjIueDsKLSAg
ICByZXN1bHQueSA9IHYyLnk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsK
LSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcj09KHVzaG9ydCBhLCB1c2hvcnQgYikg
eworICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8
VD4oVCB4LCB2ZWMyPFQ+IHYyLCBUIHcpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVz
dWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9IHYyLnk7Ci0g
ICAgcmVzdWx0LncgPSB3OwotICAgIHJldHVybiByZXN1bHQ7Citib29sIG9wZXJhdG9yPCh1c2hv
cnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8IHVpbnQoYik7CiB9Ci0KLW9w
ZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjNDxUPiBy
ZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0geTsKLSAgICByZXN1bHQu
eiA9IHYyLng7Ci0gICAgcmVzdWx0LncgPSB2Mi55OwotICAgIHJldHVybiByZXN1bHQ7Citib29s
IG9wZXJhdG9yPD0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPD0g
dWludChiKTsKIH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPih2ZWMyPFQ+IHYyYSwgdmVjMjxUPiB2
MmIpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2MmEueDsKLSAgICBy
ZXN1bHQueSA9IHYyYS55OwotICAgIHJlc3VsdC56ID0gdjJiLng7Ci0gICAgcmVzdWx0LncgPSB2
MmIueTsKLSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcj4odXNob3J0IGEsIHVzaG9y
dCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOwogfQotCi1vcGVyYXRvcjxUPiB2
ZWM0PFQ+KHZlYzM8VD4gdjMsIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1
bHQueCA9IHYzLng7Ci0gICAgcmVzdWx0LnkgPSB2My55OwotICAgIHJlc3VsdC56ID0gdjMuejsK
LSAgICByZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK2Jvb2wgb3BlcmF0b3I+PSh1
c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOwogfQot
Ci1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgdmVjMzxUPiB2MykKLXsKLSAgICB2ZWM0PFQ+IHJl
c3VsdDsKLSAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2My54OwotICAgIHJlc3Vs
dC56ID0gdjMueTsKLSAgICByZXN1bHQudyA9IHYzLno7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK3Vj
aGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQo
YSkgPDwgKGIgJiAyNTUpKTsKIH0KLQotYm9vbCBvcGVyYXRvcj09PFQ6RXF1YXRhYmxlPih2ZWM0
PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK3VzaG9ydCBvcGVyYXRvcjw8KHVzaG9ydCBh
LCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgPDwgKGIgJiA2NTUzNSkpOwog
fQotCi10aHJlYWQgVCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzQ8VD4qIGZvbywgdWludCBp
bmRleCkKLXsKLSAgICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0g
ICAgaWYgKGluZGV4ID09IDEpCi0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIGlmIChpbmRl
eCA9PSAyKQotICAgICAgICByZXR1cm4gJmZvby0+ejsKLSAgICBpZiAoaW5kZXggPT0gMykKLSAg
ICAgICAgcmV0dXJuICZmb28tPnc7Ci0gICAgdHJhcDsKK3VjaGFyIG9wZXJhdG9yPj4odWNoYXIg
YSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPj4gKGIgJiAyNTUpKTsKIH0K
LQotbmF0aXZlIHRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgVFtdLCB1aW50KTsKLW5h
dGl2ZSB0aHJlYWRncm91cCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWRncm91cCBUW10sIHVpbnQp
OwotbmF0aXZlIGRldmljZSBUKiBvcGVyYXRvciZbXTxUPihkZXZpY2UgVFtdLCB1aW50KTsKLW5h
dGl2ZSBjb25zdGFudCBUKiBvcGVyYXRvciZbXTxUPihjb25zdGFudCBUW10sIHVpbnQpOwotCi1u
YXRpdmUgdWludCBvcGVyYXRvci5sZW5ndGg8VD4odGhyZWFkIFRbXSk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvci5sZW5ndGg8VD4odGhyZWFkZ3JvdXAgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9y
Lmxlbmd0aDxUPihkZXZpY2UgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihj
b25zdGFudCBUW10pOwotCi11aW50IG9wZXJhdG9yLmxlbmd0aDxULCB1aW50IGxlbmd0aD4oVFts
ZW5ndGhdKQotewotICAgIHJldHVybiBsZW5ndGg7Cit1c2hvcnQgb3BlcmF0b3I+Pih1c2hvcnQg
YSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpID4+IChiICYgNjU1MzUpKTsK
IH0KLWA7Ci0KLWZ1bmN0aW9uIGludFRvU3RyaW5nKHgpCi17Ci0gICAgc3dpdGNoICh4KSB7Ci0g
ICAgY2FzZSAwOgotICAgICAgICByZXR1cm4gIngiOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0
dXJuICJ5IjsKLSAgICBjYXNlIDI6Ci0gICAgICAgIHJldHVybiAieiI7Ci0gICAgY2FzZSAzOgot
ICAgICAgICByZXR1cm4gInciOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ291bGQgbm90IGdlbmVyYXRlIHN0YW5kYXJkIGxpYnJhcnkuIik7Ci0gICAgfQotfQotCi0v
LyBUaGVyZSBhcmUgNDgxIHN3aXp6bGUgb3BlcmF0b3JzLCBzbyB3ZSBjb21waWxlIHRoZW0gYXMg
bmF0aXZlIGZ1bmN0aW9ucwotc3RhbmRhcmRMaWJyYXJ5ICs9IFN3aXp6bGVPcC5hbGxTd2l6emxl
T3BlcmF0b3JzKCkuam9pbigiO1xuIikgKyAiOyI7Ci1jb25zb2xlLmxvZyhzdGFuZGFyZExpYnJh
cnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2NoYXIgb3BlcmF0b3IrKGNoYXIgYSwg
Y2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICsgaW50KGIpKTsKK30KK2NoYXIgb3Bl
cmF0b3ItKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIC0gaW50KGIp
KTsKK30KK2NoYXIgb3BlcmF0b3IqKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIo
aW50KGEpICogaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3IvKGNoYXIgYSwgY2hhciBiKSB7Cisg
ICAgcmV0dXJuIGNoYXIoaW50KGEpIC8gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3ImKGNoYXIg
YSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICYgaW50KGIpKTsKK30KK2NoYXIg
b3BlcmF0b3J8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIHwgaW50
KGIpKTsKK30KK2NoYXIgb3BlcmF0b3JeKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNo
YXIoaW50KGEpIF4gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3J+KGNoYXIgYSkgeworICAgIHJl
dHVybiBjaGFyKH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIgYSwgY2hhciBiKSB7
CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPiBpbnQoYik7Cit9Citib29sIG9wZXJhdG9y
Pj0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpID49IGludChiKTsKK30KK2Jv
b2wgb3BlcmF0b3I8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA8IGludChi
KTsKK30KK2Jvb2wgb3BlcmF0b3I8PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQo
YSkgPD0gaW50KGIpOworfQorc2hvcnQgb3BlcmF0b3IrKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpICsgaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yLShzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAtIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvciooc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgKiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IvKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIC8gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yJihzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAmIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvcnwoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgfCBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3JeKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIF4gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yfihzaG9y
dCBhKSB7CisgICAgcmV0dXJuIHNob3J0KH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID09IGludChiKTsKK30KK2Jvb2wg
b3BlcmF0b3I+KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID4gaW50KGIp
OworfQorYm9vbCBvcGVyYXRvcj49KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50
KGEpID49IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHNob3J0IGEsIHNo
b3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsKK30KK2NoYXIgb3BlcmF0b3I8
PChjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA8PCAoYiAmIDI1NSkp
OworfQorc2hvcnQgb3BlcmF0b3I8PChzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hv
cnQoaW50KGEpIDw8IChiICYgNjU1MzUpKTsKK30KK2NoYXIgb3BlcmF0b3I+PihjaGFyIGEsIHVp
bnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA+PiAoYiAmIDI1NSkpOworfQorc2hvcnQg
b3BlcmF0b3I+PihzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpID4+
IChiICYgNjU1MzUpKTsKK30KK3VjaGFyIG9wZXJhdG9yKysodWNoYXIgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQordWNoYXIgb3BlcmF0b3ItLSh1Y2hhciB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSAtIDE7Cit9Cit1c2hvcnQgb3BlcmF0b3IrKyh1c2hvcnQgdmFsdWUpIHsK
KyAgICByZXR1cm4gdmFsdWUgKyAxOworfQordXNob3J0IG9wZXJhdG9yLS0odXNob3J0IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3VpbnQgb3BlcmF0b3IrKyh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK3VpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2NoYXIgb3BlcmF0b3IrKyhjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2NoYXIgb3BlcmF0b3ItLShjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3Nob3J0IG9wZXJhdG9yKysoc2hvcnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorc2hvcnQgb3BlcmF0b3ItLShzaG9ydCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitpbnQgb3BlcmF0b3IrKyhpbnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQoraW50IG9wZXJhdG9yLS0oaW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2hhbGYgb3BlcmF0b3IrKyhoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2hhbGYgb3BlcmF0b3ItLShoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2Zsb2F0IG9wZXJhdG9yKysoZmxvYXQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorZmxvYXQgb3BlcmF0b3ItLShmbG9hdCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitoYWxmIG9wZXJhdG9yKyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpICsgZmxvYXQoYikpOworfQoraGFs
ZiBvcGVyYXRvci0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gaGFsZihmbG9hdChhKSAt
IGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0
dXJuIGhhbGYoZmxvYXQoYSkgKiBmbG9hdChiKSk7Cit9CitoYWxmIG9wZXJhdG9yLyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC8gZmxvYXQoYikpOworfQorYm9v
bCBvcGVyYXRvcj09KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpID09IGZs
b2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjwoaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
ZmxvYXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShoYWxmIGEsIGhhbGYgYikg
eworICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQoYik7Cit9Citib29s
IG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPD0gZmxv
YXQoYik7Cit9CisKK29wZXJhdG9yIGJvb2wyKGJvb2wgeCwgYm9vbCB5KSB7CisgICAgYm9vbDIg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbCB5LCBib29sIHopIHsKKyAg
ICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAg
ICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJv
b2wyIHgsIGJvb2wgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsK
KyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbDIgeSkgeworICAgIGJvb2wzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0Lnog
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9v
bCB5LCBib29sIHosIGJvb2wgdykgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9
IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wg
eSwgYm9vbCB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbDIgeSwgYm9v
bCB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5LCBib29sMiB6KSB7
CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7
CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wyIHkpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGJvb2w0KGJvb2wzIHgsIGJvb2wgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHgu
ejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJv
b2w0KGJvb2wgeCwgYm9vbDMgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0
LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJv
b2wyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChib29sMykgewor
ICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoYm9vbDQpIHsKKyAgICByZXR1
cm4gNDsKK30KK29wZXJhdG9yIHVjaGFyMih1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeikg
eworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVj
aGFyMyh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIyIHkpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsK
KyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyIHosIHVjaGFyIHcpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dWNoYXI0KHVjaGFyMiB4LCB1Y2hhciB5LCB1Y2hhciB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9
IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1
Y2hhcjQodWNoYXIgeCwgdWNoYXIyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVj
aGFyNCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhcjIgeikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsK
KyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAg
cmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1
Y2hhcjMgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0
LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwg
dWNoYXIzIHkpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXIyKSB7Cisg
ICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjMpIHsKKyAgICByZXR1
cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVjaGFyNCkgeworICAgIHJldHVybiA0Owor
fQorb3BlcmF0b3IgdXNob3J0Mih1c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0IHop
IHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dXNob3J0Myh1c2hvcnQyIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQy
IHkpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydCB5LCB1c2hvcnQgeiwgdXNob3J0IHcpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQyIHksIHVzaG9ydCB6
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVzaG9y
dDIgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQyIHkp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQzIHkpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDIpIHsKKyAgICByZXR1cm4gMjsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3Vp
bnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9y
IHVpbnQyKHVpbnQgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVpbnQzKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQyIHgsIHVpbnQgeSkgeworICAg
IHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsK
KyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQz
KHVpbnQgeCwgdWludDIgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50IHosIHVpbnQgdykg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAg
IHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDIgeSwgdWludCB6KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50MiB6KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7
CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVp
bnQ0KHVpbnQyIHgsIHVpbnQyIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVz
dWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQz
IHgsIHVpbnQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDMgeSkg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQyKSB7CisgICAgcmV0dXJuIDI7
Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50MykgeworICAgIHJldHVybiAzOworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgodWludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGNo
YXIyKGNoYXIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNo
YXIzKGNoYXIgeCwgY2hhciB5LCBjaGFyIHopIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIyIHgsIGNoYXIgeSkgeworICAgIGNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAg
ICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNo
YXIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyIHosIGNoYXIgdykgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGNoYXI0KGNoYXIyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9
IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyMiB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7Cisg
ICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0
KGNoYXIyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0
LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIzIHgs
IGNoYXIgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjMgeSkgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIyKSB7CisgICAgcmV0dXJuIDI7Cit9
Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMykgeworICAgIHJldHVybiAzOworfQordWludCBv
cGVyYXRvci5sZW5ndGgoY2hhcjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHNob3J0
MihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBz
aG9ydDMoc2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydDIgeCwgc2hvcnQgeSkg
eworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRv
ciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0IHksIHNo
b3J0IHosIHNob3J0IHcpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydCB5
LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQyIHks
IHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydCB5LCBz
aG9ydDIgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydDIgeSkg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydDMgeCwgc2hvcnQgeSkgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7
CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1
bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3Iu
bGVuZ3RoKHNob3J0NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgaW50MihpbnQgeCwg
aW50IHkpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQg
eSwgaW50IHopIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgaW50MyhpbnQyIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQyIHkpIHsKKyAgICBpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgs
IGludCB5LCBpbnQgeiwgaW50IHcpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9
IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQgeSwg
aW50IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQyIHksIGludCB6KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54Owor
ICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwgaW50IHksIGludDIgeikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGludDQoaW50MiB4LCBpbnQyIHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICBy
ZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQz
IHgsIGludCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQzIHkpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3Vp
bnQgb3BlcmF0b3IubGVuZ3RoKGludDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0
b3IubGVuZ3RoKGludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGhhbGYyKGhhbGYg
eCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYg
eCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYyIHgsIGhhbGYgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmIHosIGhhbGYgdykgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3Vs
dC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGhhbGY0KGhhbGYyIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhh
bGY0KGhhbGYgeCwgaGFsZjIgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAg
ICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhh
bGYgeCwgaGFsZiB5LCBoYWxmMiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0
LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYyIHgs
IGhhbGYyIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYzIHgsIGhhbGYgeSkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChoYWxmMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5s
ZW5ndGgoaGFsZjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGZsb2F0MihmbG9hdCB4
LCBmbG9hdCB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0MyhmbG9hdDIgeCwgZmxvYXQgeSkgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMo
ZmxvYXQgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZs
b2F0IHcpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdCB5LCBmbG9hdCB6
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQyIHksIGZsb2F0IHop
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdDIgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQzIHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVy
YXRvci5sZW5ndGgoZmxvYXQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxl
bmd0aChmbG9hdDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZs
b2F0NCkgeworICAgIHJldHVybiA0OworfQorYm9vbCBvcGVyYXRvcj09KGJvb2wyIGEsIGJvb2wy
IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVy
YXRvcj09KGJvb2wzIGEsIGJvb2wzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDQgYSwgYm9vbDQg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAm
JiBhLncgPT0gYi53OworfQordGhyZWFkIGJvb2wqIG9wZXJhdG9yJltdKHRocmVhZCBib29sMiog
Zm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAm
Zm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAg
ICB0cmFwOworfQordGhyZWFkIGJvb2wqIG9wZXJhdG9yJltdKHRocmVhZCBib29sMyogZm9vLCB1
aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54
OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAo
aW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgdHJhcDsKK30KK3RocmVh
ZCBib29sKiBvcGVyYXRvciZbXSh0aHJlYWQgYm9vbDQqIGZvbywgdWludCBpbmRleCkgeworICAg
IGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAg
ICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4g
JmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KHVjaGFyMiBhLCB1Y2hhcjIg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJh
dG9yPT0odWNoYXIzIGEsIHVjaGFyMyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55
ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KHVjaGFyNCBhLCB1Y2hh
cjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIu
eiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVjaGFyKiBvcGVyYXRvciZbXSh0aHJlYWQgdWNo
YXIyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0
dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55
OworICAgIHRyYXA7Cit9Cit0aHJlYWQgdWNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCB1Y2hhcjMq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIHRyYXA7Cit9
Cit0aHJlYWQgdWNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCB1Y2hhcjQqIGZvbywgdWludCBpbmRl
eCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBp
ZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09
IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAg
ICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDIg
YSwgdXNob3J0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30K
K2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQzIGEsIHVzaG9ydDMgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1
c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
LnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVzaG9ydCogb3BlcmF0
b3ImW10odGhyZWFkIHVzaG9ydDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9
PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAg
ICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJhcDsKK30KK3RocmVhZCB1c2hvcnQqIG9wZXJhdG9y
JltdKHRocmVhZCB1c2hvcnQzKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0g
MCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAg
IHJldHVybiAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZv
by0+ejsKKyAgICB0cmFwOworfQordGhyZWFkIHVzaG9ydCogb3BlcmF0b3ImW10odGhyZWFkIHVz
aG9ydDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICBy
ZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28t
Pnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlm
IChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9v
bCBvcGVyYXRvcj09KHVpbnQyIGEsIHVpbnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHVpbnQzIGEsIHVpbnQzIGIpIHsKKyAg
ICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29s
IG9wZXJhdG9yPT0odWludDQgYSwgdWludDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVpbnQq
IG9wZXJhdG9yJltdKHRocmVhZCB1aW50MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGlu
ZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQor
ICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIHVpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCB1aW50MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09
IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAg
ICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZm
b28tPno7CisgICAgdHJhcDsKK30KK3RocmVhZCB1aW50KiBvcGVyYXRvciZbXSh0aHJlYWQgdWlu
dDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1
cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7
CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChp
bmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBv
cGVyYXRvcj09KGNoYXIyIGEsIGNoYXIyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBh
LnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIzIGEsIGNoYXIzIGIpIHsKKyAgICBy
ZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9w
ZXJhdG9yPT0oY2hhcjQgYSwgY2hhcjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGNoYXIqIG9w
ZXJhdG9yJltdKHRocmVhZCBjaGFyMiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4
ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAg
ICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIGNoYXIqIG9wZXJhdG9y
JltdKHRocmVhZCBjaGFyMyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28t
Pno7CisgICAgdHJhcDsKK30KK3RocmVhZCBjaGFyKiBvcGVyYXRvciZbXSh0aHJlYWQgY2hhcjQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVy
YXRvcj09KHNob3J0MiBhLCBzaG9ydDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQzIGEsIHNob3J0MyBiKSB7CisgICAg
cmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBv
cGVyYXRvcj09KHNob3J0NCBhLCBzaG9ydDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHNob3J0
KiBvcGVyYXRvciZbXSh0aHJlYWQgc2hvcnQyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAo
aW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEp
CisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9Cit0aHJlYWQgc2hvcnQqIG9w
ZXJhdG9yJltdKHRocmVhZCBzaG9ydDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRl
eCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAg
ICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVy
biAmZm9vLT56OworICAgIHRyYXA7Cit9Cit0aHJlYWQgc2hvcnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBzaG9ydDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAg
ICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZm
b28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAg
IGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQor
Ym9vbCBvcGVyYXRvcj09KGludDIgYSwgaW50MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLngg
JiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShpbnQzIGEsIGludDMgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wg
b3BlcmF0b3I9PShpbnQ0IGEsIGludDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGludCogb3Bl
cmF0b3ImW10odGhyZWFkIGludDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9
PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAg
ICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJhcDsKK30KK3RocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBpbnQzKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAg
ICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVy
biAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+ejsK
KyAgICB0cmFwOworfQordGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIGludDQqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYg
KGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAz
KQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09
KGhhbGYyIGEsIGhhbGYyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYzIGEsIGhhbGYzIGIpIHsKKyAgICByZXR1cm4gYS54
ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0o
aGFsZjQgYSwgaGFsZjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkg
JiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGhhbGYqIG9wZXJhdG9yJltd
KHRocmVhZCBoYWxmMiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisg
ICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1
cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYqIG9wZXJhdG9yJltdKHRocmVh
ZCBoYWxmMyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAg
IHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAg
dHJhcDsKK30KK3RocmVhZCBoYWxmKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjQqIGZvbywgdWlu
dCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsK
KyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGlu
ZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQor
ICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KGZs
b2F0MiBhLCBmbG9hdDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7
Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzIGEsIGZsb2F0MyBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09
KGZsb2F0NCBhLCBmbG9hdDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
LnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGZsb2F0KiBvcGVyYXRv
ciZbXSh0aHJlYWQgZmxvYXQyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0g
MCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAg
IHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQqIG9wZXJhdG9yJltd
KHRocmVhZCBmbG9hdDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQor
ICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0
dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56
OworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQqIG9wZXJhdG9yJltdKHRocmVhZCBmbG9hdDQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQordGhyZWFkIGhh
bGYyKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjJ4MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRl
eCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICB0cmFwOworfQordGhyZWFk
IGhhbGYyKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjN4MiogZm9vLCB1aW50IGluZGV4KSB7Cisg
ICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChp
bmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0g
MikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxm
Miogb3BlcmF0b3ImW10odGhyZWFkIGhhbGY0eDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlm
IChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisg
ICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICBy
ZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYzKiBvcGVyYXRvciZb
XSh0aHJlYWQgaGFsZjJ4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAg
ICByZXR1cm4gJmZvby0+cm93MTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYzKiBvcGVyYXRv
ciZbXSh0aHJlYWQgaGFsZjN4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09
IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAg
ICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0
dXJuICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxmMyogb3BlcmF0b3ImW10o
dGhyZWFkIGhhbGY0eDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQor
ICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAg
cmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAm
Zm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93
MzsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGY0KiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjJ4
NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVy
biAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+
cm93MTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGY0KiBvcGVyYXRvciZbXSh0aHJlYWQgaGFs
ZjN4NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJl
dHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7
CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxmNCogb3BlcmF0b3ImW10odGhyZWFkIGhhbGY0eDQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJv
dzE7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAg
IGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOwor
fQordGhyZWFkIGZsb2F0Miogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0MngyKiBmb28sIHVpbnQg
aW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7
CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRy
YXA7Cit9Cit0aHJlYWQgZmxvYXQyKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDIqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7
Cit9Cit0aHJlYWQgZmxvYXQyKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDIqIGZvbywgdWlu
dCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93
MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAg
aWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFk
IGZsb2F0Myogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0MngzKiBmb28sIHVpbnQgaW5kZXgpIHsK
KyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYg
KGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0
aHJlYWQgZmxvYXQzKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDMqIGZvbywgdWludCBpbmRl
eCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAg
ICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGlu
ZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7Cit9Cit0aHJl
YWQgZmxvYXQzKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDMqIGZvbywgdWludCBpbmRleCkg
eworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBp
ZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4
ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQor
ICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFkIGZsb2F0NCog
b3BlcmF0b3ImW10odGhyZWFkIGZsb2F0Mng0KiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAo
aW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYgKGluZGV4ID09
IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxv
YXQ0KiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDQqIGZvbywgdWludCBpbmRleCkgeworICAg
IGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5k
ZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIp
CisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQ0
KiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlm
IChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisg
ICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICBy
ZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDIg
YSwgaGFsZjJ4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAm
JgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFd
WzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgIHRydWU7Cit9Citib29s
IG9wZXJhdG9yPT0oaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAg
YVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAg
ICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYm
CisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1b
Ml0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDQgYSwgaGFsZjJ4NCBi
KSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBh
WzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAg
ICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYK
KyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsy
XSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBv
cGVyYXRvcj09KGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFb
MF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAg
ICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgor
ICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFd
ICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3gzIGEsIGhhbGYzeDMgYikg
eworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVsw
XVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAg
ICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisg
ICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0g
JiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsy
XVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjN4NCBhLCBoYWxmM3g0
IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAg
IGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAg
ICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAm
JgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFd
WzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09
IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1b
Ml0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVl
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0g
YlsxXVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsx
XSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBh
WzNdWzFdID09IGJbM11bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0
eDMgYSwgaGFsZjR4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBi
WzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFd
ID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFb
Ml1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAg
ICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgor
ICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJd
ICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNHg0IGEsIGhhbGY0eDQgYikg
eworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVsw
XVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAg
ICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisg
ICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0g
JiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsy
XVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9
PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNd
WzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAg
IGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MngyIGEsIGZsb2F0MngyIGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsx
XVsxXSA9PSBiWzFdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4
MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBi
WzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFd
ID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgdHJ1ZTsK
K30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4NCBhLCBmbG9hdDJ4NCBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0g
YlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsx
XSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBh
WzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0
M3gyIGEsIGZsb2F0M3gyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBd
WzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09
IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1b
MF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICB0cnVl
OworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3gzIGEsIGZsb2F0M3gzIGIpIHsKKyAgICByZXR1
cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlsw
XVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9
PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFd
WzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAg
IGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3g0IGEsIGZsb2F0M3g0IGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsw
XVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAg
ICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisg
ICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0g
JiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsy
XVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVlOworfQorYm9v
bCBvcGVyYXRvcj09KGZsb2F0NHgyIGEsIGZsb2F0NHgyIGIpIHsKKyAgICByZXR1cm4KKyAgICAg
ICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgor
ICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFd
ICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJb
Ml1bMV0gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0g
PT0gYlszXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDMgYSwg
ZmxvYXQ0eDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsy
XSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBi
WzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBd
ID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFb
Ml1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAg
ICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgor
ICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDQgYSwgZmxvYXQ0eDQgYikgewor
ICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsx
XSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBh
WzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAg
ICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYK
KyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVsw
XSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBi
WzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNdWzBd
ID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFb
M11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAgICB0
cnVlOworfQorCituYXRpdmUgZmxvYXQgY29zKGZsb2F0KTsKK2hhbGYgY29zKGhhbGYgeCkgewor
ICAgIHJldHVybiBoYWxmKGNvcyhmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHNpbihmbG9h
dCk7CitoYWxmIHNpbihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihzaW4oZmxvYXQoeCkpKTsK
K30KK25hdGl2ZSBmbG9hdCB0YW4oZmxvYXQpOworaGFsZiB0YW4oaGFsZiB4KSB7CisgICAgcmV0
dXJuIGhhbGYodGFuKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgYWNvcyhmbG9hdCk7Cito
YWxmIGFjb3MoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoYWNvcyhmbG9hdCh4KSkpOworfQor
bmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpOworaGFsZiBhc2luKGhhbGYgeCkgeworICAgIHJldHVy
biBoYWxmKGFzaW4oZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBhdGFuKGZsb2F0KTsKK2hh
bGYgYXRhbihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihhdGFuKGZsb2F0KHgpKSk7Cit9Citu
YXRpdmUgZmxvYXQgY29zaChmbG9hdCk7CitoYWxmIGNvc2goaGFsZiB4KSB7CisgICAgcmV0dXJu
IGhhbGYoY29zaChmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHNpbmgoZmxvYXQpOworaGFs
ZiBzaW5oKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKHNpbmgoZmxvYXQoeCkpKTsKK30KK25h
dGl2ZSBmbG9hdCB0YW5oKGZsb2F0KTsKK2hhbGYgdGFuaChoYWxmIHgpIHsKKyAgICByZXR1cm4g
aGFsZih0YW5oKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgY2VpbChmbG9hdCk7CitoYWxm
IGNlaWwoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoY2VpbChmbG9hdCh4KSkpOworfQorbmF0
aXZlIGZsb2F0IGV4cChmbG9hdCk7CitoYWxmIGV4cChoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFs
ZihleHAoZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBmbG9vcihmbG9hdCk7CitoYWxmIGZs
b29yKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKGZsb29yKGZsb2F0KHgpKSk7Cit9CituYXRp
dmUgZmxvYXQgbG9nKGZsb2F0KTsKK2hhbGYgbG9nKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxm
KGxvZyhmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KTsKK2hhbGYgcm91
bmQoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYocm91bmQoZmxvYXQoeCkpKTsKK30KK25hdGl2
ZSBmbG9hdCB0cnVuYyhmbG9hdCk7CitoYWxmIHRydW5jKGhhbGYgeCkgeworICAgIHJldHVybiBo
YWxmKHRydW5jKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgZGR4KGZsb2F0KTsKK2hhbGYg
ZGR4KGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKGRkeChmbG9hdCh4KSkpOworfQorbmF0aXZl
IGZsb2F0IGRkeShmbG9hdCk7CitoYWxmIGRkeShoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihk
ZHkoZmxvYXQoeCkpKTsKK30KK2hhbGYgc3FydChoYWxmIHgpIHsKKyAgICByZXR1cm4gcG93KHgs
IDAuNSk7Cit9CitoYWxmIGxvZzIoaGFsZiB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygy
KTsKK30KK2hhbGYgbG9nMTAoaGFsZiB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygxMCk7
Cit9CitoYWxmIGZyYWMoaGFsZiB4KSB7CisgICAgcmV0dXJuIHggLSBmbG9vcih4KTsKK30KK2hh
bGYgZXhwMihoYWxmIHgpIHsKKyAgICByZXR1cm4gZXhwKHggKiBsb2coMikpOworfQoraGFsZiBk
ZWdyZWVzKGhhbGYgeCkgeworICAgIHJldHVybiB4ICogMTgwIC8gUEk7Cit9CitoYWxmIHJhZGlh
bnMoaGFsZiB4KSB7CisgICAgcmV0dXJuIHggKiBQSSAvIDE4MDsKK30KK2hhbGYgcmNwKGhhbGYg
eCkgeworICAgIHJldHVybiAxIC8geDsKK30KK2hhbGYgcnNxcnQoaGFsZiB4KSB7CisgICAgcmV0
dXJuIDEgLyBzcXJ0KHgpOworfQoraGFsZiBzYXR1cmF0ZShoYWxmIHgpIHsKKyAgICByZXR1cm4g
Y2xhbXAoeCwgMCwgMSk7Cit9CitoYWxmIGRkeF9jb2Fyc2UoaGFsZiB4KSB7CisgICAgcmV0dXJu
IGRkeCh4KTsKK30KK2hhbGYgZGR4X2ZpbmUoaGFsZiB4KSB7CisgICAgcmV0dXJuIGRkeCh4KTsK
K30KK2hhbGYgZGR5X2NvYXJzZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR5KHgpOworfQoraGFs
ZiBkZHlfZmluZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR5KHgpOworfQoraGFsZiBmd2lkdGgo
aGFsZiB4KSB7CisgICAgcmV0dXJuIGFicyhkZHgoeCkpICsgYWJzKGRkeSh4KSk7Cit9CitoYWxm
MiBjb3MoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3Mo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBjb3MoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgY29zKGhhbGY0IHgpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGNvcyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjb3MoeFsyXSk7CisgICAgcmVzdWx0
WzNdID0gY29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGNvcyhoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgY29zKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGNvcyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBjb3MoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGNvcyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyBjb3MoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgY29zKGhhbGYzeDQgeCkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3MoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gY29zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGNvcyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gY29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgzIGNvcyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gY29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBjb3MoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjb3MoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3MoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBzaW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBzaW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IHNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc2luKGhh
bGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2luKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW4oeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gc2luKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngy
IHNpbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgc2luKGhhbGYyeDMgeCkgeworICAg
IGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNpbihoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHNpbihoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4MyBzaW4oaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBzaW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgc2luKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbih4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgyIHNpbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgzIHNpbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gc2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbih4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzaW4oaGFsZjR4NCB4KSB7CisgICAg
aGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBzaW4oeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHNpbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBz
aW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc2luKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiB0YW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyB0YW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHRhbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgdGFuKGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFu
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW4o
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIHRhbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0
YW4oeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgdGFuKGhhbGYyeDMg
eCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
dGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHRhbihoYWxmMng0IHgpIHsKKyAgICBo
YWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
dGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHRhbihoYWxmM3gyIHgpIHsKKyAgICBo
YWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4MyB0YW4oaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
dGFuKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbih4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
dGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSB0YW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSB0
YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIHRhbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0
YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgzIHRhbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0
YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW4oeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRh
bih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCB0YW4oaGFsZjR4NCB4
KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0
YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRh
bih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdGFu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRhbih4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSB0YW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gdGFuKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBhY29zKGhhbGYyIHgpIHsKKyAgICBoYWxmMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhY29z
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhY29zKGhhbGYzIHgpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBhY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFjb3MoeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IGFjb3MoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFjb3MoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhY29zKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGFjb3MoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjJ4MyBhY29zKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMng0IGFjb3MoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gYWNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhY29zKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIGFjb3MoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
Y29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDMgYWNvcyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3Mo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
Y29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4
NCBhY29zKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3Mo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gYWNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
Y29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGFjb3MoaGFsZjR4MiB4KSB7Cisg
ICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
Y29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGFjb3MoaGFsZjR4
MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3Mo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
Y29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFjb3MoeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgYWNvcyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBhY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFjb3MoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
Y29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gYWNvcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhY29zKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gYWNvcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhY29zKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBhc2luKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhc2luKGhhbGYzIHgpIHsKKyAgICBo
YWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhc2luKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzaW4oeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IGFzaW4oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gYXNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2luKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGFzaW4oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4MyBhc2luKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMng0IGFzaW4oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2luKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGFzaW4oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2lu
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDMgYXNpbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBh
c2luKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzaW4oeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2luKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGFzaW4oaGFsZjR4MiB4KSB7CisgICAg
aGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2lu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGFzaW4oaGFsZjR4MyB4
KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2lu
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzaW4oeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDQgYXNpbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBhc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW4oeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2lu
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gYXNpbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhc2luKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXNpbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhc2luKHhbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBhdGFuKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhdGFuKGhhbGYzIHgpIHsKKyAgICBoYWxm
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
dGFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGF0YW4oeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IGF0YW4oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhdGFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gYXRhbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhdGFuKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGF0YW4oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjJ4MyBhdGFuKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGF0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhdGFuKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
Mng0IGF0YW4oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRh
bih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBhdGFuKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gyIGF0YW4oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzeDMgYXRhbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBhdGFu
KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGF0YW4oaGFsZjR4MiB4KSB7CisgICAgaGFs
ZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGF0YW4oaGFsZjR4MyB4KSB7
CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0
YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4oeFszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgYXRhbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0
YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGF0YW4oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFuKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gYXRhbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRh
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhdGFuKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiBjb3NoKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3NoKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBjb3NoKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3No
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvc2goeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IGNvc2goaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2goeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gY29zaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3NoKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIGNvc2goaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBjb3NoKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNv
c2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IGNvc2goaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY29zaCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIGNvc2goaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgY29zaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
b3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBjb3NoKGhh
bGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2go
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvc2goeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gY29zaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3NoKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGNvc2goaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGNvc2goaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2go
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBj
b3NoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvc2goeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDQgY29zaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2go
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBjb3NoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBj
b3NoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvc2goeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gY29zaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGNvc2goeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY29zaCh4
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjb3NoKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBzaW5oKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBzaW5oKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IHNpbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IHNpbmgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBzaW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gc2luaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaW5oKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIHNpbmgoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MyBzaW5oKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNp
bmgoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luaCh4WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBzaW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmM3gyIHNpbmgoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDMgc2luaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5o
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzaW5oKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbmgoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5o
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNpbmgoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5o
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5oKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHNpbmgoaGFsZjR4MyB4KSB7CisgICAg
aGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbmgoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaW5o
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5oKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNpbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgc2luaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW5o
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbmgoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
c2luaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW5oKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2luaCh4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMiB0YW5oKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyB0YW5oKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHRhbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IHRhbmgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0
YW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
dGFuaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSB0YW5oKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIHRhbmgoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5o
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyB0
YW5oKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSB0YW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSB0YW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHRhbmgo
aGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFu
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHRhbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSB0YW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIHRhbmgoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFu
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMg
dGFuaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFu
aCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCB0YW5oKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSB0YW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gdGFuaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFu
aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIHRhbmgoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHRhbmgoaGFsZjR4MyB4KSB7CisgICAgaGFs
ZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHRhbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDQgdGFuaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSB0YW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFu
aCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuaCh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSB0YW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBjZWlsKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBjZWlsKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGNlaWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IGNlaWwoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjZWls
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY2Vp
bCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjZWlsKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngyIGNlaWwoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBjZWls
KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNl
aWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBjZWlsKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGNlaWwoaGFs
ZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2VpbCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNl
aWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gy
IGNlaWwoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgY2Vp
bChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
ZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBjZWlsKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
ZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNlaWwoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjZWlsKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHgyIGNlaWwoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
ZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGNlaWwoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
ZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGNlaWwoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDQgY2VpbChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBj
ZWlsKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGNlaWwoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gY2VpbCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY2VpbCh4
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGNlaWwoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2VpbCh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBjZWlsKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiBleHAoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyBleHAoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGV4cCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZXhwKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGV4cCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBleHAoeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gZXhwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGV4
cChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBl
eHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZXhwKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBl
eHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IGV4cChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBleHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBl
eHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGV4cChoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjN4MyBleHAoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
ZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBl
eHAoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgZXhwKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBl
eHAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gZXhwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIGV4cChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBl
eHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIGV4cChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBl
eHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4
cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cCh4WzNdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBleHAoaGFsZjR4NCB4KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBleHAoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGV4cCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBleHAo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZXhwKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBmbG9vcihoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmbG9vcihoYWxmMyB4KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZs
b29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBmbG9vcihoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZsb29yKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGZsb29yKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIGZsb29yKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IGZsb29yKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZs
b29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29yKHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZsb29yKGhhbGYzeDIgeCkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29y
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGZsb29yKGhhbGYzeDMg
eCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZs
b29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGZsb29yKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGZsb29yKGhhbGY0eDIgeCkgeworICAgIGhh
bGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGZsb29yKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZsb29yKGhh
bGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29y
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZs
b29yKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZsb29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGZsb29yKGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZs
b29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IGZsb29yKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBsb2coaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2co
eFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBsb2coaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBsb2coeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGxvZyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbG9nKGhhbGY0IHgpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGxvZyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBsb2coeFsyXSk7CisgICAgcmVzdWx0
WzNdID0gbG9nKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxvZyhoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbG9nKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGxvZyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBsb2coeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2coeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxvZyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyBsb2coaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsb2coeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbG9nKGhhbGYzeDQgeCkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2coeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsb2coeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gbG9nKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGxvZyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgzIGxvZyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gbG9nKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxvZyh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBsb2coaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gbG9nKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbG9nKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBsb2coeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGxvZyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsb2coeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gbG9nKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiByb3VuZChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyByb3VuZChoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCByb3VuZChoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHJvdW5kKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHJvdW5kKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJvdW5kKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngzIHJvdW5kKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5k
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IHJvdW5kKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJv
dW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHJvdW5kKGhhbGYzeDIgeCkgeworICAg
IGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5k
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHJvdW5kKGhhbGYzeDMgeCkgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHJvdW5kKGhhbGYzeDQgeCkgeworICAg
IGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5k
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJv
dW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHJvdW5kKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5k
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJvdW5kKGhhbGY0eDMg
eCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJv
dW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHJvdW5kKGhhbGY0eDQgeCkgeworICAg
IGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5k
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJv
dW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5kKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IHJvdW5kKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiB0cnVu
YyhoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyB0cnVuYyhoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCB0cnVuYyho
YWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRydW5jKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IHRydW5jKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIHRydW5jKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHRy
dW5jKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IHRydW5jKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRy
dW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIHRydW5jKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5j
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gzIHRydW5jKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRy
dW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3g0IHRydW5jKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIHRydW5jKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHRydW5jKGhhbGY0eDMgeCkgeworICAgIGhhbGY0
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRy
dW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJl
c3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHg0IHRydW5jKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHRy
dW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHRydW5jKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHgoaGFsZjIgeCkgeworICAg
IGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gZGR4KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHgoaGFsZjMgeCkg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZGR4KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgZGR4KGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gZGR4KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBkZHgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDMgZGR4KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRkeCho
YWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZGR4KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeCho
YWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHgoaGFsZjN4MyB4KSB7
CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgZGR4KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR4KHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeChoYWxmNHgyIHgpIHsK
KyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeChoYWxmNHgzIHgpIHsK
KyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGRkeCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjR4NCBkZHgoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGR4KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4KHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHgoeFsyXVszXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gZGR4KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeCh4WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHgoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNd
ID0gZGR4KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHkoaGFsZjIg
eCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHko
aGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeSh4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZGR5KGhhbGY0IHgpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeSh4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBkZHkoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR5KHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeShoYWxmMngyIHgpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDMgZGR5KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
Mng0IGRkeShoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gZGR5KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIGRkeShoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeSh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHkoaGFs
ZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgZGR5KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gZGR5KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeShoYWxm
NHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZGR5KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeShoYWxm
NHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjR4NCBkZHkoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gZGR5KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHkoeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGRkeSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHkoeFszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gZGR5KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBz
cXJ0KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3FydCh4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBzcXJ0KGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHNxcnQoaGFsZjQg
eCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzcXJ0KHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc3FydCh4WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngy
IHNxcnQoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBzcXJ0KGhhbGYyeDMgeCkg
eworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBz
cXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNxcnQoaGFsZjJ4NCB4KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3FydCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBz
cXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHNxcnQoaGFsZjN4
MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgc3FydChoYWxmM3gzIHgp
IHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
c3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzcXJ0KGhhbGYzeDQgeCkgeworICAgIGhhbGYz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IHNxcnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3FydCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBzcXJ0KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIHNxcnQoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgzIHNxcnQoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c3FydCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IHNxcnQoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgc3FydCho
YWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzcXJ0KHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNxcnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHNxcnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3FydCh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNxcnQo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc3FydCh4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsb2cy
KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMyBsb2cyKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bG9nMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGxvZzIoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxvZzIoaGFsZjQgeCkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGxvZzIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBsb2cyKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxv
ZzIoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBsb2cyKGhhbGYyeDMgeCkgewor
ICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxvZzIoaGFsZjJ4NCB4KSB7CisgICAg
aGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2cy
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGxvZzIoaGFsZjN4MiB4
KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzIoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbG9nMihoYWxmM3gzIHgpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9n
Mih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBsb2cyKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGxvZzIoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9n
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgzIGxvZzIoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9n
Mih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGxvZzIoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbG9nMihoYWxm
NHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsb2cyKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9n
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nMih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nMih4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzIoeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBsb2cyKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsb2cxMCho
YWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMyBsb2cxMChoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGxvZzEwKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBsb2cxMChoYWxm
NCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0p
OworICAgIHJlc3VsdFszXSA9IGxvZzEwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngyIGxvZzEwKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGxvZzEw
KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxv
ZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxv
ZzEwKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzEw
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxvZzEwKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gzIGxvZzEwKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEw
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3g0IGxvZzEwKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIGxvZzEwKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxv
ZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGxvZzEwKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IGxvZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHg0IGxvZzEwKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEw
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzEwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmcmFjKGhhbGYyIHgpIHsKKyAgICBo
YWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBmcmFjKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmcmFjKGhhbGYzIHgp
IHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBmcmFjKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZyYWMoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGZyYWMoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZyYWMoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBmcmFjKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGZyYWMoaGFsZjJ4MiB4KSB7Cisg
ICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4MyBmcmFjKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGZyYWMoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFj
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmcmFjKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZyYWMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFj
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgZnJhYyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjN4NCBmcmFjKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJhYyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmcmFj
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGZyYWMoaGFsZjR4MiB4
KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZyYWMo
aGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJh
Yyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZyYWMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZnJhYyhoYWxmNHg0IHgpIHsKKyAgICBoYWxm
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmcmFjKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZyYWMoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZnJhYyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmcmFj
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZyYWMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gZnJhYyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBmcmFjKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBleHAyKGhhbGYyIHgpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBl
eHAyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBleHAyKGhhbGYzIHgpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGV4cDIoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IGV4cDIoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gZXhwMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAyKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGV4cDIoaGFsZjJ4MiB4KSB7CisgICAg
aGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4MyBleHAyKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhw
Mih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IGV4cDIoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZXhwMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhw
Mih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBleHAyKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGV4cDIoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDMgZXhwMihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4
cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4NCBleHAyKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4
cDIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAyKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGV4cDIoaGFsZjR4MiB4KSB7
CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBleHAyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGV4cDIoaGFs
ZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4
cDIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBleHAyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cDIoeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZXhwMihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cDIoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gZXhwMih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAyKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBleHAyKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZWdyZWVzKGhhbGYyIHgpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBkZWdyZWVzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZWdyZWVzKGhh
bGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRlZ3Jl
ZXMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRlZ3JlZXMoaGFsZjQgeCkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZWdyZWVzKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGVncmVlcyh4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBkZWdyZWVzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIGRlZ3JlZXMoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdy
ZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjJ4MyBkZWdyZWVzKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVl
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVl
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRlZ3JlZXMoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGVncmVlcyh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBkZWdyZWVzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIGRlZ3JlZXMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgZGVncmVlcyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZWdyZWVzKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGVncmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBkZWdyZWVzKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRl
Z3JlZXMoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZGVncmVlcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRlZ3JlZXMoaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBkZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGRlZ3JlZXMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGRlZ3JlZXMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZGVncmVl
cyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBk
ZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBk
ZWdyZWVzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBk
ZWdyZWVzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZGVncmVlcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBk
ZWdyZWVzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gZGVncmVlcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBk
ZWdyZWVzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiByYWRpYW5zKGhh
bGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFucyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyByYWRpYW5zKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gcmFkaWFucyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJhZGlhbnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IHJhZGlhbnMoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBy
YWRpYW5zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gcmFkaWFucyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByYWRpYW5zKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJhZGlhbnMoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlh
bnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyByYWRpYW5zKGhhbGYyeDMgeCkgeworICAgIGhhbGYy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5z
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5z
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHJhZGlhbnMoaGFsZjJ4
NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmFkaWFucyh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIHJhZGlhbnMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgcmFkaWFucyhoYWxmM3gzIHgp
IHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBy
YWRpYW5zKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IHJhZGlhbnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmFkaWFucyh4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIHJhZGlhbnMoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSByYWRpYW5zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJhZGlh
bnMoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
cmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
cmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByYWRpYW5zKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHJhZGlhbnMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgcmFkaWFucyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJh
ZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJh
ZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJh
ZGlhbnMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJh
ZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmFkaWFucyh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJh
ZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmFkaWFucyh4WzNdWzJdKTsKKyAg
ICByZXN1bHRbM11bM10gPSByYWRpYW5zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiByY3AoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyByY3AoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHJjcCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgcmNwKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmNwKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHJjcCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSByY3AoeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gcmNwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJj
cChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBy
Y3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgcmNwKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBy
Y3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHJjcChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSByY3AoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBy
Y3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIHJjcChoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjN4MyByY3AoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBy
Y3AoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgcmNwKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
cmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBy
Y3AoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmNwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIHJjcChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBy
Y3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIHJjcChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBy
Y3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJj
cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCByY3AoaGFsZjR4NCB4KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJj
cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSByY3AoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmNwKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHJjcCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSByY3Ao
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmNwKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiByc3FydChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyByc3FydChoYWxmMyB4KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJz
cXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCByc3FydChoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHJzcXJ0KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJzcXJ0KGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIHJzcXJ0KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHJzcXJ0KGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJz
cXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHJzcXJ0KGhhbGYzeDIgeCkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHJzcXJ0KGhhbGYzeDMg
eCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJz
cXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHJzcXJ0KGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHJzcXJ0KGhhbGY0eDIgeCkgeworICAgIGhh
bGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHJzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJzcXJ0KGhh
bGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJz
cXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHJzcXJ0KGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJz
cXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IHJzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBzYXR1cmF0ZShoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBzYXR1cmF0ZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNh
dHVyYXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBzYXR1cmF0ZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVy
YXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IHNhdHVyYXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHNhdHVy
YXRlKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHNh
dHVyYXRlKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHNhdHVyYXRlKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRl
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVy
YXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNhdHVyYXRlKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNh
dHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHNhdHVyYXRlKGhhbGYzeDMgeCkgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IHNhdHVyYXRlKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRl
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVy
YXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNh
dHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNhdHVyYXRlKGhhbGY0eDIgeCkgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgzIHNhdHVyYXRlKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRl
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVy
YXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNh
dHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHNhdHVy
YXRlKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRl
KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVy
YXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNhdHVyYXRlKHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IHNhdHVyYXRlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiBkZHhfY29hcnNlKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHhfY29hcnNlKGhhbGYzIHgpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9jb2Fy
c2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeF9jb2Fyc2UoaGFsZjQg
eCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGRkeF9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4
X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZHhfY29hcnNlKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeF9jb2Fyc2UoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHhfY29hcnNlKGhhbGYyeDMg
eCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2Uo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMng0IGRkeF9jb2Fyc2UoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9j
b2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2NvYXJzZSh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHhfY29hcnNlKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeF9jb2Fyc2UoaGFsZjN4MiB4KSB7CisgICAgaGFs
ZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgZGR4X2NvYXJzZShoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJz
ZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
ZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZHhf
Y29hcnNlKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGRkeF9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4
X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZGR4X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNl
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBk
ZHhfY29hcnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeF9j
b2Fyc2UoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhf
Y29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgz
IGRkeF9jb2Fyc2UoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29h
cnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9j
b2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQg
ZGR4X2NvYXJzZShoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fy
c2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2Nv
YXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gZGR4X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHhfY29hcnNlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZGR4X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHhf
Y29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHhfZmluZSho
YWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBkZHhfZmluZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBkZHhfZmluZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeF9maW5l
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeF9maW5lKGhhbGYyeDIg
eCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5l
KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGRkeF9maW5lKGhhbGYy
eDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9m
aW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMng0IGRkeF9maW5lKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRk
eF9maW5lKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gzIGRkeF9maW5lKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9m
aW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRk
eF9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGRkeF9maW5l
KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeF9maW5lKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5l
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9m
aW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIGRkeF9maW5lKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1b
Ml0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeF9maW5lKGhhbGY0eDQg
eCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5l
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9m
aW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9
IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVsz
XSA9IGRkeF9maW5lKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHlf
Y29hcnNlKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5
X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHlfY29hcnNlKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9jb2Fyc2UoeFsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeV9jb2Fyc2UoaGFsZjQgeCkgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGRkeV9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBkZHlfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngyIGRkeV9jb2Fyc2UoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHlfY29hcnNlKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMng0IGRkeV9jb2Fyc2UoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fy
c2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gyIGRkeV9jb2Fyc2UoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZGR5X2Nv
YXJzZShoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9j
b2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZHlfY29hcnNlKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fy
c2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGRkeV9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5X2Nv
YXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlfY29hcnNlKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeV9jb2Fyc2UoaGFsZjR4
MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJz
ZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHlfY29h
cnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeV9jb2Fyc2Uo
aGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5
X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9jb2Fy
c2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZGR5X2NvYXJzZSho
YWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlf
Y29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRk
eV9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5X2NvYXJz
ZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29hcnNlKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
ZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHlfY29hcnNlKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHlfZmluZShoYWxmMiB4KSB7Cisg
ICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBk
ZHlfZmluZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRk
eV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBkZHlf
ZmluZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9m
aW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeV9maW5lKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeV9maW5lKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGRkeV9maW5lKGhhbGYyeDMgeCkgeworICAg
IGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRk
eV9maW5lKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5l
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeV9maW5lKGhhbGYz
eDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gzIGRkeV9maW5lKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGRkeV9maW5lKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5l
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9m
aW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIGRkeV9maW5lKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRk
eV9maW5lKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5l
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJl
c3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9m
aW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeV9maW5lKGhhbGY0eDQgeCkgeworICAgIGhh
bGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRk
eV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeV9maW5l
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmd2lkdGgoaGFsZjIgeCkg
eworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBm
d2lkdGgoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lk
dGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZ3aWR0aCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZndpZHRoKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZndpZHRoKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGZ3aWR0aCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmd2lkdGgoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZndpZHRoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIGZ3aWR0aChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRo
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDMgZndpZHRoKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IGZ3aWR0aChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndp
ZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRo
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZndpZHRoKHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZ3aWR0aChoYWxmM3gyIHgp
IHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBmd2lkdGgo
aGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndp
ZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRo
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
ZndpZHRoKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZ3aWR0aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3
aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmd2lkdGgoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZndpZHRoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGZ3aWR0aChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZ3aWR0aChoYWxmNHgzIHgpIHsKKyAgICBo
YWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZndpZHRoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZ3aWR0aCh4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBmd2lkdGgoaGFsZjR4NCB4KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBm
d2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZndpZHRoKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lk
dGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmd2lkdGgoeFsy
XVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZndpZHRoKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZ3aWR0aCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmd2lkdGgoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gZndpZHRoKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2Zsb2F0IHNxcnQoZmxvYXQgeCkgeworICAgIHJldHVybiBwb3coeCwgMC41KTsK
K30KK2Zsb2F0IGxvZzIoZmxvYXQgeCkgeworICAgIHJldHVybiBsb2coeCkgLyBsb2coMik7Cit9
CitmbG9hdCBsb2cxMChmbG9hdCB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygxMCk7Cit9
CitmbG9hdCBmcmFjKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAtIGZsb29yKHgpOworfQorZmxv
YXQgZXhwMihmbG9hdCB4KSB7CisgICAgcmV0dXJuIGV4cCh4ICogbG9nKDIpKTsKK30KK2Zsb2F0
IGRlZ3JlZXMoZmxvYXQgeCkgeworICAgIHJldHVybiB4ICogMTgwIC8gUEk7Cit9CitmbG9hdCBy
YWRpYW5zKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAqIFBJIC8gMTgwOworfQorZmxvYXQgcmNw
KGZsb2F0IHgpIHsKKyAgICByZXR1cm4gMSAvIHg7Cit9CitmbG9hdCByc3FydChmbG9hdCB4KSB7
CisgICAgcmV0dXJuIDEgLyBzcXJ0KHgpOworfQorZmxvYXQgc2F0dXJhdGUoZmxvYXQgeCkgewor
ICAgIHJldHVybiBjbGFtcCh4LCAwLCAxKTsKK30KK2Zsb2F0IGRkeF9jb2Fyc2UoZmxvYXQgeCkg
eworICAgIHJldHVybiBkZHgoeCk7Cit9CitmbG9hdCBkZHhfZmluZShmbG9hdCB4KSB7CisgICAg
cmV0dXJuIGRkeCh4KTsKK30KK2Zsb2F0IGRkeV9jb2Fyc2UoZmxvYXQgeCkgeworICAgIHJldHVy
biBkZHkoeCk7Cit9CitmbG9hdCBkZHlfZmluZShmbG9hdCB4KSB7CisgICAgcmV0dXJuIGRkeSh4
KTsKK30KK2Zsb2F0IGZ3aWR0aChmbG9hdCB4KSB7CisgICAgcmV0dXJuIGFicyhkZHgoeCkpICsg
YWJzKGRkeSh4KSk7Cit9CitmbG9hdDIgY29zKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY29zKGZsb2F0MyB4KSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
Y29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IGNvcyhmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvcyh4WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBjb3MoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gY29zKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjb3MoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MngzIGNvcyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBjb3Mo
ZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3MoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNv
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBj
b3MoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgY29zKGZsb2F0
M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGNvcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3MoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gY29zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjb3Mo
ZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNv
cyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gY29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBj
b3MoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
Y29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgY29zKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjb3MoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3MoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgc2luKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgc2luKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IHNpbihmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lu
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW4o
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gc2luKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBzaW4oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHNpbihmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzaW4oZmxvYXQyeDQgeCkg
eworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNp
bih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lu
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBzaW4oZmxvYXQzeDIg
eCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgc2luKGZsb2F0M3gzIHgpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3g0IHNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW4oZmxvYXQ0eDIgeCkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
bih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2lu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW4oZmxvYXQ0eDMg
eCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNpbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0eDQgc2luKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW4oeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHNpbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzaW4oeFszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gc2luKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
dGFuKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW4o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgdGFuKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHRhbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHRhbihmbG9hdDQg
eCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW4oeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0
YW4oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHRhbihmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0YW4oZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFu
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW4oZmxvYXQzeDIgeCkgeworICAgIGZs
b2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgdGFuKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IHRhbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbih4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSB0YW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiB0YW4oZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSB0YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyB0YW4oZmxvYXQ0eDMgeCkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
dGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0
YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHRhbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
dGFuKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gdGFuKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRhbih4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSB0YW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
dGFuKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYWNvcyhmbG9hdDIg
eCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBhY29zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
YWNvcyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNv
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFj
b3MoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhY29zKGZsb2F0NCB4KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGFjb3MoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBhY29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBh
Y29zKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYWNvcyhmbG9hdDJ4MyB4
KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhY29zKGZsb2F0Mng0IHgp
IHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWNvcyh4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhY29z
KGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFjb3Mo
ZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
Y29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNvcyh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYWNvcyhmbG9hdDN4NCB4
KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3MoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhY29zKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gYWNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNv
cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MiBhY29zKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29z
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhY29zKGZsb2F0NHgzIHgpIHsKKyAg
ICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3Mo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
Y29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFjb3MoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NHg0IGFjb3MoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFj
b3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFjb3MoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhY29zKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gYWNvcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhY29zKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWNv
cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhY29zKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDIgYXNpbihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNpbihmbG9hdDMgeCkgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhc2luKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzaW4oeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBhc2luKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gYXNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2luKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBhc2luKGZsb2F0MngyIHgpIHsKKyAgICBm
bG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgYXNpbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCBhc2luKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gYXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2luKHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhc2luKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9h
dDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzaW4oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0
M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzeDQgYXNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGFzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4o
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBhc2luKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBh
c2luKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MyBhc2luKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNp
bih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGFzaW4oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGFzaW4oZmxv
YXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2lu
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGFzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbih4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4o
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNpbih4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBhc2luKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYXRh
bihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgYXRhbihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGF0YW4oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhdGFuKGZs
b2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhdGFuKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbih4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBhdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4MiBhdGFuKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYXRhbihm
bG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhdGFuKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhdGFuKGZs
b2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRh
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbih4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGF0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBhdGFuKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MiBhdGFuKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3gzIGF0YW4oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
dGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYXRhbihm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBhdGFuKGZsb2F0NHgyIHgpIHsKKyAgICBm
bG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhdGFuKGZsb2F0NHgz
IHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
dGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGF0YW4oZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGF0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGF0
YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGF0YW4oeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gYXRhbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gYXRhbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhdGFuKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgY29zaChmbG9hdDIgeCkgeworICAgIGZsb2F0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3NoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY29zaChmbG9hdDMgeCkg
eworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBjb3NoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvc2goeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBjb3NoKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2go
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gY29zaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3No
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjb3NoKGZsb2F0MngyIHgp
IHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgY29zaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Y29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBjb3NoKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gY29zaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
b3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBjb3NoKGZsb2F0M3gyIHgpIHsK
KyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNv
c2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGNvc2goZmxvYXQzeDMgeCkgewor
ICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29z
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgY29zaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGNvc2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29zaCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBjb3NoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBjb3NoKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zaCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBjb3NoKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29z
aCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGNvc2goeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0
IGNvc2goZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3No
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGNvc2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Y29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY29zaCh4WzJd
WzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGNvc2goeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY29zaCh4WzNdWzJdKTsKKyAg
ICByZXN1bHRbM11bM10gPSBjb3NoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDIgc2luaChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgc2luaChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNpbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBzaW5oKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBz
aW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
c2luaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaW5oKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBzaW5oKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDMgc2luaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
bmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBzaW5oKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lu
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBzaW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBzaW5oKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5o
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIHNpbmgoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDQgc2luaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
bmgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW5oKGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBzaW5oKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW5o
KGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBzaW5oKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbmgoeFszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNpbmgoZmxvYXQ0eDQgeCkgeworICAg
IGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNp
bmgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzaW5oKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc2luaCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaW5oKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgdGFuaChmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdGFuaChm
bG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRhbmgoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCB0YW5oKGZsb2F0NCB4KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW5oKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IHRhbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdGFuaCh4WzJdKTsKKyAgICByZXN1bHRb
M10gPSB0YW5oKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0YW5oKGZs
b2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFu
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgdGFuaChmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5o
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0YW5oKGZsb2F0Mng0IHgpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSB0
YW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW5oKGZsb2F0
M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRh
bmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHRhbmgoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5oKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFu
aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgdGFuaChmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5o
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
dGFuaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiB0YW5oKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0
YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyB0YW5oKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHRhbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IHRhbmgoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSB0YW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5o
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
dGFuaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuaCh4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSB0YW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDIgY2VpbChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY2VpbChmbG9hdDMgeCkgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWls
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNlaWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBjZWlsKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBjZWlsKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gY2VpbCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjZWlsKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjZWlsKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDMgY2VpbChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4NCBjZWlsKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gY2VpbCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2Vp
bCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBjZWlsKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWls
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3gzIGNlaWwoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDQgY2VpbChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGNlaWwoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNl
aWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjZWlsKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjZWlsKGZs
b2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2Vp
bCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBjZWlsKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNlaWwo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGNlaWwoZmxvYXQ0eDQg
eCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjZWlsKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGNlaWwoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNl
aWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY2VpbCh4WzJdWzNdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNlaWwoeFszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2VpbCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBjZWlsKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZXhwKGZsb2F0
MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
ZXhwKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGV4cCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGV4cChmbG9hdDQgeCkgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGV4cCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBleHAoeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gZXhwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBleHAoZmxvYXQy
eDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGV4cChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBleHAoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBleHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBl
eHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBleHAoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDMgZXhwKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBleHAoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGV4cChm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4
cCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhw
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBleHAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZXhwKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBleHAoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBl
eHAoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MyBleHAoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGV4cCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZXhwKGZsb2F0
NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGV4cCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZXhwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cCh4WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBleHAoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZXhwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZmxvb3IoZmxvYXQyIHgpIHsKKyAg
ICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZmxvb3Io
ZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29y
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgZmxvb3IoZmxvYXQ0IHgpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGZsb29yKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MiBmbG9vcihmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGZsb29yKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbG9vcihm
bG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZs
b29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBm
bG9vcihmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZs
b29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBmbG9vcihmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZs
b29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBmbG9vcihmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZs
b29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBmbG9vcihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZs
b29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBmbG9vcihmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZs
b29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29yKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmbG9vcihmbG9hdDR4MyB4
KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZs
b29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZsb29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBmbG9vcihmbG9hdDR4NCB4KSB7Cisg
ICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZs
b29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAg
IHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29y
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJlc3Vs
dFszXVszXSA9IGZsb29yKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
bG9nKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2co
eFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgbG9nKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBsb2coeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGxvZyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGxvZyhmbG9hdDQg
eCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGxvZyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBsb2coeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gbG9nKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBs
b2coZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGxvZyhmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2coZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBsb2coeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2coZmxvYXQzeDIgeCkgeworICAgIGZs
b2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbG9nKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBsb2coeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IGxvZyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gbG9nKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBsb2coeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBsb2coeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBsb2coZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9n
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBsb2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2coZmxvYXQ0eDMgeCkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBs
b2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
bG9nKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGxvZyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2coeFsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbG9nKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZyh4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBsb2coeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bG9nKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcm91bmQoZmxvYXQy
IHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgcm91bmQoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHJvdW5kKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgcm91bmQoZmxv
YXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IHJvdW5kKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiByb3VuZChmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5k
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MyByb3VuZChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4NCByb3VuZChmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiByb3VuZChmbG9hdDN4MiB4KSB7CisgICAgZmxv
YXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyByb3VuZChmbG9hdDN4MyB4KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCByb3VuZChmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiByb3VuZChmbG9hdDR4MiB4KSB7CisgICAgZmxv
YXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHJvdW5kKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyByb3VuZChm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJv
dW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5k
KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCByb3VuZChmbG9hdDR4
NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5k
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1b
M10pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOwor
ICAgIHJlc3VsdFszXVszXSA9IHJvdW5kKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDIgdHJ1bmMoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdHJ1bmMoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5j
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgdHJ1bmMoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHRydW5jKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0cnVuYyhmbG9hdDJ4MiB4KSB7CisgICAg
ZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MyB0cnVuYyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0cnVuYyhmbG9hdDJ4NCB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IHRydW5jKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0cnVuYyhm
bG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRy
dW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyB0
cnVuYyhmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRy
dW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCB0
cnVuYyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRy
dW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJlc3VsdFsy
XVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHRydW5jKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiB0cnVuYyhm
bG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRy
dW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyB0cnVuYyhmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRy
dW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCB0cnVuYyhmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5j
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3Vs
dFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IHRydW5jKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHRydW5jKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4KGZsb2F0MiB4KSB7CisgICAgZmxvYXQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR4
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR4KGZsb2F0MyB4KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZGR4KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IGRkeChmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gZGR4KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBkZHgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MngzIGRkeChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBkZHgoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gZGR4KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MiBkZHgoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR4
KGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBk
ZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGRkeChmbG9hdDN4NCB4KSB7CisgICAg
ZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBkZHgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZGR4KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MiBkZHgoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gZGR4KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBkZHgoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZGR4KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeCh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZGR4KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9h
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZGR4KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBkZHgoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4KHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGRkeCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHgo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZGR4KHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgZGR5KGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR5KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGRkeSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IGRkeShmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZGR5KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeSh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBkZHkoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR5KHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBkZHkoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGRk
eShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZGR5KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHkoZmxvYXQy
eDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR5KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHkoZmxv
YXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHko
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR5KGZsb2F0M3gzIHgp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3g0IGRkeShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
ZGR5KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHkoZmxvYXQ0
eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZGR5KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHkoZmxv
YXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHko
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDQgZGR5KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZGR5KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHko
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5KHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGRkeSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHkoeFszXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gZGR5KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDIgc3FydChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgc3FydChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBzcXJ0KGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBz
cXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
c3FydCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBzcXJ0KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
cXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDMgc3FydChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNx
cnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBzcXJ0KGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3Fy
dCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBzcXJ0KGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIHNxcnQoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
cXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDQgc3FydChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNx
cnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3FydCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzcXJ0KHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzcXJ0KGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzcXJ0
KGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNxcnQoeFszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNxcnQoZmxvYXQ0eDQgeCkgeworICAg
IGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNx
cnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3FydCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNxcnQoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc3FydCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzcXJ0KHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbG9nMihmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9nMihm
bG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzIoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBsb2cyKGZsb2F0NCB4KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGxvZzIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICByZXN1bHRb
M10gPSBsb2cyKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cyKGZs
b2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9n
Mih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbG9nMihmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cyKGZsb2F0Mng0IHgpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMih4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBs
b2cyKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2cyKGZsb2F0
M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxv
ZzIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGxvZzIoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9n
Mih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbG9nMihmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
bG9nMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiBsb2cyKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBs
b2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gbG9nMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2cyKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbG9nMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gbG9nMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGxvZzIoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IGxvZzIoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBsb2cyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cy
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbG9nMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
bG9nMih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGxvZzIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsb2cyKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDIgbG9nMTAoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9nMTAoZmxvYXQzIHgpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgbG9nMTAoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGxvZzEwKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cxMChmbG9hdDJ4MiB4KSB7
CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBsb2cxMChmbG9hdDJ4MyB4KSB7CisgICAgZmxv
YXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cxMChmbG9hdDJ4NCB4KSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxv
ZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBs
b2cxMChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MyBsb2cxMChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxv
ZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBsb2cxMChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxv
ZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBs
b2cxMChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEwKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2cxMChmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGxvZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4NCBsb2cxMChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEw
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzEwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZnJhYyhmbG9hdDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmcmFjKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZnJhYyhmbG9h
dDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBmcmFjKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZyYWMoeFsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBmcmFjKGZsb2F0NCB4KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGZyYWMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXN1bHRbM10g
PSBmcmFjKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBmcmFjKGZsb2F0
MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZnJhYyhmbG9hdDJ4MyB4KSB7CisgICAg
ZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBmcmFjKGZsb2F0Mng0IHgpIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmcmFj
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBmcmFjKGZsb2F0M3gy
IHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGZyYWMoZmxvYXQzeDMg
eCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZnJhYyhmbG9hdDN4NCB4KSB7CisgICAg
ZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJh
Yyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmcmFjKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MiBmcmFjKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFj
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
ZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmcmFjKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
cmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGZyYWMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NHg0IGZyYWMoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBmcmFjKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZyYWMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZnJh
Yyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmcmFjKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IGZyYWMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZnJhYyh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSBmcmFjKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgZXhwMihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZXhwMihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGV4cDIoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBleHAyKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gZXhwMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAyKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBleHAyKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDMgZXhwMihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4NCBleHAyKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gZXhwMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBleHAyKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBleHAyKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIGV4cDIoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDQgZXhwMihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGV4cDIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBl
eHAyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBleHAyKGZsb2F0
NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4
cDIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBleHAyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBleHAyKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhw
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGV4cDIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGV4cDIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBleHAyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cDIoeFsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGV4cDIoZmxvYXQ0eDQgeCkg
eworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZXhwMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGV4cDIoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZXhwMih4WzJdWzNdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBleHAyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBl
eHAyKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGVncmVlcyhmbG9h
dDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgZGVncmVlcyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGVncmVlcyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRlZ3JlZXMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBkZWdyZWVzKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBkZWdyZWVzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gZGVncmVlcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZWdyZWVzKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZWdyZWVzKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZGVncmVlcyhmbG9hdDJ4MyB4KSB7
CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBk
ZWdyZWVzKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZGVncmVlcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZWdyZWVzKHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZWdyZWVzKGZsb2F0M3gyIHgp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gz
IGRlZ3JlZXMoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgZGVncmVlcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gZGVncmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZWdyZWVzKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZWdyZWVzKGZsb2F0NHgy
IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZWdyZWVzKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRlZ3JlZXMo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGRlZ3JlZXMoZmxvYXQ0
eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVz
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZWdyZWVz
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZWdyZWVz
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZGVncmVlcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZWdyZWVz
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZGVncmVlcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZWdyZWVz
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmFkaWFucyhmbG9hdDIg
eCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFucyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgcmFkaWFucyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gcmFkaWFucyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJhZGlhbnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCByYWRpYW5zKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSByYWRpYW5zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gcmFkaWFucyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByYWRpYW5zKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByYWRpYW5zKGZsb2F0MngyIHgpIHsKKyAg
ICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgcmFkaWFucyhmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSByYWRpYW5zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByYWRp
YW5zKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gcmFkaWFucyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiByYWRpYW5zKGZsb2F0M3gyIHgpIHsK
KyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHJh
ZGlhbnMoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzeDQgcmFkaWFucyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IHJhZGlhbnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gcmFkaWFucyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiByYWRpYW5zKGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByYWRpYW5zKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyByYWRpYW5zKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSByYWRpYW5zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJhZGlhbnMoeFsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHJhZGlhbnMoZmxvYXQ0eDQg
eCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJhZGlhbnMoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gcmFkaWFucyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJhZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gcmFkaWFucyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSByYWRpYW5zKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmNwKGZsb2F0MiB4KSB7Cisg
ICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmNwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcmNwKGZsb2F0
MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJjcCh4WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHJjcChmbG9hdDQgeCkgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmNwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJjcCh4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSByY3AoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gcmNwKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByY3AoZmxvYXQyeDIgeCkgewor
ICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngzIHJjcChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBy
Y3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4NCByY3AoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSByY3AoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByY3AoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiByY3AoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDMgcmNwKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNw
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3Ao
eFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHJjcChmbG9hdDN4NCB4
KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
cmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBy
Y3AoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmNwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MiByY3AoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyByY3AoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgcmNwKGZsb2F0NHg0IHgpIHsK
KyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3Ao
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSByY3AoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmNwKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJjcCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSByY3AoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmNwKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcnNxcnQoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJz
cXJ0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcnNxcnQoZmxvYXQzIHgp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgcnNxcnQoZmxvYXQ0IHgpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IHJzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IHJzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByc3FydChm
bG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJz
cXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhb
MV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyByc3FydChmbG9hdDJ4MyB4
KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJz
cXJ0KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByc3FydChmbG9h
dDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiByc3FydChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MyByc3FydChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCByc3FydChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MiByc3FydChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyByc3FydChmbG9hdDR4MyB4KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJz
cXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCByc3FydChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJz
cXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJlc3VsdFsz
XVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9
IHJzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgc2F0dXJhdGUo
ZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRl
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgc2F0dXJhdGUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgc2F0dXJhdGUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJlc3VsdFszXSA9
IHNhdHVyYXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBzYXR1cmF0
ZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBz
YXR1cmF0ZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzYXR1cmF0ZShmbG9hdDJ4NCB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNh
dHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MiBzYXR1cmF0ZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRl
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBzYXR1cmF0ZShmbG9h
dDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVy
YXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNh
dHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCBzYXR1cmF0ZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVy
YXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNh
dHVyYXRlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzYXR1cmF0
ZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsz
XVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzYXR1cmF0ZShmbG9hdDR4
MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRl
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVy
YXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNh
dHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4NCBzYXR1cmF0ZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVy
YXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNh
dHVyYXRlKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHNhdHVyYXRlKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2NvYXJzZShmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgZGR4X2NvYXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBkZHhfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9j
b2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1
bHRbM10gPSBkZHhfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MiBkZHhfY29hcnNlKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgZGR4X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhf
Y29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBkZHhfY29hcnNlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2Uo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBkZHhfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBkZHhfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRkeF9j
b2Fyc2UoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2Uo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2NvYXJz
ZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR4X2NvYXJzZShm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeF9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJz
ZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
ZGR4X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHhfY29h
cnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhfY29hcnNl
KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29h
cnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBk
ZHhfY29hcnNlKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29h
cnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9j
b2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0
IGRkeF9jb2Fyc2UoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9j
b2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4
X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gZGR4X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHhfY29hcnNl
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gZGR4X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBk
ZHhfY29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2Zp
bmUoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeF9m
aW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgZGR4X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9m
aW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgZGR4X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9m
aW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGRkeF9maW5lKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHhf
ZmluZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MyBkZHhfZmluZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5l
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHhfZmluZShmbG9hdDJ4NCB4KSB7CisgICAg
ZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHhfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5l
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9m
aW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHhfZmluZShm
bG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4NCBkZHhfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRk
eF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhf
ZmluZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5l
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHhfZmluZShmbG9h
dDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9m
aW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBkZHhfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRk
eF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeF9maW5lKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5X2NvYXJzZShmbG9hdDIgeCkg
eworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgZGR5X2NvYXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBkZHlfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBkZHlfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBkZHlfY29hcnNlKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDMgZGR5X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4NCBkZHlfY29hcnNlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fy
c2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBkZHlfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fy
c2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRk
eV9jb2Fyc2UoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fy
c2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2Nv
YXJzZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR5X2NvYXJz
ZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGRkeV9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2Nv
YXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR5X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlf
Y29hcnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHlfY29h
cnNlKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlf
Y29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBkZHlfY29hcnNlKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2Uo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRk
eV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGRkeV9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NHg0IGRkeV9jb2Fyc2UoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJz
ZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeV9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gZGR5X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29h
cnNlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBkZHlfY29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5
X2ZpbmUoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRk
eV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgZGR5X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgZGR5X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGRkeV9maW5lKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBk
ZHlfZmluZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MyBkZHlfZmluZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9m
aW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHlfZmluZShmbG9hdDJ4NCB4KSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHlfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9m
aW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eV9maW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHlfZmlu
ZShmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4NCBkZHlfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9m
aW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBk
ZHlfZmluZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5l
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9m
aW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHlfZmluZShm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4NCBkZHlfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9m
aW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeV9maW5lKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZndpZHRoKGZsb2F0MiB4KSB7
CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
ZndpZHRoKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBm
d2lkdGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZ3aWR0aCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGZ3aWR0aChm
bG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZndpZHRoKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZ3aWR0aCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmd2lk
dGgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZndpZHRoKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBmd2lkdGgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngzIGZ3aWR0aChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBm
d2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lk
dGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBmd2lkdGgoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZndpZHRoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBm
d2lkdGgoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDMgZndpZHRoKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3
aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3g0IGZ3aWR0aChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZ3aWR0aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBmd2lkdGgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBm
d2lkdGgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZndpZHRoKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBmd2lkdGgoZmxvYXQ0eDIgeCkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0
aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBmd2lkdGgoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBm
d2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGZ3aWR0aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0eDQgZndpZHRoKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gZndpZHRoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmd2lkdGgoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZndpZHRoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZ3aWR0aCh4WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBmd2lkdGgoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
ZndpZHRoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK25hdGl2ZSBmbG9hdCBw
b3coZmxvYXQsIGZsb2F0KTsKK2hhbGYgcG93KGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJu
IGhhbGYocG93KGZsb2F0KHgpLCBmbG9hdCh5KSkpOworfQoraGFsZiBzdGVwKGhhbGYgeSwgaGFs
ZiB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEgOiAwOworfQoraGFsZiBsZGV4cChoYWxmIHgs
IGhhbGYgZSkgeworICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQoraGFsZiBmbW9kKGhhbGYg
eCwgaGFsZiB5KSB7CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGhhbGYgbXVs
dGlwbGUgPSBoYWxmKHdob2xlKSAqIHk7CisgICAgcmV0dXJuIHggLSBtdWx0aXBsZTsKK30KK2hh
bGYyIHBvdyhoYWxmMiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHBvdyhoYWxmMyB4LCBoYWxmMyB5KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gcG93KHhbMl0sIHlb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBwb3coaGFsZjQgeCwgaGFsZjQgeSkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IHBvdyh4WzJd
LCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBwb3coeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyeDIgcG93KGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHBvdyhoYWxmMngzIHgs
IGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBv
dyh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBw
b3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHBvdyhoYWxmMng0IHgsIGhh
bGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHBvdyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3co
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBwb3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzeDIgcG93KGhhbGYzeDIgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgcG93KGhhbGYzeDMgeCwgaGFsZjN4MyB5KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgcG93KGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBwb3coeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcG93KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNd
LCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBwb3coeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gcG93KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHBvdyh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBwb3coeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgcG93KGhhbGY0eDIg
eCwgaGFsZjR4MiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHBvdyh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjR4MyBwb3coaGFsZjR4MyB4LCBoYWxmNHgzIHkpIHsKKyAgICBoYWxmNHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBv
dyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBw
b3coeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcG93KHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHBvdyh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBwb3coeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
cG93KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5
WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBwb3coaGFsZjR4NCB4LCBo
YWxmNHg0IHkpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3co
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBwb3coeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gcG93KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHBv
dyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJl
c3VsdFsyXVszXSA9IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBw
b3coeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcG93KHhbM11bMV0sIHlb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBwb3coeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIHN0ZXAoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsx
XSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHN0ZXAoaGFsZjMgeCwgaGFs
ZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
c3RlcCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc3RlcChoYWxm
NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHN0ZXAo
eFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gc3RlcCh4WzFdLCB5WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBzdGVwKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHN0ZXAoeFszXSwgeVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc3RlcChoYWxmMngyIHgsIGhhbGYy
eDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDMgc3RlcChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVw
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IHN0ZXAoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
c3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsx
XVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc3RlcChoYWxm
M3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVw
KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHN0ZXAo
aGFsZjN4MyB4LCBoYWxmM3gzIHkpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4NCBzdGVwKGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBd
WzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVw
KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHN0ZXAoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
c3RlcChoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFsz
XVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBzdGVwKGhhbGY0eDMgeCwgaGFsZjR4
MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVw
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBd
LCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHN0ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgc3RlcChoYWxmNHg0IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHN0ZXAoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3Rl
cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBzdGVwKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBzdGVwKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IHN0ZXAoeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyIGxkZXhwKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbGRleHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwg
eVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxkZXhwKGhhbGYzIHgsIGhhbGYz
IHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRleHAoeFswXSwgeVsw
XSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
bGRleHAoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxkZXhwKGhh
bGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRl
eHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gbGRleHAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbGRleHAoeFsz
XSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbGRleHAoaGFsZjJ4MiB4
LCBoYWxmMngyIHkpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBs
ZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4MyBsZGV4cChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxk
ZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxkZXhwKGhhbGYyeDQgeCwgaGFsZjJ4NCB5
KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRl
eHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDIgbGRleHAoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxm
M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4
cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBsZGV4cChoYWxmM3gzIHgsIGhhbGYzeDMgeSkg
eworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxkZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhw
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGxkZXhwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IGxkZXhwKGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRleHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsx
XVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGRleHAoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGRleHAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGRleHAoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
bGRleHAoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
bGRleHAoaGFsZjR4MiB4LCBoYWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFd
WzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBs
ZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFd
LCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBsZGV4cChoYWxmNHgz
IHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGxkZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxk
ZXhwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGxkZXhwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGxkZXhwKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxkZXhw
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxkZXhwKHhbM11bMl0sIHlb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGxkZXhwKGhhbGY0eDQgeCwg
aGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRl
eHAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbGRleHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbGRleHAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gbGRleHAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbGRleHAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGRleHAoeFsyXVszXSwgeVsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gbGRleHAoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gbGRleHAoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
bGRleHAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbGRleHAoeFszXVsz
XSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGZtb2QoaGFsZjIgeCwg
aGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIGZtb2QoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZt
b2QoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gZm1vZCh4WzJdLCB5WzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZm1vZChoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtb2QoeFswXSwgeVswXSk7CisgICAgcmVzdWx0
WzFdID0gZm1vZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbW9kKHhbMl0sIHlbMl0p
OworICAgIHJlc3VsdFszXSA9IGZtb2QoeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDIgZm1vZChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
bW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZm1vZChoYWxmMngzIHgs
IGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZt
b2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZm1vZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGZtb2QoaGFsZjJ4
NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBmbW9kKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1vZCh4
WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtb2QoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZm1vZChoYWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAg
IGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZt
b2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGZtb2QoaGFsZjN4MyB4LCBoYWxmM3gzIHkpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZtb2QoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4
WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmbW9kKGhh
bGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1vZCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZt
b2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmbW9kKHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtb2QoeFsyXVszXSwgeVsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZm1vZChoYWxmNHgyIHgsIGhhbGY0eDIg
eSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjR4MyBmbW9kKGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZt
b2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1b
MV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZm1vZCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBmbW9kKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZtb2Qo
eFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZm1vZCho
YWxmNHg0IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZtb2QoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4WzJd
WzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmbW9kKHhbMl1bM10sIHlbMl1bM10p
OworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbW9k
KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZtb2QoeFszXVszXSwgeVsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZmxvYXQgc3RlcChmbG9hdCB5LCBmbG9h
dCB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEgOiAwOworfQorZmxvYXQgbGRleHAoZmxvYXQg
eCwgZmxvYXQgZSkgeworICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQorZmxvYXQgZm1vZChm
bG9hdCB4LCBmbG9hdCB5KSB7CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGZs
b2F0IG11bHRpcGxlID0gZmxvYXQod2hvbGUpICogeTsKKyAgICByZXR1cm4geCAtIG11bHRpcGxl
OworfQorZmxvYXQyIHBvdyhmbG9hdDIgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3co
eFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBwb3coZmxvYXQzIHgs
IGZsb2F0MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsy
XSA9IHBvdyh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHBvdyhm
bG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gcG93KHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHBvdyh4WzNdLCB5
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgcG93KGZsb2F0MngyIHgsIGZs
b2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MyBwb3coZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBv
dyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDQgcG93KGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBw
b3coeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10sIHlb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
cG93KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNdLCB5
WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgcG93KGZsb2F0M3gyIHgs
IGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHBvdyhmbG9hdDN4MyB4
LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHBvdyh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gcG93KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
NCBwb3coZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBwb3coeFswXVszXSwgeVswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcG93KHhbMV1bM10sIHlbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgcG93KGZsb2F0NHgyIHgsIGZsb2F0NHgy
IHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJd
WzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHBvdyh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgcG93KGZsb2F0NHgzIHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFsw
XVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhb
Ml1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHBvdyh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBwb3coeFszXVsyXSwgeVszXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHBvdyhmbG9hdDR4NCB4LCBmbG9h
dDR4NCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHBvdyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3co
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBwb3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93
KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gcG93KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHBv
dyh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBwb3coeFszXVsxXSwgeVsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcG93KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IHBvdyh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyIHN0ZXAoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAo
eFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBzdGVwKGZsb2F0MyB4
LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3RlcCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHN0ZXAoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBz
dGVwKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gc3RlcCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0p
OworICAgIHJlc3VsdFsyXSA9IHN0ZXAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gc3Rl
cCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgc3RlcChmbG9h
dDJ4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgewor
ICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHN0ZXAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gc3RlcCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDIgc3RlcChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MyBzdGVwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3RlcCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHN0ZXAoZmxv
YXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3RlcCh4WzJdWzNdLCB5WzJdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgc3RlcChmbG9hdDR4MiB4LCBmbG9h
dDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0s
IHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgc3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5KSB7CisgICAgZmxv
YXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzdGVwKHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBzdGVwKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4NCBzdGVwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBdWzNdLCB5WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVwKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHN0ZXAoeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBdLCB5WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHN0ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc3Rl
cCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxkZXhw
KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbGRleHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBsZGV4cChmbG9hdDMgeCwgZmxvYXQzIHkp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxkZXhwKHhbMF0sIHlbMF0p
OworICAgIHJlc3VsdFsxXSA9IGxkZXhwKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IGxk
ZXhwKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbGRleHAoZmxv
YXQ0IHgsIGZsb2F0NCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBs
ZGV4cCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZGV4cCh4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBsZGV4cCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZGV4cCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGRleHAoZmxvYXQy
eDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbGRleHAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkg
eworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4
cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbGRleHAoZmxvYXQyeDQg
eCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBsZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBs
ZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbGRleHAoZmxvYXQzeDIgeCwgZmxvYXQz
eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbGRleHAoZmxv
YXQzeDMgeCwgZmxvYXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4
cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbGRleHAoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkg
eworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBsZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbGRleHAoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4
cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgbGRleHAoZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBs
ZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4
cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBsZGV4cCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDQgbGRleHAoZmxvYXQ0eDQgeCwgZmxvYXQ0eDQgeSkgeworICAgIGZs
b2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBs
ZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4
cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZGV4cCh4WzNdWzJdLCB5WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsZGV4cCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGZtb2QoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MyBmbW9kKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZm1vZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbW9kKHhbMV0sIHlb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBmbW9kKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZm1vZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBm
bW9kKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAg
cmVzdWx0WzNdID0gZm1vZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyeDIgZm1vZChmbG9hdDJ4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9k
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGZtb2QoZmxvYXQyeDMgeCwg
ZmxvYXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
bW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgZm1vZChmbG9h
dDJ4NCB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgZm1vZChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5
KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBmbW9kKGZsb2F0M3gzIHgsIGZs
b2F0M3gzIHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1v
ZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBmbW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3g0IGZtb2QoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1v
ZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbW9kKHhbMF1bM10sIHlb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZm1vZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBmbW9kKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtb2QoeFsxXVsz
XSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1vZCh4
WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1vZChm
bG9hdDR4MiB4LCBmbG9hdDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1v
ZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgZm1vZChmbG9hdDR4MyB4LCBmbG9hdDR4
MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1v
ZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBmbW9kKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBmbW9kKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBm
bG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1v
ZCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBmbW9kKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZtb2QoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1vZCh4
WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbW9kKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZtb2QoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gZm1vZCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitoYWxmIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZiB4KSB7Cisg
ICAgaGFsZiB0ID0gY2xhbXAoKHggLSBlZGdlMCkgLyAoZWRnZTEgLSBlZGdlMCksIDAsIDEpOwor
ICAgIHJldHVybiB0ICogdCAqICgzIC0gMiAqIHQpOworfQoraGFsZiBsZXJwKGhhbGYgeCwgaGFs
ZiB5LCBoYWxmIHMpIHsKKyAgICByZXR1cm4geCAqICgxIC0gcykgKyB5ICogczsKK30KK2hhbGYg
Zm1hKGhhbGYgeCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQor
aGFsZiBtYWQoaGFsZiB4LCBoYWxmIHksIGhhbGYgeikgeworICAgIHJldHVybiB4ICogeSArIHo7
Cit9CitoYWxmMiBzbW9vdGhzdGVwKGhhbGYyIHgsIGhhbGYyIHksIGhhbGYyIHopIHsKKyAgICBo
YWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBzbW9vdGhzdGVwKGhhbGYzIHgsIGhhbGYzIHksIGhhbGYz
IHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBd
LCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJlc3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHNtb290aHN0ZXAoaGFsZjQgeCwgaGFsZjQgeSwgaGFs
ZjQgeikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhb
MF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBzbW9vdGhzdGVwKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIHNtb290aHN0ZXAoaGFsZjJ4MiB4LCBoYWxmMngyIHksIGhhbGYy
eDIgeikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDMgc21vb3Roc3RlcChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhb
MF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAo
eFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhz
dGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290
aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDQgc21vb3Roc3RlcChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBd
LCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1b
MV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFsw
XVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc21vb3Roc3RlcCh4
WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVw
KHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0
ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc21vb3Ro
c3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzbW9v
dGhzdGVwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNtb290aHN0ZXAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhb
MV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAo
eFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3Rl
cCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhz
dGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmM3gzIHNtb290aHN0ZXAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhhbGYzeDMgeikgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwg
eVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1b
Ml0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4
WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVw
KHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290aHN0
ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21vb3Ro
c3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzbW9v
dGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3g0IHNtb290aHN0ZXAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhb
MF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNtb290aHN0ZXAo
eFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhz
dGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290
aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc21v
b3Roc3RlcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
bW9vdGhzdGVwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNtb290aHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc21vb3Roc3RlcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBzbW9vdGhzdGVwKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHgyIHNtb290aHN0ZXAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0
eDIgeikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IHNtb290aHN0ZXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc21vb3Roc3RlcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBzbW9vdGhzdGVwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxm
NHgzIHopIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhz
dGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNtb290
aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21v
b3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBz
bW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBzbW9vdGhzdGVwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHNtb290aHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gc21vb3Roc3RlcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBzbW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzbW9vdGhzdGVwKGhhbGY0eDQgeCwgaGFsZjR4
NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBzbW9vdGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJd
WzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzbW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwg
elszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJd
LCB6WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzbW9vdGhzdGVwKHhbM11bM10sIHlbM11b
M10sIHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsZXJwKGhhbGYyIHgs
IGhhbGYyIHksIGhhbGYyIHopIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bGVycCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBsZXJwKGhhbGYzIHgsIGhhbGYz
IHksIGhhbGYzIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4
WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0p
OworICAgIHJlc3VsdFsyXSA9IGxlcnAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IGxlcnAoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZjQgeikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsZXJwKHhbMF0sIHlbMF0sIHpbMF0pOworICAg
IHJlc3VsdFsxXSA9IGxlcnAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbGVy
cCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZXJwKHhbM10sIHlbM10sIHpb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxlcnAoaGFsZjJ4MiB4LCBoYWxm
MngyIHksIGhhbGYyeDIgeikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJw
KHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMg
bGVycChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgbGVycChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7CisgICAg
aGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBd
LCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBsZXJwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxlcnAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGxlcnAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhh
bGYzeDMgeikgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAo
eFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0s
IHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsx
XVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGxlcnAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhh
bGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAo
eFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0s
IHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFswXVszXSwgeVsw
XVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBd
LCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBsZXJwKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIGxlcnAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0eDIgeikgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gbGVycCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBsZXJwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxmNHgzIHop
IHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBsZXJwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGxlcnAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
bGVycCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4NCBsZXJwKGhhbGY0eDQgeCwgaGFsZjR4NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxm
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGxlcnAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJw
KHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAoeFsy
XVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJdWzNd
LCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZXJwKHhbM11bMF0sIHlb
M11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxlcnAoeFszXVsxXSwgeVszXVsx
XSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbGVycCh4WzNdWzJdLCB5WzNdWzJdLCB6
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsZXJwKHhbM11bM10sIHlbM11bM10sIHpbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmbWEoaGFsZjIgeCwgaGFsZjIgeSwg
aGFsZjIgeikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwg
eVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmbWEoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMgeikg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwgeVswXSwgelsw
XSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZtYSh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
Zm1hKGhhbGY0IHgsIGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gZm1hKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtYSh4
WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbWEoeFsyXSwgeVsyXSwgelsyXSk7
CisgICAgcmVzdWx0WzNdID0gZm1hKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIGZtYShoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7Cisg
ICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1b
MF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGZtYShoYWxmMngzIHgsIGhhbGYyeDMgeSwg
aGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1h
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwg
eVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZm1hKGhhbGYyeDQgeCwgaGFsZjJ4
NCB5LCBoYWxmMng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1h
KHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbWEoeFswXVszXSwg
eVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1hKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZtYShoYWxmM3gyIHgsIGhhbGYzeDIgeSwg
aGFsZjN4MiB6KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1h
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwg
eVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1b
MV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZm1hKGhhbGYzeDMgeCwgaGFsZjN4
MyB5LCBoYWxmM3gzIHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1h
KHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwg
eVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1b
MV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmbWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1hKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZtYSh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmbWEoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYz
eDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwg
eVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1b
Ml0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNdLCB6
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBm
bWEoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1hKHhb
Ml1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgy
IGZtYShoYWxmNHgyIHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBm
bWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhb
M11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFd
LCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBmbWEo
aGFsZjR4MyB4LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhb
MV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBd
LCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsy
XVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlbMl1bMl0s
IHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNdWzBdLCB5WzNdWzBdLCB6WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGZtYShoYWxmNHg0IHgsIGhhbGY0eDQgeSwgaGFs
ZjR4NCB6KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhb
MF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVsw
XVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1hKHhbMF1bM10sIHlbMF1bM10s
IHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZtYSh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBmbWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZm1hKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZtYSh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmbWEo
eFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11b
MF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbWEoeFszXVsyXSwgeVszXVsy
XSwgelszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZm1hKHhbM11bM10sIHlbM11bM10sIHpb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYWQoaGFsZjIgeCwgaGFsZjIg
eSwgaGFsZjIgeikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFsw
XSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtYWQoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMg
eikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFswXSwgeVswXSwg
elswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IG1hZCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgbWFkKGhhbGY0IHgsIGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gbWFkKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IG1h
ZCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYWQoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmVzdWx0WzNdID0gbWFkKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIG1hZChoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7
CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlb
MF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG1hZChoYWxmMngzIHgsIGhhbGYyeDMg
eSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsy
XSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbWFkKGhhbGYyeDQgeCwgaGFs
ZjJ4NCB5LCBoYWxmMng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYWQoeFswXVsz
XSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWFkKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1hZChoYWxmM3gyIHgsIGhhbGYzeDIg
eSwgaGFsZjN4MiB6KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbWFkKGhhbGYzeDMgeCwgaGFs
ZjN4MyB5LCBoYWxmM3gzIHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJd
LCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWFkKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IG1hZCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBtYWQoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhh
bGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4
WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsx
XSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5WzBdWzNd
LCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYWQoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWFk
KHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIG1hZChoYWxmNHgyIHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFk
KHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNd
WzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBt
YWQoaGFsZjR4MyB4LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFk
KHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwg
eVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1bMl0sIHlbMl1b
Ml0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1hZCh4WzNdWzBdLCB5WzNdWzBdLCB6
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYWQoeFszXVsxXSwgeVszXVsxXSwgelszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWFkKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG1hZChoYWxmNHg0IHgsIGhhbGY0eDQgeSwg
aGFsZjR4NCB6KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFk
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwg
eVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1b
M10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IG1hZCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbWFkKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IG1hZCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YWQoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhb
M11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFd
LCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVsz
XVsyXSwgelszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWFkKHhbM11bM10sIHlbM11bM10s
IHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IHNtb290aHN0ZXAoZmxv
YXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdCB4KSB7CisgICAgZmxvYXQgdCA9IGNsYW1wKCh4
IC0gZWRnZTApIC8gKGVkZ2UxIC0gZWRnZTApLCAwLCAxKTsKKyAgICByZXR1cm4gdCAqIHQgKiAo
MyAtIDIgKiB0KTsKK30KK2Zsb2F0IGxlcnAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcykgewor
ICAgIHJldHVybiB4ICogKDEgLSBzKSArIHkgKiBzOworfQorZmxvYXQgZm1hKGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxvYXQgbWFkKGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxv
YXQyIHNtb290aHN0ZXAoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgc21vb3Roc3RlcChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0
MyB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhb
MF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHNtb290aHN0ZXAoZmxvYXQ0IHgsIGZsb2F0NCB5
LCBmbG9hdDQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Ro
c3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0s
IHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmVzdWx0WzNdID0gc21vb3Roc3RlcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgc21vb3Roc3RlcChmbG9hdDJ4MiB4LCBmbG9hdDJ4
MiB5LCBmbG9hdDJ4MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHNtb290aHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMg
eSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgc21vb3Roc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5LCBmbG9hdDJ4NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHNtb290aHN0ZXAoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gc21vb3Roc3RlcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgc21vb3Roc3RlcChmbG9hdDN4MiB4LCBm
bG9hdDN4MiB5LCBmbG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBzbW9vdGhzdGVwKGZsb2F0M3gzIHgs
IGZsb2F0M3gzIHksIGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwg
elsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHNtb290aHN0ZXAoZmxv
YXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzbW9vdGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwg
elsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1b
Ml0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsx
XVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5
WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0s
IHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsy
XSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
c21vb3Roc3RlcChmbG9hdDR4MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxv
YXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5
WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0s
IHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNtb290aHN0ZXAo
eFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc21vb3Roc3Rl
cCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgc21vb3Roc3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7Cisg
ICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhb
MF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAo
eFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3Rl
cCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhz
dGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290
aHN0ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21v
b3Roc3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBz
bW9vdGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHNtb290aHN0ZXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gc21vb3Roc3RlcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBzbW9vdGhzdGVwKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBzbW9vdGhzdGVwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZs
b2F0NHg0IHopIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21v
b3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
bW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc21vb3Roc3RlcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBzbW9vdGhzdGVwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IHNtb290aHN0ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gc21vb3Roc3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzbW9vdGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHNtb290aHN0ZXAoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc21vb3Roc3RlcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBzbW9vdGhzdGVwKHhbM11bMV0sIHlbM11bMV0sIHpbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNtb290aHN0ZXAoeFszXVsyXSwgeVszXVsyXSwgelsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc21vb3Roc3RlcCh4WzNdWzNdLCB5WzNdWzNdLCB6
WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxlcnAoZmxvYXQyIHgsIGZs
b2F0MiB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bGVycCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbGVycChmbG9hdDMgeCwgZmxv
YXQzIHksIGZsb2F0MyB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBs
ZXJwKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGxlcnAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gbGVycCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IGxlcnAoZmxvYXQ0IHgsIGZsb2F0NCB5LCBmbG9hdDQgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGxlcnAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0WzNdID0gbGVycCh4WzNd
LCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGVycChmbG9h
dDJ4MiB4LCBmbG9hdDJ4MiB5LCBmbG9hdDJ4MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MngzIGxlcnAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikg
eworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbGVycChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5LCBmbG9hdDJ4NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJw
KHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFsw
XVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBd
LCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsy
XSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6
WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbGVycChmbG9hdDN4MiB4
LCBmbG9hdDN4MiB5LCBmbG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVy
cCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MyBsZXJwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHksIGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxl
cnAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3g0IGxlcnAoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZs
b2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGxlcnAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBs
ZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAo
eFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
bGVycChmbG9hdDR4MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxvYXQ0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
bGVycCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0eDMgbGVycChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVsw
XSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbGVy
cCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZXJwKHhb
M11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
NCBsZXJwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZsb2F0NHg0IHopIHsKKyAgICBmbG9hdDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBsZXJwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGxl
cnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVycCh4
WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxlcnAoeFsyXVszXSwg
eVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbGVycCh4WzNdWzBdLCB5WzNd
WzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZXJwKHhbM11bMV0sIHlbM11bMV0s
IHpbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxlcnAoeFszXVsyXSwgeVszXVsyXSwgelsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbGVycCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGZtYShmbG9hdDIgeCwgZmxvYXQyIHks
IGZsb2F0MiB6KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFsw
XSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZm1hKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxv
YXQzIHopIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5
WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbWEoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmVzdWx0WzJdID0gZm1hKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgZm1hKGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBmbWEoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gZm1hKHhbMl0s
IHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGZtYSh4WzNdLCB5WzNdLCB6WzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgZm1hKGZsb2F0MngyIHgsIGZsb2F0MngyIHks
IGZsb2F0MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Zm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbWEoZmxv
YXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Zm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4
WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDQgZm1hKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBmbG9hdDJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZm1hKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
Zm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtYSh4
WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDIgZm1hKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIGZtYShmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBd
WzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwg
elswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Zm1hKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4NCBmbWEoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZs
b2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBmbWEoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
Zm1hKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlb
Ml1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtYSh4WzJdWzNdLCB5WzJdWzNd
LCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1hKGZsb2F0NHgy
IHgsIGZsb2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Zm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlb
M11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFd
LCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgZm1hKGZsb2F0NHgz
IHgsIGZsb2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Zm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4
WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsy
XSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlb
Ml1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFd
LCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbWEoeFsyXVsyXSwgeVsyXVsyXSwgelsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBmbWEoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGZtYShmbG9hdDR4NCB4LCBmbG9hdDR4NCB5LCBmbG9h
dDR4NCB6KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4
WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsx
XSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNd
LCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmbWEoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1h
KHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNd
WzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwg
eVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11b
Ml0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZtYSh4WzNdWzNdLCB5WzNdWzNdLCB6
WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG1hZChmbG9hdDIgeCwgZmxv
YXQyIHksIGZsb2F0MiB6KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBt
YWQoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbWFkKGZsb2F0MyB4LCBmbG9hdDMg
eSwgZmxvYXQzIHopIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1hZCh4
WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7
CisgICAgcmVzdWx0WzJdID0gbWFkKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgbWFkKGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1hZCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbWFk
KHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IG1hZCh4WzNdLCB5WzNdLCB6WzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbWFkKGZsb2F0MngyIHgsIGZsb2F0
MngyIHksIGZsb2F0MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQo
eFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1b
MV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBt
YWQoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDQgbWFkKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IG1hZCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDIgbWFkKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBm
bG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIG1hZChmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6
KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBd
LCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0s
IHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbWFkKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4NCBtYWQoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgewor
ICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0s
IHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYWQoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbWFkKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IG1hZCh4WzJdWzNdLCB5
WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbWFkKGZs
b2F0NHgyIHgsIGZsb2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11b
MF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbWFkKGZs
b2F0NHgzIHgsIGZsb2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQo
eFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWFkKHhbMl1b
MF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1hZCh4WzJdWzFdLCB5
WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYWQoeFsyXVsyXSwgeVsyXVsy
XSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlbM11bMF0sIHpb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IG1hZChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5
LCBmbG9hdDR4NCB6KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQo
eFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1b
Ml0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5
WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVsw
XSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBtYWQoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gbWFkKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IG1h
ZCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYWQoeFsz
XVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWFkKHhbM11bMl0s
IHlbM11bMl0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IG1hZCh4WzNdWzNdLCB5WzNd
WzNdLCB6WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc25v
cm1hbChoYWxmKTsKK25hdGl2ZSBib29sIGlzbm9ybWFsKGZsb2F0KTsKK2Jvb2wyIGlzbm9ybWFs
KGhhbGYyIHgpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2wzIGlzbm9ybWFsKGhhbGYzIHgpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IGlzbm9ybWFsKGhhbGY0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNub3Jt
YWwoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbDIgaXNub3JtYWwoZmxvYXQy
IHgpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIGlzbm9ybWFsKGZsb2F0MyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGlzbm9ybWFsKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbm9ybWFsKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGlzbm9ybWFsKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBpc25vcm1hbChmbG9hdDQgeCkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBpc25vcm1hbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc25vcm1hbCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBpc25vcm1hbCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc25vcm1hbCh4
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9h
dCk7Citib29sIGlzZmluaXRlKGhhbGYgeCkgeworICAgIHJldHVybiBpc2Zpbml0ZShmbG9hdCh4
KSk7Cit9CituYXRpdmUgYm9vbCBpc2luZihmbG9hdCk7Citib29sIGlzaW5mKGhhbGYgeCkgewor
ICAgIHJldHVybiBpc2luZihmbG9hdCh4KSk7Cit9CituYXRpdmUgYm9vbCBpc25hbihmbG9hdCk7
Citib29sIGlzbmFuKGhhbGYgeCkgeworICAgIHJldHVybiBpc25hbihmbG9hdCh4KSk7Cit9Citi
b29sMiBpc2Zpbml0ZShoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2Zpbml0ZShoYWxmMyB4KSB7CisgICAgYm9vbDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzZmluaXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBpc2Zpbml0ZShoYWxmNCB4KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlz
ZmluaXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGlzZmluaXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBpc2lu
ZihoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBpc2luZihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzaW5mKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGlzaW5mKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc2luZiho
YWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzaW5mKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IGlzaW5mKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMiBpc25hbihoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBpc25hbihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGlzbmFuKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBpc25hbihoYWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGlzbmFuKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGlzbmFuKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2Jvb2wyIGlzZmluaXRlKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlz
ZmluaXRlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2Zpbml0ZShmbG9h
dDMgeCkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc2Zpbml0ZSh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBpc2Zpbml0ZSh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc2Zp
bml0ZSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgaXNmaW5pdGUoZmxvYXQ0
IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNmaW5pdGUoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gaXNmaW5pdGUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNmaW5p
dGUoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNmaW5pdGUoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wyIGlzaW5mKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGlzaW5mKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2luZihmbG9hdDMgeCkgeworICAgIGJvb2wz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc2luZih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBp
c2luZih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc2luZih4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgaXNpbmYoZmxvYXQ0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gaXNpbmYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNpbmYoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gaXNpbmYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNpbmYoeFszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIGlzbmFuKGZsb2F0MiB4KSB7CisgICAgYm9v
bDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzbmFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc25hbihmbG9hdDMg
eCkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc25hbih4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBpc25hbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc25hbih4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgaXNuYW4oZmxvYXQ0IHgpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNuYW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0g
aXNuYW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNuYW4oeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gaXNuYW4oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBpc29yZGVyZWQo
aGFsZiB4LCBoYWxmIHkpIHsKKyAgICByZXR1cm4gKHggPT0geCkgJiYgKHkgPT0geSk7Cit9Citi
b29sIGlzdW5vcmRlcmVkKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8
IGlzbmFuKHkpOworfQorYm9vbDIgaXNvcmRlcmVkKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBi
b29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IGlzb3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgaXNvcmRlcmVkKGhhbGYzIHgsIGhhbGYzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzb3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc29yZGVyZWQoeFsyXSwg
eVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlzb3JkZXJlZChoYWxmNCB4LCBo
YWxmNCB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IGlzb3Jk
ZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1bm9yZGVy
ZWQoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4
WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgaXN1bm9yZGVyZWQoaGFs
ZjMgeCwgaGFsZjMgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vu
b3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgaXN1bm9yZGVyZWQoaGFsZjQgeCwgaGFsZjQgeSkgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc3Vub3JkZXJlZCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGlzb3JkZXJlZChmbG9h
dCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuICh4ID09IHgpICYmICh5ID09IHkpOworfQorYm9v
bCBpc3Vub3JkZXJlZChmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8
IGlzbmFuKHkpOworfQorYm9vbDIgaXNvcmRlcmVkKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAg
IGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc29yZGVyZWQoeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gaXNvcmRlcmVkKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sMyBpc29yZGVyZWQoZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgYm9vbDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNvcmRlcmVkKHhb
Ml0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc29yZGVyZWQoZmxvYXQ0
IHgsIGZsb2F0NCB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3Jk
ZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7
CisgICAgcmVzdWx0WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9
IGlzb3JkZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1
bm9yZGVyZWQoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGlzdW5vcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzdW5v
cmRlcmVkKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc3Vub3Jk
ZXJlZChmbG9hdDMgeCwgZmxvYXQzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gaXN1bm9yZGVyZWQoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gaXN1bm9yZGVy
ZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gaXN1bm9yZGVyZWQoeFsyXSwgeVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlzdW5vcmRlcmVkKGZsb2F0NCB4LCBmbG9h
dDQgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBp
c3Vub3JkZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsIGZsb2F0KTsKK2hhbGYgYXRhbjIoaGFsZiB4LCBoYWxmIHkpIHsK
KyAgICByZXR1cm4gaGFsZihhdGFuMihmbG9hdCh4KSwgZmxvYXQoeSkpKTsKK30KK2hhbGYyIGF0
YW4yKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gYXRhbjIoeFswXSwgeVswXTsKKyAgICByZXN1bHRbMV0gPSBhdGFuMih4WzFdLCB5WzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhdGFuMihoYWxmMyB4LCBoYWxmMyB5KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07CisgICAg
cmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBhdGFuMih4WzJd
LCB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBhdGFuMihoYWxmNCB4LCBoYWxm
NCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlb
MF07CisgICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBh
dGFuMih4WzJdLCB5WzJdOworICAgIHJlc3VsdFszXSA9IGF0YW4yKHhbM10sIHlbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgYXRhbjIoaGFsZjJ4MiB4LCBoYWxmMngyIHkpIHsK
KyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBhdGFuMihoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0YW4y
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGF0YW4yKGhhbGYyeDQgeCwgaGFsZjJ4NCB5KSB7CisgICAgaGFsZjJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIo
eFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgYXRhbjIoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhdGFuMih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4MyBhdGFuMihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGF0YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4yKHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGF0YW4yKGhhbGYz
eDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRh
bjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwg
eVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgYXRhbjIoaGFsZjR4MiB4
LCBoYWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
dGFuMih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFu
Mih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuMih4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuMih4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBhdGFuMihoYWxmNHgzIHgsIGhhbGY0eDMgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGF0YW4yKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4y
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGF0YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGF0YW4yKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGF0YW4yKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4yKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4yKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGF0YW4yKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
YXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsx
XSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRh
bjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwg
eVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXRhbjIoeFszXVszXSwgeVszXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBhdGFuMihmbG9hdDIgeCwgZmxvYXQyIHkpIHsK
KyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07Cisg
ICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzIGF0YW4yKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gYXRhbjIoeFswXSwgeVswXTsKKyAgICByZXN1bHRbMV0gPSBhdGFuMih4
WzFdLCB5WzFdOworICAgIHJlc3VsdFsyXSA9IGF0YW4yKHhbMl0sIHlbMl07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBhdGFuMihmbG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07CisgICAgcmVzdWx0
WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBhdGFuMih4WzJdLCB5WzJd
OworICAgIHJlc3VsdFszXSA9IGF0YW4yKHhbM10sIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngyIGF0YW4yKGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGF0YW4y
KGZsb2F0MngzIHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0Mng0IGF0YW4yKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
YXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gy
IGF0YW4yKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gzIGF0YW4yKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9h
dDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRh
bjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIo
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGF0YW4y
KGZsb2F0M3g0IHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRh
bjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwg
eVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIGF0YW4y
KGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXRh
bjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFszXVsxXSwg
eVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGF0YW4yKGZsb2F0NHgz
IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRh
bjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwg
eVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGF0YW4yKGZsb2F0NHg0
IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRh
bjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwg
eVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gYXRhbjIoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXRhbjIo
eFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBzaW5jb3Mo
aGFsZiB4LCB0aHJlYWQgaGFsZiogeSwgdGhyZWFkIGhhbGYqIHopIHsKKyAgICAqeSA9IHNpbih4
KTsKKyAgICAqeiA9IGNvcyh4KTsKK30KK3ZvaWQgc2luY29zKGhhbGYyIHgsIHRocmVhZCBoYWxm
MiogeSwgdGhyZWFkIGhhbGYyKiB6KSB7CisgICAgc2luY29zKHhbMF0sICYoKCp5KVswXSksICYo
KCp6KVswXSkpOworICAgIHNpbmNvcyh4WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0pKTsKK30K
K3ZvaWQgc2luY29zKGhhbGYzIHgsIHRocmVhZCBoYWxmMyogeSwgdGhyZWFkIGhhbGYzKiB6KSB7
CisgICAgc2luY29zKHhbMF0sICYoKCp5KVswXSksICYoKCp6KVswXSkpOworICAgIHNpbmNvcyh4
WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0pKTsKKyAgICBzaW5jb3MoeFsyXSwgJigoKnkpWzJd
KSwgJigoKnopWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNCB4LCB0aHJlYWQgaGFsZjQqIHks
IHRocmVhZCBoYWxmNCogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAmKCgqeilb
MF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7CisgICAgc2lu
Y29zKHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworICAgIHNpbmNvcyh4WzNdLCAmKCgq
eSlbM10pLCAmKCgqeilbM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYyeDIgeCwgdGhyZWFkIGhh
bGYyeDIqIHksIHRocmVhZCBoYWxmMngyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5
KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1b
MV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwg
JigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6
KVsxXVsxXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjJ4MyB4LCB0aHJlYWQgaGFsZjJ4MyogeSwg
dGhyZWFkIGhhbGYyeDMqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwg
JigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6
KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1b
Ml0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7
CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOworICAg
IHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKK30KK3ZvaWQg
c2luY29zKGhhbGYyeDQgeCwgdGhyZWFkIGhhbGYyeDQqIHksIHRocmVhZCBoYWxmMng0KiB6KSB7
CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAg
IHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5j
b3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2luY29zKHhb
MF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAgIHNpbmNvcyh4WzFdWzBd
LCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsxXSwgJigo
KnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYoKCp5KVsx
XVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNdLCAmKCgqeSlbMV1bM10p
LCAmKCgqeilbMV1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYzeDIgeCwgdGhyZWFkIGhhbGYz
eDIqIHksIHRocmVhZCBoYWxmM3gyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVsw
XVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0p
LCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigo
KnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsx
XVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0p
KTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7Cit9
Cit2b2lkIHNpbmNvcyhoYWxmM3gzIHgsIHRocmVhZCBoYWxmM3gzKiB5LCB0aHJlYWQgaGFsZjN4
MyogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0p
KTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7Cisg
ICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOworICAgIHNp
bmNvcyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3Mo
eFsxXVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1b
Ml0sICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAm
KCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkp
WzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsy
XSksICYoKCp6KVsyXVsyXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjN4NCB4LCB0aHJlYWQgaGFs
ZjN4NCogeSwgdGhyZWFkIGhhbGYzeDQqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkp
WzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsx
XSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAm
KCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFswXVszXSwgJigoKnkpWzBdWzNdKSwgJigoKnop
WzBdWzNdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVsw
XSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsK
KyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAg
c2luY29zKHhbMV1bM10sICYoKCp5KVsxXVszXSksICYoKCp6KVsxXVszXSkpOworICAgIHNpbmNv
cyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsy
XVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0s
ICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzNdLCAmKCgq
eSlbMl1bM10pLCAmKCgqeilbMl1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGY0eDIgeCwgdGhy
ZWFkIGhhbGY0eDIqIHksIHRocmVhZCBoYWxmNHgyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0s
ICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgq
eSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSks
ICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgq
eilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJd
WzFdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVswXSksICYoKCp6KVszXVswXSkp
OworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAmKCgqeilbM11bMV0pKTsKK30K
K3ZvaWQgc2luY29zKGhhbGY0eDMgeCwgdGhyZWFkIGhhbGY0eDMqIHksIHRocmVhZCBoYWxmNHgz
KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkp
OworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAg
ICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2lu
Y29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsy
XSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMl1bMF0sICYo
KCp5KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAmKCgqeSlb
Ml1bMV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkpWzJdWzJd
KSwgJigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVswXSksICYo
KCp6KVszXVswXSkpOworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAmKCgqeilb
M11bMV0pKTsKKyAgICBzaW5jb3MoeFszXVsyXSwgJigoKnkpWzNdWzJdKSwgJigoKnopWzNdWzJd
KSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNHg0IHgsIHRocmVhZCBoYWxmNHg0KiB5LCB0aHJlYWQg
aGFsZjR4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilb
MF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFd
KSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOwor
ICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAmKCgqeilbMF1bM10pKTsKKyAgICBz
aW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29z
KHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzFd
WzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVszXSwg
JigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7CisgICAgc2luY29zKHhbMl1bMF0sICYoKCp5
KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAmKCgqeSlbMl1b
MV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSwg
JigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbMl1bM10sICYoKCp5KVsyXVszXSksICYoKCp6
KVsyXVszXSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11b
MF0pKTsKKyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7
CisgICAgc2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkpOworICAg
IHNpbmNvcyh4WzNdWzNdLCAmKCgqeSlbM11bM10pLCAmKCgqeilbM11bM10pKTsKK30KK3ZvaWQg
c2luY29zKGZsb2F0IHgsIHRocmVhZCBmbG9hdCogeSwgdGhyZWFkIGZsb2F0KiB6KSB7CisgICAg
KnkgPSBzaW4oeCk7CisgICAgKnogPSBjb3MoeCk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDIgeCwg
dGhyZWFkIGZsb2F0MiogeSwgdGhyZWFkIGZsb2F0MiogeikgeworICAgIHNpbmNvcyh4WzBdLCAm
KCgqeSlbMF0pLCAmKCgqeilbMF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigo
KnopWzFdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDMgeCwgdGhyZWFkIGZsb2F0MyogeSwgdGhy
ZWFkIGZsb2F0MyogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAmKCgqeilbMF0p
KTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7CisgICAgc2luY29z
KHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworfQordm9pZCBzaW5jb3MoZmxvYXQ0IHgs
IHRocmVhZCBmbG9hdDQqIHksIHRocmVhZCBmbG9hdDQqIHopIHsKKyAgICBzaW5jb3MoeFswXSwg
JigoKnkpWzBdKSwgJigoKnopWzBdKSk7CisgICAgc2luY29zKHhbMV0sICYoKCp5KVsxXSksICYo
KCp6KVsxXSkpOworICAgIHNpbmNvcyh4WzJdLCAmKCgqeSlbMl0pLCAmKCgqeilbMl0pKTsKKyAg
ICBzaW5jb3MoeFszXSwgJigoKnkpWzNdKSwgJigoKnopWzNdKSk7Cit9Cit2b2lkIHNpbmNvcyhm
bG9hdDJ4MiB4LCB0aHJlYWQgZmxvYXQyeDIqIHksIHRocmVhZCBmbG9hdDJ4MiogeikgeworICAg
IHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5j
b3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhb
MV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFd
LCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKK30KK3ZvaWQgc2luY29zKGZsb2F0Mngz
IHgsIHRocmVhZCBmbG9hdDJ4MyogeSwgdGhyZWFkIGZsb2F0MngzKiB6KSB7CisgICAgc2luY29z
KHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBd
WzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFswXVsyXSwg
JigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5
KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1b
MV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSwg
JigoKnopWzFdWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDJ4NCB4LCB0aHJlYWQgZmxvYXQy
eDQqIHksIHRocmVhZCBmbG9hdDJ4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFd
KSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYo
KCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAmKCgqeilb
MF1bM10pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBd
KSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOwor
ICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKKyAgICBz
aW5jb3MoeFsxXVszXSwgJigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7Cit9Cit2b2lkIHNp
bmNvcyhmbG9hdDN4MiB4LCB0aHJlYWQgZmxvYXQzeDIqIHksIHRocmVhZCBmbG9hdDN4Miogeikg
eworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAg
ICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2lu
Y29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsw
XSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYo
KCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworfQordm9pZCBzaW5jb3MoZmxvYXQzeDMgeCwg
dGhyZWFkIGZsb2F0M3gzKiB5LCB0aHJlYWQgZmxvYXQzeDMqIHopIHsKKyAgICBzaW5jb3MoeFsw
XVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0s
ICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgq
eSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSks
ICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgq
eilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJd
WzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkp
OworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0pLCAmKCgqeilbMl1bMl0pKTsKK30K
K3ZvaWQgc2luY29zKGZsb2F0M3g0IHgsIHRocmVhZCBmbG9hdDN4NCogeSwgdGhyZWFkIGZsb2F0
M3g0KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVsw
XSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsK
KyAgICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAg
c2luY29zKHhbMF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAgIHNpbmNv
cyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsx
XVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0s
ICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNdLCAmKCgq
eSlbMV1bM10pLCAmKCgqeilbMV1bM10pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJd
WzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSks
ICYoKCp6KVsyXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0pLCAmKCgq
eilbMl1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVszXSwgJigoKnkpWzJdWzNdKSwgJigoKnopWzJd
WzNdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDR4MiB4LCB0aHJlYWQgZmxvYXQ0eDIqIHksIHRo
cmVhZCBmbG9hdDR4MiogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAm
KCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnop
WzBdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVsw
XSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsK
KyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAg
c2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworICAgIHNpbmNv
cyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11bMF0pKTsKKyAgICBzaW5jb3MoeFsz
XVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9h
dDR4MyB4LCB0aHJlYWQgZmxvYXQ0eDMqIHksIHRocmVhZCBmbG9hdDR4MyogeikgeworICAgIHNp
bmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3Mo
eFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1b
Ml0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzBdLCAm
KCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsxXSwgJigoKnkp
WzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYoKCp5KVsxXVsy
XSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAm
KCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnop
WzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsy
XSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11bMF0pKTsK
KyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7CisgICAg
c2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkpOworfQordm9pZCBz
aW5jb3MoZmxvYXQ0eDQgeCwgdGhyZWFkIGZsb2F0NHg0KiB5LCB0aHJlYWQgZmxvYXQ0eDQqIHop
IHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7Cisg
ICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNp
bmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3Mo
eFswXVszXSwgJigoKnkpWzBdWzNdKSwgJigoKnopWzBdWzNdKSk7CisgICAgc2luY29zKHhbMV1b
MF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAm
KCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkp
WzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMV1bM10sICYoKCp5KVsxXVsz
XSksICYoKCp6KVsxXVszXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAm
KCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnop
WzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsy
XSkpOworICAgIHNpbmNvcyh4WzJdWzNdLCAmKCgqeSlbMl1bM10pLCAmKCgqeilbMl1bM10pKTsK
KyAgICBzaW5jb3MoeFszXVswXSwgJigoKnkpWzNdWzBdKSwgJigoKnopWzNdWzBdKSk7CisgICAg
c2luY29zKHhbM11bMV0sICYoKCp5KVszXVsxXSksICYoKCp6KVszXVsxXSkpOworICAgIHNpbmNv
cyh4WzNdWzJdLCAmKCgqeSlbM11bMl0pLCAmKCgqeilbM11bMl0pKTsKKyAgICBzaW5jb3MoeFsz
XVszXSwgJigoKnkpWzNdWzNdKSwgJigoKnopWzNdWzNdKSk7Cit9CisKK2Jvb2wgYWxsKGJvb2wg
eCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChib29sMiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGJvb2wzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKGJvb2w0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChib29sMngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChib29sMngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGJvb2wyeDQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChib29sM3gyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGJv
b2wzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoYm9vbDN4NCB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChib29sNHgyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bGwoYm9vbDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChib29sNHg0IHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
WzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsz
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbCh1Y2hhciB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxsKHVj
aGFyMiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1Y2hhcjQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyMngyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1Y2hhcjJ4MyB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1Y2hhcjJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFy
M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyM3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRy
dWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVj
aGFyM3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyNHgyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodWNoYXI0eDMgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbGwodWNoYXI0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bM10g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydCB4KSB7CisgICAg
cmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxsKHVzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1c2hvcnQzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKHVzaG9ydDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YWxsKHVzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbGwodXNob3J0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDJ4NCB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1c2hvcnQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodXNob3J0M3g0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVl
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKHVzaG9ydDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1c2hv
cnQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVszXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bM10gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9
Citib29sIGFsbCh1aW50MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQzIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQ0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50MngyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50MngzIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKHVpbnQyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1aW50M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bGwodWludDN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50NHgyIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodWludDR4MyB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFsbCh1aW50NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
Ml1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyIHgpIHsKKyAgICBy
ZXR1cm4geCAhPSAwOworfQorYm9vbCBhbGwoY2hhcjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
dHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChj
aGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChjaGFyNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hh
cjJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
Y2hhcjJ4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyMng0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbGwoY2hhcjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyM3gzIHgpIHsK
KyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKGNoYXIzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
Y2hhcjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGNoYXI0eDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hhcjR4NCB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
c2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChzaG9ydDIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChzaG9ydDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQyeDQg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDN4MiB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChzaG9ydDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDN4NCB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKHNob3J0NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxs
KHNob3J0NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
M11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7
Cit9Citib29sIGFsbChpbnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaW50MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQyeDIgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGludDJ4MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChpbnQyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChp
bnQzeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaW50M3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRy
dWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGlu
dDN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0eDIgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0eDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
dHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bCBhbGwoaW50NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
M10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmIHgpIHsKKyAgICByZXR1cm4geCAh
PSAwOworfQorYm9vbCBhbGwoaGFsZjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmMyB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCho
YWxmNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjJ4MiB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjJ4MyB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChoYWxmMng0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbGwoaGFsZjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmM3gzIHgpIHsKKyAgICBib29s
IHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGhhbGYzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjR4MiB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGhhbGY0eDMgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVl
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQgeCkg
eworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChmbG9hdDIgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChmbG9hdDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbGwoZmxvYXQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChmbG9hdDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbGwoZmxvYXQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQyeDQgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
M10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChmbG9hdDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bChmbG9hdDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChmbG9hdDN4NCB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChmbG9hdDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGZsb2F0NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGZsb2F0NHg0
IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2Jvb2wgYW55KGJvb2wgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citi
b29sIGFueShib29sMiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sMyB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoYm9vbDQgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sMngyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsx
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoYm9vbDJ4MyB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoYm9vbDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFueShib29sM3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sM3gzIHgpIHsKKyAgICBib29sIHJl
c3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFueShib29sM3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sNHgyIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGJvb2w0eDMgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGJvb2w0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1Y2hhciB4
KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYW55KHVjaGFyMiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFueSh1Y2hhcjMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYW55KHVjaGFyMngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkodWNoYXIyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyMng0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyM3gyIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFueSh1Y2hhcjN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWNoYXIzeDQgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNHgyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZh
bHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFueSh1Y2hhcjR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bM10gIT0gMCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydCB4KSB7CisgICAgcmV0dXJu
IHggIT0gMDsKK30KK2Jvb2wgYW55KHVzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodXNo
b3J0MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbnkodXNob3J0NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55
KHVzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wgYW55KHVzaG9ydDJ4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAw
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodXNob3J0Mng0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bnkodXNob3J0M3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1c2hvcnQzeDQgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFueSh1c2hvcnQ0eDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55
KHVzaG9ydDR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9Citib29sIGFueSh1aW50MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50MyB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnko
dWludDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50MngyIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWludDJ4
MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbnkodWludDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFueSh1aW50M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50M3gzIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFueSh1aW50M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1
aW50NHgyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQ0eDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQ0eDQgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShjaGFyIHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbnkoY2hhcjIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoY2hhcjMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXI0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoY2hhcjJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXIyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXIyeDQg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsz
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjN4MiB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoY2hhcjN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjN4NCB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJd
WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVszXSAhPSAwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShjaGFyNHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNl
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShjaGFyNHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVszXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9Citib29sIGFueShzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQzIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShzaG9ydDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDJ4
MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHNo
b3J0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQzeDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHNob3J0M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFueShzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShzaG9ydDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsy
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQ0eDQgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFueShpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShp
bnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGludDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGludDQgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQyeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGlu
dDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQzeDIgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2wgYW55KGludDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaW50M3g0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
Ml1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQ0eDIgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbnkoaW50NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNl
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShpbnQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmIHgpIHsKKyAgICByZXR1cm4geCAhPSAw
OworfQorYm9vbCBhbnkoaGFsZjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjMgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGhh
bGY0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjJ4MiB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGhhbGYyeDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYW55KGhhbGYyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoaGFsZjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjN4MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbCBhbnkoaGFsZjN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFs
ZjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmNHgzIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmNHg0IHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnko
ZmxvYXQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShmbG9hdDIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoZmxvYXQzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDQgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9h
dDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDN4MiB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoZmxvYXQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0
M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDR4MiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDR4MyB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoZmxvYXQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
Ml1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIGFicyh1Y2hhciB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9Cit1c2hvcnQgYWJzKHVzaG9ydCB4KSB7CisgICAgcmV0dXJuIHg7Cit9
Cit1aW50IGFicyh1aW50IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2NoYXIgYWJzKGNoYXIgeCkg
eworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQor
c2hvcnQgYWJzKHNob3J0IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAteDsK
KyAgICByZXR1cm4geDsKK30KK2ludCBhYnMoaW50IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAg
ICAgIHJldHVybiAteDsKKyAgICByZXR1cm4geDsKK30KK2hhbGYgYWJzKGhhbGYgeCkgeworICAg
IGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQorZmxvYXQg
YWJzKGZsb2F0IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAteDsKKyAgICBy
ZXR1cm4geDsKK30KK3VjaGFyMiBhYnModWNoYXIyIHgpIHsKKyAgICB1Y2hhcjIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBhYnModWNoYXIzIHgpIHsKKyAgICB1Y2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgYWJzKHVjaGFyNCB4KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMngyIGFicyh1Y2hhcjJ4MiB4KSB7CisgICAgdWNoYXIyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyeDMg
YWJzKHVjaGFyMngzIHgpIHsKKyAgICB1Y2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMng0IGFicyh1Y2hh
cjJ4NCB4KSB7CisgICAgdWNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gyIGFicyh1
Y2hhcjN4MiB4KSB7CisgICAgdWNoYXIzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MyBhYnModWNoYXIzeDMg
eCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXIzeDQgYWJzKHVjaGFyM3g0IHgpIHsKKyAgICB1Y2hhcjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgyIGFicyh1Y2hh
cjR4MiB4KSB7CisgICAgdWNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgzIGFicyh1
Y2hhcjR4MyB4KSB7CisgICAgdWNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4NCBhYnModWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFi
cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDIgYWJzKHVzaG9ydDIgeCkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDMgYWJzKHVzaG9ydDMgeCkgeworICAgIHVzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IGFicyh1c2hvcnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDJ4MiBhYnModXNob3J0MngyIHgpIHsKKyAgICB1c2hvcnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0Mngz
IGFicyh1c2hvcnQyeDMgeCkgeworICAgIHVzaG9ydDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4NCBhYnMo
dXNob3J0Mng0IHgpIHsKKyAgICB1c2hvcnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4
MiBhYnModXNob3J0M3gyIHgpIHsKKyAgICB1c2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDMgYWJz
KHVzaG9ydDN4MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IGFicyh1c2hvcnQzeDQgeCkgewor
ICAgIHVzaG9ydDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDR4MiBhYnModXNob3J0NHgyIHgpIHsKKyAgICB1c2hvcnQ0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDR4MyBhYnModXNob3J0NHgzIHgpIHsKKyAgICB1c2hvcnQ0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDQgYWJzKHVzaG9ydDR4NCB4
KSB7CisgICAgdXNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
YWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBh
YnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIGFicyh1aW50MiB4KSB7CisgICAgdWludDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGFicyh1aW50MyB4KSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBhYnModWludDQgeCkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQyeDIgYWJzKHVpbnQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBh
YnModWludDJ4MyB4KSB7CisgICAgdWludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDQgYWJzKHVpbnQyeDQg
eCkgeworICAgIHVpbnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
YWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBh
YnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDIgYWJzKHVpbnQzeDIg
eCkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIGFicyh1aW50M3gzIHgpIHsKKyAgICB1
aW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4NCBhYnModWludDN4NCB4KSB7CisgICAgdWludDN4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
YnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDIgYWJzKHVpbnQ0eDIgeCkgeworICAgIHVp
bnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
YnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgYWJzKHVpbnQ0eDMgeCkgeworICAgIHVp
bnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
YnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFi
cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHg0IGFi
cyh1aW50NHg0IHgpIHsKKyAgICB1aW50NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
YnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJz
KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIGFicyhjaGFyMiB4KSB7Cisg
ICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIGFicyhjaGFyMyB4
KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBhYnMoY2hhcjQgeCkgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyeDIgYWJzKGNoYXIyeDIgeCkgeworICAgIGNoYXIy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjJ4MyBhYnMoY2hhcjJ4MyB4KSB7CisgICAgY2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJz
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyeDQgYWJz
KGNoYXIyeDQgeCkgeworICAgIGNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJz
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzeDIgYWJz
KGNoYXIzeDIgeCkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIGFicyhjaGFyM3gzIHgp
IHsKKyAgICBjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFi
cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjN4NCBhYnMoY2hhcjN4NCB4KSB7CisgICAgY2hhcjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFi
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMo
eFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDIgYWJzKGNoYXI0eDIgeCkg
eworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJz
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDMgYWJzKGNoYXI0eDMgeCkg
eworICAgIGNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJz
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNHg0IGFicyhjaGFyNHg0IHgpIHsKKyAgICBjaGFyNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MiBhYnMoc2hv
cnQyIHgpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
MyBhYnMoc2hvcnQzIHgpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFi
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJz
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgYWJzKHNob3J0NCB4KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRb
M10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MngyIGFicyhzaG9y
dDJ4MiB4KSB7CisgICAgc2hvcnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyeDMgYWJzKHNob3J0MngzIHgpIHsKKyAgICBzaG9y
dDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0Mng0IGFicyhzaG9ydDJ4NCB4KSB7CisgICAgc2hvcnQyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0M3gyIGFicyhzaG9ydDN4MiB4KSB7CisgICAgc2hvcnQzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDN4MyBhYnMoc2hvcnQzeDMgeCkgeworICAgIHNob3J0M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJz
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDQgYWJz
KHNob3J0M3g0IHgpIHsKKyAgICBzaG9ydDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
YnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFi
cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NHgyIGFicyhzaG9ydDR4MiB4KSB7CisgICAgc2hvcnQ0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NHgzIGFicyhzaG9ydDR4MyB4KSB7CisgICAgc2hvcnQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4NCBhYnMoc2hv
cnQ0eDQgeCkgeworICAgIHNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgYWJzKGludDIgeCkgeworICAgIGlu
dDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
YnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgYWJzKGludDMgeCkgeworICAg
IGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IGFicyhpbnQ0IHgpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDJ4MiBhYnMoaW50MngyIHgpIHsKKyAgICBpbnQyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MngzIGFicyhpbnQy
eDMgeCkgeworICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBhYnMoaW50Mng0IHgpIHsKKyAgICBp
bnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
YnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MiBhYnMoaW50M3gyIHgpIHsKKyAgICBpbnQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzeDMgYWJzKGludDN4MyB4KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3g0IGFicyhpbnQz
eDQgeCkgeworICAgIGludDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDR4MiBhYnMoaW50NHgyIHgpIHsKKyAgICBpbnQ0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDR4MyBhYnMoaW50NHgzIHgpIHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQgYWJzKGludDR4NCB4KSB7CisgICAgaW50NHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIGFicyhoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIGFicyhoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBhYnMoaGFs
ZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIg
YWJzKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBhYnMoaGFsZjJ4MyB4KSB7CisgICAg
aGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgYWJzKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgYWJzKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gzIGFicyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBhYnMoaGFsZjN4
NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDIgYWJzKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDMgYWJzKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
YWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGFicyhoYWxmNHg0IHgpIHsKKyAgICBo
YWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
YnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3Vs
dFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFi
cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MiBhYnMoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBhYnMoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgYWJzKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIGFicyhmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMg
YWJzKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IGFicyhmbG9h
dDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIGFicyhm
bG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBhYnMoZmxvYXQzeDMg
eCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYWJzKGZsb2F0M3g0IHgpIHsKKyAgICBmbG9hdDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIGFicyhmbG9h
dDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGFicyhm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBhYnMoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFi
cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwordWNoYXIgc2lnbih1Y2hhciB4KSB7CisgICAgcmV0dXJuIHggPT0gMCA/IDAgOiAxOworfQor
dXNob3J0IHNpZ24odXNob3J0IHgpIHsKKyAgICByZXR1cm4geCA9PSAwID8gMCA6IDE7Cit9Cit1
aW50IHNpZ24odWludCB4KSB7CisgICAgcmV0dXJuIHggPT0gMCA/IDAgOiAxOworfQorY2hhciBz
aWduKGNoYXIgeCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlm
ICh4ID09IDApCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorc2hvcnQgc2ln
bihzaG9ydCB4KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYg
KHggPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CitpbnQgc2lnbihp
bnQgeCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICh4ID09
IDApCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQoraGFsZiBzaWduKGhhbGYg
eCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICh4ID09IDAp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorZmxvYXQgc2lnbihmbG9hdCB4
KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHggPT0gMCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9Cit1Y2hhcjIgc2lnbih1Y2hhcjIg
eCkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMg
c2lnbih1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2ln
bih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNp
Z24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBzaWduKHVjaGFyNCB4KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBz
aWduKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyeDMgc2lnbih1Y2hhcjJ4MyB4
KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBzaWduKHVjaGFyMng0IHgp
IHsKKyAgICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBzaWdu
KHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIHNpZ24o
dWNoYXIzeDMgeCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBz
aWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDQgc2lnbih1Y2hhcjN4NCB4
KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2ln
bih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBzaWduKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWdu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBzaWduKHVjaGFyNHgzIHgpIHsKKyAg
ICB1Y2hhcjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNHg0IHNpZ24odWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2ln
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQyIHNpZ24odXNob3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIHNpZ24odXNob3J0MyB4KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgc2lnbih1c2hvcnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24o
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWdu
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgc2lnbih1c2hvcnQyeDIg
eCkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MngzIHNpZ24odXNob3J0MngzIHgpIHsKKyAgICB1
c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgc2lnbih1c2hvcnQyeDQgeCkgeworICAg
IHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBz
aWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgc2lnbih1c2hv
cnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2ln
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBzaWduKHVz
aG9ydDN4MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBz
aWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IHNpZ24odXNob3J0M3g0
IHgpIHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWdu
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgc2lnbih1c2hvcnQ0eDIgeCkgeworICAgIHVzaG9y
dDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgc2lnbih1c2hvcnQ0eDMg
eCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4NCBzaWduKHVzaG9ydDR4NCB4KSB7CisgICAgdXNob3J0
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWdu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBzaWduKHVpbnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBz
aWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBzaWduKHVpbnQzIHgpIHsK
KyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IHNpZ24odWludDQgeCkgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIHNpZ24odWludDJ4MiB4KSB7CisgICAg
dWludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDJ4MyBzaWduKHVpbnQyeDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50Mng0IHNpZ24odWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2ln
bih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3gyIHNpZ24odWludDN4MiB4KSB7CisgICAgdWludDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzeDMgc2lnbih1aW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDN4NCBzaWduKHVpbnQzeDQgeCkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
Z24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIHNpZ24odWludDR4MiB4KSB7
CisgICAgdWludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIHNpZ24odWlu
dDR4MyB4KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNp
Z24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgc2lnbih1aW50NHg0IHgpIHsKKyAgICB1aW50NHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBzaWduKGNoYXIyIHgpIHsKKyAgICBjaGFyMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBzaWduKGNoYXIzIHgpIHsKKyAg
ICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IHNpZ24oY2hhcjQgeCkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIHNpZ24oY2hhcjJ4MiB4KSB7CisgICAgY2hh
cjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjJ4MyBzaWduKGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMng0IHNpZ24oY2hhcjJ4NCB4KSB7CisgICAgY2hhcjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyM3gyIHNpZ24oY2hhcjN4MiB4KSB7CisgICAgY2hhcjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzeDMgc2lnbihjaGFyM3gzIHgpIHsKKyAgICBjaGFyM3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjN4
NCBzaWduKGNoYXIzeDQgeCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24o
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIHNpZ24oY2hhcjR4MiB4KSB7Cisg
ICAgY2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgzIHNpZ24oY2hhcjR4
MyB4KSB7CisgICAgY2hhcjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgc2lnbihjaGFyNHg0IHgpIHsKKyAgICBjaGFyNHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgc2lnbihzaG9ydDIgeCkgeworICAgIHNob3J0MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgc2lnbihzaG9ydDMgeCkgewor
ICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBzaWduKHNob3J0NCB4KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBzaWduKHNob3J0MngyIHgpIHsK
KyAgICBzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQyeDMgc2lnbihzaG9ydDJ4MyB4KSB7CisgICAgc2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2ln
bih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDJ4NCBzaWduKHNob3J0Mng0IHgpIHsKKyAgICBzaG9ydDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWdu
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBzaWduKHNob3J0M3gyIHgpIHsKKyAg
ICBzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0M3gzIHNpZ24oc2hvcnQzeDMgeCkgeworICAg
IHNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNp
Z24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQzeDQgc2lnbihzaG9ydDN4NCB4KSB7CisgICAgc2hvcnQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2ln
bih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDR4MiBzaWduKHNob3J0NHgyIHgpIHsKKyAgICBzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDR4MyBzaWduKHNob3J0NHgzIHgpIHsKKyAgICBzaG9ydDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NHg0IHNp
Z24oc2hvcnQ0eDQgeCkgeworICAgIHNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2ln
bih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQy
IHNpZ24oaW50MiB4KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQzIHNpZ24oaW50MyB4KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
c2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgc2lnbihpbnQ0IHgpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1
bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgc2lnbihp
bnQyeDIgeCkgeworICAgIGludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MngzIHNpZ24oaW50MngzIHgpIHsKKyAgICBpbnQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyeDQgc2lnbihpbnQyeDQgeCkgeworICAgIGludDJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgc2lnbihpbnQzeDIgeCkgeworICAgIGludDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDN4MyBzaWduKGludDN4MyB4KSB7CisgICAgaW50M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50M3g0IHNpZ24oaW50M3g0IHgpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
Z24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgc2lnbihpbnQ0eDIgeCkgewor
ICAgIGludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDMgc2lnbihpbnQ0eDMg
eCkgeworICAgIGludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWdu
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDR4NCBzaWduKGludDR4NCB4KSB7CisgICAgaW50NHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2ln
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiBzaWduKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBzaWduKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IHNpZ24oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIHNpZ24oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBzaWduKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IHNpZ24oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNpZ24oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgc2lnbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBz
aWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzaWduKGhh
bGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24o
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBz
aWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNpZ24oaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHNpZ24oaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDQgc2lnbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBz
aWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgc2lnbihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgc2lnbihmbG9hdDMgeCkgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBz
aWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBzaWduKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBzaWduKGZsb2F0MngyIHgpIHsKKyAgICBmbG9h
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgc2lnbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4NCBzaWduKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWdu
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBzaWduKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHNpZ24oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNp
Z24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDQgc2lnbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaWdu
KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyBzaWduKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNp
Z24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNpZ24oZmxvYXQ0
eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2ln
bih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIG1pbih1
Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1Y2hhcjIg
bWluKHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1pbih1Y2hhcjMgeCwgdWNoYXIzIHkpIHsK
KyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhbMl0s
IHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgbWluKHVjaGFyNCB4LCB1Y2hh
cjQgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
aW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBtaW4odWNoYXIyeDIgeCwgdWNoYXIyeDIgeSkgewor
ICAgIHVjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIG1p
bih1Y2hhcjJ4MyB4LCB1Y2hhcjJ4MyB5KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
aW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
bWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBt
aW4odWNoYXIyeDQgeCwgdWNoYXIyeDQgeSkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBtaW4odWNoYXIzeDIgeCwgdWNoYXIzeDIgeSkg
eworICAgIHVjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDMgbWluKHVjaGFyM3gzIHgsIHVjaGFyM3gzIHkp
IHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IG1pbih1Y2hhcjN4
NCB4LCB1Y2hhcjN4NCB5KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4MiBtaW4odWNoYXI0eDIgeCwgdWNoYXI0eDIgeSkgeworICAgIHVj
aGFyNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBtaW4odWNo
YXI0eDMgeCwgdWNoYXI0eDMgeSkgeworICAgIHVjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtaW4o
eFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0eDQgbWluKHVjaGFyNHg0IHgsIHVjaGFyNHg0IHkpIHsKKyAg
ICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWlu
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1p
bih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
aW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgbWF4
KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1heCh1Y2hhcjMgeCwgdWNoYXIzIHkpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0sIHlb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgbWF4KHVjaGFyNCB4LCB1Y2hhcjQg
eSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0p
OworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgo
eFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBtYXgodWNoYXIyeDIgeCwgdWNoYXIyeDIgeSkgeworICAg
IHVjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIG1heCh1
Y2hhcjJ4MyB4LCB1Y2hhcjJ4MyB5KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBtYXgo
dWNoYXIyeDQgeCwgdWNoYXIyeDQgeSkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBtYXgodWNoYXIzeDIgeCwgdWNoYXIzeDIgeSkgewor
ICAgIHVjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
YXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDMgbWF4KHVjaGFyM3gzIHgsIHVjaGFyM3gzIHkpIHsK
KyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IG1heCh1Y2hhcjN4NCB4
LCB1Y2hhcjN4NCB5KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFd
LCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjR4MiBtYXgodWNoYXI0eDIgeCwgdWNoYXI0eDIgeSkgeworICAgIHVjaGFy
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11b
MV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBtYXgodWNoYXI0
eDMgeCwgdWNoYXI0eDMgeSkgeworICAgIHVjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtYXgoeFsz
XVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11bMV0sIHlbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0eDQgbWF4KHVjaGFyNHg0IHgsIHVjaGFyNHg0IHkpIHsKKyAgICB1
Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhb
MF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4
WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4
KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VzaG9ydCBtaW4o
dXNob3J0IHgsIHVzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1c2hv
cnQyIG1pbih1c2hvcnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwg
eVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgbWluKHVzaG9ydDMgeCwgdXNo
b3J0MyB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgbWluKHVz
aG9ydDQgeCwgdXNob3J0NCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10s
IHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgbWluKHVzaG9ydDJ4MiB4
LCB1c2hvcnQyeDIgeSkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQyeDMgbWluKHVzaG9ydDJ4MyB4LCB1c2hvcnQyeDMgeSkgeworICAgIHVz
aG9ydDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDJ4NCBtaW4odXNob3J0Mng0IHgsIHVzaG9ydDJ4NCB5KSB7Cisg
ICAgdXNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBt
aW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
bWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIg
bWluKHVzaG9ydDN4MiB4LCB1c2hvcnQzeDIgeSkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDN4MyBtaW4odXNob3J0M3gzIHgsIHVzaG9ydDN4MyB5KSB7CisgICAgdXNob3J0M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4
WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4o
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0M3g0IG1pbih1c2hvcnQzeDQgeCwgdXNob3J0M3g0IHkpIHsK
KyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
eDIgbWluKHVzaG9ydDR4MiB4LCB1c2hvcnQ0eDIgeSkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NHgzIG1pbih1c2hvcnQ0eDMgeCwgdXNo
b3J0NHgzIHkpIHsKKyAgICB1c2hvcnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gbWluKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0eDQgbWluKHVzaG9ydDR4NCB4LCB1c2hvcnQ0eDQgeSkgeworICAgIHVzaG9y
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1b
M10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFd
WzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhb
M11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG1heCh1c2hv
cnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgbWF4KHVzaG9ydDMgeCwgdXNob3J0MyB5KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwg
eVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgbWF4KHVzaG9ydDQgeCwgdXNo
b3J0NCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgbWF4KHVzaG9ydDJ4MiB4LCB1c2hvcnQyeDIg
eSkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQyeDMgbWF4KHVzaG9ydDJ4MyB4LCB1c2hvcnQyeDMgeSkgeworICAgIHVzaG9ydDJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDJ4NCBtYXgodXNob3J0Mng0IHgsIHVzaG9ydDJ4NCB5KSB7CisgICAgdXNob3J0Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgbWF4KHVzaG9ydDN4
MiB4LCB1c2hvcnQzeDIgeSkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsy
XVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBtYXgodXNo
b3J0M3gzIHgsIHVzaG9ydDN4MyB5KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1h
eCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0M3g0IG1heCh1c2hvcnQzeDQgeCwgdXNob3J0M3g0IHkpIHsKKyAgICB1c2hvcnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNd
LCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVsz
XSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1b
M10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgbWF4KHVzaG9y
dDR4MiB4LCB1c2hvcnQ0eDIgeSkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgo
eFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NHgzIG1heCh1c2hvcnQ0eDMgeCwgdXNob3J0NHgzIHkpIHsK
KyAgICB1c2hvcnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gbWF4KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
eDQgbWF4KHVzaG9ydDR4NCB4LCB1c2hvcnQ0eDQgeSkgeworICAgIHVzaG9ydDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFsw
XVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhb
MV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4
WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgo
eFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VpbnQgbWluKHVpbnQgeCwgdWludCB5KSB7
CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1aW50MiBtaW4odWludDIgeCwgdWludDIg
eSkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7
CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MyBtaW4odWludDMgeCwgdWludDMgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlb
MV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgbWluKHVpbnQ0IHgsIHVpbnQ0IHkpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFd
LCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNd
ID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIG1pbih1
aW50MngyIHgsIHVpbnQyeDIgeSkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDJ4MyBtaW4odWludDJ4MyB4LCB1aW50MngzIHkpIHsKKyAgICB1aW50
MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDJ4NCBtaW4odWludDJ4NCB4LCB1aW50Mng0IHkpIHsKKyAgICB1aW50Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIG1pbih1aW50M3gyIHgs
IHVpbnQzeDIgeSkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
aW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIG1pbih1aW50M3gzIHgsIHVp
bnQzeDMgeSkgeworICAgIHVpbnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWlu
KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3g0IG1pbih1
aW50M3g0IHgsIHVpbnQzeDQgeSkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NHgyIG1pbih1aW50NHgyIHgsIHVpbnQ0eDIgeSkgeworICAgIHVp
bnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsz
XVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4oeFsz
XVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgbWluKHVpbnQ0
eDMgeCwgdWludDR4MyB5KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0eDQgbWluKHVpbnQ0eDQgeCwgdWludDR4NCB5KSB7CisgICAgdWludDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFdWzNd
LCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhbM11b
M10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtYXgodWludDIgeCwg
dWludDIgeSkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwg
eVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBtYXgodWludDMgeCwgdWludDMgeSkgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhb
MV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgbWF4KHVpbnQ0IHgsIHVpbnQ0IHkpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1h
eCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVz
dWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mngy
IG1heCh1aW50MngyIHgsIHVpbnQyeDIgeSkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBtYXgodWludDJ4MyB4LCB1aW50MngzIHkpIHsKKyAg
ICB1aW50MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDJ4NCBtYXgodWludDJ4NCB4LCB1aW50Mng0IHkpIHsKKyAgICB1
aW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhb
MV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIG1heCh1aW50
M3gyIHgsIHVpbnQzeDIgeSkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1b
MV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIG1heCh1aW50M3gz
IHgsIHVpbnQzeDMgeSkgeworICAgIHVpbnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3g0
IG1heCh1aW50M3g0IHgsIHVpbnQzeDQgeSkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIG1heCh1aW50NHgyIHgsIHVpbnQ0eDIgeSkgewor
ICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBt
YXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgbWF4
KHVpbnQ0eDMgeCwgdWludDR4MyB5KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgo
eFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgbWF4KHVpbnQ0eDQgeCwgdWludDR4NCB5KSB7CisgICAg
dWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhb
MF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4
WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4
KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIgbWluKGNo
YXIgeCwgY2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitjaGFyMiBtaW4o
Y2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBt
aW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyMyBtaW4oY2hhcjMgeCwgY2hhcjMgeSkgeworICAgIGNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgbWluKGNoYXI0IHgsIGNoYXI0IHkpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMngyIG1pbihjaGFyMngyIHgsIGNoYXIyeDIgeSkgeworICAgIGNoYXIyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4MyBtaW4oY2hhcjJ4MyB4LCBjaGFyMngz
IHkpIHsKKyAgICBjaGFyMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4NCBtaW4oY2hhcjJ4NCB4LCBjaGFyMng0IHkp
IHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gy
IG1pbihjaGFyM3gyIHgsIGNoYXIzeDIgeSkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
aW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
bWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIG1p
bihjaGFyM3gzIHgsIGNoYXIzeDMgeSkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWlu
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyM3g0IG1pbihjaGFyM3g0IHgsIGNoYXIzeDQgeSkgeworICAgIGNoYXIzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhb
MF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4o
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIG1pbihjaGFyNHgyIHgsIGNoYXI0
eDIgeSkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsy
XVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0eDMgbWluKGNoYXI0eDMgeCwgY2hhcjR4MyB5KSB7CisgICAgY2hhcjR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNd
WzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgbWluKGNoYXI0eDQgeCwgY2hhcjR4NCB5
KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNd
WzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MiBtYXgoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtYXgoY2hhcjMgeCwgY2hhcjMgeSkgeworICAg
IGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVz
dWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgbWF4KGNoYXI0IHgsIGNoYXI0IHkpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwg
eVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMngyIG1heChjaGFyMngyIHgsIGNoYXIyeDIgeSkgeworICAgIGNoYXIyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4MyBtYXgoY2hhcjJ4MyB4LCBj
aGFyMngzIHkpIHsKKyAgICBjaGFyMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4NCBtYXgoY2hhcjJ4NCB4LCBjaGFy
Mng0IHkpIHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyM3gyIG1heChjaGFyM3gyIHgsIGNoYXIzeDIgeSkgeworICAgIGNoYXIzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
M3gzIG1heChjaGFyM3gzIHgsIGNoYXIzeDMgeSkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyM3g0IG1heChjaGFyM3g0IHgsIGNoYXIzeDQgeSkgeworICAgIGNoYXIzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwg
eVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10s
IHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIG1heChjaGFyNHgyIHgs
IGNoYXI0eDIgeSkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1h
eCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
YXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0eDMgbWF4KGNoYXI0eDMgeCwgY2hhcjR4MyB5KSB7CisgICAgY2hhcjR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4
KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1h
eCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgbWF4KGNoYXI0eDQgeCwgY2hh
cjR4NCB5KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhb
MF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgo
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3Nob3J0IG1pbihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6
IHg7Cit9CitzaG9ydDIgbWluKHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1p
bih4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG1pbihzaG9ydDMg
eCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0
WzJdID0gbWluKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgbWlu
KHNob3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10s
IHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBtaW4oc2hvcnQyeDIgeCwg
c2hvcnQyeDIgeSkgeworICAgIHNob3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
aW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0MngzIG1pbihzaG9ydDJ4MyB4LCBzaG9ydDJ4MyB5KSB7CisgICAgc2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDJ4NCBtaW4oc2hvcnQyeDQgeCwgc2hvcnQyeDQgeSkgeworICAgIHNob3J0Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBtaW4oc2hvcnQzeDIg
eCwgc2hvcnQzeDIgeSkgeworICAgIHNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0s
IHlbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFd
LCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDMgbWluKHNob3J0M3gz
IHgsIHNob3J0M3gzIHkpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
M3g0IG1pbihzaG9ydDN4NCB4LCBzaG9ydDN4NCB5KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1b
Ml0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBtaW4oc2hvcnQ0eDIgeCwgc2hvcnQ0
eDIgeSkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhb
Ml1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gbWluKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDR4MyBtaW4oc2hvcnQ0eDMgeCwgc2hvcnQ0eDMgeSkgeworICAgIHNob3J0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4
WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4o
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWlu
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgbWluKHNob3J0NHg0IHgsIHNo
b3J0NHg0IHkpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWlu
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1p
bih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
aW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
bWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAg
cmVzdWx0WzNdWzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDIgbWF4KHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4
WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG1heChzaG9ydDMgeCwg
c2hvcnQzIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBd
LCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJd
ID0gbWF4KHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgbWF4KHNo
b3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBtYXgoc2hvcnQyeDIgeCwgc2hv
cnQyeDIgeSkgeworICAgIHNob3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0MngzIG1heChzaG9ydDJ4MyB4LCBzaG9ydDJ4MyB5KSB7CisgICAgc2hvcnQyeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDJ4NCBtYXgoc2hvcnQyeDQgeCwgc2hvcnQyeDQgeSkgeworICAgIHNob3J0Mng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1h
eCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
YXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBtYXgoc2hvcnQzeDIgeCwg
c2hvcnQzeDIgeSkgeworICAgIHNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
YXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDMgbWF4KHNob3J0M3gzIHgs
IHNob3J0M3gzIHkpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0M3g0
IG1heChzaG9ydDN4NCB4LCBzaG9ydDN4NCB5KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBtYXgoc2hvcnQ0eDIgeCwgc2hvcnQ0eDIg
eSkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gbWF4KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDR4MyBtYXgoc2hvcnQ0eDMgeCwgc2hvcnQ0eDMgeSkgeworICAgIHNob3J0NHgzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBd
WzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsy
XVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgbWF4KHNob3J0NHg0IHgsIHNob3J0
NHg0IHkpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhb
MF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgo
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK2ludCBtaW4oaW50IHgsIGludCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9
CitpbnQyIG1pbihpbnQyIHgsIGludDIgeSkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgbWluKGludDMgeCwgaW50MyB5KSB7CisgICAg
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbWluKGludDQgeCwgaW50NCB5KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQyeDIgbWluKGludDJ4MiB4LCBpbnQyeDIgeSkgeworICAgIGludDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDMgbWluKGludDJ4MyB4LCBpbnQyeDMgeSkgewor
ICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWlu
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBtaW4oaW50Mng0IHgsIGludDJ4NCB5KSB7CisgICAgaW50
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVsz
XSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1b
M10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgbWluKGludDN4MiB4
LCBpbnQzeDIgeSkgeworICAgIGludDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWlu
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1p
bih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MyBtaW4oaW50M3gzIHgsIGludDN4
MyB5KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJd
WzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3g0IG1pbihpbnQzeDQg
eCwgaW50M3g0IHkpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
aW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0eDIgbWluKGludDR4MiB4LCBpbnQ0eDIgeSkgeworICAgIGludDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIG1pbihpbnQ0eDMgeCwgaW50NHgzIHkp
IHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWluKHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gbWluKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQg
bWluKGludDR4NCB4LCBpbnQ0eDQgeSkgeworICAgIGludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWlu
KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1p
bih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyIG1heChpbnQyIHgsIGludDIgeSkgeworICAgIGludDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBt
YXgoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgbWF4KGludDMgeCwg
aW50MyB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbWF4KGludDQgeCwg
aW50NCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyeDIgbWF4KGludDJ4MiB4LCBpbnQyeDIgeSkgeworICAgIGlu
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDMgbWF4KGludDJ4MyB4
LCBpbnQyeDMgeSkgeworICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBtYXgoaW50Mng0IHgsIGludDJ4
NCB5KSB7CisgICAgaW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
eDIgbWF4KGludDN4MiB4LCBpbnQzeDIgeSkgeworICAgIGludDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1h
eCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBt
YXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MyBtYXgo
aW50M3gzIHgsIGludDN4MyB5KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
M3g0IG1heChpbnQzeDQgeCwgaW50M3g0IHkpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgbWF4KGludDR4MiB4LCBpbnQ0eDIgeSkgeworICAg
IGludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIG1heChpbnQ0
eDMgeCwgaW50NHgzIHkpIHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBd
LCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gbWF4KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0eDQgbWF4KGludDR4NCB4LCBpbnQ0eDQgeSkgeworICAgIGludDR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1h
eCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsy
XVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBt
YXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgbWluKGhhbGYgeCwgaGFsZiB5
KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitoYWxmMiBtaW4oaGFsZjIgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVsw
XSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBtaW4oaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0s
IHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgbWluKGhhbGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4
WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0
WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG1p
bihoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtaW4oaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsKKyAgICBo
YWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4NCBtaW4oaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxm
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVsz
XSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1b
M10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1pbihoYWxmM3gy
IHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0s
IHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG1pbihoYWxmM3gzIHgs
IGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1p
bihoYWxmM3g0IHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWlu
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1p
bih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG1pbihoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAg
IGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4
WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4o
eFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbWluKGhh
bGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsx
XVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDQgbWluKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1b
M10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFd
WzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhb
M11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYXgoaGFsZjIg
eCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBtYXgoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4
KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgbWF4KGhhbGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAg
cmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIG1heChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtYXgoaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsK
KyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
YXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBtYXgoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAg
ICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgo
eFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4
KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1heCho
YWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhb
Ml1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG1heChoYWxm
M3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IG1heChoYWxmM3g0IHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG1heChoYWxmNHgyIHgsIGhhbGY0eDIgeSkg
eworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwg
eVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMg
bWF4KGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1h
eCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
YXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
bWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbWF4KGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1h
eCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IG1p
bihmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitmbG9h
dDIgbWluKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG1pbihmbG9hdDMgeCwgZmxvYXQzIHkp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhb
Ml0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbWluKGZsb2F0NCB4LCBm
bG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtaW4oZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkg
eworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IG1pbihmbG9hdDJ4MyB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBtaW4oZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwgeVswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10sIHlbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtaW4oZmxvYXQzeDIgeCwgZmxvYXQzeDIg
eSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbWluKGZsb2F0M3gzIHgsIGZsb2F0M3gz
IHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG1pbihmbG9h
dDN4NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MiBtaW4oZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkgeworICAg
IGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWlu
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtaW4o
ZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWlu
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1p
bih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBt
aW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhbM11bMV0sIHlb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbWluKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsK
KyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
bWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwg
eVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0s
IHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNd
ID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
bWF4KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG1heChmbG9hdDMgeCwgZmxvYXQzIHkpIHsK
KyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0s
IHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbWF4KGZsb2F0NCB4LCBmbG9h
dDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtYXgoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkgewor
ICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
YXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG1h
eChmbG9hdDJ4MyB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
bWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBt
YXgoZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtYXgoZmxvYXQzeDIgeCwgZmxvYXQzeDIgeSkg
eworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbWF4KGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG1heChmbG9hdDN4
NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBtYXgoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtYXgoZmxv
YXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtYXgo
eFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbWF4KGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1h
eCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIGNs
YW1wKHVjaGFyIHgsIHVjaGFyIGxvd2VyLCB1Y2hhciB1cHBlcikgeworICAgIHJldHVybiBtYXgo
bWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQordWNoYXIyIGNsYW1wKHVjaGFyMiB4LCB1Y2hhcjIg
eSwgdWNoYXIyIHopIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1w
KHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgY2xhbXAodWNoYXIzIHgsIHVjaGFy
MyB5LCB1Y2hhcjMgeikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBjbGFtcCh1Y2hhcjQgeCwgdWNoYXI0IHksIHVjaGFyNCB6
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBd
LCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFt
cCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1c2hvcnQgY2xh
bXAodXNob3J0IHgsIHVzaG9ydCBsb3dlciwgdXNob3J0IHVwcGVyKSB7CisgICAgcmV0dXJuIG1h
eChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9Cit1c2hvcnQyIGNsYW1wKHVzaG9ydDIgeCwgdXNo
b3J0MiB5LCB1c2hvcnQyIHopIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5
WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBjbGFtcCh1c2hvcnQz
IHgsIHVzaG9ydDMgeSwgdXNob3J0MyB6KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAo
eFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgY2xhbXAodXNob3J0NCB4LCB1c2hv
cnQ0IHksIHVzaG9ydDQgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlb
MV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAg
IHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3VpbnQgY2xhbXAodWludCB4LCB1aW50IGxvd2VyLCB1aW50IHVwcGVyKSB7CisgICAg
cmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9Cit1aW50MiBjbGFtcCh1aW50MiB4
LCB1aW50MiB5LCB1aW50MiB6KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlb
MV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBjbGFtcCh1aW50MyB4LCB1
aW50MyB5LCB1aW50MyB6KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNs
YW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBjbGFtcCh1aW50NCB4LCB1aW50NCB5LCB1aW50NCB6KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhb
M10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIgY2xhbXAoY2hh
ciB4LCBjaGFyIGxvd2VyLCBjaGFyIHVwcGVyKSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIs
IHgpLCBsb3dlcik7Cit9CitjaGFyMiBjbGFtcChjaGFyMiB4LCBjaGFyMiB5LCBjaGFyMiB6KSB7
CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyMyBjbGFtcChjaGFyMyB4LCBjaGFyMyB5LCBjaGFyMyB6KSB7Cisg
ICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0p
OworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NCBjbGFtcChjaGFyNCB4LCBjaGFyNCB5LCBjaGFyNCB6KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9
IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlb
Ml0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3Nob3J0IGNsYW1wKHNob3J0IHgsIHNob3J0IGxvd2VyLCBz
aG9ydCB1cHBlcikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQor
c2hvcnQyIGNsYW1wKHNob3J0MiB4LCBzaG9ydDIgeSwgc2hvcnQyIHopIHsKKyAgICBzaG9ydDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJl
c3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDMgY2xhbXAoc2hvcnQzIHgsIHNob3J0MyB5LCBzaG9ydDMgeikgeworICAgIHNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAg
cmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xh
bXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBjbGFt
cChzaG9ydDQgeCwgc2hvcnQ0IHksIHNob3J0NCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
bGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJd
LCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitpbnQgY2xhbXAoaW50IHgsIGludCBsb3dlciwgaW50IHVwcGVy
KSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9CitpbnQyIGNsYW1w
KGludDIgeCwgaW50MiB5LCBpbnQyIHopIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFd
LCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBjbGFtcChpbnQzIHgs
IGludDMgeSwgaW50MyB6KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgY2xhbXAoaW50NCB4LCBpbnQ0IHksIGludDQgeikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9
IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlb
M10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgY2xhbXAoaGFsZiB4LCBo
YWxmIGxvd2VyLCBoYWxmIHVwcGVyKSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBs
b3dlcik7Cit9CitoYWxmMiBjbGFtcChoYWxmMiB4LCBoYWxmMiB5LCBoYWxmMiB6KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyBjbGFtcChoYWxmMyB4LCBoYWxmMyB5LCBoYWxmMyB6KSB7CisgICAgaGFs
ZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAg
IHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNs
YW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBjbGFt
cChoYWxmNCB4LCBoYWxmNCB5LCBoYWxmNCB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1w
KHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpb
Ml0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIGNsYW1wKGhhbGYyeDIgeCwgaGFsZjJ4MiB5LCBoYWxmMngy
IHopIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBjbGFtcChoYWxm
MngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
Y2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDQgY2xhbXAoaGFsZjJ4NCB4LCBoYWxmMng0IHksIGhhbGYyeDQgeikgeworICAgIGhh
bGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNsYW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGNsYW1wKGhhbGYzeDIgeCwgaGFsZjN4MiB5LCBoYWxmM3gy
IHopIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBjbGFtcChoYWxmM3gzIHgs
IGhhbGYzeDMgeSwgaGFsZjN4MyB6KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xh
bXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAo
eFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xhbXAoeFsy
XVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwg
eVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgY2xhbXAo
aGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNs
YW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGNsYW1w
KHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNsYW1wKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNsYW1wKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGNsYW1wKHhbMl1bM10s
IHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGNsYW1w
KGhhbGY0eDIgeCwgaGFsZjR4MiB5LCBoYWxmNHgyIHopIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBj
bGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBjbGFtcChoYWxmNHgzIHgsIGhhbGY0eDMgeSwgaGFsZjR4MyB6KSB7CisgICAgaGFs
ZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gY2xhbXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gY2xhbXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
Y2xhbXAoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDQgY2xhbXAoaGFsZjR4NCB4LCBoYWxmNHg0IHksIGhhbGY0eDQgeikgeworICAgIGhh
bGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNsYW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGNsYW1wKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGNsYW1wKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNsYW1wKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGNsYW1wKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGNs
YW1wKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNsYW1w
KHhbM11bMV0sIHlbM11bMV0sIHpbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNsYW1wKHhb
M11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGNsYW1wKHhbM11b
M10sIHlbM11bM10sIHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IGNs
YW1wKGZsb2F0IHgsIGZsb2F0IGxvd2VyLCBmbG9hdCB1cHBlcikgeworICAgIHJldHVybiBtYXgo
bWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQorZmxvYXQyIGNsYW1wKGZsb2F0MiB4LCBmbG9hdDIg
eSwgZmxvYXQyIHopIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1w
KHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY2xhbXAoZmxvYXQzIHgsIGZsb2F0
MyB5LCBmbG9hdDMgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBjbGFtcChmbG9hdDQgeCwgZmxvYXQ0IHksIGZsb2F0NCB6
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBd
LCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFt
cCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgY2xh
bXAoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSwgZmxvYXQyeDIgeikgeworICAgIGZsb2F0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgY2xhbXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwg
ZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
bGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFt
cCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFd
WzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFd
LCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5
WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgY2xhbXAo
ZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSwgZmxvYXQyeDQgeikgeworICAgIGZsb2F0Mng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDIgY2xhbXAoZmxvYXQzeDIgeCwgZmxvYXQzeDIgeSwgZmxvYXQzeDIgeikgewor
ICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5
WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBd
WzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBd
LCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgY2xhbXAoZmxvYXQzeDMgeCwgZmxv
YXQzeDMgeSwgZmxvYXQzeDMgeikgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
bGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFt
cCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4
WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFd
LCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5
WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgY2xhbXAo
ZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
bGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFt
cCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4
WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
Y2xhbXAoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSwgZmxvYXQ0eDIgeikgeworICAgIGZsb2F0NHgy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgY2xhbXAoZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSwgZmxvYXQ0eDMg
eikgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5
WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFd
WzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBjbGFtcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgY2xhbXAoZmxvYXQ0eDQgeCwgZmxvYXQ0eDQgeSwgZmxv
YXQ0eDQgeikgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFt
cCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNd
LCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJd
LCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBjbGFtcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBjbGFtcCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitoYWxmIG1vZGYoaGFsZiB4LCB0aHJlYWQgaGFsZiogaXApIHsKKyAgICB1aW50
IHJlc3VsdCA9IHVpbnQoeCk7CisgICAgKmlwID0geCAtIGhhbGYocmVzdWx0KTsKKyAgICByZXR1
cm4gaGFsZihyZXN1bHQpOworfQoraGFsZjIgbW9kZihoYWxmMiB4LCB0aHJlYWQgaGFsZjIqIHkp
IHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlb
MF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBtb2RmKGhhbGYzIHgsIHRocmVhZCBoYWxmMyogeSkgeworICAg
IGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtb2RmKHhbMF0sICYoKCp5KVswXSkpOwor
ICAgIHJlc3VsdFsxXSA9IG1vZGYoeFsxXSwgJigoKnkpWzFdKSk7CisgICAgcmVzdWx0WzJdID0g
bW9kZih4WzJdLCAmKCgqeSlbMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbW9k
ZihoYWxmNCB4LCB0aHJlYWQgaGFsZjQqIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhb
MV0sICYoKCp5KVsxXSkpOworICAgIHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwgJigoKnkpWzJdKSk7
CisgICAgcmVzdWx0WzNdID0gbW9kZih4WzNdLCAmKCgqeSlbM10pKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4MiBtb2RmKGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0p
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAg
IHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjJ4MyBtb2RmKGhhbGYyeDMgeCwgaGFsZjJ4MyB5KSB7CisgICAgaGFsZjJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJl
c3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
b2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsx
XVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbW9k
ZihoYWxmMng0IHgsIGhhbGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2Rm
KHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9IG1vZGYoeFswXVsz
XSwgJigoKnkpWzBdWzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgq
eSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsx
XSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10pKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4MiBtb2RmKGhhbGYzeDIgeCwgaGFsZjN4MiB5KSB7CisgICAg
aGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkp
OworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9
IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgbW9kZihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1v
ZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFd
WzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYo
KCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsyXVswXSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJd
WzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0gbW9kZih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhbMl1bMl0sICYoKCp5KVsyXVsyXSkpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1vZGYoaGFsZjN4NCB4LCBoYWxmM3g0IHkpIHsKKyAg
ICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5
KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFswXVsxXSwgJigoKnkpWzBdWzFd
KSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBtb2RmKHhbMF1bM10sICYoKCp5KVswXVszXSkpOworICAgIHJlc3Vs
dFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2Rm
KHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsxXVszXSA9IG1vZGYoeFsxXVsz
XSwgJigoKnkpWzFdWzNdKSk7CisgICAgcmVzdWx0WzJdWzBdID0gbW9kZih4WzJdWzBdLCAmKCgq
eSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtb2RmKHhbMl1bMV0sICYoKCp5KVsyXVsx
XSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gbW9kZih4WzJdWzNdLCAmKCgqeSlbMl1bM10pKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjR4MiBtb2RmKGhhbGY0eDIgeCwgaGFsZjR4MiB5KSB7CisgICAg
aGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkp
OworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9
IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4
WzNdWzBdLCAmKCgqeSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0s
ICYoKCp5KVszXVsxXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG1vZGYoaGFs
ZjR4MyB4LCBoYWxmNHgzIHkpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1v
ZGYoeFswXVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBd
WzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYo
KCp5KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFd
WzFdKSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJl
c3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbM11bMF0gPSBt
b2RmKHhbM11bMF0sICYoKCp5KVszXVswXSkpOworICAgIHJlc3VsdFszXVsxXSA9IG1vZGYoeFsz
XVsxXSwgJigoKnkpWzNdWzFdKSk7CisgICAgcmVzdWx0WzNdWzJdID0gbW9kZih4WzNdWzJdLCAm
KCgqeSlbM11bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBtb2RmKGhhbGY0
eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2Rm
KHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsy
XSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNdLCAmKCgq
eSlbMF1bM10pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsxXVsw
XSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICByZXN1
bHRbMV1bM10gPSBtb2RmKHhbMV1bM10sICYoKCp5KVsxXVszXSkpOworICAgIHJlc3VsdFsyXVsw
XSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0gbW9k
Zih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhbMl1b
Ml0sICYoKCp5KVsyXVsyXSkpOworICAgIHJlc3VsdFsyXVszXSA9IG1vZGYoeFsyXVszXSwgJigo
KnkpWzJdWzNdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgqeSlbM11b
MF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsxXSkpOwor
ICAgIHJlc3VsdFszXVsyXSA9IG1vZGYoeFszXVsyXSwgJigoKnkpWzNdWzJdKSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbW9kZih4WzNdWzNdLCAmKCgqeSlbM11bM10pKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitmbG9hdCBtb2RmKGZsb2F0IHgsIHRocmVhZCBmbG9hdCogaXApIHsKKyAgICB1
aW50IHJlc3VsdCA9IHVpbnQoeCk7CisgICAgKmlwID0geCAtIGZsb2F0KHJlc3VsdCk7CisgICAg
cmV0dXJuIGZsb2F0KHJlc3VsdCk7Cit9CitmbG9hdDIgbW9kZihmbG9hdDIgeCwgdGhyZWFkIGZs
b2F0MiogeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBd
LCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbW9kZihmbG9hdDMgeCwgdGhyZWFkIGZsb2F0
MyogeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBdLCAm
KCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOworICAg
IHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwgJigoKnkpWzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBtb2RmKGZsb2F0NCB4LCB0aHJlYWQgZmxvYXQ0KiB5KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtb2RmKHhbMF0sICYoKCp5KVswXSkpOworICAgIHJl
c3VsdFsxXSA9IG1vZGYoeFsxXSwgJigoKnkpWzFdKSk7CisgICAgcmVzdWx0WzJdID0gbW9kZih4
WzJdLCAmKCgqeSlbMl0pKTsKKyAgICByZXN1bHRbM10gPSBtb2RmKHhbM10sICYoKCp5KVszXSkp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtb2RmKGZsb2F0MngyIHgsIGZsb2F0
MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4
WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0s
ICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkp
WzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0p
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbW9kZihmbG9hdDJ4MyB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYo
eFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFd
LCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5
KVswXVsyXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBd
KSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCBtb2RmKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgq
eSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsx
XSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigoKnkpWzBdWzJdKSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNdLCAmKCgqeSlbMF1bM10pKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsx
XSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9k
Zih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICByZXN1bHRbMV1bM10gPSBtb2RmKHhbMV1b
M10sICYoKCp5KVsxXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtb2Rm
KGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1v
ZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFd
WzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYo
KCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJd
WzFdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG1vZGYoZmxvYXQzeDMgeCwg
ZmxvYXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
b2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFsw
XVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAm
KCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsx
XVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsy
XVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDQgbW9kZihmbG9hdDN4NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9
IG1vZGYoeFswXVszXSwgJigoKnkpWzBdWzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4
WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0s
ICYoKCp5KVsxXVsxXSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkp
WzFdWzJdKSk7CisgICAgcmVzdWx0WzFdWzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10p
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAg
IHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0
WzJdWzJdID0gbW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbMl1bM10g
PSBtb2RmKHhbMl1bM10sICYoKCp5KVsyXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBtb2RmKGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3Vs
dFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2Rm
KHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsx
XSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgq
eSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsx
XSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtb2RmKGZsb2F0NHgzIHgsIGZs
b2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9k
Zih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1b
MV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigo
KnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1b
MF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOwor
ICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbW9kZih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBtb2RmKHhbMl1bMV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1v
ZGYoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNd
WzBdLCAmKCgqeSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYo
KCp5KVszXVsxXSkpOworICAgIHJlc3VsdFszXVsyXSA9IG1vZGYoeFszXVsyXSwgJigoKnkpWzNd
WzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IG1vZGYoZmxvYXQ0eDQgeCwg
ZmxvYXQ0eDQgeSkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
b2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFsw
XVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAm
KCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMF1bM10gPSBtb2RmKHhbMF1bM10sICYoKCp5KVsw
XVszXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsx
XVszXSA9IG1vZGYoeFsxXVszXSwgJigoKnkpWzFdWzNdKSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bW9kZih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtb2RmKHhb
Ml1bMV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYoeFsyXVsyXSwg
JigoKnkpWzJdWzJdKSk7CisgICAgcmVzdWx0WzJdWzNdID0gbW9kZih4WzJdWzNdLCAmKCgqeSlb
Ml1bM10pKTsKKyAgICByZXN1bHRbM11bMF0gPSBtb2RmKHhbM11bMF0sICYoKCp5KVszXVswXSkp
OworICAgIHJlc3VsdFszXVsxXSA9IG1vZGYoeFszXVsxXSwgJigoKnkpWzNdWzFdKSk7CisgICAg
cmVzdWx0WzNdWzJdID0gbW9kZih4WzNdWzJdLCAmKCgqeSlbM11bMl0pKTsKKyAgICByZXN1bHRb
M11bM10gPSBtb2RmKHhbM11bM10sICYoKCp5KVszXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3VjaGFyIGNvdW50X2JpdHModWNoYXIgeCkgeworICAgIHJldHVybiAoKHggfCAoMSA8
PCAwKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEpKSA9PSAwID8g
MCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMikpID09IDAgPyAwIDogMSkgKworICAg
ICAgICAgICAoKHggfCAoMSA8PCAzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8
ICgxIDw8IDQpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNSkpID09
IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSAr
CisgICAgICAgICAgICgoeCB8ICgxIDw8IDcpKSA9PSAwID8gMCA6IDEpOworfQordWNoYXIgY291
bnRfYml0cyh1c2hvcnQgeCkgeworICAgIHJldHVybiAoKHggfCAoMSA8PCAwKSkgPT0gMCA/IDAg
OiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAg
ICAgICAgKCh4IHwgKDEgPDwgMikpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAo
MSA8PCAzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDQpKSA9PSAw
ID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNSkpID09IDAgPyAwIDogMSkgKwor
ICAgICAgICAgICAoKHggfCAoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgo
eCB8ICgxIDw8IDcpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgOCkp
ID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA5KSkgPT0gMCA/IDAgOiAx
KSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEwKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAg
ICAgICgoeCB8ICgxIDw8IDExKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgx
IDw8IDEyKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEzKSkgPT0g
MCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDE0KSkgPT0gMCA/IDAgOiAxKSAr
CisgICAgICAgICAgICgoeCB8ICgxIDw8IDE1KSkgPT0gMCA/IDAgOiAxKTsKK30KK3VjaGFyIGNv
dW50X2JpdHModWludCB4KSB7CisgICAgcmV0dXJuICgoeCB8ICgxIDw8IDApKSA9PSAwID8gMCA6
IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMSkpID09IDAgPyAwIDogMSkgKworICAgICAg
ICAgICAoKHggfCAoMSA8PCAyKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgx
IDw8IDMpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNCkpID09IDAg
PyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA1KSkgPT0gMCA/IDAgOiAxKSArCisg
ICAgICAgICAgICgoeCB8ICgxIDw8IDYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4
IHwgKDEgPDwgNykpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA4KSkg
PT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDkpKSA9PSAwID8gMCA6IDEp
ICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgKDEgPDwgMTEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEg
PDwgMTIpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTMpKSA9PSAw
ID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTQpKSA9PSAwID8gMCA6IDEpICsK
KyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTUpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAg
KCh4IHwgKDEgPDwgMTYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwg
MTcpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTgpKSA9PSAwID8g
MCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTkpKSA9PSAwID8gMCA6IDEpICsKKyAg
ICAgICAgICAgKCh4IHwgKDEgPDwgMjApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4
IHwgKDEgPDwgMjEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjIp
KSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjMpKSA9PSAwID8gMCA6
IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjQpKSA9PSAwID8gMCA6IDEpICsKKyAgICAg
ICAgICAgKCh4IHwgKDEgPDwgMjUpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwg
KDEgPDwgMjYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjcpKSA9
PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjgpKSA9PSAwID8gMCA6IDEp
ICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjkpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgKDEgPDwgMzApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEg
PDwgMzEpKSA9PSAwID8gMCA6IDEpOworfQordWNoYXIgcmV2ZXJzZWJpdHModWNoYXIgeCkgewor
ICAgIHJldHVybiAoKHggJiAoMSA8PCAwKSkgPDwgNykgfAorICAgICAgICAgICAoKHggJiAoMSA8
PCAxKSkgPDwgNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyKSkgPDwgMykgfAorICAgICAg
ICAgICAoKHggJiAoMSA8PCAzKSkgPDwgMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA0KSkg
Pj4gMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA1KSkgPj4gMykgfAorICAgICAgICAgICAo
KHggJiAoMSA8PCA2KSkgPj4gNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA3KSkgPj4gNyk7
Cit9Cit1c2hvcnQgcmV2ZXJzZWJpdHModXNob3J0IHgpIHsKKyAgICByZXR1cm4gKCh4ICYgKDEg
PDwgMCkpIDw8IDE1KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEpKSA8PCAxMykgfAorICAg
ICAgICAgICAoKHggJiAoMSA8PCAyKSkgPDwgMTEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwg
MykpIDw8IDkpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNCkpIDw8IDcpIHwKKyAgICAgICAg
ICAgKCh4ICYgKDEgPDwgNSkpIDw8IDUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNikpIDw8
IDMpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNykpIDw8IDEpIHwKKyAgICAgICAgICAgKCh4
ICYgKDEgPDwgOCkpID4+IDEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpID4+IDMpIHwK
KyAgICAgICAgICAgKCh4ICYgKDEgPDwgMTApKSA+PiA1KSB8CisgICAgICAgICAgICgoeCAmICgx
IDw8IDExKSkgPj4gNykgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAxMikpID4+IDkpIHwKKyAg
ICAgICAgICAgKCh4ICYgKDEgPDwgMTMpKSA+PiAxMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8
PCAxNCkpID4+IDEzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE1KSkgPj4gMTUpOworfQor
dWludCByZXZlcnNlYml0cyh1aW50IHgpIHsKKyAgICByZXR1cm4gKCh4ICYgKDEgPDwgMCkpIDw8
IDMxKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEpKSA8PCAyOSkgfAorICAgICAgICAgICAo
KHggJiAoMSA8PCAyKSkgPDwgMjcpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMykpIDw8IDI1
KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDQpKSA8PCAyMykgfAorICAgICAgICAgICAoKHgg
JiAoMSA8PCA1KSkgPDwgMjEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNikpIDw8IDE5KSB8
CisgICAgICAgICAgICgoeCAmICgxIDw8IDcpKSA8PCAxNykgfAorICAgICAgICAgICAoKHggJiAo
MSA8PCA4KSkgPDwgMTUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpIDw8IDEzKSB8Cisg
ICAgICAgICAgICgoeCAmICgxIDw8IDEwKSkgPDwgMTEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEg
PDwgMTEpKSA8PCA5KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEyKSkgPDwgNykgfAorICAg
ICAgICAgICAoKHggJiAoMSA8PCAxMykpIDw8IDUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwg
MTQpKSA8PCAzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE1KSkgPDwgMSkgfAorICAgICAg
ICAgICAoKHggJiAoMSA8PCAxNikpID4+IDEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMTcp
KSA+PiAzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE4KSkgPj4gNSkgfAorICAgICAgICAg
ICAoKHggJiAoMSA8PCAxOSkpID4+IDcpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMjApKSA+
PiA5KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDIxKSkgPj4gMTEpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjIpKSA+PiAxMykgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyMykpID4+
IDE1KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDI0KSkgPj4gMTcpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjUpKSA+PiAxOSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyNikpID4+
IDIxKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDI3KSkgPj4gMjMpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjgpKSA+PiAyNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyOSkpID4+
IDI3KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDMwKSkgPj4gMjkpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMzEpKSA+PiAzMSk7Cit9Cit1Y2hhcjIgY291bnRfYml0cyh1Y2hhcjIgeCkg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjMgY291bnRfYml0cyh1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRz
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBjb3VudF9iaXRzKHVjaGFyNCB4KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNv
dW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY291bnRfYml0cyh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjJ4MiBjb3VudF9iaXRzKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
b3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXIyeDMgY291bnRfYml0cyh1Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
b3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjJ4NCBjb3VudF9iaXRzKHVjaGFyMng0IHgpIHsKKyAgICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
b3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2Jp
dHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBjb3VudF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjN4MiBjb3VudF9iaXRzKHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2Jp
dHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIGNv
dW50X2JpdHModWNoYXIzeDMgeCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2Jp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGNvdW50X2JpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRf
Yml0cyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDQgY291bnRfYml0
cyh1Y2hhcjN4NCB4KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGNvdW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRf
Yml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gY291bnRfYml0cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3Vu
dF9iaXRzKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBjb3VudF9i
aXRzKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3Vu
dF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4
MyBjb3VudF9iaXRzKHVjaGFyNHgzIHgpIHsKKyAgICB1Y2hhcjR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3Vu
dF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNv
dW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGNvdW50X2JpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NHg0IGNvdW50X2JpdHModWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNv
dW50X2JpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGNvdW50X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Y291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gY291bnRfYml0cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9i
aXRzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gY291bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBjb3VudF9iaXRzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIGNv
dW50X2JpdHModXNob3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIGNvdW50X2JpdHModXNob3J0MyB4KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2Jp
dHMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgY291bnRfYml0cyh1c2hv
cnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRz
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvdW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gY291bnRfYml0cyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgY291bnRfYml0cyh1c2hvcnQyeDIgeCkg
eworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291
bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MngzIGNvdW50
X2JpdHModXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Y291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgY291bnRfYml0cyh1c2hvcnQy
eDQgeCkgeworICAgIHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3VudF9iaXRzKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3Vu
dF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgY291bnRf
Yml0cyh1c2hvcnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRz
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBjb3VudF9iaXRzKHVzaG9ydDN4
MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3VudF9i
aXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50
X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IGNvdW50X2JpdHModXNob3J0M3g0IHgp
IHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNv
dW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY291bnRfYml0
cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Y291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3VudF9iaXRzKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgY291bnRfYml0cyh1c2hvcnQ0
eDIgeCkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3Vu
dF9iaXRzKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgY291bnRf
Yml0cyh1c2hvcnQ0eDMgeCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRz
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2Jp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGNvdW50X2JpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4NCBj
b3VudF9iaXRzKHVzaG9ydDR4NCB4KSB7CisgICAgdXNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50
X2JpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNvdW50X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291
bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gY291bnRfYml0cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9iaXRz
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gY291bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBj
b3VudF9iaXRzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBjb3VudF9i
aXRzKHVpbnQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRf
Yml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50MyBjb3VudF9iaXRzKHVpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IGNvdW50X2JpdHModWludDQgeCkgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGNvdW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY291bnRfYml0cyh4WzJdKTsK
KyAgICByZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MngyIGNvdW50X2JpdHModWludDJ4MiB4KSB7CisgICAgdWludDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDJ4MyBjb3VudF9iaXRzKHVpbnQyeDMgeCkgeworICAgIHVpbnQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
b3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
Mng0IGNvdW50X2JpdHModWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3Vu
dF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBjb3VudF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50M3gyIGNvdW50X2JpdHModWludDN4MiB4KSB7CisgICAgdWludDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50
X2JpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDMgY291bnRfYml0
cyh1aW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2Jp
dHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDN4NCBjb3VudF9iaXRzKHVpbnQzeDQg
eCkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNv
dW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY291bnRfYml0
cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Y291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3VudF9iaXRzKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGNvdW50X2JpdHModWludDR4MiB4
KSB7CisgICAgdWludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291
bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRz
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGNvdW50X2JpdHModWlu
dDR4MyB4KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3Vu
dF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvdW50X2JpdHMo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgY291bnRfYml0cyh1aW50
NHg0IHgpIHsKKyAgICB1aW50NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3VudF9i
aXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvdW50
X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY291bnRfYml0cyh4
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9iaXRzKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY291
bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjb3VudF9iaXRzKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyMiByZXZlcnNlYml0cyh1Y2hhcjIgeCkg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyMyByZXZlcnNlYml0cyh1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJz
ZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCByZXZlcnNlYml0cyh1Y2hhcjQgeCkgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gcmV2ZXJzZWJpdHMoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMngyIHJldmVyc2ViaXRzKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIHJldmVyc2ViaXRzKHVjaGFyMngz
IHgpIHsKKyAgICB1Y2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJp
dHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMng0IHJldmVyc2ViaXRzKHVjaGFyMng0IHgpIHsKKyAg
ICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJz
ZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJp
dHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gyIHJldmVyc2ViaXRz
KHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2
ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIHJldmVyc2ViaXRzKHVjaGFyM3gz
IHgpIHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJp
dHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
cmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IHJldmVyc2ViaXRzKHVjaGFy
M3g0IHgpIHsKKyAgICB1Y2hhcjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJz
ZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJp
dHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
cmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgyIHJl
dmVyc2ViaXRzKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJz
ZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJp
dHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNHgzIHJldmVyc2ViaXRzKHVjaGFyNHgzIHgpIHsKKyAgICB1Y2hhcjR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJz
ZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJp
dHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHg0IHJldmVyc2ViaXRzKHVjaGFyNHg0IHgpIHsK
KyAgICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2
ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJz
ZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJp
dHMoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmV2ZXJzZWJpdHMo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgcmV2ZXJzZWJpdHModXNo
b3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJp
dHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDMgcmV2ZXJzZWJpdHModXNob3J0MyB4KSB7CisgICAgdXNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgcmV2ZXJzZWJpdHModXNob3J0NCB4
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
cmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gcmV2ZXJzZWJpdHMoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MiByZXZlcnNlYml0cyh1c2hvcnQyeDIgeCkg
eworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MyBy
ZXZlcnNlYml0cyh1c2hvcnQyeDMgeCkgeworICAgIHVzaG9ydDJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2
ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4NCByZXZlcnNl
Yml0cyh1c2hvcnQyeDQgeCkgeworICAgIHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDN4MiByZXZlcnNlYml0cyh1c2hvcnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDN4MyByZXZlcnNlYml0cyh1c2hvcnQzeDMgeCkgeworICAgIHVzaG9ydDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJp
dHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDN4NCByZXZlcnNlYml0cyh1c2hvcnQzeDQgeCkgeworICAgIHVzaG9ydDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4MiByZXZlcnNlYml0cyh1c2hvcnQ0eDIgeCkg
eworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2
ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4MyByZXZl
cnNlYml0cyh1c2hvcnQ0eDMgeCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJz
ZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJp
dHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDR4NCByZXZlcnNlYml0cyh1c2hvcnQ0eDQgeCkgeworICAgIHVzaG9ydDR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmV2ZXJzZWJpdHMoeFszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIHJldmVyc2ViaXRzKHVpbnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIHJl
dmVyc2ViaXRzKHVpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
cmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IHJldmVyc2ViaXRzKHVpbnQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gcmV2ZXJzZWJpdHMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDIgcmV2
ZXJzZWJpdHModWludDJ4MiB4KSB7CisgICAgdWludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQyeDMgcmV2ZXJzZWJpdHModWludDJ4MyB4KSB7CisgICAgdWludDJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJz
ZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQy
eDQgcmV2ZXJzZWJpdHModWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2
ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzeDIgcmV2ZXJzZWJpdHModWludDN4MiB4KSB7CisgICAgdWludDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzeDMgcmV2ZXJzZWJpdHModWludDN4MyB4KSB7CisgICAgdWludDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2
ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzeDQgcmV2ZXJzZWJpdHModWludDN4NCB4KSB7CisgICAgdWludDN4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2
ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0eDIgcmV2ZXJzZWJpdHModWludDR4MiB4KSB7CisgICAgdWludDR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJz
ZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgcmV2ZXJzZWJpdHModWludDR4MyB4KSB7
CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJp
dHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgcmV2ZXJzZWJpdHMo
dWludDR4NCB4KSB7CisgICAgdWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2
ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJz
ZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJp
dHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
cmV2ZXJzZWJpdHMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordWNoYXIgZmly
c3RiaXRoaWdoKHVjaGFyIHgpIHsKKyAgICByZXR1cm4gKHggJiAoMSA8PCA3KSkgIT0gMCA/IDAg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDYpKSAhPSAwID8gMSA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgNSkpICE9IDAgPyAyIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA0KSkgIT0gMCA/IDMg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDMpKSAhPSAwID8gNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMikpICE9IDAgPyA1IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxKSkgIT0gMCA/IDYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDApKSAhPSAwID8gNyA6IDgpKSkpKSkpOworfQordXNo
b3J0IGZpcnN0Yml0aGlnaCh1c2hvcnQgeCkgeworICAgIHJldHVybiAoeCAmICgxIDw8IDE1KSkg
IT0gMCA/IDAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE0KSkgIT0gMCA/IDEgOgorICAgICAg
ICAgICgoeCAmICgxIDw8IDEzKSkgIT0gMCA/IDIgOgorICAgICAgICAgICgoeCAmICgxIDw8IDEy
KSkgIT0gMCA/IDMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDExKSkgIT0gMCA/IDQgOgorICAg
ICAgICAgICgoeCAmICgxIDw8IDEwKSkgIT0gMCA/IDUgOgorICAgICAgICAgICgoeCAmICgxIDw8
IDkpKSAhPSAwID8gNiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOCkpICE9IDAgPyA3IDoKKyAg
ICAgICAgICAoKHggJiAoMSA8PCA3KSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAmICgxIDw8
IDYpKSAhPSAwID8gOSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9IDAgPyAxMCA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMykpICE9IDAgPyAxMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9IDAgPyAxMyA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMCkpICE9IDAgPyAxNSA6IDE2KSkpKSkpKSkpKSkpKSkpOworfQordWludCBmaXJzdGJp
dGhpZ2godWludCB4KSB7CisgICAgcmV0dXJuICh4ICYgKDEgPDwgMzEpKSAhPSAwID8gMCA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgMzApKSAhPSAwID8gMSA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMjkpKSAhPSAwID8gMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjgpKSAhPSAwID8gMyA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjcpKSAhPSAwID8gNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMjYpKSAhPSAwID8gNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjUpKSAhPSAwID8g
NiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjQpKSAhPSAwID8gNyA6CisgICAgICAgICAgKCh4
ICYgKDEgPDwgMjMpKSAhPSAwID8gOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjIpKSAhPSAw
ID8gOSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjEpKSAhPSAwID8gMTAgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDIwKSkgIT0gMCA/IDExIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxOSkp
ICE9IDAgPyAxMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTgpKSAhPSAwID8gMTMgOgorICAg
ICAgICAgICgoeCAmICgxIDw8IDE3KSkgIT0gMCA/IDE0IDoKKyAgICAgICAgICAoKHggJiAoMSA8
PCAxNikpICE9IDAgPyAxNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTUpKSAhPSAwID8gMTYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDE0KSkgIT0gMCA/IDE3IDoKKyAgICAgICAgICAoKHgg
JiAoMSA8PCAxMykpICE9IDAgPyAxOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTIpKSAhPSAw
ID8gMTkgOgorICAgICAgICAgICgoeCAmICgxIDw8IDExKSkgIT0gMCA/IDIwIDoKKyAgICAgICAg
ICAoKHggJiAoMSA8PCAxMCkpICE9IDAgPyAyMSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOSkp
ICE9IDAgPyAyMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOCkpICE9IDAgPyAyMyA6CisgICAg
ICAgICAgKCh4ICYgKDEgPDwgNykpICE9IDAgPyAyNCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwg
NikpICE9IDAgPyAyNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9IDAgPyAyNiA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAyNyA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMykpICE9IDAgPyAyOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9IDAgPyAyOSA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAzMCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMCkpICE9IDAgPyAzMSA6IDMyKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKTsK
K30KK2NoYXIgZmlyc3RiaXRoaWdoKGNoYXIgeCkgeworICAgIHJldHVybiBmaXJzdGJpdGhpZ2go
dWNoYXIoeCkpOworfQorc2hvcnQgZmlyc3RiaXRoaWdoKHNob3J0IHgpIHsKKyAgICByZXR1cm4g
Zmlyc3RiaXRoaWdoKHVzaG9ydCh4KSk7Cit9CitpbnQgZmlyc3RiaXRoaWdoKGludCB4KSB7Cisg
ICAgcmV0dXJuIGZpcnN0Yml0aGlnaCh1aW50KHgpKTsKK30KK3VjaGFyIGZpcnN0Yml0bG93KHVj
aGFyIHgpIHsKKyAgICByZXR1cm4gKHggJiAoMSA8PCAwKSkgIT0gMCA/IDcgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDEpKSAhPSAwID8gNiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9
IDAgPyA1IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAzKSkgIT0gMCA/IDQgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDQpKSAhPSAwID8gMyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9
IDAgPyAyIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA2KSkgIT0gMCA/IDEgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDcpKSAhPSAwID8gMCA6IDgpKSkpKSkpOworfQordXNob3J0IGZpcnN0Yml0
bG93KHVzaG9ydCB4KSB7CisgICAgcmV0dXJuICh4ICYgKDEgPDwgMCkpICE9IDAgPyAxNSA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMikpICE9IDAgPyAxMyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMykpICE9IDAgPyAxMiA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgNSkpICE9IDAgPyAxMCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNikpICE9IDAgPyA5
IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA3KSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDgpKSAhPSAwID8gNyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpICE9IDAgPyA2
IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMCkpICE9IDAgPyA1IDoKKyAgICAgICAgICAoKHgg
JiAoMSA8PCAxMSkpICE9IDAgPyA0IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMikpICE9IDAg
PyAzIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMykpICE9IDAgPyAyIDoKKyAgICAgICAgICAo
KHggJiAoMSA8PCAxNCkpICE9IDAgPyAxIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxNSkpICE9
IDAgPyAwIDogMTYpKSkpKSkpKSkpKSkpKSk7Cit9Cit1aW50IGZpcnN0Yml0bG93KHVpbnQgeCkg
eworICAgIHJldHVybiAoeCAmICgxIDw8IDApKSAhPSAwID8gMzEgOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDEpKSAhPSAwID8gMzAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDIpKSAhPSAwID8g
MjkgOgorICAgICAgICAgICgoeCAmICgxIDw8IDMpKSAhPSAwID8gMjggOgorICAgICAgICAgICgo
eCAmICgxIDw8IDQpKSAhPSAwID8gMjcgOgorICAgICAgICAgICgoeCAmICgxIDw8IDUpKSAhPSAw
ID8gMjYgOgorICAgICAgICAgICgoeCAmICgxIDw8IDYpKSAhPSAwID8gMjUgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDcpKSAhPSAwID8gMjQgOgorICAgICAgICAgICgoeCAmICgxIDw8IDgpKSAh
PSAwID8gMjMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDkpKSAhPSAwID8gMjIgOgorICAgICAg
ICAgICgoeCAmICgxIDw8IDEwKSkgIT0gMCA/IDIxIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAx
MSkpICE9IDAgPyAyMCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTIpKSAhPSAwID8gMTkgOgor
ICAgICAgICAgICgoeCAmICgxIDw8IDEzKSkgIT0gMCA/IDE4IDoKKyAgICAgICAgICAoKHggJiAo
MSA8PCAxNCkpICE9IDAgPyAxNyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTUpKSAhPSAwID8g
MTYgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE2KSkgIT0gMCA/IDE1IDoKKyAgICAgICAgICAo
KHggJiAoMSA8PCAxNykpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTgpKSAh
PSAwID8gMTMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE5KSkgIT0gMCA/IDEyIDoKKyAgICAg
ICAgICAoKHggJiAoMSA8PCAyMCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwg
MjEpKSAhPSAwID8gMTAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDIyKSkgIT0gMCA/IDkgOgor
ICAgICAgICAgICgoeCAmICgxIDw8IDIzKSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAmICgx
IDw8IDI0KSkgIT0gMCA/IDcgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI1KSkgIT0gMCA/IDYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDI2KSkgIT0gMCA/IDUgOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDI3KSkgIT0gMCA/IDQgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI4KSkgIT0gMCA/
IDMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI5KSkgIT0gMCA/IDIgOgorICAgICAgICAgICgo
eCAmICgxIDw8IDMwKSkgIT0gMCA/IDEgOgorICAgICAgICAgICgoeCAmICgxIDw8IDMxKSkgIT0g
MCA/IDAgOiAzMikpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSk7Cit9CitjaGFyIGZpcnN0
Yml0bG93KGNoYXIgeCkgeworICAgIHJldHVybiBmaXJzdGJpdGxvdyh1Y2hhcih4KSk7Cit9Citz
aG9ydCBmaXJzdGJpdGxvdyhzaG9ydCB4KSB7CisgICAgcmV0dXJuIGZpcnN0Yml0bG93KHVzaG9y
dCh4KSk7Cit9CitpbnQgZmlyc3RiaXRsb3coaW50IHgpIHsKKyAgICByZXR1cm4gZmlyc3RiaXRs
b3codWludCh4KSk7Cit9Cit1Y2hhcjIgZmlyc3RiaXRoaWdoKHVjaGFyMiB4KSB7CisgICAgdWNo
YXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjMgZmlyc3RiaXRoaWdoKHVjaGFyMyB4KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IGZpcnN0Yml0aGlnaCh1Y2hhcjQgeCkgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjJ4MiBmaXJzdGJpdGhpZ2godWNoYXIyeDIgeCkgeworICAgIHVjaGFyMngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIGZpcnN0Yml0aGlnaCh1
Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBmaXJzdGJpdGhpZ2godWNo
YXIyeDQgeCkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJz
dGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmly
c3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjN4MiBmaXJzdGJpdGhpZ2godWNoYXIzeDIgeCkgeworICAgIHVjaGFyM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXIzeDMgZmlyc3RiaXRoaWdoKHVjaGFyM3gzIHgpIHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyM3g0IGZpcnN0Yml0aGlnaCh1Y2hhcjN4NCB4KSB7CisgICAgdWNo
YXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0
aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJp
dGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBmaXJzdGJp
dGhpZ2godWNoYXI0eDIgeCkgeworICAgIHVjaGFyNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4MyBmaXJzdGJpdGhpZ2godWNoYXI0eDMgeCkgeworICAgIHVjaGFy
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhp
Z2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0
aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0eDQgZmlyc3RiaXRo
aWdoKHVjaGFyNHg0IHgpIHsKKyAgICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhp
Z2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7
CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQyIGZpcnN0Yml0aGlnaCh1c2hvcnQyIHgpIHsKKyAgICB1c2hvcnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQz
IGZpcnN0Yml0aGlnaCh1c2hvcnQzIHgpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBmaXJzdGJpdGhpZ2godXNob3J0NCB4KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2go
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQyeDIgZmlyc3RiaXRoaWdoKHVzaG9ydDJ4MiB4KSB7CisgICAgdXNo
b3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJp
dGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MyBmaXJzdGJp
dGhpZ2godXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJp
dGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgZmlyc3Ri
aXRoaWdoKHVzaG9ydDJ4NCB4KSB7CisgICAgdXNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgZmlyc3RiaXRoaWdoKHVzaG9ydDN4MiB4KSB7CisgICAg
dXNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0M3gzIGZpcnN0Yml0aGlnaCh1c2hvcnQzeDMgeCkgeworICAg
IHVzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmly
c3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4NCBmaXJzdGJpdGhpZ2godXNo
b3J0M3g0IHgpIHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
aXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gZmlyc3RiaXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0eDIgZmlyc3RiaXRoaWdoKHVzaG9ydDR4MiB4KSB7CisgICAgdXNob3J0NHgy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdo
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgZmlyc3RiaXRoaWdo
KHVzaG9ydDR4MyB4KSB7CisgICAgdXNob3J0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhp
Z2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NHg0IGZpcnN0Yml0aGlnaCh1c2hvcnQ0eDQgeCkgeworICAgIHVzaG9y
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJp
dGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhp
Z2godWludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJp
dGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGhpZ2godWludDMgeCkgeworICAgIHVpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZmlyc3RiaXRoaWdoKHVpbnQ0IHgp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBm
aXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIGZpcnN0Yml0aGlnaCh1aW50MngyIHgpIHsK
KyAgICB1aW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDMgZmly
c3RiaXRoaWdoKHVpbnQyeDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJp
dGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mng0IGZpcnN0Yml0
aGlnaCh1aW50Mng0IHgpIHsKKyAgICB1aW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50M3gyIGZpcnN0Yml0aGlnaCh1aW50M3gyIHgpIHsKKyAgICB1aW50M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4MyBmaXJzdGJpdGhpZ2godWludDN4MyB4KSB7CisgICAgdWludDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQzeDQgZmlyc3RiaXRoaWdoKHVpbnQzeDQgeCkgeworICAgIHVpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhp
Z2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGZpcnN0Yml0aGln
aCh1aW50NHgyIHgpIHsKKyAgICB1aW50NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
aXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NHgzIGZpcnN0Yml0aGlnaCh1aW50NHgzIHgpIHsKKyAgICB1aW50NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0
Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJz
dGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmly
c3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDR4NCBmaXJzdGJpdGhpZ2godWludDR4
NCB4KSB7CisgICAgdWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJp
dGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0
WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyMiBmaXJzdGJpdGhpZ2goY2hhcjIgeCkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBmaXJzdGJpdGhpZ2goY2hhcjMg
eCkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgZmlyc3Ri
aXRoaWdoKGNoYXI0IHgpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmly
c3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3Ri
aXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIGZpcnN0Yml0aGln
aChjaGFyMngyIHgpIHsKKyAgICBjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
aXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXIyeDMgZmlyc3RiaXRoaWdoKGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyMng0IGZpcnN0Yml0aGlnaChjaGFyMng0IHgpIHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhp
Z2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gyIGZpcnN0Yml0aGlnaChjaGFyM3gyIHgpIHsK
KyAgICBjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjN4MyBmaXJzdGJpdGhpZ2goY2hhcjN4MyB4KSB7CisgICAg
Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzeDQgZmlyc3RiaXRoaWdoKGNoYXIzeDQg
eCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhp
Z2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBmaXJzdGJpdGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gZmlyc3RiaXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NHgyIGZpcnN0Yml0aGlnaChjaGFyNHgyIHgpIHsKKyAgICBjaGFyNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2go
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgzIGZpcnN0Yml0aGlnaChjaGFyNHgzIHgpIHsKKyAg
ICBjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJz
dGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmly
c3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZp
cnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjR4NCBmaXJz
dGJpdGhpZ2goY2hhcjR4NCB4KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJp
dGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDIgZmlyc3RiaXRoaWdoKHNob3J0MiB4KSB7CisgICAgc2hvcnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
Zmlyc3RiaXRoaWdoKHNob3J0MyB4KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IGZpcnN0Yml0aGlnaChzaG9ydDQgeCkgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7
CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDJ4MiBmaXJzdGJpdGhpZ2goc2hvcnQyeDIgeCkgeworICAgIHNob3J0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsx
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MngzIGZpcnN0Yml0aGlnaChzaG9y
dDJ4MyB4KSB7CisgICAgc2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4NCBmaXJzdGJpdGhpZ2goc2hvcnQy
eDQgeCkgeworICAgIHNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJp
dGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDN4MiBmaXJzdGJpdGhpZ2goc2hvcnQzeDIgeCkgeworICAgIHNob3J0M3gyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQzeDMgZmlyc3RiaXRoaWdoKHNob3J0M3gzIHgpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhp
Z2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0M3g0IGZpcnN0Yml0aGlnaChzaG9ydDN4NCB4KSB7CisgICAgc2hvcnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhp
Z2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBmaXJzdGJpdGhp
Z2goc2hvcnQ0eDIgeCkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDR4MyBmaXJzdGJpdGhpZ2goc2hvcnQ0eDMgeCkgeworICAgIHNob3J0NHgz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2go
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgZmlyc3RiaXRoaWdo
KHNob3J0NHg0IHgpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQyIGZpcnN0Yml0aGlnaChpbnQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3Ri
aXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIGZpcnN0Yml0aGlnaChp
bnQzIHgpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2go
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBmaXJz
dGJpdGhpZ2goaW50NCB4KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmly
c3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3Ri
aXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgZmlyc3RiaXRoaWdo
KGludDJ4MiB4KSB7CisgICAgaW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJz
dGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDJ4MyBmaXJzdGJpdGhpZ2goaW50MngzIHgpIHsKKyAgICBpbnQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDQg
Zmlyc3RiaXRoaWdoKGludDJ4NCB4KSB7CisgICAgaW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQzeDIgZmlyc3RiaXRoaWdoKGludDN4MiB4KSB7CisgICAgaW50M3gy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50M3gzIGZpcnN0Yml0aGlnaChpbnQzeDMgeCkgeworICAgIGludDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDN4NCBmaXJzdGJpdGhpZ2goaW50M3g0IHgpIHsKKyAgICBpbnQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhpZ2go
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRoaWdo
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgZmlyc3RiaXRoaWdoKGlu
dDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJp
dGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0eDMgZmlyc3RiaXRoaWdoKGludDR4MyB4KSB7CisgICAgaW50NHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2go
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdo
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NHg0IGZpcnN0Yml0aGlnaChpbnQ0eDQgeCkgeworICAg
IGludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJz
dGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmly
c3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgZmlyc3Ri
aXRsb3codWNoYXIyIHgpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZp
cnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgZmlyc3RiaXRsb3codWNoYXIzIHgpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgZmlyc3RiaXRsb3codWNoYXI0
IHgpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBmaXJzdGJpdGxvdyh1Y2hhcjJ4MiB4KSB7
CisgICAgdWNoYXIyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MyBmaXJz
dGJpdGxvdyh1Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBmaXJzdGJpdGxvdyh1
Y2hhcjJ4NCB4KSB7CisgICAgdWNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjN4MiBmaXJzdGJpdGxvdyh1Y2hhcjN4MiB4KSB7CisgICAgdWNoYXIzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MyBmaXJz
dGJpdGxvdyh1Y2hhcjN4MyB4KSB7CisgICAgdWNoYXIzeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4NCBm
aXJzdGJpdGxvdyh1Y2hhcjN4NCB4KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjR4MiBmaXJzdGJpdGxvdyh1Y2hhcjR4MiB4KSB7CisgICAgdWNoYXI0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0
bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBmaXJzdGJpdGxvdyh1Y2hhcjR4MyB4KSB7
CisgICAgdWNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0p
OworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0
bG93KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4NCBmaXJzdGJpdGxv
dyh1Y2hhcjR4NCB4KSB7CisgICAgdWNoYXI0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0
bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVsz
XSA9IGZpcnN0Yml0bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQy
IGZpcnN0Yml0bG93KHVzaG9ydDIgeCkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIGZpcnN0Yml0bG93KHVzaG9ydDMg
eCkgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IGZpcnN0
Yml0bG93KHVzaG9ydDQgeCkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0
Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgZmlyc3RiaXRs
b3codXNob3J0MngyIHgpIHsKKyAgICB1c2hvcnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQyeDMgZmlyc3RiaXRsb3codXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQyeDQgZmlyc3RiaXRsb3codXNob3J0Mng0IHgpIHsKKyAgICB1c2hvcnQyeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0
bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgZmlyc3RiaXRsb3codXNob3J0M3gyIHgpIHsK
KyAgICB1c2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQzeDMgZmlyc3RiaXRsb3codXNob3J0M3gzIHgpIHsKKyAgICB1
c2hvcnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDQgZmlyc3RiaXRsb3codXNob3J0M3g0IHgpIHsK
KyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0
bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgZmlyc3RiaXRs
b3codXNob3J0NHgyIHgpIHsKKyAgICB1c2hvcnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0eDMgZmlyc3RiaXRsb3codXNob3J0NHgzIHgpIHsKKyAgICB1c2hvcnQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0
Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0
bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDQgZmlyc3RiaXRsb3codXNob3J0NHg0IHgpIHsK
KyAgICB1c2hvcnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0
bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGxvdyh1aW50
MiB4KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGxvdyh1aW50MyB4KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0
Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBmaXJzdGJpdGxvdyh1aW50NCB4KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0p
OworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50MngyIGZpcnN0Yml0bG93KHVpbnQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngzIGZpcnN0Yml0bG93KHVpbnQyeDMgeCkgewor
ICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50Mng0IGZpcnN0Yml0bG93KHVpbnQyeDQgeCkgeworICAgIHVpbnQyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0
Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIGZpcnN0Yml0bG93KHVpbnQzeDIgeCkg
eworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3gzIGZpcnN0Yml0bG93KHVpbnQzeDMgeCkgeworICAgIHVpbnQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZp
cnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3g0IGZpcnN0Yml0bG93KHVpbnQzeDQgeCkgeworICAgIHVpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZp
cnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGZpcnN0Yml0bG93KHVpbnQ0eDIgeCkg
eworICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGZpcnN0Yml0
bG93KHVpbnQ0eDMgeCkgeworICAgIHVpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NHg0IGZpcnN0Yml0bG93KHVpbnQ0eDQgeCkgeworICAgIHVpbnQ0eDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsy
XVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0
bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVsw
XSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMiBmaXJzdGJpdGxvdyhjaGFyMiB4KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0
bG93KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBmaXJzdGJpdGxvdyhjaGFy
MyB4KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBmaXJzdGJp
dGxvdyhjaGFyNCB4KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0
Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIGZpcnN0Yml0bG93KGNoYXIy
eDIgeCkgeworICAgIGNoYXIyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0
bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngz
IGZpcnN0Yml0bG93KGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0
bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMng0IGZpcnN0Yml0bG93
KGNoYXIyeDQgeCkgeworICAgIGNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
M3gyIGZpcnN0Yml0bG93KGNoYXIzeDIgeCkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIGZpcnN0Yml0
bG93KGNoYXIzeDMgeCkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3g0IGZpcnN0Yml0
bG93KGNoYXIzeDQgeCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NHgyIGZpcnN0Yml0bG93KGNoYXI0eDIgeCkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNHgzIGZpcnN0Yml0bG93KGNoYXI0eDMgeCkgeworICAgIGNoYXI0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHg0IGZpcnN0Yml0bG93KGNoYXI0eDQgeCkgewor
ICAgIGNoYXI0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0
Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0
bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93
KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgZmlyc3RiaXRsb3coc2hvcnQy
IHgpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDMgZmlyc3RiaXRsb3coc2hvcnQzIHgpIHsKKyAgICBzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZp
cnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgZmlyc3RiaXRsb3coc2hvcnQ0IHgpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDJ4MiBmaXJzdGJpdGxvdyhzaG9ydDJ4MiB4KSB7CisgICAgc2hvcnQy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhb
MV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MyBmaXJzdGJpdGxvdyhzaG9y
dDJ4MyB4KSB7CisgICAgc2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4NCBmaXJzdGJpdGxvdyhzaG9ydDJ4NCB4KSB7
CisgICAgc2hvcnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBmaXJzdGJp
dGxvdyhzaG9ydDN4MiB4KSB7CisgICAgc2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MyBmaXJzdGJpdGxvdyhzaG9y
dDN4MyB4KSB7CisgICAgc2hvcnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93
KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4NCBmaXJzdGJpdGxvdyhz
aG9ydDN4NCB4KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0
bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4
MiBmaXJzdGJpdGxvdyhzaG9ydDR4MiB4KSB7CisgICAgc2hvcnQ0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDR4MyBmaXJzdGJpdGxvdyhzaG9ydDR4MyB4KSB7CisgICAgc2hvcnQ0
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZp
cnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4NCBmaXJzdGJpdGxvdyhzaG9ydDR4NCB4
KSB7CisgICAgc2hvcnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZp
cnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0
Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0
bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIGZpcnN0Yml0bG93KGlu
dDIgeCkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIGZpcnN0Yml0bG93KGludDMgeCkgeworICAgIGludDMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0
bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IGZpcnN0Yml0bG93KGludDQgeCkgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZp
cnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQyeDIgZmlyc3RiaXRsb3coaW50MngyIHgpIHsKKyAgICBpbnQyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQyeDMgZmlyc3RiaXRsb3coaW50MngzIHgpIHsKKyAgICBpbnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQyeDQgZmlyc3RiaXRsb3coaW50Mng0IHgpIHsKKyAgICBpbnQyeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzeDIgZmlyc3RiaXRsb3coaW50M3gyIHgpIHsKKyAgICBpbnQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
eDMgZmlyc3RiaXRsb3coaW50M3gzIHgpIHsKKyAgICBpbnQzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0
bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDQg
Zmlyc3RiaXRsb3coaW50M3g0IHgpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJl
c3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0eDIgZmlyc3RiaXRsb3coaW50NHgyIHgpIHsKKyAgICBpbnQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0eDMgZmlyc3RiaXRsb3coaW50NHgzIHgpIHsKKyAgICBpbnQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQgZmlyc3RiaXRsb3coaW50NHg0IHgpIHsKKyAg
ICBpbnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0
bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZp
cnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgZGV0ZXJtaW5hbnQoaGFsZiB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CitoYWxmIGRldGVybWluYW50KGhhbGYyeDIgeCkgeworICAgIHJl
dHVybiB4WzBdWzBdICogeFsxXVsxXSAtIHhbMF1bMV0gKiB4WzFdWzBdOworfQoraGFsZiBkZXRl
cm1pbmFudChoYWxmM3gzIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0gKiB4WzJd
WzJdICsKKyAgICAgICAgICAgeFswXVsxXSAqIHhbMV1bMl0gKiB4WzJdWzBdICsKKyAgICAgICAg
ICAgeFswXVsyXSAqIHhbMV1bMF0gKiB4WzJdWzFdIC0KKyAgICAgICAgICAgeFsyXVswXSAqIHhb
MV1bMV0gKiB4WzBdWzJdIC0KKyAgICAgICAgICAgeFsyXVsxXSAqIHhbMV1bMl0gKiB4WzBdWzBd
IC0KKyAgICAgICAgICAgeFsyXVsyXSAqIHhbMV1bMF0gKiB4WzBdWzFdOworfQoraGFsZiBkZXRl
cm1pbmFudChoYWxmNHg0IHgpIHsKKyAgICBoYWxmIHJlc3VsdDsKKyAgICBoYWxmM3gzIG1pbm9y
OworICAgIG1pbm9yWzBdWzBdID0geFsxXVsxXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1bMl07
CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVsxXTsK
KyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzNdOwor
ICAgIG1pbm9yWzJdWzBdID0geFszXVsxXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMl07Cisg
ICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIHhbMF1bMF0g
KiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4WzFdWzBdOworICAgIG1p
bm9yWzBdWzFdID0geFsxXVsyXTsKKyAgICBtaW5vclswXVsyXSA9IHhbMV1bM107CisgICAgbWlu
b3JbMV1bMF0gPSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsyXVsyXTsKKyAgICBtaW5v
clsxXVsyXSA9IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNdWzBdOworICAgIG1pbm9y
WzJdWzFdID0geFszXVsyXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11bM107CisgICAgcmVzdWx0
ID0gcmVzdWx0IC0geFswXVsxXSAqIGRldGVybWluYW50KG1pbm9yKTsKKyAgICBtaW5vclswXVsw
XSA9IHhbMV1bMF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOworICAgIG1pbm9yWzBdWzJd
ID0geFsxXVszXTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07CisgICAgbWlub3JbMV1bMV0g
PSB4WzJdWzFdOworICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAgICBtaW5vclsyXVswXSA9
IHhbM11bMF07CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAgIG1pbm9yWzJdWzJdID0g
eFszXVszXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzJdICogZGV0ZXJtaW5hbnQobWlu
b3IpOworICAgIG1pbm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1b
MV07CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzJdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVsw
XTsKKyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMV07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzJd
OworICAgIG1pbm9yWzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMV07
CisgICAgbWlub3JbMl1bMl0gPSB4WzNdWzJdOworICAgIHJlc3VsdCA9IHJlc3VsdCAtIHhbMF1b
M10gKiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0IGRl
dGVybWluYW50KGZsb2F0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0IGRldGVybWluYW50
KGZsb2F0MngyIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0gLSB4WzBdWzFdICog
eFsxXVswXTsKK30KK2Zsb2F0IGRldGVybWluYW50KGZsb2F0M3gzIHgpIHsKKyAgICByZXR1cm4g
eFswXVswXSAqIHhbMV1bMV0gKiB4WzJdWzJdICsKKyAgICAgICAgICAgeFswXVsxXSAqIHhbMV1b
Ml0gKiB4WzJdWzBdICsKKyAgICAgICAgICAgeFswXVsyXSAqIHhbMV1bMF0gKiB4WzJdWzFdIC0K
KyAgICAgICAgICAgeFsyXVswXSAqIHhbMV1bMV0gKiB4WzBdWzJdIC0KKyAgICAgICAgICAgeFsy
XVsxXSAqIHhbMV1bMl0gKiB4WzBdWzBdIC0KKyAgICAgICAgICAgeFsyXVsyXSAqIHhbMV1bMF0g
KiB4WzBdWzFdOworfQorZmxvYXQgZGV0ZXJtaW5hbnQoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0
IHJlc3VsdDsKKyAgICBmbG9hdDN4MyBtaW5vcjsKKyAgICBtaW5vclswXVswXSA9IHhbMV1bMV07
CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzJdOworICAgIG1pbm9yWzBdWzJdID0geFsxXVszXTsK
KyAgICBtaW5vclsxXVswXSA9IHhbMl1bMV07CisgICAgbWlub3JbMV1bMV0gPSB4WzJdWzJdOwor
ICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAgICBtaW5vclsyXVswXSA9IHhbM11bMV07Cisg
ICAgbWlub3JbMl1bMV0gPSB4WzNdWzJdOworICAgIG1pbm9yWzJdWzJdID0geFszXVszXTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzBdICogZGV0ZXJtaW5hbnQobWlub3IpOworICAgIG1p
bm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1bMl07CisgICAgbWlu
b3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVswXTsKKyAgICBtaW5v
clsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzNdOworICAgIG1pbm9y
WzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMl07CisgICAgbWlub3Jb
Ml1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJlc3VsdCAtIHhbMF1bMV0gKiBkZXRlcm1p
bmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4WzFdWzBdOworICAgIG1pbm9yWzBdWzFd
ID0geFsxXVsxXTsKKyAgICBtaW5vclswXVsyXSA9IHhbMV1bM107CisgICAgbWlub3JbMV1bMF0g
PSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsyXVsxXTsKKyAgICBtaW5vclsxXVsyXSA9
IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNdWzBdOworICAgIG1pbm9yWzJdWzFdID0g
eFszXVsxXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11bM107CisgICAgcmVzdWx0ID0gcmVzdWx0
ICsgeFswXVsyXSAqIGRldGVybWluYW50KG1pbm9yKTsKKyAgICBtaW5vclswXVswXSA9IHhbMV1b
MF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOworICAgIG1pbm9yWzBdWzJdID0geFsxXVsy
XTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07CisgICAgbWlub3JbMV1bMV0gPSB4WzJdWzFd
OworICAgIG1pbm9yWzFdWzJdID0geFsyXVsyXTsKKyAgICBtaW5vclsyXVswXSA9IHhbM11bMF07
CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAgIG1pbm9yWzJdWzJdID0geFszXVsyXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgLSB4WzBdWzNdICogZGV0ZXJtaW5hbnQobWlub3IpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyNCBkc3QodWNoYXI0IHNyYzAsIHVjaGFyNCBzcmMx
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVzdWx0Lnkg
PSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVzdWx0Lncg
PSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgZHN0KHVzaG9ydDQgc3Jj
MCwgdXNob3J0NCBzcmMxKSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSAx
OworICAgIHJlc3VsdC55ID0gc3JjMC55ICogc3JjMS55OworICAgIHJlc3VsdC56ID0gc3JjMC56
OworICAgIHJlc3VsdC53ID0gc3JjMS53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBk
c3QodWludDQgc3JjMCwgdWludDQgc3JjMSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IDE7CisgICAgcmVzdWx0LnkgPSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0Lnog
PSBzcmMwLno7CisgICAgcmVzdWx0LncgPSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IGRzdChjaGFyNCBzcmMwLCBjaGFyNCBzcmMxKSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICBy
ZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IGRzdChzaG9ydDQgc3JjMCwgc2hvcnQ0IHNyYzEpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNy
YzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBkc3QoaW50NCBzcmMwLCBpbnQ0IHNyYzEpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVzdWx0LnkgPSBzcmMwLnkg
KiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVzdWx0LncgPSBzcmMxLnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRzdChoYWxmNCBzcmMwLCBoYWxmNCBzcmMx
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9
IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9
IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGRzdChmbG9hdDQgc3JjMCwg
ZmxvYXQ0IHNyYzEpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAg
ICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAg
ICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxmIGRpc3Rh
bmNlKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitoYWxm
IGRpc3RhbmNlKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTsK
K30KK2hhbGYgZGlzdGFuY2UoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIHJldHVybiBsZW5ndGgo
eCAtIHkpOworfQoraGFsZiBkaXN0YW5jZShoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAgcmV0dXJu
IGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5jZShmbG9hdCB4LCBmbG9hdCB5KSB7Cisg
ICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5jZShmbG9hdDIgeCwgZmxv
YXQyIHkpIHsKKyAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTsKK30KK2Zsb2F0IGRpc3RhbmNlKGZs
b2F0MyB4LCBmbG9hdDMgeSkgeworICAgIHJldHVybiBsZW5ndGgoeCAtIHkpOworfQorZmxvYXQg
ZGlzdGFuY2UoZmxvYXQ0IHgsIGZsb2F0NCB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7
Cit9CisKK2hhbGYzIGNyb3NzKGhhbGYzIHUsIGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB1LnkgKiB2LnogLSB1LnogKiB2Lnk7CisgICAgcmVzdWx0LnkgPSB1
LnogKiB2LnggLSB1LnggKiB2Lno7CisgICAgcmVzdWx0LnogPSB1LnggKiB2LnkgLSB1LnkgKiB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBjcm9zcyhmbG9hdDMgdSwgZmxvYXQz
IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdS55ICogdi56IC0gdS56
ICogdi55OworICAgIHJlc3VsdC55ID0gdS56ICogdi54IC0gdS54ICogdi56OworICAgIHJlc3Vs
dC56ID0gdS54ICogdi55IC0gdS55ICogdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Vj
aGFyIGRvdCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIGEgKiBiOworfQordWNoYXIg
ZG90KHVjaGFyMiBhLCB1Y2hhcjIgYikgeworICAgIHVjaGFyIHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyIGRvdCh1Y2hhcjMgYSwgdWNoYXIz
IGIpIHsKKyAgICB1Y2hhciByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0g
KiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhciBkb3Qo
dWNoYXI0IGEsIHVjaGFyNCBiKSB7CisgICAgdWNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQg
PSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsx
XTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0IGRvdCh1c2hv
cnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9Cit1c2hvcnQgZG90KHVzaG9y
dDIgYSwgdXNob3J0MiBiKSB7CisgICAgdXNob3J0IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydCBkb3QodXNob3J0MyBhLCB1c2hvcnQzIGIp
IHsKKyAgICB1c2hvcnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICog
YlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0IGRvdCh1
c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHVzaG9ydCByZXN1bHQgPSAwOworICAgIHJlc3Vs
dCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBi
WzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IGRvdCh1aW50
IGEsIHVpbnQgYikgeworICAgIHJldHVybiBhICogYjsKK30KK3VpbnQgZG90KHVpbnQyIGEsIHVp
bnQyIGIpIHsKKyAgICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsw
XSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQzIGEsIHVpbnQzIGIpIHsKKyAgICB1aW50IHJlc3Vs
dCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQ0IGEsIHVpbnQ0IGIpIHsKKyAg
ICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVsyXSAqIGJbMl07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVszXSAqIGJbM107CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXIgZG90KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGEg
KiBiOworfQorY2hhciBkb3QoY2hhcjIgYSwgY2hhcjIgYikgeworICAgIGNoYXIgcmVzdWx0ID0g
MDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhciBkb3QoY2hhcjMg
YSwgY2hhcjMgYikgeworICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQg
KyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
ciBkb3QoY2hhcjQgYSwgY2hhcjQgYikgeworICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICog
YlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQgZG90KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9CitzaG9ydCBkb3Qoc2hvcnQy
IGEsIHNob3J0MiBiKSB7CisgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQgZG90KHNob3J0MyBhLCBzaG9ydDMgYikgeworICAg
IHNob3J0IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0IGRvdChzaG9ydDQgYSwg
c2hvcnQ0IGIpIHsKKyAgICBzaG9ydCByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCAr
IGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJl
c3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10g
KiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQgZG90KGludCBhLCBpbnQgYikgewor
ICAgIHJldHVybiBhICogYjsKK30KK2ludCBkb3QoaW50MiBhLCBpbnQyIGIpIHsKKyAgICBpbnQg
cmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50IGRv
dChpbnQzIGEsIGludDMgYikgeworICAgIGludCByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQgZG90KGludDQgYSwgaW50NCBiKSB7CisgICAgaW50IHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVszXSAqIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYgZG90KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGEgKiBiOworfQoraGFsZiBkb3QoaGFsZjIgYSwg
aGFsZjIgYikgeworICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBh
WzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjMgYSwgaGFsZjMgYikgeworICAgIGhhbGYgcmVz
dWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQg
PSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsy
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjQgYSwgaGFsZjQgYikgewor
ICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQg
KyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQgZG90KGZsb2F0IGEsIGZsb2F0IGIpIHsKKyAgICByZXR1
cm4gYSAqIGI7Cit9CitmbG9hdCBkb3QoZmxvYXQyIGEsIGZsb2F0MiBiKSB7CisgICAgZmxvYXQg
cmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQg
ZG90KGZsb2F0MyBhLCBmbG9hdDMgYikgeworICAgIGZsb2F0IHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0IGRvdChmbG9hdDQgYSwgZmxvYXQ0IGIpIHsKKyAgICBmbG9hdCByZXN1
bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJd
OworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK2hhbGYgZmFjZWZvcndhcmQoaGFsZiBuLCBoYWxmIGksIGhhbGYgbmcpIHsKKyAgICBy
ZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjIgZmFjZWZvcndhcmQoaGFsZjIg
biwgaGFsZjIgaSwgaGFsZjIgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykp
OworfQoraGFsZjMgZmFjZWZvcndhcmQoaGFsZjMgbiwgaGFsZjMgaSwgaGFsZjMgbmcpIHsKKyAg
ICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjQgZmFjZWZvcndhcmQoaGFs
ZjQgbiwgaGFsZjQgaSwgaGFsZjQgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBu
ZykpOworfQorZmxvYXQgZmFjZWZvcndhcmQoZmxvYXQgbiwgZmxvYXQgaSwgZmxvYXQgbmcpIHsK
KyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQorZmxvYXQyIGZhY2Vmb3J3YXJk
KGZsb2F0MiBuLCBmbG9hdDIgaSwgZmxvYXQyIG5nKSB7CisgICAgcmV0dXJuIC1uICogc2lnbihk
b3QoaSwgbmcpKTsKK30KK2Zsb2F0MyBmYWNlZm9yd2FyZChmbG9hdDMgbiwgZmxvYXQzIGksIGZs
b2F0MyBuZykgeworICAgIHJldHVybiAtbiAqIHNpZ24oZG90KGksIG5nKSk7Cit9CitmbG9hdDQg
ZmFjZWZvcndhcmQoZmxvYXQ0IG4sIGZsb2F0NCBpLCBmbG9hdDQgbmcpIHsKKyAgICByZXR1cm4g
LW4gKiBzaWduKGRvdChpLCBuZykpOworfQorCitoYWxmIGxlbmd0aChoYWxmIHgpIHsKKyAgICBy
ZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQoraGFsZiBsZW5ndGgoaGFsZjIgeCkgeworICAgIHJl
dHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitoYWxmIGxlbmd0aChoYWxmMyB4KSB7CisgICAgcmV0
dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2hhbGYgbGVuZ3RoKGhhbGY0IHgpIHsKKyAgICByZXR1
cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0IHgpIHsKKyAgICByZXR1
cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0MiB4KSB7CisgICAgcmV0
dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2Zsb2F0IGxlbmd0aChmbG9hdDMgeCkgeworICAgIHJl
dHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitmbG9hdCBsZW5ndGgoZmxvYXQ0IHgpIHsKKyAgICBy
ZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQorCitoYWxmNCBsaXQoaGFsZiBuX2RvdF9sLCBoYWxm
IG5fZG90X2gsIGhhbGYgbSkgeworICAgIGhhbGYgYW1iaWVudCA9IDE7CisgICAgaGFsZiBkaWZm
dXNlID0gbWF4KDAsIG5fZG90X2wpOworICAgIGhhbGYgc3BlY3VsYXIgPSBuX2RvdF9sIDwgMCB8
fCBuX2RvdF9oIDwgMCA/IDAgOiBuX2RvdF9oICogbTsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSBhbWJpZW50OworICAgIHJlc3VsdC55ID0gZGlmZnVzZTsKKyAgICByZXN1bHQu
eiA9IHNwZWN1bGFyOworICAgIHJlc3VsdC53ID0gMTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IGxpdChmbG9hdCBuX2RvdF9sLCBmbG9hdCBuX2RvdF9oLCBmbG9hdCBtKSB7CisgICAg
ZmxvYXQgYW1iaWVudCA9IDE7CisgICAgZmxvYXQgZGlmZnVzZSA9IG1heCgwLCBuX2RvdF9sKTsK
KyAgICBmbG9hdCBzcGVjdWxhciA9IG5fZG90X2wgPCAwIHx8IG5fZG90X2ggPCAwID8gMCA6IG5f
ZG90X2ggKiBtOworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSBhbWJpZW50Owor
ICAgIHJlc3VsdC55ID0gZGlmZnVzZTsKKyAgICByZXN1bHQueiA9IHNwZWN1bGFyOworICAgIHJl
c3VsdC53ID0gMTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxmIG5vcm1hbGl6ZShoYWxm
IHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2hhbGYyIG5vcm1hbGl6ZShoYWxm
MiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitoYWxmMyBub3JtYWxpemUoaGFs
ZjMgeCkgeworICAgIHJldHVybiB4IC8gbGVuZ3RoKHgpOworfQoraGFsZjQgbm9ybWFsaXplKGhh
bGY0IHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2Zsb2F0IG5vcm1hbGl6ZShm
bG9hdCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDIgbm9ybWFsaXpl
KGZsb2F0MiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDMgbm9ybWFs
aXplKGZsb2F0MyB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDQgbm9y
bWFsaXplKGZsb2F0NCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CisKK2hhbGYg
cmVmbGVjdChoYWxmIGksIGhhbGYgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwg
bik7Cit9CitoYWxmMiByZWZsZWN0KGhhbGYyIGksIGhhbGYyIG4pIHsKKyAgICByZXR1cm4gaSAt
IDIgKiBuICogZG90KGksIG4pOworfQoraGFsZjMgcmVmbGVjdChoYWxmMyBpLCBoYWxmMyBuKSB7
CisgICAgcmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2hhbGY0IHJlZmxlY3QoaGFs
ZjQgaSwgaGFsZjQgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwgbik7Cit9Citm
bG9hdCByZWZsZWN0KGZsb2F0IGksIGZsb2F0IG4pIHsKKyAgICByZXR1cm4gaSAtIDIgKiBuICog
ZG90KGksIG4pOworfQorZmxvYXQyIHJlZmxlY3QoZmxvYXQyIGksIGZsb2F0MiBuKSB7CisgICAg
cmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2Zsb2F0MyByZWZsZWN0KGZsb2F0MyBp
LCBmbG9hdDMgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwgbik7Cit9CitmbG9h
dDQgcmVmbGVjdChmbG9hdDQgaSwgZmxvYXQ0IG4pIHsKKyAgICByZXR1cm4gaSAtIDIgKiBuICog
ZG90KGksIG4pOworfQorCitoYWxmIHJlZnJhY3QoaGFsZiBpLCBoYWxmIG4sIGhhbGYgZXRhKSB7
CisgICAgaGFsZiByZXN1bHQ7CisgICAgaGFsZiBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90
KG4sIGkpICogZG90KG4sIGkpKTsKKyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgcmV0dXJuIGV0YSAqIGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBu
OworfQoraGFsZjIgcmVmcmFjdChoYWxmMiBpLCBoYWxmMiBuLCBoYWxmIGV0YSkgeworICAgIGhh
bGYyIHJlc3VsdDsKKyAgICBoYWxmIGsgPSAxIC0gZXRhICogZXRhICogKDEgLSBkb3QobiwgaSkg
KiBkb3QobiwgaSkpOworICAgIGlmIChrIDwgMCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICByZXR1cm4gZXRhICogaSAtIChldGEgKiBkb3QobiwgaSkgKyBzcXJ0KGspKSAqIG47Cit9Cito
YWxmMyByZWZyYWN0KGhhbGYzIGksIGhhbGYzIG4sIGhhbGYgZXRhKSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIGhhbGYgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChu
LCBpKSk7CisgICAgaWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biBldGEgKiBpIC0gKGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KK2hhbGY0IHJl
ZnJhY3QoaGFsZjQgaSwgaGFsZjQgbiwgaGFsZiBldGEpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgaGFsZiBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90KG4sIGkpKTsK
KyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGV0YSAq
IGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQorZmxvYXQgcmVmcmFjdChm
bG9hdCBpLCBmbG9hdCBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdCByZXN1bHQ7CisgICAgZmxv
YXQgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChuLCBpKSk7CisgICAg
aWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBldGEgKiBpIC0g
KGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KK2Zsb2F0MiByZWZyYWN0KGZsb2F0
MiBpLCBmbG9hdDIgbiwgZmxvYXQgZXRhKSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICBmbG9h
dCBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90KG4sIGkpKTsKKyAgICBp
ZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGV0YSAqIGkgLSAo
ZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQorZmxvYXQzIHJlZnJhY3QoZmxvYXQz
IGksIGZsb2F0MyBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIGZsb2F0
IGsgPSAxIC0gZXRhICogZXRhICogKDEgLSBkb3QobiwgaSkgKiBkb3QobiwgaSkpOworICAgIGlm
IChrIDwgMCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZXRhICogaSAtIChl
dGEgKiBkb3QobiwgaSkgKyBzcXJ0KGspKSAqIG47Cit9CitmbG9hdDQgcmVmcmFjdChmbG9hdDQg
aSwgZmxvYXQ0IG4sIGZsb2F0IGV0YSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgZmxvYXQg
ayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChuLCBpKSk7CisgICAgaWYg
KGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBldGEgKiBpIC0gKGV0
YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KKworaGFsZiB0cmFuc3Bvc2UoaGFsZiB4
KSB7CisgICAgcmV0dXJuIHg7Cit9CitoYWxmMngyIHRyYW5zcG9zZShoYWxmMngyIHgpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1
bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHRyYW5z
cG9zZShoYWxmM3gyIHgpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzBdWzJd
ID0geFsyXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsx
XSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4NCB0cmFuc3Bvc2UoaGFsZjR4MiB4KSB7CisgICAgaGFsZjJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFd
WzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0geFsz
XVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhb
MV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSB4
WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHRyYW5zcG9zZShoYWxmMngz
IHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOwor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsK
KyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07
CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyB0cmFuc3Bvc2UoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJl
c3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAg
cmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzFdWzJdOworICAg
IHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
dHJhbnNwb3NlKGhhbGY0eDMgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRb
MF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IHhbM11bMF07CisgICAgcmVzdWx0
WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0geFszXVsxXTsKKyAgICByZXN1
bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmVz
dWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSB4WzNdWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHRyYW5zcG9zZShoYWxmMng0IHgpIHsKKyAgICBoYWxm
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsx
XSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1b
MV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJd
WzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAgIHJlc3VsdFsz
XVsxXSA9IHhbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgdHJhbnNwb3Nl
KGhhbGYzeDQgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4
WzJdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0g
eFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsyXVswXSA9
IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0g
PSB4WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHhbMF1bM107CisgICAgcmVzdWx0WzNdWzFd
ID0geFsxXVszXTsKKyAgICByZXN1bHRbM11bMl0gPSB4WzJdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHg0IHRyYW5zcG9zZShoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSB4WzNd
WzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsx
XVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IHhb
M11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4
WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0g
eFszXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAgIHJlc3VsdFszXVsxXSA9
IHhbMV1bM107CisgICAgcmVzdWx0WzNdWzJdID0geFsyXVszXTsKKyAgICByZXN1bHRbM11bM10g
PSB4WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdCB0cmFuc3Bvc2UoZmxvYXQg
eCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQyeDIgdHJhbnNwb3NlKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAg
cmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMg
dHJhbnNwb3NlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3Vs
dFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1
bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IHRyYW5zcG9zZShmbG9hdDR4MiB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBd
WzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFsw
XVszXSA9IHhbM11bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmVzdWx0
WzFdWzNdID0geFszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgdHJhbnNw
b3NlKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVsw
XSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMl1b
MF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIHRyYW5zcG9zZShmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
eFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFsxXVswXSA9
IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
PSB4WzJdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFd
ID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4WzJdWzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCB0cmFuc3Bvc2UoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0M3g0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhb
MV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSB4
WzNdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0g
eFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IHhbM11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0g
PSB4WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0geFszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgdHJhbnNwb3NlKGZs
b2F0Mng0IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhb
MF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4
WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmVzdWx0WzNdWzBdID0g
eFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyB0cmFuc3Bvc2UoZmxvYXQzeDQgeCkgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBd
WzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsy
XVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhb
MV1bMl07CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4
WzBdWzNdOworICAgIHJlc3VsdFszXVsxXSA9IHhbMV1bM107CisgICAgcmVzdWx0WzNdWzJdID0g
eFsyXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgdHJhbnNwb3NlKGZsb2F0
NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVsw
XTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1b
MF07CisgICAgcmVzdWx0WzBdWzNdID0geFszXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBd
WzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsy
XVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSB4WzNdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhb
MF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4
WzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IHhbM11bMl07CisgICAgcmVzdWx0WzNdWzBdID0g
eFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAgIHJlc3VsdFszXVsyXSA9
IHhbMl1bM107CisgICAgcmVzdWx0WzNdWzNdID0geFszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitpbnQgYXNpbnQoaW50IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDIgYXNpbnQo
aW50MiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQzIGFzaW50KGludDMgeCkgeworICAgIHJl
dHVybiB4OworfQoraW50NCBhc2ludChpbnQ0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDJ4
MiBhc2ludChpbnQyeDIgeCkgeworICAgIHJldHVybiB4OworfQoraW50MngzIGFzaW50KGludDJ4
MyB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQyeDQgYXNpbnQoaW50Mng0IHgpIHsKKyAgICBy
ZXR1cm4geDsKK30KK2ludDN4MiBhc2ludChpbnQzeDIgeCkgeworICAgIHJldHVybiB4OworfQor
aW50M3gzIGFzaW50KGludDN4MyB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQzeDQgYXNpbnQo
aW50M3g0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDR4MiBhc2ludChpbnQ0eDIgeCkgewor
ICAgIHJldHVybiB4OworfQoraW50NHgzIGFzaW50KGludDR4MyB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitpbnQ0eDQgYXNpbnQoaW50NHg0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBp
bnQgYXNpbnQodWludCk7CitpbnQyIGFzaW50KHVpbnQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhc2ludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2ludCh4WzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBhc2ludCh1aW50MyB4KSB7CisgICAgaW50
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
YXNpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXNpbnQoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgYXNpbnQodWludDQgeCkgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW50KHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzaW50KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgYXNpbnQodWludDJ4MiB4KSB7CisgICAgaW50
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50MngzIGFzaW50KHVpbnQyeDMgeCkgeworICAgIGludDJ4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNp
bnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDJ4NCBhc2ludCh1aW50Mng0IHgpIHsKKyAgICBpbnQyeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFz
aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW50KHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgYXNpbnQodWludDN4MiB4KSB7CisgICAg
aW50M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc2ludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3gzIGFzaW50KHVpbnQzeDMgeCkgeworICAg
IGludDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4NCBhc2ludCh1aW50M3g0IHgpIHsKKyAgICBpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFz
aW50KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzaW50KHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0eDIgYXNpbnQodWludDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2ludCh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBhc2ludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2ludCh4WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIGFzaW50KHVpbnQ0eDMgeCkgeworICAg
IGludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNp
bnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNpbnQoeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDR4NCBhc2ludCh1aW50NHg0IHgpIHsKKyAgICBpbnQ0eDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFz
aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW50KHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGFzaW50KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9
IGFzaW50KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW50KHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGFzaW50KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGFzaW50
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CituYXRpdmUgaW50IGFzaW50KGZsb2F0
KTsKK2ludDIgYXNpbnQoZmxvYXQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhc2ludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2ludCh4WzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50MyBhc2ludChmbG9hdDMgeCkgeworICAgIGludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW50KHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IGFzaW50KGZsb2F0NCB4KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
YXNpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXNpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gYXNpbnQoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gYXNpbnQoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDJ4MiBhc2ludChmbG9hdDJ4MiB4KSB7CisgICAgaW50MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MngzIGFzaW50KGZsb2F0MngzIHgpIHsKKyAgICBpbnQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW50KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQyeDQgYXNpbnQoZmxvYXQyeDQgeCkgeworICAgIGludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbnQoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQoeFsxXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MiBhc2ludChmbG9hdDN4MiB4KSB7CisgICAgaW50M3gy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2ludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50M3gzIGFzaW50KGZsb2F0M3gzIHgpIHsKKyAgICBpbnQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFz
aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzeDQgYXNpbnQoZmxvYXQzeDQgeCkgeworICAgIGludDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbnQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDR4MiBhc2ludChmbG9hdDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2lu
dCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2ludCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBhc2ludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2ludCh4WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIGFzaW50KGZsb2F0NHgzIHgpIHsKKyAgICBp
bnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0pOworICAg
IHJlc3VsdFszXVswXSA9IGFzaW50KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW50
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzaW50KHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0eDQgYXNpbnQoZmxvYXQ0eDQgeCkgeworICAgIGludDR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNp
bnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbnQoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
YXNpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNpbnQoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gYXNpbnQoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXNpbnQo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK25hdGl2ZSB1aW50IGFzdWludChpbnQp
OwordWludDIgYXN1aW50KGludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhc3VpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXN1aW50KHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBhc3VpbnQoaW50MyB4KSB7CisgICAgdWludDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBhc3VpbnQoaW50NCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQoeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzdWludCh4WzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MiBhc3VpbnQoaW50MngyIHgpIHsKKyAgICB1
aW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWlu
dCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQyeDMgYXN1aW50KGludDJ4MyB4KSB7CisgICAgdWludDJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc3VpbnQoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDQgYXN1aW50KGludDJ4NCB4KSB7CisgICAg
dWludDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc3Vp
bnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXN1aW50KHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGFzdWludCh4WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDN4
MiBhc3VpbnQoaW50M3gyIHgpIHsKKyAgICB1aW50M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4MyBhc3VpbnQoaW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXN1aW50KHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXN1aW50KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzdWludCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDN4NCBhc3VpbnQoaW50M3g0IHgpIHsKKyAgICB1aW50M3g0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBhc3VpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1
aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXN1aW50
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzdWludCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXN1aW50KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzdWludCh4WzJdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDR4MiBhc3VpbnQoaW50NHgyIHgpIHsKKyAgICB1aW50NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
YXN1aW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc3VpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXN1
aW50KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGFzdWludChpbnQ0
eDMgeCkgeworICAgIHVpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzdWludCh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gYXN1aW50KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXN1aW50KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHg0IGFzdWludChp
bnQ0eDQgeCkgeworICAgIHVpbnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWlu
dCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzdWludCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXN1aW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc3VpbnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gYXN1aW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc3VpbnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gYXN1aW50KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXN1aW50KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGFzdWludCh4WzNdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludCBhc3VpbnQodWludCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9Cit1aW50MiBhc3VpbnQodWludDIgeCkgeworICAgIHJldHVybiB4OworfQordWludDMgYXN1
aW50KHVpbnQzIHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VpbnQ0IGFzdWludCh1aW50NCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9Cit1aW50MngyIGFzdWludCh1aW50MngyIHgpIHsKKyAgICByZXR1
cm4geDsKK30KK3VpbnQyeDMgYXN1aW50KHVpbnQyeDMgeCkgeworICAgIHJldHVybiB4OworfQor
dWludDJ4NCBhc3VpbnQodWludDJ4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9Cit1aW50M3gyIGFz
dWludCh1aW50M3gyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VpbnQzeDMgYXN1aW50KHVpbnQz
eDMgeCkgeworICAgIHJldHVybiB4OworfQordWludDN4NCBhc3VpbnQodWludDN4NCB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9Cit1aW50NHgyIGFzdWludCh1aW50NHgyIHgpIHsKKyAgICByZXR1cm4g
eDsKK30KK3VpbnQ0eDMgYXN1aW50KHVpbnQ0eDMgeCkgeworICAgIHJldHVybiB4OworfQordWlu
dDR4NCBhc3VpbnQodWludDR4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgdWludCBh
c3VpbnQoZmxvYXQpOwordWludDIgYXN1aW50KGZsb2F0MiB4KSB7CisgICAgdWludDIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQo
eFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGFzdWludChmbG9hdDMgeCkgewor
ICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc3VpbnQoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gYXN1aW50KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzdWludCh4WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgYXN1aW50KGZsb2F0NCB4KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
c3VpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGFzdWludCh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MiBhc3VpbnQo
ZmxvYXQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
dWludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWlu
dCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBhc3VpbnQoZmxvYXQy
eDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mng0IGFz
dWludChmbG9hdDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXN1aW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhc3VpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXN1aW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXN1
aW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzdWludCh4WzFdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDN4MiBhc3VpbnQoZmxvYXQzeDIgeCkgeworICAgIHVpbnQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXN1aW50KHhbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIGFzdWludChmbG9hdDN4MyB4KSB7
CisgICAgdWludDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhc3VpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
c3VpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc3Vp
bnQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDQgYXN1aW50KGZsb2F0
M3g0IHgpIHsKKyAgICB1aW50M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc3VpbnQoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXN1aW50KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGFzdWludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYXN1aW50KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGFzdWludCh4WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDR4MiBhc3VpbnQo
ZmxvYXQ0eDIgeCkgeworICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
dWludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWlu
dCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYXN1aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0eDMgYXN1aW50KGZsb2F0NHgzIHgpIHsKKyAgICB1aW50NHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXN1aW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YXN1aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzdWludCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc3VpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXN1
aW50KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzdWludCh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDR4NCBhc3VpbnQoZmxvYXQ0eDQgeCkgeworICAgIHVpbnQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXN1aW50KHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzdWludCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXN1aW50KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhc3VpbnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBhc3VpbnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXN1aW50KHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
c3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXN1aW50KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFzdWludCh4WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
bmF0aXZlIGZsb2F0IGFzZmxvYXQoaW50KTsKK2Zsb2F0MiBhc2Zsb2F0KGludDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNm
bG9hdChpbnQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxv
YXQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBhc2Zsb2F0KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgYXNmbG9hdChp
bnQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxvYXQoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2Zs
b2F0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzZmxvYXQoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIGFzZmxvYXQoaW50MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgYXNmbG9hdChpbnQyeDMgeCkgeworICAgIGZsb2F0MngzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFzZmxvYXQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzZmxvYXQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgYXNmbG9hdChpbnQyeDQgeCkgewor
ICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2Zsb2F0KHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGFzZmxvYXQoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gyIGFzZmxvYXQoaW50M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzZmxvYXQoaW50M3gzIHgpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFzZmxvYXQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFzZmxvYXQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNmbG9hdCh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhc2Zsb2F0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGFzZmxvYXQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGFzZmxv
YXQoaW50M3g0IHgpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXNmbG9hdCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2Zsb2F0KHhbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGFzZmxvYXQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NHgyIGFzZmxvYXQoaW50NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
c2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
c2Zsb2F0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhc2Zsb2F0
KGludDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
ZmxvYXQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFz
ZmxvYXQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFz
ZmxvYXQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFz
ZmxvYXQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNmbG9hdCh4WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBhc2Zsb2F0KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4NCBhc2Zsb2F0KGludDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFzZmxvYXQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNm
bG9hdCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGFzZmxvYXQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNm
bG9hdCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNm
bG9hdCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNm
bG9hdCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2Zsb2F0KHhbMl1bM10pOworICAg
IHJlc3VsdFszXVswXSA9IGFzZmxvYXQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNm
bG9hdCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhc2Zsb2F0KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFzZmxvYXQoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K25hdGl2ZSBmbG9hdCBhc2Zsb2F0KHVpbnQpOworZmxvYXQyIGFzZmxvYXQodWludDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
YXNmbG9hdCh1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBh
c2Zsb2F0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzZmxvYXQoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gYXNmbG9hdCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGFzZmxv
YXQodWludDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9h
dCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGFzZmxvYXQoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gYXNmbG9hdCh4WzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDIgYXNmbG9hdCh1aW50MngyIHgpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYXNmbG9hdCh1aW50MngzIHgpIHsKKyAgICBmbG9hdDJ4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQo
eFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IGFzZmxvYXQodWludDJ4
NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzZmxvYXQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzZmxvYXQo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNmbG9hdCh4WzFdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDIgYXNmbG9hdCh1aW50M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzZmxvYXQodWludDN4
MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzZmxvYXQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBhc2Zsb2F0KHVpbnQzeDQgeCkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhc2Zsb2F0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzZmxvYXQo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNmbG9hdCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhc2Zsb2F0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzZmxvYXQo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNmbG9hdCh4WzJdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgYXNmbG9hdCh1aW50NHgyIHgpIHsKKyAgICBmbG9hdDR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhc2Zsb2F0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBhc2Zsb2F0KHVpbnQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNmbG9hdCh4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBhc2Zsb2F0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzZmxvYXQo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNmbG9hdCh4WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgYXNmbG9hdCh1aW50NHg0IHgpIHsKKyAgICBmbG9hdDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXNmbG9hdCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBhc2Zsb2F0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzZmxvYXQo
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhc2Zsb2F0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzZmxvYXQo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXNmbG9hdCh4WzNdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQgYXNmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7Cit9
CitmbG9hdDIgYXNmbG9hdChmbG9hdDIgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzIGFz
ZmxvYXQoZmxvYXQzIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NCBhc2Zsb2F0KGZsb2F0
NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDJ4MiBhc2Zsb2F0KGZsb2F0MngyIHgpIHsK
KyAgICByZXR1cm4geDsKK30KK2Zsb2F0MngzIGFzZmxvYXQoZmxvYXQyeDMgeCkgeworICAgIHJl
dHVybiB4OworfQorZmxvYXQyeDQgYXNmbG9hdChmbG9hdDJ4NCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitmbG9hdDN4MiBhc2Zsb2F0KGZsb2F0M3gyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zs
b2F0M3gzIGFzZmxvYXQoZmxvYXQzeDMgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzeDQg
YXNmbG9hdChmbG9hdDN4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDR4MiBhc2Zsb2F0
KGZsb2F0NHgyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NHgzIGFzZmxvYXQoZmxvYXQ0
eDMgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQ0eDQgYXNmbG9hdChmbG9hdDR4NCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CisKK25hdGl2ZSBmbG9hdCBmMTZ0b2YzMih1aW50KTsKK25hdGl2
ZSB1aW50IGYzMnRvZjE2KGZsb2F0KTsKK2Zsb2F0MiBmMTZ0b2YzMih1aW50MiB4KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBmMTZ0b2YzMih4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgZjMy
dG9mMTYoZmxvYXQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMy
dG9mMTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBmMTZ0b2YzMih1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0
b2YzMih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDMgZjMydG9mMTYoZmxvYXQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gZjMydG9mMTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9m
MTYoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZjMydG9mMTYoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBmMTZ0b2YzMih1aW50NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0b2Yz
Mih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXN1bHRbM10g
PSBmMTZ0b2YzMih4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZjMydG9mMTYo
ZmxvYXQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMydG9mMTYo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
ZjMydG9mMTYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZjMydG9mMTYoeFszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworbmF0aXZlIHZvaWQgQWxsTWVtb3J5QmFycmllcldpdGhHcm91cFN5
bmMoKTsKK25hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7Citu
YXRpdmUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7CisKK3VjaGFyIG11
bCh1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQordXNob3J0IG11bCh1
c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Cit1aW50IG11bCh1aW50
IHgsIHVpbnQgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK2NoYXIgbXVsKGNoYXIgeCwgY2hh
ciB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorc2hvcnQgbXVsKHNob3J0IHgsIHNob3J0IHkp
IHsKKyAgICByZXR1cm4geCAqIHk7Cit9CitpbnQgbXVsKGludCB4LCBpbnQgeSkgeworICAgIHJl
dHVybiB4ICogeTsKK30KK2hhbGYgbXVsKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIHgg
KiB5OworfQorZmxvYXQgbXVsKGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7
Cit9Cit1Y2hhcjIgbXVsKHVjaGFyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyIG11bCh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAg
IHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFd
ID0geFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBtdWwodWNoYXIgeCwg
dWNoYXIzIHkpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBd
OworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgbXVsKHVjaGFyMyB4LCB1Y2hhciB5KSB7Cisg
ICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRb
MV0gPSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG11bCh1Y2hhciB4LCB1Y2hhcjQgeSkgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBtdWwodWNoYXI0IHgsIHVjaGFyIHkpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsx
XSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9
IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG11bCh1c2hvcnQgeCwg
dXNob3J0MiB5KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlb
MF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDIgbXVsKHVzaG9ydDIgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBtdWwodXNob3J0IHgsIHVzaG9ydDMgeSkgeworICAg
IHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsx
XSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQzIG11bCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAq
IHk7CisgICAgcmVzdWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgbXVsKHVzaG9ydCB4LCB1c2hvcnQ0IHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICBy
ZXN1bHRbMl0gPSB4ICogeVsyXTsKKyAgICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBtdWwodXNob3J0NCB4LCB1c2hvcnQgeSkgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9
IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhb
M10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWludCB4LCB1aW50MiB5
KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJl
c3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWlu
dDIgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0g
KiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50MyBtdWwodWludCB4LCB1aW50MyB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsy
XSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBtdWwodWludDMgeCwg
dWludCB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5Owor
ICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludCB4LCB1aW50NCB5KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHgg
KiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9IHggKiB5
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludDQgeCwgdWludCB5KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3Vs
dFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFsz
XSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBtdWwoY2hhciB4LCBj
aGFyMiB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOwor
ICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBt
dWwoY2hhcjIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBtdWwoY2hhciB4LCBjaGFyMyB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJl
c3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtdWwoY2hh
cjMgeCwgY2hhciB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0g
KiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhciB4LCBjaGFyNCB5KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsx
XSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9
IHggKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhcjQgeCwgY2hh
ciB5KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAg
IHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJl
c3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgbXVsKHNo
b3J0IHgsIHNob3J0MiB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4
ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQyIG11bChzaG9ydDIgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBtdWwoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDMgbXVsKHNob3J0MyB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAg
ICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG11
bChzaG9ydCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmVzdWx0WzJdID0g
eCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBtdWwoc2hvcnQ0IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAg
IHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyIG11bChpbnQgeCwgaW50MiB5KSB7CisgICAgaW50MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgbXVsKGludDIgeCwgaW50IHkpIHsKKyAgICBp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4
WzFdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBtdWwoaW50IHgsIGludDMgeSkg
eworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3Vs
dFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzIG11bChpbnQzIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAg
cmVzdWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbXVsKGlu
dCB4LCBpbnQ0IHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4ICogeVsw
XTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSB4ICogeVsyXTsK
KyAgICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBt
dWwoaW50NCB4LCBpbnQgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhb
MF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0g
KiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMiBtdWwoaGFsZiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZiB4LCBoYWxmMyB5KSB7CisgICAg
aGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBtdWwoaGFsZjMgeCwgaGFsZiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJl
c3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFs
ZiB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5
WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJd
OworICAgIHJlc3VsdFszXSA9IHggKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBtdWwoaGFsZjQgeCwgaGFsZiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9
IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgbXVsKGZsb2F0IHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG11bChmbG9hdDIgeCwgZmxvYXQgeSkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFd
ID0geFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQgeCwg
ZmxvYXQzIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBd
OworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdCB5KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRb
MV0gPSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG11bChmbG9hdCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwoZmxvYXQ0IHgsIGZsb2F0IHkpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsx
XSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9
IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmIHgsIGhh
bGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsw
XSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMngyIHgsIGhhbGYgeSkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5Owor
ICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngzIG11bChoYWxmIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBd
WzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9
IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG11
bChoYWxmMngzIHgsIGhhbGYgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAg
IHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0g
KiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9
IHhbMV1bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmIHgs
IGhhbGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHgg
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAg
IHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9
IHggKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMng0
IHgsIGhhbGYgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhb
MF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsw
XVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAg
IHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0g
KiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9
IHhbMV1bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmIHgs
IGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHgg
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJd
WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gyIHgsIGhhbGYg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5
OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsy
XVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmIHgsIGhhbGYzeDMgeSkgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJd
OworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHgg
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsy
XVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAg
IHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gzIG11bChoYWxmM3gzIHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5
OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsx
XVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAg
IHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmIHgsIGhhbGYzeDQg
eSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHgg
KiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IHggKiB5WzFd
WzNdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9
IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJlc3Vs
dFsyXVszXSA9IHggKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11
bChoYWxmM3g0IHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAg
IHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10g
KiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9
IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3Vs
dFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5Owor
ICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1b
Ml0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9
IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5
WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHgyIHgsIGhhbGYgeSkgeworICAgIGhhbGY0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9
IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3Vs
dFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5Owor
ICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11b
MF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmIHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGY0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9
IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5
WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsy
XSA9IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5WzNdWzBdOworICAgIHJl
c3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IHggKiB5WzNdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHgzIHgsIGhhbGYgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5Owor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1b
Ml0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsx
XSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJl
c3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5
OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhb
M11bMF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFsz
XVsyXSA9IHhbM11bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bCho
YWxmIHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJl
c3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNd
OworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHgg
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsx
XVszXSA9IHggKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAg
IHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJd
WzJdOworICAgIHJlc3VsdFsyXVszXSA9IHggKiB5WzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9
IHggKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3Vs
dFszXVsyXSA9IHggKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IHggKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxmNHg0IHgsIGhhbGYgeSkgewor
ICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAg
IHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0g
KiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9
IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3Vs
dFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5Owor
ICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1b
MV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVsz
XSA9IHhbMl1bM10gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAgIHJl
c3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0gKiB5
OworICAgIHJlc3VsdFszXVszXSA9IHhbM11bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBtdWwoZmxvYXQgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbXVs
KGZsb2F0MngyIHgsIGZsb2F0IHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0geFswXVswXSAqIHk7CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7Cisg
ICAgcmVzdWx0WzFdWzBdID0geFsxXVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsx
XSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG11bChmbG9hdCB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtdWwoZmxvYXQyeDMgeCwgZmxvYXQg
eSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICog
eTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFdICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4
WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbXVsKGZsb2F0IHgsIGZsb2F0Mng0IHkpIHsK
KyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geCAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0geCAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzBd
ID0geCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0geCAqIHlbMV1bM107
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG11bChmbG9hdDJ4NCB4LCBmbG9hdCB5
KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5
OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhb
MF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsx
XVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAg
IHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQgeCwgZmxvYXQz
eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0g
PSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXN1
bHRbMl1bMF0gPSB4ICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4ICogeVsyXVsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbXVsKGZsb2F0M3gyIHgsIGZsb2F0IHkp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAqIHk7
CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0geFsx
XVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0WzJd
WzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG11bChmbG9hdCB4LCBmbG9hdDN4MyB5KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9
IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4MyBtdWwoZmxvYXQzeDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBd
WzFdICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1b
MF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICog
eTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzJdWzFdICogeTsKKyAgICByZXN1bHRbMl1bMl0gPSB4
WzJdWzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbXVsKGZsb2F0IHgs
IGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
eCAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzBdWzJdID0geCAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107Cisg
ICAgcmVzdWx0WzFdWzBdID0geCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0geCAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzJdWzFdID0geCAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzJdWzNdID0geCAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3g0IG11bChmbG9hdDN4NCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhb
MF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsw
XVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAg
IHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0g
KiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9
IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3Vs
dFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQgeCwgZmxvYXQ0eDIgeSkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVswXVswXTsK
KyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1b
MF0gPSB4ICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4ICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbM11bMF0gPSB4ICogeVszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSB4ICogeVszXVsx
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbXVsKGZsb2F0NHgyIHgsIGZsb2F0
IHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAq
IHk7CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0g
eFsxXVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0
WzJdWzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7Cisg
ICAgcmVzdWx0WzNdWzBdID0geFszXVswXSAqIHk7CisgICAgcmVzdWx0WzNdWzFdID0geFszXVsx
XSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG11bChmbG9hdCB4LCBmbG9h
dDR4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJd
OworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHgg
KiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFsz
XVswXSA9IHggKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAg
IHJlc3VsdFszXVsyXSA9IHggKiB5WzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFd
ICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1bMF0g
PSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICByZXN1
bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICogeTsK
KyAgICByZXN1bHRbMl1bMV0gPSB4WzJdWzFdICogeTsKKyAgICByZXN1bHRbMl1bMl0gPSB4WzJd
WzJdICogeTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzNdWzBdICogeTsKKyAgICByZXN1bHRbM11b
MV0gPSB4WzNdWzFdICogeTsKKyAgICByZXN1bHRbM11bMl0gPSB4WzNdWzJdICogeTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbXVsKGZsb2F0IHgsIGZsb2F0NHg0IHkpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geCAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0geCAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
eCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0geCAqIHlbMV1bM107Cisg
ICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0geCAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0geCAqIHlbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0geCAqIHlbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0geCAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0geCAqIHlbM11bMl07
CisgICAgcmVzdWx0WzNdWzNdID0geCAqIHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IG11bChmbG9hdDR4NCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhb
MF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsw
XVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAg
IHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0g
KiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9
IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3Vs
dFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5Owor
ICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11b
MV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0gKiB5OworICAgIHJlc3VsdFszXVsz
XSA9IHhbM11bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgbXVsKHVjaGFy
MiB4LCB1Y2hhcjIgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1Y2hhcjMgbXVsKHVj
aGFyMyB4LCB1Y2hhcjMgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1Y2hhcjQgbXVs
KHVjaGFyNCB4LCB1Y2hhcjQgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1c2hvcnQy
IG11bCh1c2hvcnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1
c2hvcnQzIG11bCh1c2hvcnQzIHgsIHVzaG9ydDMgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7
Cit9Cit1c2hvcnQ0IG11bCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50MiBtdWwodWludDIgeCwgdWludDIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50MyBtdWwodWludDMgeCwgdWludDMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50NCBtdWwodWludDQgeCwgdWludDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyMiBtdWwoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyMyBtdWwoY2hhcjMgeCwgY2hhcjMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyNCBtdWwoY2hhcjQgeCwgY2hhcjQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitzaG9ydDIgbXVsKHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitzaG9ydDMgbXVsKHNob3J0MyB4LCBzaG9ydDMgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitzaG9ydDQgbXVsKHNob3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHJl
dHVybiBkb3QoeCwgeSk7Cit9CitpbnQyIG11bChpbnQyIHgsIGludDIgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitpbnQzIG11bChpbnQzIHgsIGludDMgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitpbnQ0IG11bChpbnQ0IHgsIGludDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmMyBtdWwoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmNCBtdWwoaGFsZjQgeCwgaGFsZjQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitmbG9hdDIgbXVsKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitmbG9hdDQgbXVsKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIHJl
dHVybiBkb3QoeCwgeSk7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZjJ4MiB5KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0g
Kz0geFsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG11bChoYWxm
MngyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsK
KyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1b
MV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0g
KiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjMgbXVsKGhhbGYyIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAg
ICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjIgbXVsKGhhbGYyeDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAg
ICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMl0g
KiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5
WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0g
eFsxXVsyXSAqIHlbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG11bChoYWxmMiB4
LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAg
ICByZXN1bHRbMF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl0gPSAw
OworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFswXSAq
IHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0gKiB5WzFdWzNdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjJ4NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFsw
XVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3Vs
dFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsx
XSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMiBtdWwoaGFsZjMgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07
CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICog
eVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzeDIgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3Vs
dFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07
CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAg
cmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICog
eVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzIHgsIGhhbGYzeDMg
eSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFsw
XSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAg
cmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0g
MDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhb
MV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsyXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzeDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICog
eVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9
IHhbMF1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgbXVsKGhhbGYzIHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSAr
PSB4WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4
WzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM10gKz0geFsxXSAqIHlbMV1bM107CisgICAgcmVz
dWx0WzNdICs9IHhbMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBt
dWwoaGFsZjN4NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjQgeCwgaGFsZjR4MiB5KSB7Cisg
ICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhb
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBd
OworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbM10gKiB5WzNdWzFdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjR4MiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsx
XSAqIHlbMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFsyXVswXSAq
IHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAgIHJlc3VsdFszXSA9
IDA7CisgICAgcmVzdWx0WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAgIHJlc3VsdFszXSArPSB4
WzNdWzFdICogeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGY0IHgs
IGhhbGY0eDMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAg
IHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzNdICogeVszXVsx
XTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl0g
KiB5WzJdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzNdICogeVszXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgbXVsKGhhbGY0eDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVsw
XTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhb
MF1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
MV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0g
Kz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAg
IHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJl
c3VsdFszXSArPSB4WzNdWzBdICogeVswXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsxXSAqIHlb
MV07CisgICAgcmVzdWx0WzNdICs9IHhbM11bMl0gKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBtdWwoaGFsZjQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXSA9
IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzFdICs9IHhbM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0
WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMl0gKz0geFsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbM10g
KiB5WzNdWzJdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9IHhbMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM10g
Kz0geFsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzNdICs9IHhbM10gKiB5WzNdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjR4NCB4LCBoYWxmNCB5KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
MF0gKz0geFswXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOwor
ICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAg
IHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAq
IHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9
IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4
WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVz
dWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0
WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAgIHJlc3VsdFszXSArPSB4WzNdWzFdICogeVsxXTsK
KyAgICByZXN1bHRbM10gKz0geFszXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzNdICs9IHhbM11b
M10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0MiB4LCBm
bG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAg
IHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgbXVsKGZsb2F0MngyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsK
KyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzFdID0gMDsKKyAg
ICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0g
KiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MiB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJl
c3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7Cisg
ICAgcmVzdWx0WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICog
eVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG11bChmbG9hdDJ4MyB4LCBm
bG9hdDMgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICBy
ZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5
WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAw
OworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsx
XVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgbXVsKGZsb2F0MiB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFd
ID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9
IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhb
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4WzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
M10gKz0geFsxXSAqIHlbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBtdWwo
ZmxvYXQyeDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0MyB4
LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOwor
ICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSAr
PSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQzeDIgeCwgZmxvYXQyIHkpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhb
MF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1
bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRb
MV0gKz0geFsxXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0g
Kz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdDN4MyB5KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0
WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAg
ICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIG11bChmbG9hdDN4MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlb
MF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4
WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFd
WzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsxXSAqIHlbMV07CisgICAgcmVzdWx0
WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJd
ICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAg
ICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBtdWwoZmxvYXQzIHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICog
eVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJd
ICs9IHhbMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9
IHhbMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVszXTsKKyAgICBy
ZXN1bHRbM10gKz0geFsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MyBtdWwoZmxvYXQzeDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3Vs
dFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07
CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFd
ICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFd
ICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9
IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICBy
ZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0NCB4LCBmbG9hdDR4
MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3Vs
dFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzNd
ICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
ICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzNdICogeVszXVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDR4MiB4LCBmbG9hdDIgeSkgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0g
eFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJl
c3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3Vs
dFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsy
XSArPSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsxXSAqIHlbMV07Cisg
ICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgbXVsKGZsb2F0NCB4LCBmbG9hdDR4MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFswXSArPSB4WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAq
IHlbMV1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsx
XSArPSB4WzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSAr
PSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzJdICs9IHhbMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzNdICogeVsz
XVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDR4MyB4LCBmbG9h
dDMgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1
bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsx
XSAqIHlbMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsy
XSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSAr
PSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAgcmVz
dWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJlc3VsdFszXSArPSB4WzNdWzJdICogeVsy
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDQgeCwgZmxvYXQ0eDQg
eSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRb
MF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFswXSArPSB4WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSAr
PSB4WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzJdICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbMl0gKz0geFszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdID0gMDsK
KyAgICByZXN1bHRbM10gKz0geFswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0g
KiB5WzFdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzJdICogeVsyXVszXTsKKyAgICByZXN1bHRb
M10gKz0geFszXSAqIHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwo
ZmxvYXQ0eDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOwor
ICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAg
IHJlc3VsdFszXSArPSB4WzNdWzFdICogeVsxXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsyXSAq
IHlbMl07CisgICAgcmVzdWx0WzNdICs9IHhbM11bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
WzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSAr
PSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtdWwo
aGFsZjJ4MiB4LCBoYWxmMngzIHkpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4NCBtdWwoaGFsZjJ4MiB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIG11bChoYWxmMngzIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
Ml0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbXVsKGhhbGYyeDMgeCwgaGFsZjN4MyB5KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICBy
ZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAg
cmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAg
IHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
bXVsKGhhbGYyeDMgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAq
IHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMng0IHgsIGhhbGY0eDIgeSkgewor
ICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsx
XVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG11bChoYWxmMng0IHgs
IGhhbGY0eDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFd
OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
M10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMng0IHgsIGhhbGY0eDQgeSkgeworICAg
IGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRd
ICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0
XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFd
WzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSAr
PSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gyIHgsIGhhbGYyeDIgeSkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1
bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MV0gKiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmM3gy
IHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9
IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsw
XVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJl
c3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzNd
ID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsw
XSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmM3gyIHgsIGhhbGYyeDQgeSkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsw
XVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVsw
XVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gzIHgsIGhhbGYzeDIg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICBy
ZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gzIG11bChoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IG11bChoYWxmM3gzIHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3g0IHgsIGhhbGY0eDIg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9
IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJl
c3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNd
WzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhb
MV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmM3g0IHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSAr
PSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsx
XVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNd
ICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVszXSA9IDA7
CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmM3g0IHgsIGhhbGY0eDQg
eSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNd
WzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0g
KiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0
XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAg
IHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNd
OworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1b
NF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5
WzNdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsy
XVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsy
XVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHgyIHgsIGhhbGYyeDIgeSkg
eworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1
bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9
IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlbMV1bMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbXVsKGhhbGY0eDIgeCwgaGFsZjJ4MyB5KSB7CisgICAg
aGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlb
MV1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1b
M10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAg
ICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9
IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNd
WzNdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbXVsKGhhbGY0eDIgeCwgaGFsZjJ4NCB5KSB7
CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
M107CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAq
IHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJl
c3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0g
PSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxm
NHgzIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsy
XSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0g
eFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFd
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJd
WzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJd
WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSAr
PSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFsz
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0g
Kz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBtdWwoaGFsZjR4MyB4LCBoYWxmM3gzIHkpIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsz
XSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFd
WzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSAr
PSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsy
XVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
M11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICBy
ZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhb
M11bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNd
ICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0
WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAg
cmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4
WzNdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBtdWwoaGFs
ZjR4MyB4LCBoYWxmM3g0IHkpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
NF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBd
WzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1b
M107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRb
MV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3Vs
dFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5
WzFdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1
bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNd
WzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07Cisg
ICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSAr
PSB4WzNdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFsz
XVs0XSArPSB4WzNdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAq
IHlbMV1bM107CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzNdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHg0IHgsIGhhbGY0eDIgeSkgeworICAg
IGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJd
ICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAg
cmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVsy
XSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAg
IHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5
WzNdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9
IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJd
WzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSAr
PSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsz
XVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFsz
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHg0IHgsIGhhbGY0eDMgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzJd
OworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
M10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVszXSA9
IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAq
IHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJl
c3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNd
WzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNd
ICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAg
cmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4
WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsz
XSA9IDA7CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFszXVszXSArPSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxmNHg0IHgsIGhhbGY0eDQgeSkgewor
ICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsw
XVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBd
WzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10g
KiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlb
Ml1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3Vs
dFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNd
OworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
M10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVs0XSA9
IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsy
XVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAq
IHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOworICAgIHJl
c3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bNF0g
Kz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNd
WzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRd
ICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0
WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAg
cmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4
WzNdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bM107
CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBtdWwoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAw
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IG11bChmbG9hdDJ4MiB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBtdWwoZmxvYXQyeDIgeCwgZmxvYXQyeDQgeSkgeworICAgIGZs
b2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
PSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBd
ICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBtdWwoZmxvYXQyeDMgeCwgZmxvYXQzeDIgeSkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsy
XSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0g
eFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1b
Ml0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
Ml0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtdWwoZmxvYXQy
eDMgeCwgZmxvYXQzeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBd
WzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDQgbXVsKGZsb2F0MngzIHgsIGZsb2F0M3g0IHkpIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRb
MF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRd
ICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1b
NF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtdWwo
ZmxvYXQyeDQgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVsw
XTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSAr
PSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgbXVsKGZsb2F0Mng0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDJ4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsy
XVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0
WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMF07
CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsz
XSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0
IG11bChmbG9hdDJ4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1b
M107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBtdWwoZmxvYXQzeDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsy
XSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0g
eFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbXVsKGZsb2F0M3gyIHgsIGZsb2F0MngzIHkp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICog
eVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3g0IG11bChmbG9hdDN4MiB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0
XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
Ml07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAq
IHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQzeDMgeCwgZmxvYXQzeDIgeSkgewor
ICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJl
c3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0g
Kz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsy
XSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMg
bXVsKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAg
ICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IG11bChmbG9hdDN4MyB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107
CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsz
XTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAq
IHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJl
c3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOwor
ICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0g
Kz0geFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJd
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQzeDQgeCwgZmxv
YXQ0eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOwor
ICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0g
Kz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJd
WzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRb
MF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhb
MF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNd
ICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4
WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsy
XSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3Vs
dFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVszXVsxXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbXVsKGZsb2F0M3g0IHgsIGZsb2F0NHgzIHkpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBd
WzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0
WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMV07
CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsz
XSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG11bChmbG9hdDN4
NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0
XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSAr
PSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10g
KiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJd
OworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
M10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQ0
eDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
Ml0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAg
ICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsy
XVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOwor
ICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0g
Kz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRb
M11bMl0gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0g
KiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtdWwoZmxvYXQ0eDIg
eCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10g
PSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhb
MF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsz
XSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAg
IHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0g
eFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1b
M10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNd
WzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVszXSA9IDA7Cisg
ICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVszXSAr
PSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbXVs
KGZsb2F0NHgyIHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFd
WzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1b
NF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNd
WzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1b
M107CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQzeDIgeSkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsw
XVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFsw
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRb
MV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhb
MV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsy
XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFszXVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0g
eFszXVsyXSAqIHlbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG11bChm
bG9hdDR4MyB4LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAq
IHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOworICAgIHJl
c3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVsz
XSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3Vs
dFszXVszXSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQzeDQgeSkg
eworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAg
ICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsz
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAg
IHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0g
eFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5
WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1
bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICog
eVswXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bM107CisgICAgcmVz
dWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBtdWwoZmxvYXQ0eDQgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZsb2F0NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0g
PSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0g
KiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVsz
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsy
XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFszXVsyXSArPSB4WzNdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAg
IHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0g
eFszXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzNdICogeVszXVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgbXVsKGZsb2F0NHg0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzNdID0g
MDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICog
eVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11b
MF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzNd
ID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlb
M11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bM10gKz0g
eFszXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11b
M10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAg
ICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9
IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NHg0IG11bChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxv
YXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNd
WzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0
XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsy
XSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAg
IHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5
WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICog
eVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
M107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsz
XVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFsz
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdWzRd
ICs9IHhbM11bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0
WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFd
ICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bM107CisgICAg
cmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitgOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50
Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVy
LmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3ZjdmYzFhNjNiYzcxY2YzMTYuLjNiODQ4
ODhhNzA1NTc2MGQ2MGVhNjgzMjFjNTQzODFkNmJmNDQ3NjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKQEAgLTI3LDExICsyNyw5IEBA
CiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXRGdW5j
RGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBub2RlLnR5cGVQ
YXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykp
OwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNEZWYoCiAgICAgICAgICAgICBub2RlLm9y
aWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMp
LAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRl
cnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAg
bm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hh
ZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNzIFN0YXRlbWVudENsb25lciBleHRlbmRz
IFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlw
ZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQ
YXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2Rl
LnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAg
ICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CiAgICAgICAgIHJlc3VsdC5p
c1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKQEAgLTU0LDUyICs1MSwyNCBAQCBjbGFz
cyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXROYXRpdmVUeXBl
KG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUoCi0gICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFy
YW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpKTsKKyAgICAgICAgICAgIG5vZGUu
b3JpZ2luLCBub2RlLmJhc2VOYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVu
dCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRU
eXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYoCiAgICAgICAg
ICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1l
dGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAg
ICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0
U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RU
eXBlKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5v
ZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNp
dCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUobm9kZS5vcmln
aW4sIG5vZGUubmFtZSk7CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQog
ICAgICAgICAgICAgcmVzdWx0LmFkZChmaWVsZC52aXNpdCh0aGlzKSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihu
b2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFByb3RvY29sRGVjbChub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICAgICAgZm9y
IChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcmVzdWx0LmFkZEV4
dGVuZHMocHJvdG9jb2wudmlzaXQodGhpcykpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUg
b2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgcmVzdWx0LmFkZChzaWduYXR1cmUudmlz
aXQodGhpcykpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VHlw
ZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShu
b2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBOb2RlLnZpc2l0KG5vZGUucHJvdG9jb2wsIHRoaXMpKTsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG5ldyBQcm90b2NvbFJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRCb29sTGl0ZXJhbChub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5l
dyBCb29sTGl0ZXJhbChub2RlLm9yaWdpbiwgbm9kZS52YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwppbmRleCA0Zjk4
YzU3M2ExYTM4MjM3ZTE2NDUwYWUxMGI4NmNiMmU2MWQxMjMwLi43NDQxZGVlZWQ0M2QwNjJkYjEz
MDM2NzY0OTBmMzY4Y2ViNmQ4M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKQEAgLTM5LDggKzM5LDYgQEAgY2xhc3Mg
U3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgaWYg
KG5vZGUuc2l6ZSAhPSBudWxsKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobm9k
ZS50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bm5vdCBkbyBsYXlvdXQgZm9yIGdlbmVyaWMgdHlwZTogIiArIG5vZGUpOwogICAgICAgICBsZXQg
b2xkT2Zmc2V0ID0gdGhpcy5fb2Zmc2V0OwogICAgICAgICB0aGlzLl9vZmZzZXQgPSAwOwogICAg
ICAgICBzdXBlci52aXNpdFN0cnVjdFR5cGUobm9kZSk7CkBAIC02MCwxMiArNTgsNiBAQCBjbGFz
cyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX29m
ZnNldCArPSBzaXplOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShu
b2RlKQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSk7
Ci0gICAgICAgIG5vZGUuZnVuYy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBsZW1lbnRhdGlvbkRhdGEo
bm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEpOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKQEAgLTc2LDEz
ICs2OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICB7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0KQogICAg
ICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIGxldCBoYW5kbGVU
eXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0gICAgICAgICAgICBpZiAo
YWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50
IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50LnZp
c2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBoYW5kbGVUeXBl
QXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAg
IE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwogICAgICAgICBOb2Rl
LnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKaW5kZXggZjlkOGM3ZGE0ODU4MzIxNjFlNTVkMjJh
NDM4NzYyOTkzMzdjYjkzNi4uMzk0N2ZkYmFjMDcwMDBkZTgwZmZmNjVmZDY2YzZlMDA1OGEyN2Vj
MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCkBAIC0y
NSwxMiArMjUsMTEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgU3RydWN0VHlwZSBleHRlbmRz
IFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpCisg
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
LSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAg
dGhpcy5fZmllbGRzID0gbmV3IE1hcCgpOwogICAgIH0KICAgICAKQEAgLTQ0LDcgKzQzLDYgQEAg
Y2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1l
dGVyczsgfQogICAgIAogICAgIGdldCBmaWVsZE5hbWVzKCkgeyByZXR1cm4gdGhpcy5fZmllbGRz
LmtleXMoKTsgfQogICAgIGZpZWxkQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkcy5n
ZXQobmFtZSk7IH0KQEAgLTU4LDMyICs1Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBU
eXBlIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgaW5zdGFudGlh
dGUodHlwZUFyZ3VtZW50cyA9IG51bGwpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9u
ID0gbnVsbDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy50eXBlUGFyYW1ldGVy
czsKLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICBp
ZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRvIGluc3RhbnRpYXRpb24iKTsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlv
bih0aGlzLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLSAgICAgICAgICAgIHR5cGVQ
YXJhbWV0ZXJzID0gW107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW50
aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7Ci0gICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZSh0aGlzLm9yaWdpbiwgdGhpcy5uYW1lLCB0eXBlUGFy
YW1ldGVycyk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7Ci0gICAg
ICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZDsKLSAgICAgICAgICAgIGlmIChzdWJzdGl0dXRp
b24pCi0gICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChzdWJzdGl0dXRp
b24pOwotICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChpbnN0YW50aWF0ZUlt
bWVkaWF0ZXMpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChuZXdGaWVsZCk7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAgIHBvcHVs
YXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
c2l6ZSA9PSBudWxsKQpAQCAtOTQsNiArNjYsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMg
VHlwZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJzdHJ1
Y3QgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiB7ICIgKyBB
cnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CisgICAgICAgIHJldHVy
biAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIEFycmF5LmZyb20odGhpcy5maWVsZHMp
LmpvaW4oIjsgIikgKyAiOyB9IjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdWJzdGl0dXRpb24uanMKaW5kZXggNmEyMjNmNjc5NGE4NTZjNjQzMDhkZjQwYWI5
MThhY2EyMDg2ZmIyOS4uNGFjZGZmY2VjYzU2MWEyMzM0MjAzM2UxYjhkZDMxYmFlMzM1NjZiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0aXR1dGlvbi5qcwpAQCAt
NDAsMTIgKzQwLDggQEAgY2xhc3MgU3Vic3RpdHV0aW9uIGV4dGVuZHMgUmV3cml0ZXIgewogICAg
IHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gdGhp
cy5fbWFwLmdldChub2RlLnR5cGUpOwotICAgICAgICBpZiAocmVwbGFjZW1lbnQpIHsKLSAgICAg
ICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGFyZ3VtZW50cyBvbiB0eXBlIHZhcmlhYmxl
Iik7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVwbGFjZW1lbnQudmlzaXQobmV3IEF1dG9X
cmFwcGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQorICAgICAg
ICBpZiAocmVwbGFjZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQudmlzaXQo
bmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICAKICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVy
LnZpc2l0VHlwZVJlZihub2RlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMu
anMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhjMjlmMWVhMDUxMGNlMjllMjgwYTU2Zi4uMTdiNjE4
NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0MDAxNzliMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKQEAg
LTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFt
KQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMg
PSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9PSIs
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIsIFtdKSwgW10sCisgICAgICAgICAgICB0
eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgImJvb2wi
KSwKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBl
Lm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKSwK
LSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKQorICAgICAgICAgICAgICAgIG5l
dyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lKSksCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5v
cmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKQogICAgICAg
ICAgICAgXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2
ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4gRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgIHByb2dyYW0uYWRkKG5h
dGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5j
KAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5
cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFt
ZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFt
ZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlw
ZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRp
dmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9n
cmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcg
TmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5
cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcg
RnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4s
IHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNh
c3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtu
ZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAg
ICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAg
ICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVu
YyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBj
YXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pLCBbXSwKKyAgICAg
ICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCB0eXBlLm5hbWUpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3Jp
Z2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSldLAogICAgICAg
ICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCmluZGV4IGY3ODE2
ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1ZTRiZmUzYTkuLjBhYTc1NjBlYTUzZmVhYmM5Nzc5
ZDIwOGJjNGFkZTY5YjE5Yzg4NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwpAQCAtMzEsMjggKzMx
LDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiB0eXBl
LmZpZWxkcykgewotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLnR5cGVQYXJhbWV0ZXJz
Lm1hcCgKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVy
LnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3cml0ZXIoKSkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlQXJndW1lbnRzKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZVBhcmFtZXRlcnMubWFwKHR5
cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cElt
cGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCBpbXBsZW1lbnRhdGlvbikKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24g
PSBzdWJzdGl0dXRpb24gPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IHR5
cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRl
ciA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZSA9IHN1YnN0aXR1
dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFzdWJzdGl0dXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlcik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZTsKLSAgICAgICAgICAg
ICAgICAgICAgfSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IG5ld1R5cGUs
IGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0gICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAg
ICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9u
RGF0YSwgdmlzaXRvcikgPT4gewogICAgICAgICAgICAgICAgICAgICAvLyBWaXNpdGluZyB0aGUg
dHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHN0cnVjdCBsYXlvdXQgYnVpbGRlciBmaWd1cmVz
IG91dCB0aGUgZmllbGQncwogICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQuCkBAIC04OSwy
MyArNjksMjEgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVGaWVsZFR5cGUoKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC50eXBlLnZpc2l0KG5ldyBT
dWJzdGl0dXRpb24odHlwZS50eXBlUGFyYW1ldGVycywgdHlwZVBhcmFtZXRlcnMpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVS
ZWYoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBUeXBlUmVmLmluc3Rh
bnRpYXRlKHR5cGUsIGNyZWF0ZVR5cGVBcmd1bWVudHMoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGxldCBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAgICAgIGxldCBzaGFk
ZXJUeXBlOwotICAgICAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICAgICAgbGV0
IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXI6IG9wZXJhdG9yLmZpZWxk
Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAg
ICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICAgICAg
ZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUsIGNyZWF0ZUZpZWxkVHlwZSgp
LCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAgICAgICAgICAgICAgICAgW25l
dyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlVHlwZVJlZigpKV0sIGlz
Q2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShu
YXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUsIGZpZWxkU2l6ZSkgPT4gewog
ICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihmaWVsZFNp
emUpLCAwKTsKQEAgLTExNSw5ICs5Myw4IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBvcGVyYXRvci5maWVsZD0KLSAg
ICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAg
ICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigp
LCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigpLAogICAgICAgICAgICAgICAg
IFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBu
dWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFt
ZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlwZSgpKQpAQCAtMTM0LDEwICsx
MTEsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAg
ICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAogICAgICAgICAgICAgZnVuY3Rp
b24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAg
ICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAgICAgICAgICAgZmll
bGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBuZXcgUHRyVHlwZShmaWVsZC5v
cmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkpLAotICAgICAgICAgICAgICAg
ICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2ZDBiZGQ0NDFiYmMuLjdhZDRh
ZDdiNDUwNTY1ZTRjNTZkYjU5MGE2MjA5ZjhlNzEyZTJkMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJDbG9u
ZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJy
YXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5q
cyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmln
aW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0
ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0
cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgpAQCAtNjMsNyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNEZWYu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmll
RmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZl
clR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJ
bnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2LDcg
QEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
YW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0
eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5
Nyw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhV
bm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3Rv
Y29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEz
MSwxMCArMTIxLDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVP
clZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3
cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlw
ZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qcwppbmRleCAzMjJhMGE3MTc4NTBkNzMyOTA4NDhlOTNiZjk1YmQzYTI0
MjQxYzY2Li4xMjQ5MDZjZTJjNWE2ZDUwNjA2MmNhNGI0OWIwNmU0YWE5MzMzMmFkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4Nyw3ICsxODcsNyBAQCB0ZXN0cy5j
b21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBydW5zIG92ZXIgbXVsdGlwbGUg
bGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVw
KGAKQEAgLTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rpb24o
KSB7CiAKIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfSIpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1
ZSk7CiB9CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsgcmV0dXJuIHg7IH0iKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHgg
KyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5
KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDUpXSksIDM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSld
KSwgLTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IC0yKV0pLCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVy
biB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEyKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4g
eCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA0Mjk0
OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5NDk2NzI5NCk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHgg
KiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
MzUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMzUpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC8g
eTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CiB9CiAKIHRl
c3RzLnVpbnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggLSB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMik7
Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsKICAgICBwcm9ncmFt
ID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAqIHk7IH0i
KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAg
cHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHgg
LyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgMild
KSwgMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsK
IH0KIAogdGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAo
ImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28o
Ym9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7
CiB9CiAKIHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJu
IHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHgg
IT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSld
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9
IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5j
dGlvbigpCkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0g
ZnVuY3Rpb24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9uID0gZnVuY3Rpb24oKQogewogICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCkgeyByZXR1cm4gIXg7IH0iKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgdHJ1ZSk7
CiB9CiAKIHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cCgiaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
MildKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMuc2ltcGxlR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHRlc3RzLnNpbXBsZUdlbmVy
aWMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAg
ICAgICAgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQoeCkgKyAxOyB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRl
c3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTMzMSw3ICszMzEsNyBA
QCB0ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1
bmN0aW9uKCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwogfQog
CiB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQpAQCAtMzU2LDcgKzM1Niw3IEBAIHRl
c3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNpbXBsZURlcmVm
ZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2OSw3IEBAIHRlc3RzLnNpbXBsZURlcmVm
ZXJlbmNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxP
cmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZm
ZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigp
CkBAIC0zODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNl
dCgwLCAxMyk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFs
dWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwg
MCkpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0IGNvbnRhaW5zOiAiICsg
YnVmZmVyLmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgdGVzdHMuc2ltcGxlTWFrZVB0
ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAmeDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7
CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAg
IGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJu
IHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3Vs
dC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAt
NDE4LDcgKzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBg
KTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4
OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtU
eXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIs
IDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVh
ZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVm
ZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAK
QEAgLTQzMiw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWRJbnRMaXRlcmFsID0gZnVu
Y3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBi
dWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmln
aW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5l
dyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFs
T3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1
bHQsIDg5KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBAIHRlc3RzLmRldmljZUFycmF5TG9hZCA9
IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAg
ICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRl
cm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJy
YXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
cmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYzLDEwIEBAIHRlc3RzLnRocmVhZEFycmF5
U3RvcmUgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAg
ICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZl
ciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlS
ZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5n
ZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0x
MTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVj
dGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC00ODQsMTAgKzQ4NCwxMCBAQCB0
ZXN0cy5kZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5
cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwog
ICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQo
MCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFr
ZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQo
MCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGlu
dG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtNTA1
LDMyICs1MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZUludExpdGVyYWwgPSBmdW5jdGlv
bigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJh
eVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAg
ICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJv
Z3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYs
IG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhw
ZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTEx
MSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsg
YnVmZmVyLmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBsZVByb3RvY29sID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlBZGRhYmxl
IHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBNeUFkZGFibGUp
OwotICAgICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlBZGRhYmxlPihUIGEsIFQgYikKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZGQoeCwgNzMpOwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDUpXSksIDQ1ICsgNzMpOwotfQotCiB0
ZXN0cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApA
QCAtNjY2LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICBs
ZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAgYnVmZmVyLnNldCgwLCA2Mik7CiAgICAg
YnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtu
ZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwogICAgIGlm
ICghcmVzdWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUpKQogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGxldCB4ID0gcmVz
dWx0LmVQdHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTksNiBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5
OiAiICsgeSArICIgKHggKyAiICsgeCArICIpIik7CiB9CiAKLXRlc3RzLmdlbmVyaWNTdHJ1Y3RJ
bnN0YW5jZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVCB4OwotICAgICAgICAgICAgVCB5Owot
ICAgICAgICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhGb288aW50PiBmb28pCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC54ID0gZm9v
Lnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54OwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBzdHJ1Y3RUeXBlID0gVHlwZVJlZi5p
bnN0YW50aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9vIiksIFtwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzJdKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7Ci0gICAgYnVmZmVyLnNl
dCgwLCA2Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwot
ICAgIGxldCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwotICAgIGlmICh4ICE9IDI0KQotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeDogIiArIHggKyAiICh5ID0gIiAr
IHkgKyAiKSIpOwotICAgIGlmICh5ICE9IDYyKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldy
b25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwotfQotCiB0ZXN0
cy5kb3VibGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmljID0gZnVuY3Rpb24oKQogewogICAgIGRv
UHJlcChgCkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMucmV0dXJuTnVsbCA9IGZ1bmN0aW9uKCkK
ICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVhZCBpbnQqIGZvbygpIHsg
cmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQu
dHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURl
ZmF1bHROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisg
ICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03ODAsNyArNzM0LDcgQEAg
dGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAg
IGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApA
QCAtNzk3LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpYyA9IGZ1bmN0
aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2Vv
ZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgxMSw3IEBAIHRlc3RzLnJldHVybk51bGxB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IHRocmVhZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVz
dWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQu
dHlwZS5pc0FycmF5UmVmKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlz
IG5vdCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1
bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAg
LTg3Niw3ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHROdWxsQXJyYXlSZWYgPSBm
dW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3Rh
bmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3ICs4NDQsNyBAQCB0ZXN0cy5kZWZhdWx0
SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsK
ICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTkw
NCw3ICs4NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRl
cmFsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05MjEsNyArODc1LDcgQEAgdGVzdHMu
cGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0K
ICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9
CiAKQEAgLTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJQb2x5bW9ycGhpY0Fy
cmF5UmVmID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJuSW50TGl0ZXJhbFVpbnQgPSBmdW5jdGlv
bigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKCkgeyByZXR1cm4gNDI7
IH0iKTsKLSAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5yZXR1cm5JbnRMaXRlcmFsRmxv
YXQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImZsb2F0IGZvbygp
IHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuYmFkSW50
TGl0ZXJhbEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4OCw3ICs5NDIsNyBAQCB0ZXN0cy5wYXNz
TnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5l
dyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcg
UHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShl
eHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBF
UHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVs
bFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1OSw3IEBAIHRlc3RzLnBhc3NOdWxsQW5k
Tm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1
bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEwMjIsNjUgKzk3Niw3IEBAIHRlc3RzLnBh
c3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAg
ICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5
cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwotfQotCi10
ZXN0cy5udWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IGxlZnQg
PSBuZXcgTnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwotICAgIGxldCByaWdodCA9IG5ldyBUeXBl
VmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAgaWYgKGxlZnQuZXF1YWxz
KHJpZ2h0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1
dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICBpZiAocmlnaHQuZXF1YWxz
KGxlZnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0
IGFyZTogIiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQpOwotICAgIAotICAgIGZ1bmN0aW9uIGV2
ZXJ5T3JkZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gcmVjdXJz
ZShhcnJheSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWFy
cmF5Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suY2FsbChudWxsLCBv
cmRlcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJy
YXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgbmV4dEFycmF5ID0gYXJyYXku
Y29uY2F0KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFycmF5LnNwbGljZShpLCAxKTsKLSAgICAg
ICAgICAgICAgICByZWN1cnNlKG5leHRBcnJheSwgY2FsbGJhY2ssIG9yZGVyLmNvbmNhdChbYXJy
YXlbaV1dKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJl
Y3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIGV2
ZXJ5UGFpcih0aGluZ3MpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gW107Ci0gICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBm
b3IgKGxldCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAg
IGlmIChpICE9IGopCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKFt0aGluZ3NbaV0s
IHRoaW5nc1tqXV0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3JkZXIoCi0gICAgICAgIGV2ZXJ5UGFpcihb
Im51bGxUeXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJUeXBlIl0pLAotICAgICAgICBvcmRlciA9
PiB7Ci0gICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsKLSAgICAgICAgICAgIHR5cGVzLm51bGxU
eXBlID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICAgICAgICAgIHR5cGVzLnZh
cmlhYmxlVHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7
Ci0gICAgICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4s
ICJjb25zdGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVybmFsT3JpZ2luLCAiZm9vX3QiLCBbXSkp
OwotICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNv
bnRleHQoW3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAgICAgICAgICAgZm9yIChsZXQgW2xlZnRO
YW1lLCByaWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGxlZnQgPSB0
eXBlc1tsZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJpZ2h0ID0gdHlwZXNbcmlnaHRO
YW1lXTsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbGVmdC51bmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBvcmRlciAiICsgb3JkZXIgKyAiIGNhbm5v
dCB1bmlmeSAiICsgbGVmdCArICIgd2l0aCAiICsgcmlnaHQpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCkucmVzdWx0KQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVyLm1hcCh2YWx1ZSA9
PiAiKCIgKyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2ZXJpZnkiKTsKLSAgICAgICAgfSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRW
YWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3Rz
LmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEsOCArOTg3LDggQEAgdGVzdHMuZG91Ymxl
Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuICEheDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaW9uID0g
ZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBAQCB0ZXN0cy5zaW1wbGVSZWN1cnNpb24g
PSBmdW5jdGlvbigpCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9
CiAKLXRlc3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAg
ICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAg
IEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZp
cnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0g
ICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50QW5kYWJsZSwgaW50KTsKLSAgICAgICAg
fQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBz
ZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7
Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3Jh
bSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbFBvbHlTaWdQb2x5RGVmID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0
IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29u
ZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBz
ZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAg
ICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBz
ZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHBy
b3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihJbnRB
bmRhYmxlLCBUKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBm
aXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVz
dWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5m
aXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90
b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAg
ICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhp
cmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmly
c3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwg
VT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAg
ICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhp
cmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJ
bnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJs
ZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3Vs
dC50aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUlu
dChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19
Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJ
bnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNv
bmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBV
PiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJz
dCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAg
ICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFu
ZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8
aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1
bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChw
cm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQogdGVzdHMudmFyaWFibGVTaGFkb3dp
bmcgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtMTIyOSw3
ICsxMDE3LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgOCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDgpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgewpAQCAtMTI0Miw3ICsx
MDMwLDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogfQogCiB0ZXN0cy5p
ZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcsMTMgKzEwNDUsMTMgQEAgdGVzdHMuaWZT
dGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkK
QEAgLTEyODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3
KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0p
LCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogfQog
CiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMDMsMTMgKzEwOTEs
MTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZUlm
RWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMjgsMTMgKzExMTYsMTMgQEAgdGVzdHMu
aWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKIH0KIAogdGVzdHMucmV0dXJu
SWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1LDEzIEBAIHRlc3RzLnJldHVybklmID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAx
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDEwKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAg
ICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyArMTIwNywxMyBAQCB0ZXN0cy5yZXR1cm5J
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCA5KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAg
ICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsxMjM3LDcgQEAgdGVzdHMucmV0dXJuSWYg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CiB9CiAKIHRl
c3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAtMTQ2MiwzOSArMTI1MCw3IEBAIHRlc3Rz
LnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19Ci0KLXRlc3RzLnByb3Rv
Y29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAg
ICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAg
ICAgICAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGly
ZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBy
ZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgICAgICAg
ICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJs
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGludEFuZDxUPihJbnRBbmRh
YmxlLCBULCBpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbnQgZm9v
PFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBp
bnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGApOwotICAgICAgICAgICAgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0s
IDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAgICAgICAgfSwKLSAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAog
dGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBmdW5jdGlvbigpCkBAIC0xNTM3LDcgKzEy
OTMsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb24gPSBmdW5jdGlvbigpCiAgICAgICAg
IGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJu
IGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3ZlcmxvYWRS
ZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQpAQCAtMTU0OCw3ICsxMzA0LDcgQEAg
dGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQogICAg
ICAgICBpbnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1
cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9h
ZFJlc29sdXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU1OCw3ICsxMzE0LDcgQEAgdGVz
dHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50
IGZvbzxUPihUKSB7IHJldHVybiAyOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28o
NDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludExpdGVyYWxHZW5lcmlj
ID0gZnVuY3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5l
cmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsg
fQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3
OCk7Ci19Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29u
dmVydGlibGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBpbnQoTXlDb252ZXJ0aWJsZVRv
SW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvSW50PihU
IHgpIHsgcmV0dXJuIGludCh4KTsgfQotICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQy
KTsgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMudWludExpdGVyYWxHZW5l
cmljID0gZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMzMiw3IEBAIHRlc3RzLnVpbnRMaXRlcmFs
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0
Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10p
LCAzNDc4KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29s
IE15Q29udmVydGlibGVUb1VpbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgdWludChNeUNvbnZl
cnRpYmxlVG9VaW50KTsKLSAgICAgICAgfQotICAgICAgICB1aW50IGZvbzxUOk15Q29udmVydGli
bGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsgfQotICAgICAgICB1aW50IGJhcigpIHsg
cmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMu
aW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKQEAgLTE2MDksNyArMTM0MSw3
IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCiAgICAgICAg
IFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4g
Zm9vKGludCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxl
Q29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3ICsxMzU2LDcgQEAgdGVzdHMuc2ltcGxl
Q29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbzw0Mj4oYik7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChw
cm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQpA
QCAtMTY0MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGlu
dCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgsOCArMTM5MCw4IEBAIHRlc3RzLmJyZWFr
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOwogICAgIGNoZWNrRmFpbCgKICAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNjk1
LDcgKzE0MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgICAgIHsKQEAgLTE3MDUsNyArMTQzNyw3IEBA
IHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAg
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9v
KCkKICAgICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0Niw3IEBAIHRlc3RzLmJyZWFrID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAg
ICBpbnQgZm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1LDcgQEAgdGVzdHMuY29udGludWUgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKICAgICBjaGVj
a0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4
KQpAQCAtMTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3ODIsNyArMTUxNCw3IEBAIHRlc3RzLmRv
V2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsK
QEAgLTE3OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwogfQogCiB0ZXN0cy5mb3JMb29wID0gZnVu
Y3Rpb24oKQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODI3LDkgKzE1NTksOSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NDEs
OSArMTU3Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkK
ICAgICAgICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3MiwxMSArMTYwNCwxMSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAx
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg4OSwxMSArMTYyMSwx
MSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkw
NywxMSArMTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIx
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAg
ICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5NTAsMTEgKzE2ODIsMTEgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTk3MywxMSArMTcwNSwxMSBAQCB0
ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1
bmN0aW9uKCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0Mj4oYik7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwg
NTggKyA0Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTIwMTUs
NyArMTc0Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBiYXIoJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzcp
XSksIDM3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
eiIsIFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0
ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcgQEAgdGVzdHMuY2hhaW5TdHJ1Y3QgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKCZ4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgNDY1NyldKSwg
NDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKQEAg
LTIwNjMsNyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9u
KCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVy
LnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAw
KSldKSwgNzg0NTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
Nzg0NTMpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIw
ODgsNyArMTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAg
IGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAs
IDc5MjAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
ciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZp
Y2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3
OTIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBw
cm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7
CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0yMTEz
LDg5ICsxODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNl
dCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgNzkyMDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90b2NvbEV4dGVuZHMgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHBy
b3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgZm9vKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJh
cj4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAg
ICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkK
LSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAg
ICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpw
ICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewot
ICAgICAgICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhp
bmd5IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEpOwotfQot
Ci10ZXN0cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBm
b28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhciB7Ci0gICAg
ICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9j
b2wgQmF6IDogRm9vLCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXoodGhyZWFkIEJheiopOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpC
YXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAg
IH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1enoocCk7Ci0gICAgICAgICAgICBiYXoo
cCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJh
cih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50
IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHh1enooJmEpOwotICAgICAgICAgICAgcmV0dXJu
IGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiAr
IDc0MyArIDkxICsgMzkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIy
MDcsNyArMTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCld
KSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1Bs
dXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcgKzE4NjgsNyBAQCB0ZXN0cy5wcmVmaXhQ
bHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiArK3g7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAt
MjIzMCw3ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBs
dXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0MSw3ICsxODkxLDcgQEAgdGVzdHMucG9z
dGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgrKzsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24o
KQpAQCAtMjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnBy
ZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjY0LDcgKzE5MTQsNyBAQCB0
ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIC0teDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9
IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBAIHRlc3RzLnBvc3RmaXhNaW51c01pbnVz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0K
IAogdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjg3LDcg
KzE5MzcsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4LS07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucGx1c0Vx
dWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0OSw3IEBAIHRlc3RzLnBsdXNFcXVhbHMg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0y
MzEwLDcgKzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwog
fQogCiB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzMjIsNyArMTk3Miw3IEBA
IHRlc3RzLm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFsc1Jlc3Vs
dCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzUmVz
dWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggLT0gNDI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkK
QEAgLTIzNDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
ODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0
ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNTYsNyArMjAwNiw3IEBA
IHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHggKj0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4
NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy5kaXZp
ZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcgKzIwMTgsNyBAQCB0ZXN0cy5kaXZpZGVF
cXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3Vs
dCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3IEBAIHRlc3RzLmRpdmlkZUVxdWFsc1Jl
c3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC89IDQyOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKIH0KIAogdGVzdHMudHdvSW50TGl0ZXJh
bHMgPSBmdW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAsNyBAQCB0ZXN0cy50d29JbnRMaXRlcmFs
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0MiA9PSA0MjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLnVuaWZ5RGlmZmVyZW50TGl0
ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIxMjksNyBAQCB0ZXN0cy5idWlsZEFycmF5
VGhlblN1bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQx
IC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNl
ID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcgQEAgdGVzdHMuYnVpbGRBcnJheVRoZW5T
dW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YmFyKEBhcnJheSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0
cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3Niw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vi
c2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZv
b1sxXSAqIDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5ICogMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5
ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBm
dW5jdGlvbigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0
cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54ICsg
Zm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQog
CiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24o
KQpAQCAtMjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRV
c2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJmZvbyk7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5v
dmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzSW5jb3JyZWN0bHkgPSBmdW5jdGlv
bigpCkBAIC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tTG9jYWwgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVu
Y3Rpb24oKQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbVBvaW50
ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmF6KCZ4KTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21BcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3IEBAIHRlc3RzLnNpbXBsZUxlbmd0aCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQGFycmF5KS5sZW5ndGg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJh
eUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0yNjk0LDcgKzIzNDQsNyBAQCB0ZXN0cy5u
b25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsK
IH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgPSBmdW5jdGlvbigpCkBAIC0y
NzkzLDcgKzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0ZXIgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc4MDQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3ODA0KTsK
IH0KIAogdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtMjgxOCw3ICsyNDY4LDcg
QEAgdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZv
by54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7CiB9CiAKIHRlc3RzLmdl
bmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0yOTAzLDM1NCArMjU1MywxMDMgQEAgdGVz
dHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28u
c3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdLCBbXSksIDEgKyAyICsgMyArIDQpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXJE
aWRTZXRZIiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtdKSwgNTMgKyA5MzIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSwgW10p
LCAxICsgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSArIDIgKyAzICogNSArIDQpOwotfQotCi10
ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Qml0bWFza2FibGUgOiBFcXVhdGFibGUg
ewotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvciYoTXlCaXRtYXNrYWJsZSwgTXlC
aXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yfChNeUJpdG1h
c2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0
b3J+KE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcjw8
KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRv
cj4+KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgb3BlcmF0b3IgTXlCaXRtYXNr
YWJsZShpbnQpOwotICAgICAgICB9Ci0gICAgICAgIFQgbWFza0ZvckJpdEluZGV4PFQ6TXlCaXRt
YXNrYWJsZT4odWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFQoMSkg
PDwgaW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCBvcGVyYXRvcltdPFQ6TXlCaXRtYXNr
YWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGJvb2wodmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpKTsKLSAgICAgICAgfQotICAg
ICAgICBUIG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCwg
Ym9vbCBiaXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFQgbWFzayA9IG1hc2tGb3JCaXRJbmRl
eDxUPihpbmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0KQotICAgICAgICAgICAgICAgIHZhbHVl
IHw9IG1hc2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdmFsdWUgJj0gfm1h
c2s7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7Ci0g
ICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgodWludCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0SW50U2V0
Qml0MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAgICAgICAgICBmb29b
M10gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBi
b29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbzsK
LSAgICAgICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZm9vWzVdOwot
ICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdldEJpdDEoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0dXJuIGZvb1sxXTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
IGZvbyA9IDQyOwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAgIGZvciAodWlu
dCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChmb29b
aV0pCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTd2Fw
Qml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0MjsKLSAgICAgICAgICAg
IGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGggLyAyOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICBib29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAgICAgICAgICBmb29baV0gPSBmb29bZm9v
Lmxlbmd0aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAgICBmb29bZm9vLmxlbmd0aCAtIGkgLSAx
XSA9IHRtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAg
IH0KLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB1aW50IGY7Ci0gICAgICAgICAg
ICB1aW50IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgRm9vKHVpbnQgZiwgdWludCBn
KQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0
LmYgPSBmOwotICAgICAgICAgICAgcmVzdWx0LmcgPSBnOwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuaChGb28gZm9vKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gaW50KChmb28uZiAmIDB4ZmZmZikgfCAoKGZvby5nICYg
MHhmZmZmKSA8PCAxNikpOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5oPShGb28g
Zm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5mICY9IH4weGZmZmZ1
OwotICAgICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1ZSkgJiAweGZmZmY7Ci0gICAgICAgICAg
ICBmb28uZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5nIHw9ICh1aW50KHZhbHVlKSA+
PiAxNikgJiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAg
ICAgIGludCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9v
IGZvbzsKLSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0gICAgICAgICAgICBmb28uZyA9IDM3Owot
ICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmgubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoZm9v
LmYgKyBmb28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAg
ICBGb28gYTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVy
YXRvci5jKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28odWludChi
YXIuYS5oKSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9y
LmM9KEJhciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hLmggPSBp
bnQoZm9vLmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9IGludChmb28uZyk7Ci0gICAgICAgICAg
ICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0Q3JhenlMVmFsdWVFbXVs
YXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXIgYmFyOwotICAgICAgICAgICAgYmFy
LmEuZiA9IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0gMjsKLSAgICAgICAgICAgIGJhci5iLmYg
PSAzOwotICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9
IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAgICAgICAgIGJhci5jLmhb
aV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoYmFyLmEuZiArIGJhci5hLmcgKyBi
YXIuYi5mICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRTZXRCaXQzIiwgW10sIFtdKSwgOCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEludFNl
dEdldEJpdDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RVaW50U3VtQml0cyIs
IFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0MDkyODYxNDQpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtd
LCBbXSksIDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCA0MzY5Nik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtd
KSwgMSArIDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSksIDkzMik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdKSwgNTMgKyA5MzIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0
ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKIH0K
IAogdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uU2ltcGxlID0gZnVuY3Rpb24o
KQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgc3RydWN0IEZvbyB7Ci0g
ICAgICAgICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9y
W10oRm9vIGZvbywgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZv
by5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBm
b28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vLmFy
cmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQot
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3Vt
KEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJl
c3VsdCArPSBmb29baV07Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0g
ICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vWzZdIGFycmF5OwotICAgICAgICB9
Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBv
cGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiYXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltd
PShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IHN1bShCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmFyLmxlbmd0aDsgaS0t
OykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXogewotICAgICAgICAg
ICAgQmFyWzVdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBi
YXosIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlb
aW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50
IGluZGV4LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhei5hcnJheVtpbmRl
eF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXo7Ci0gICAgICAgIH0KLSAgICAgICAg
dWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXogYmF6
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZv
ciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0g
c3VtKGJheltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAg
ICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKLSAgICAgICAgewotICAgICAgICAg
ICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZv
ciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAg
ICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAg
ICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRWYWx1
ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6OwotICAgICAgICAgICAg
c2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9
Ci0gICAgICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKLSAg
ICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAg
ICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAg
ICAgICAgICAgICBiYXpbaV1bal1ba10gKj0gaW50KGspOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNl
dFZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtd
LCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFsdWVFbXVsYXRpb25H
ZW5lcmljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBUWzddIGFycmF5OworICAgICAgICAgICAg
aW50WzddIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3JbXTxUPihGb288VD4g
Zm9vLCB1aW50IGluZGV4KQorICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGlu
ZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKICAg
ICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXT08VD4oRm9vPFQ+IGZvbywgdWludCBp
bmRleCwgVCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5k
ZXgsIGludCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9
IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGZvbzsKICAgICAgICAgfQotICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQorICAgICAgICB1aW50IG9wZXJhdG9yLmxl
bmd0aChGb28gZm9vKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxl
bmd0aDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAg
ICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0K
LSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxUPiBmb28pCisgICAgICAgIGludCBzdW0o
Rm9vIGZvbykKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0t
OykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyPFQ+IHsKLSAgICAgICAgICAg
IEZvbzxUPls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJhciB7CisgICAgICAgICAgICBGb29b
Nl0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmFy
PFQ+IGJhcikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmFyIGJhcikKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAg
ICAgRm9vPFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJhciwgdWludCBpbmRleCkKKyAgICAgICAg
Rm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAg
ICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9w
ZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgsIEZvbzxUPiB2YWx1ZSkKKyAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZvbyB2YWx1ZSkKICAgICAg
ICAgewogICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAg
cmV0dXJuIGJhcjsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4oQmFyPFQ+
IGJhcikKKyAgICAgICAgaW50IHN1bShCYXIgYmFyKQogICAgICAgICB7Ci0gICAgICAgICAgICBU
IHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAgICAgZm9yICh1
aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0o
YmFyW2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAg
c3RydWN0IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8VD5bNV0gYXJyYXk7CisgICAgICAgIHN0
cnVjdCBCYXogeworICAgICAgICAgICAgQmFyWzVdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAg
IEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXosIHVpbnQgaW5kZXgpCisgICAgICAgIEJh
ciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEJhejxUPiBvcGVy
YXRvcltdPTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4LCBCYXI8VD4gdmFsdWUpCisgICAgICAg
IEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIHJl
dHVybiBiYXo7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmF6
PFQ+IGJheikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAg
ICAgVCBzdW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXopCisgICAgICAgIGludCBzdW0oQmF6IGJh
eikKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKICAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7CiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVGcm9tVWlu
dCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZlcnRpYmxlRnJvbVVpbnQodWludCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFsdWFibGUgOiBNeUFkZGFibGUsIE15Q29u
dmVydGlibGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXM8VDpTZXRWYWx1YWJs
ZT4odGhyZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6
KiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7
IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7
IGotLTspIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0u
bGVuZ3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0g
VChpICsgaiArIGspOworICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0g
aW50KGkgKyBqICsgayk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAg
ICAgICAgQmF6PGludD4gYmF6OworICAgICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNl
dFZhbHVlcygmYmF6KTsKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQog
ICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAg
ICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5n
dGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7
IGotLTspIHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1
ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtKGJh
eik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRh
dGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSksIDE1NzUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVl
c011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQg
PSBmdW5jdGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEwIEBAIHRlc3RzLmJvb2xCaXRBbmQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSld
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dy
YW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkK
QEAgLTMyODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzAxLDEwICsyNzAw
LDEwIEBAIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0
cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMxNSw4ICsyNzE0LDggQEAgdGVzdHMuYm9v
bEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW50Qml0QW5kID0gZnVu
Y3Rpb24oKQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0Mild
KSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3Rz
LmludEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwxMCArMjc0MCwxMCBAQCB0ZXN0cy5pbnRC
aXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTEpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwg
bWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0z
MzU1LDEwICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZUludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcp
XSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMu
aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwxMCArMjc2OCwxMCBAQCB0ZXN0cy5pbnRC
aXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUp
XSksIC02NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDApXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KV0p
LCAtNjU1MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEp
OwogfQogCiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzgzLDEwICsyNzgyLDEw
IEBAIHRlc3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8
IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0p
LCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5j
dGlvbigpCkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAy
KV0pLCAxNjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0x
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVz
dHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0MTEsMTAgKzI4MTAsMTAgQEAgdGVzdHMu
dWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0Mild
KSwgNDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwg
NDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3
MzIpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRl
c3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0MjUsMTAgKzI4MjQsMTAgQEAgdGVzdHMu
dWludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0p
LCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0p
LCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1
NTM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2
NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3
MzIpOwogfQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzQzOSwxMCArMjgz
OCwxMCBAQCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIp
XSksIDY1NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwg
Nik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIp
OwogfQogCiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzQ1MywxMCArMjg1Miwx
MCBAQCB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5h
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYwKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpXSks
IDQyOTQ5MDE3NjApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDAp
XSksIDQyOTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAt
MzQ2NywxMCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBA
IC0zNDgxLDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9n
cmFtLCA1KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzQ5
NSwxMCArMjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
MSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWlu
dDgocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rp
b24oKQpAQCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKLSAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVp
bnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywxMCArMjkyMiwxMCBAQCB0ZXN0cy51aW50
OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0
MildKSwgMjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwg
LTcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1
NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyld
KSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSks
IDIxMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7
CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzUzNywxMCArMjkzNiwx
MCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+
YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOwot
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0x
KV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCAxKV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KV0pLCAwKTsKKyAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKIH0KIAogdGVzdHMu
dWludDhMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUxLDEwICsyOTUwLDEwIEBAIHRlc3RzLnVp
bnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFt
LCAyKV0pLCAyNTIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAz
KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyMjQpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMu
dWludDhSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1LDEwICsyOTY0LDEwIEBAIHRlc3RzLnVp
bnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwor
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1NSk7CisgICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5mbG9h
dE1hdGggPSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICszMDIzLDE3IEBAIHRlc3RzLmZsb2F0TWF0
aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmbG9hdCh4KTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
XSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW10sIFtdKSwgNy41KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSwg
W10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcuNSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdKSwgNy41KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSksIDcu
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW10pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAogICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKQEAgLTM3MjksNyArMzEyOCw3IEBAIHRl
c3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5y
ZWFsICsgeC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CiB9CiAKIHRlc3Rz
LmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2OCwxNCArMzE2NywxNCBAQCB0ZXN0cy5i
b29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCBmYWxz
ZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
XSwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xlYW5TaG9y
dGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2LDEwICszMjE1LDEwIEBAIHRlc3RzLmJv
b2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKIAot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtd
LCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YW5kRmFsc2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdLCBbXSksIDIpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdKSwgMik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvclRy
dWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAib3JGYWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9u
KCkKQEAgLTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZbMF07CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlwZXMgPSBmdW5jdGlvbigpCkBAIC00MDg0
LDI0ICszNDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0b3JzID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgNCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10s
IFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdLCBbXSksIDMpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UyIiwgW10s
IFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vdTMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb291NCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTYiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Yi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSwgW10pLCA1KTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b2Y2IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCBmYWxz
ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIs
IFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vdTIiLCBbXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSksIDMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIs
IFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb2YzIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0
cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtNDEyMSw3ICszNTIw
LDcgQEAgdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9
CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkK
QEAgLTQxMzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRo
SW50MiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigp
CkBAIC00MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gRm9vKGludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtd
KSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFt
aW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2lt
cGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwg
W10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRl
cmFsIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludFdhckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVu
Y2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10p
LCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0
aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVx
dWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5j
ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1
ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVy
YWwiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRz
IiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9
CiAKIHRlc3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQpAQCAtNDMxNywxMCAr
MzcxNiwxMCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
cGVzdGlsZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIC00Mik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAwKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwg
W10pLCAyMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGgiLCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVudW1XaXRob3V0WmVybyA9IGZ1bmN0aW9u
KCkKQEAgLTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMuZW51bVdpdGhTb21lTWFudWFsVmFsdWVz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
ciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMSk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10p
LCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFt
aW5lIiwgW10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5lbnVtQ29uc3Rl
eHByR2VuZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpAQCAtNDM5MSw4ICszNzkwLDggQEAgdGVz
dHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50
IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsgfQogICAgICAgICBpbnQgdGVzdFkoKSB7
IHJldHVybiBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwg
W10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlv
bigpCkBAIC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY1N0cnVj
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28oZik7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RY
IiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy50cmFwID0g
ZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBAQCB0ZXN0cy50cmFwID0gZnVuY3Rpb24o
KQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJh
cEVycm9yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKICAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLAorICAgICAgICAoKSA9
PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksCiAgICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcwLDkgKzM4NjksOSBAQCB0ZXN0cy5zd2l6
emxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHF1aXguejsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCA0
KTsKIH0KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00
NTk3LDMyICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVh
bCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGls
ZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSks
IDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVy
YWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10p
LCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSks
IDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVh
bCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3Ro
ZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10p
LCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBl
c3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwg
W10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRl
YXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJh
Y2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSks
IDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDc0Nywz
MiArNDE0NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUi
LCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVO
b3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RF
cXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2Ui
LCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ1aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwg
MSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSks
IDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
TGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lQmFja3dhcmRzIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwg
W10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3
YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFu
b3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIsIFtd
KSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVl
IiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFs
dWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtd
KSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2Fy
ZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1GbG9hdEJh
c2UgPSBmdW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcsNyBAQCB0ZXN0cy5lbXB0eVN0cnVjdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0NjsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgNDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1Y3RCYXNlID0gZnVuY3Rpb24oKQpAQCAt
NDg1Nyw5ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dpdGNoID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2gg
PSBmdW5jdGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBAQCB0ZXN0cy5leGhhdXN0aXZlVWludDhT
d2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBp
KV0pLCBpICogMS41KTsKIH0KIAogdGVzdHMubm90UXVpdGVFeGhhdXN0aXZlVWludDhTd2l0Y2gg
PSBmdW5jdGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBAQCB0ZXN0cy5ub3RRdWl0ZUV4aGF1c3Rp
dmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAg
ICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLnN3aXRjaEZhbGxU
aHJvdWdoID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0MzEyLDkgQEAgdGVzdHMuc3dpdGNoRmFs
bFRocm91Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
OSldKSwgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuc3dp
dGNoQnJlYWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkgKzQzMzcsOSBAQCB0ZXN0cy5zd2l0Y2hC
cmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3
KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBA
IC00OTY2LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJG
b28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAi
QiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKIH0KIAogdGVz
dHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpAQCAtNTAy
MSw5ICs0NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlV2l0
aERlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVu
dW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28i
LCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJv
Z3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwg
NDkpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC01
MDcyLDcgKzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVy
c0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpLAogICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5OCw3ICs0NDk3LDcgQEAgdGVzdHMubXV0
dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCAtNTExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCkBA
IC01MTE5LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAzKTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKQEAgLTUx
NDIsNyArNDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsg
ODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5j
dGlvbigpCkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5wb2ludGVyR2V0
dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0NSw2IEBAIHRlc3RzLnNldHRlcldpdGhN
YXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKIH0KIAotdGVzdHMub3BlcmF0b3JXaXRo
VW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgRm9vIG9wZXJhdG9y
KzxUPihGb28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJl
c3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yV2l0aG91
dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0g
ICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9vIGIpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIu
eDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZv
bygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAgICAgYS54ID0gNjQ1
OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAgICBiLnggPSAtMzU7Ci0gICAgICAgICAg
ICByZXR1cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA2NDUgLSAzNSk7Ci19
Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5j
dGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAg
ICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IHg7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVy
YXRvckNhc3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRGcm9tUmV0dXJuVHlwZSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewot
ICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyYWJsZSB7
Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyYWJsZSosIGludCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiByZXN1bHQsIGludCB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0KHZhbHVlKTsKLSAgICAgICAgfQotICAg
ICAgICBvcGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAg
ICAgVCByZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJlc3VsdCwgZm9vLngpOwotICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby54ID0gNzU7Ci0gICAgICAg
ICAgICBmbG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCAqIDEu
NSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7Ci19Ci0KIHRlc3RzLmluY1dyb25nQXJn
dW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNTgyMyw3ICs1
MTM0LDcgQEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHguZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0K
IAogdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAg
LTU4OTcsNyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDEzKTsKIH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNjA4
Myw3ICs1Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geFs2NjZdOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAx
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDEzKTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRz
ID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQHgpW2Zsb2F0KC0xKV07
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5kZXZpY2VQdHJQ
dHIgPSBmdW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUxOCw2IEBAIHRlc3RzLmNvbnN0YW50UHRy
UHRyID0gZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYm
IGUubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBl
OiBpbnQzMiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0gLTEpOwogfQogCi10ZXN0cy5wb2ludGVy
SW5kZXhHZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGZvciAobGV0IGFkZHJl
c3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oJHthZGRyZXNzU3BhY2V9IEZvbyosIHVpbnQp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAg
ICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAg
ICAgICAgICAgIGApLAotICAgICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgZ2V0dGVyIGZvciBwb2ludGVyIHR5cGUi
KSAhPSAtMSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109
KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJh
cigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
ICYmIGUubWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcg
Z2V0dGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RMb25lSW5kZXhTZXR0ZXJJblByb3RvY29s
ID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0g
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9w
ZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0g
ICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0K
LSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGVJblByb3Rv
Y29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgb3Bl
cmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28s
IHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAg
ICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0
eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0
aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7
IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0K
LSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5t
ZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlv
bmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGlu
dCBvcGVyYXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEp
OwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCBpbnQsIGlu
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwK
LSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotfQotCi10ZXN0cy5p
bmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlv
bigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQg
b3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3Bl
cmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAot
ICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9m
KCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1
cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0o
Rm9vKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAg
ICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRv
cltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIklu
Y29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28sIGludCwgaW50LCBpbnQpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRv
cltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltd
PShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29y
cmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVzdHMubG9uZUluZGV4
U2V0dGVyUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltdPSh0aHJlYWQgRm9vKiBwdHIsIHVpbnQs
IGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7
Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10o
aW50LCBGb28pOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGlu
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAg
QmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2Uu
aW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkIG9wZXJhdG9yW109IHdpdGggYXJn
dW1lbnRzIEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5v
R2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgZG9QcmVw
KGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZv
bywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwot
ICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVyYXRvcltd
KEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwg
dWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10ZXN0cy5pbmRleEFu
ZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biB4WzQyXTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICB0aHJl
YWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGJhcihCYXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwotfQotCi10ZXN0cy5p
bmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHNJblByb3RvY29sID0gZnVuY3Rpb24o
KQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10o
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAg
ICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3Mg
dHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90
b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBGb28qIGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJ
bmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltdIikgIT0gLTEpOwot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3Rv
Y29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFk
IEZvbyogZm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVj
dCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFy
KiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIz
NDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBmb3Igb3BlcmF0b3ImW10i
KSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRSZXR1cm5Qb2ludGVySW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVy
YXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRo
cmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1
bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2YgYW5kZXIgaXMgbm90IGEgcG9pbnRlciIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRvZXNudFRha2VSZWZlcmVuY2VJblByb3Rv
Y29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGlu
dCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhy
ZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3Vs
dCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5kZXIgaXMgbm90IGEgcmVmZXJlbmNlIikg
IT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmSW5Qcm90b2NvbCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vW10g
YXJyYXksIGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPih0
aHJlYWQgVFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzEuNV07Ci0gICAg
ICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0
b3ImW10odGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIHg7Ci0gICAgICAgICAg
ICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KIHRl
c3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAgdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAqcHRyOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCAzNTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4NzkxODk1M2E1YjFkNWUzNWU4NTBlMzMwZjM4
OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNiZGE4MWZjY2NjMWVmYjQ0YzZkIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTI1LDcgKzI1LDYgQEAKICJ1c2Ug
c3RyaWN0IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewotICAgIGdldCB0eXBlUGFyYW1l
dGVycygpIHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtpbmQoKSB7IHJldHVybiBUeXBlOyB9CiAg
ICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNBcnJheSgpIHsgcmV0
dXJuIGZhbHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBjbGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7
CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzUHJpbWl0aXZl
KCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBpbmhlcml0cyhwcm90b2NvbCkKLSAgICB7
Ci0gICAgICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1
ZX07Ci0gICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNIZWlyKHRoaXMpOwotICAgIH0KLSAgICAK
LSAgICBnZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0dXJuIHRoaXMudmlzaXQobmV3IEluc3Rh
bnRpYXRlSW1tZWRpYXRlcygpKTsgfQotICAgIAogICAgIC8vIEhhdmUgdG8gY2FsbCB0aGVzZSBv
biB0aGUgdW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1
ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
RGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwppbmRleCA2
YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFiMjdjMTQzLi5kN2IwMGNkMmM3M2ViM2E1
YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBU
eXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCiAg
ICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9
IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB9CiAgICAg
CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0
dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlOyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJ0
eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gPSAi
ICsgdGhpcy50eXBlOworICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSArICIg
PSAiICsgdGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4IGE4MWVhYjQyZDk0OGZjYTNlOTMwYzY4
NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1OTFkZmYyMmQwYTY1YTM1NDliOGNjZTAx
ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNv
bHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2
ZXIuanMKQEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZp
c2l0b3IgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fdmlz
aXRpbmcuZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJn
dW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVu
dC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgaW5zdGFuY2VvZiBUeXBl
RGVmKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlm
aWNhdGlvbkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAg
ICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBub2RlLnR5cGUudHlwZVBhcmFtZXRl
cnMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFyZ3VtZW50
L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgZWFybGllcikiKTsK
LSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUudHlwZUFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzW2ldLnVu
aWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzW2ldKTsKLSAg
ICAgICAgICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0
LnZlcmlmeSgpOwotICAgICAgICAgICAgICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0LnJlc3Vs
dCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8gYSB0eXBlIGRlZmluaXRpb24gdmlvbGF0
ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IG5vZGUudHlw
ZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywg
dW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBuZXdUeXBlLnZpc2l0KHRoaXMp
OwotICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFuZEFyZ3VtZW50cyhuZXdUeXBlLCBbXSk7
CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICAgICAgICAg
IG5vZGUuc2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0p
OwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQ
YXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQ
YXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JkMDM3
YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KG5ldyBSZXdy
aXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5uYW1l
LCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQxZTU2ZDY5M2VmY2UxYzM1MWRh
ZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYwOWIwNWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUsNjkgKzI1LDU4IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3Jp
Z2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAgdGhpcy50eXBlID0gbnVs
bDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQog
ICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAgICAgICBpZiAodHlwZSBpbnN0
YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgaWYgKHR5cGUg
aW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgIGxl
dCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlw
ZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5
cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSwg
dHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSkKICAgICB7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCB0eXBl
QXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2lu
LCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlw
ZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICAKICAgICBn
ZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxl
bmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5pZnlOb2RlOwotICAgICAgICBy
ZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51bmlmeU5vZGU7CiAgICAgfQog
ICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJu
IHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7Ci0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZhbHVlIG9mIGEgdHlwZSBpbnN0
YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBnZXQgc2l6ZSgpCiAgICAgewot
ICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBz
aXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
c2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkKICAgICB7Ci0gICAgICAg
IGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlz
LnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRldGVy
bWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1pdGl2ZTogIiArIHRoaXMpOwor
ICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwogICAgIH0KICAgICAKLSAgICBz
ZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCisgICAgc2V0VHlwZSh0eXBl
KQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMudHlwZSA9
IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAg
IH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKQEAgLTk2
LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25Db250
ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYg
KHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMu
dHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGVBcmd1
bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksOSArOTIsNyBAQCBjbGFzcyBU
eXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBpZiAoIXRoaXMubmFtZSkKICAg
ICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKCF0aGlz
LnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAg
ICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsK
KyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3MmZhMGI3ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAg
ICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4g
dGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJuIHRoaXMuX3Byb3RvY29s
OyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIGluaGVy
aXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbCkKLSAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKQotICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlICIg
KyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsKLSAgICAgICAgcmV0dXJuIHRo
aXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0KLSAgICAKLSAgICB0eXBlVmFy
aWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYg
KCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmlj
YXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNh
dGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlh
YmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZl
cmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IHJl
YWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIAotICAgICAg
ICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0IGJlIGEgdHlwZSB2YXJpYWJs
ZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAgICAvLyB0aGluZ3MgdGhhbiB3
ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUpKQot
ICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxl
IGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIG5vbi10eXBlLXZhcmlh
YmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIAotICAgICAgICBpZiAo
IXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcy5wcm90b2NvbCkKLSAg
ICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFi
bGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90IGJlIHBhc3NlZCB0byBwYXJh
bWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyByZWFsVGhpcy5wcm90b2NvbH07
Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmluaGVyaXRzKHJlYWxUaGlzLnBy
b3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5wcm90b2NvbCArICIg
ZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMucHJvdG9jb2wgKyAiIChwYXNz
aW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxUaGlzICsgIik6ICIgKyByZXN1
bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAK
LSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwot
ICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHModGhpcy5wcm90b2NvbCk7Ci0g
ICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBm
YWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRvZXMgbm90IGluaGVyaXQgcHJv
dG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHJlYWxUaGlzICsg
IiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9jb2wgPyAiOiIgKyB0aGlzLnBy
b3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4NTIzOTFmODM1ZjdjNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVUcmFja2VyIGV4dGVuZHMgVmlz
aXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2V0KCkgeyBy
ZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVyKHRoaW5nKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgdGhpcy5fc2V0LmFkZCh0
aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgdHlw
ZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0
VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudmFy
aWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVW5pZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBhMTNkZTQzZDUzMjZlMTM1N2M4N2Y4ODU5
ZDlkNjAxNWUwY2FkNDcuLjBiNWZjNGQwODZiNjQ2MWZmZjk5ODhjMDk3Y2U3MGM3NDgxZjE0ZDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29u
dGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNv
bnRleHQuanMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVW5pZmlj
YXRpb25Db250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlUGFyYW1ldGVycykKKyAgICBjb25z
dHJ1Y3RvcigpCiAgICAgewotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IG5ldyBTZXQo
dHlwZVBhcmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9uZXh0TWFwID0gbmV3IE1hcCgpOwogICAg
ICAgICB0aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgpOwogICAgIH0KQEAgLTQ1LDEwICs0NCw2
IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJsZSB0aGluZ3MgIiArIGEgKyAiIGFuZCAi
ICsgYik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHR5
cGUgcGFyYW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcgcm9vdHMuCi0gICAgICAgIGlmIChhLmlz
VW5pZmlhYmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKGIp
KQotICAgICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwotICAgICAgICAKICAgICAgICAgdGhpcy5f
bmV4dE1hcC5zZXQoYSwgYik7CiAgICAgfQogICAgIApAQCAtODQsMTUgKzc5LDEyIEBAIGNsYXNz
IFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICByZXN1bHQuYWRkKG5vZGUpOwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKLSAgICB0eXBlUGFyYW1ldGVycygpIHsg
cmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CisKICAgICAqdHlwZUFyZ3VtZW50cygpCiAg
ICAgewogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy5ub2RlcykgewogICAg
ICAgICAgICAgaWYgKCF0eXBlQXJndW1lbnQuaXNVbmlmaWFibGUpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKHR5cGVB
cmd1bWVudCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB5aWVsZCB0
eXBlQXJndW1lbnQ7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTEsMjggKzEwMyw5IEBAIGNsYXNz
IFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiB0aGlzLl90eXBlUGFyYW1ldGVycykgewotICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVQYXJhbWV0ZXIudmVyaWZ5QXNQYXJhbWV0ZXIodGhp
cyk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBsZXQgbnVtVHlwZVZhcmlhYmxlQXJndW1l
bnRzID0gMDsKLSAgICAgICAgbGV0IGFyZ3VtZW50U2V0ID0gbmV3IFNldCgpOwotICAgICAgICBm
b3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRzKCkpIHsKLSAgICAgICAg
ICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnQudmVyaWZ5QXNBcmd1bWVudCh0aGlzKTsKLSAg
ICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudC5pc0xpdGVyYWwpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhcmd1bWVudFNldC5hZGQodGhpcy5maW5kKHR5
cGVBcmd1bWVudCkpOwotICAgICAgICAgICAgbnVtVHlwZVZhcmlhYmxlQXJndW1lbnRzKys7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGFyZ3VtZW50U2V0LnNpemUgPT0gbnVtVHlwZVZhcmlhYmxl
QXJndW1lbnRzKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICBy
ZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGVzIHVzZWQgYXMgYXJn
dW1lbnRzIGdvdCB1bmlmaWVkIHdpdGggZWFjaCBvdGhlciJ9OworICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07CiAgICAgfQotICAgIAorCiAgICAgZ2V0IGNvbnZlcnNpb25Db3N0KCkKICAg
ICB7CiAgICAgICAgIGxldCByZXN1bHQgPSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBkZWY1MzM2
ZC4uNDY2ZWU3NzA1NWRkZGJlYjEyNzY3NTAwODcwZmEzNmI3NDQyODM5NiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAgY2xhc3Mg
VmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnJldHVy
blR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9k
ZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7
CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAg
ICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9j
b2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAg
bm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAgY2xhc3MgVmlzaXRvciB7
CiAgICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5h
dGl2ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9k
ZSk7Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxl
bWVudGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkK
ICAgICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMpCkBA
IC03OSw2MiArNjYsMjcgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICBleHByZXNzaW9u
LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0g
ICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcHJv
dG9jb2wudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNp
Z25hdHVyZXMpCi0gICAgICAgICAgICBzaWduYXR1cmUudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAg
ewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMp
Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdE5hdGl2ZVR5cGVJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBl
LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBl
QXJndW1lbnRzKQogICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0K
ICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5
cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKICAgICB9
CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxl
dCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZp
ZWxkcykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnBy
b3RvY29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1l
dGVyKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQot
ICAgIAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNp
dCh0aGlzKTsKQEAgLTMzNiwxOCArMjg4LDggQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgCiAgICAg
dmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExp
c3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0
IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAg
ICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
YXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgYXJn
dW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhh
bmRsZVR5cGVBcmd1bWVudHMobm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAgICAgaGFu
ZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMpOwog
ICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0luc3RhbmNlLCB0aGlzKTsKICAgICAg
ICAgTm9kZS52aXNpdChub2RlLnJldHVyblR5cGUsIHRoaXMpOwogICAgICAgICBOb2RlLnZpc2l0
KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XU0wubWQgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjY2NTY3ODI2YTUxZGQ2Yzc1NGQ0ZTli
MjRkNzU3ODk3MmJiM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kCisrKyAvZGV2L251bGwK
QEAgLTEsNDc5ICswLDAgQEAKLSMgV2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2UKLQotV2ViR1BVIFNo
YWRpbmcgTGFuZ3VhZ2UsIG9yIFdTTCBmb3Igc2hvcnQsIGlzIGEgdHlwZS1zYWZlIGxvdy1vdmVy
aGVhZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBmb3IgR1BVcyAoZ3JhcGhpY3MgcHJvY2Vzc2luZyB1
bml0cykuIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93IFdTTCB3b3Jrcy4KLQotIyBHb2Fscwot
Ci1XU0wgaXMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgZm9sbG93aW5nIGdvYWxzOgotCi0tIFdT
TCBzaG91bGQgZmVlbCAqZmFtaWxpYXIqIHRvIEMrKyBwcm9ncmFtbWVycy4KLS0gV1NMIHNob3Vs
ZCBiZSBoYXZlIGEgKnNvdW5kKiBhbmQgKmRlY2lkYWJsZSogdHlwZSBzeXN0ZW0uCi0tIFdTTCBz
aG91bGQgbm90IHBlcm1pdCAqb3V0LW9mLWJvdW5kcyogbWVtb3J5IGFjY2Vzc2VzLgotLSBXU0wg
c2hvdWxkIGJlIGhhdmUgKmxvdyBvdmVyaGVhZCouCi0KLVRoZSBjb21iaW5hdGlvbiBvZiBhIHNv
dW5kIHR5cGUgc3lzdGVtIGFuZCBib3VuZHMgY2hlY2tpbmcgbWFrZXMgV1NMIGEgc2VjdXJlIHNo
YWRlciBsYW5ndWFnZTogdGhlIGxhbmd1YWdlIGl0c2VsZiBpcyByZXNwb25zaWJsZSBmb3IgaXNv
bGF0aW5nIHRoZSBzaGFkZXIgZnJvbSB0aGUgcmVzdCBvZiB0aGUgR1BVLgotCi0jIEZhbWlsaWFy
IFN5bnRheAotCi1XU0wgaXMgYmFzZWQgb24gQyBzeW50YXgsIGJ1dCBleGNsdWRlcyBmZWF0dXJl
cyB0aGF0IGFyZSBlaXRoZXIgdW5uZWNlc3NhcnksIGluc2VjdXJlLCBvciByZXBsYWNlZCBieSBv
dGhlciBXU0wgZmVhdHVyZXM6Ci0KLS0gTm8gc3RyaW5ncy4KLS0gTm8gYHJlZ2lzdGVyYCwgYHZv
bGF0aWxlYCwgYGNvbnN0YCwgYHJlc3RyaWN0YCwgb3IgYGV4dGVybmAga2V5d29yZHMuCi0tIE5v
IHVuaW9ucy4gYHVuaW9uYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBnb3RvIG9yIGxhYmVscy4g
YGdvdG9gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGAqYCBwb2ludGVycy4KLS0gRWZmZWN0bGVz
cyBleHByZXNzaW9ucyBhcmUgbm90IHN0YXRlbWVudHMgKGBhICsgYjtgIGlzIGEgcGFyc2UgZXJy
b3IpLgotLSBObyB1bmRlZmluZWQgdmFsdWVzIChgaW50IHg7YCBpbml0aWFsaXplcyB4IHRvIDAp
LgotLSBObyBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9ucyAoYGludCB4OyB1aW50IHkgPSB4O2Ag
aXMgYSB0eXBlIGVycm9yKS4KLS0gTm8gcmVjdXJzaW9uLgotLSBObyBkeW5hbWljIG1lbW9yeSBh
bGxvY2F0aW9uLgotLSBObyBtb2R1bGFyaXR5LiBUaGUgd2hvbGUgcHJvZ3JhbSBpcyBvbmUgZmls
ZS4KLQotT24gdG9wIG9mIHRoaXMgYmFyZSBDLWxpa2UgZm91bmRhdGlvbiwgV1NMIGFkZHMgc2Vj
dXJlIHZlcnNpb25zIG9mIGZhbWlsaWFyIEMrKyBmZWF0dXJlczoKLQotLSBUeXBlLXNhZmUgcG9p
bnRlcnMgKGBeYCkgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGBbXWApLgotLSBHZW5lcmljcyB0byBy
ZXBsYWNlIHRlbXBsYXRlcy4KLS0gT3BlcmF0b3Igb3ZlcmxvYWRpbmcuIEJ1aWx0LWluIG9wZXJh
dGlvbnMgbGlrZSBgaW50IG9wZXJhdG9yKyhpbnQsIGludClgIGFyZSBqdXN0IG5hdGl2ZSBmdW5j
dGlvbnMuCi0tIENhc3Qgb3ZlcmxvYWRpbmcuIEJ1aWx0LWluIGNhc3RzIGxpa2UgYG9wZXJhdG9y
IGludChkb3VibGUpYCBhcmUganVzdCBuYXRpdmUgZnVuY3Rpb25zLgotLSBHZXR0ZXJzIGFuZCBz
ZXR0ZXJzLiBQcm9wZXJ0eSBhY2Nlc3NlcyBsaWtlIGB2ZWMueGAgcmVzb2x2ZSB0byBvdmVybG9h
ZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3IuZmllbGQoZmxvYXQ0KWAuCi0tIEFycmF5IGFjY2VzcyBv
dmVybG9hZGluZy4gQXJyYXkgYWNjZXNzZXMgbGlrZSBgdmVjWzBdYCByZXNvbHZlIHRvIHZlcmxv
YWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yW10oZmxvYXQ0LCB1aW50KWAuCi0KLUluIHRoZSBmb2xs
b3dpbmcgc2VjdGlvbnMsIFdTTCBpcyBzaG93biBieSBleGFtcGxlIHN0YXJ0aW5nIHdpdGggaXRz
IEMtbGlrZSBmb3VuZGF0aW9uIGFuZCB0aGVuIGJ1aWxkaW5nIHVwIHRvIGluY2x1ZGUgbW9yZSBz
b3BoaXN0aWNhdGVkIGZlYXR1cmVzIGxpa2UgZ2VuZXJpY3MuCi0KLSMjIENvbW1vbiBzdWJzZXQg
b2YgQyBhbmQgV1NMCi0KLVRoZSBmb2xsb3dpbmcgaXMgYSB2YWxpZCBXU0wgZnVuY3Rpb24gZGVm
aW5pdGlvbjoKLQotICAgIGludCBmb28oaW50IHgsIGludCB5LCBib29sIHApCi0gICAgewotICAg
ICAgICBpZiAocCkKLSAgICAgICAgICAgIHJldHVybiB4IC0geTsKLSAgICAgICAgcmV0dXJuIHgg
KyB5OwotICAgIH0KLQotV1NMIHNvdXJjZSBmaWxlcyBiZWhhdmUgc2ltaWxhcmx5IHRvIEMgc291
cmNlIGZpbGVzOgotCi0tIFRvcC1sZXZlbCBzdGF0ZW1lbnRzIG11c3QgYmUgdHlwZSBvciBmdW5j
dGlvbiBkZWZpbml0aW9ucy4KLS0gV1NMIHVzZXMgc3RydWN0dXJlZCBDIGNvbnRyb2wgZmxvdyBj
b25zdHJ1Y3RzLCBsaWtlIGBpZmAsIGB3aGlsZWAsIGBmb3JgLCBgZG9gLCBgYnJlYWtgLCBhbmQg
YGNvbnRpbnVlYC4KLS0gV1NMIHVzZXMgQy1saWtlIGBzd2l0Y2hgIHN0YXRlbWVudHMsIGJ1dCBk
b2VzIG5vdCBhbGxvdyB0aGVtIHRvIG92ZXJsYXAgb3RoZXIgY29udHJvbCBmbG93IChpLmUuIG5v
IFtEdWZmJ3MgZGV2aWNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EdWZmJTI3c19k
ZXZpY2UpKS4KLS0gV1NMIGFsbG93cyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgYW55d2hlcmUgQysr
IHdvdWxkLgotCi1XU0wgdHlwZXMgZGlmZmVyIGZyb20gQyB0eXBlcy4gRm9yIGV4YW1wbGUsIHRo
aXMgaXMgYW4gYXJyYXkgb2YgNDIgaW50ZWdlcnMgaW4gV1NMOgotCi0gICAgaW50WzQyXSBhcnJh
eTsKLQotVGhlIHR5cGUgbmV2ZXIgc3Vycm91bmRzIHRoZSB2YXJpYWJsZSwgbGlrZSBpdCB3b3Vs
ZCBpbiBDIChgaW50IGFycmF5WzQyXWApLgotCi0jIyBUeXBlLXNhZmUgcG9pbnRlcnMKLQotV1NM
IGluY2x1ZGVzIGEgc2VjdXJlIHBvaW50ZXIgdHlwZS4gVG8gZW1waGFzaXplIHRoYXQgaXQgaXMg
bm90IGxpa2UgdGhlIEMgcG9pbnRlciwgV1NMIHVzZXMgYF5gIGZvciB0aGUgcG9pbnRlciB0eXBl
IGFuZCBmb3IgZGVyZWZlcmVuY2UuIExpa2UgaW4gQywgYCZgIGlzIHVzZWQgdG8gdGFrZSB0aGUg
YWRkcmVzcyBvZiBhIHZhbHVlLiAgQmVjYXVzZSBHUFVzIGhhdmUgZGlmZmVyZW50IGtpbmRzIG9m
IG1lbW9yaWVzLCBwb2ludGVycyBtdXN0IGJlIGFubm90YXRlZCB3aXRoIGFuIGFkZHJlc3Mgc3Bh
Y2UgKG9uZSBvZiBgdGhyZWFkYCwgYHRocmVhZGdyb3VwYCwgYGRldmljZWAsIG9yIGBjb25zdGFu
dGApLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgYmFyKHRocmVhZCBpbnReIHApCi0gICAgewot
ICAgICAgICBecCArPSA0MjsKLSAgICB9Ci0gICAgaW50IGZvbygpCi0gICAgewotICAgICAgICBp
bnQgeCA9IDI0OwotICAgICAgICBiYXIoJngpOwotICAgICAgICByZXR1cm4geDsgLy8gUmV0dXJu
cyA2Ni4KLSAgICB9Ci0KLVBvaW50ZXJzIGNhbiBiZSBgbnVsbGAuIEVhY2ggcG9pbnRlciBhY2Nl
c3MgaXMgbnVsbC1jaGVja2VkLCB0aG91Z2ggbW9zdCBwb2ludGVyIGFjY2Vzc2VzIChsaWtlIHRo
aXMgb25lKSB3aWxsIG5vdCBoYXZlIGEgbnVsbCBjaGVjay4gV1NMIHBsYWNlcyBlbm91Z2ggY29u
c3RyYWludHMgb24gdGhlIHByb2dyYW1tZXIgdGhhdCBwcm9ncmFtcyBhcmUgZWFzeSBmb3IgdGhl
IGNvbXBpbGVyIHRvIGFuYWx5emUuIFRoZSBjb21waWxlciB3aWxsIGFsd2F5cyBrbm93IHRoYXQg
YF5wICs9IDQyYCBhZGRzIGA0MmAgdG8gYHhgIGluIHRoaXMgY2FzZS4KLQotV1NMIHBvaW50ZXJz
IGRvIG5vdCBzdXBwb3J0IGNhc3Rpbmcgb3IgcG9pbnRlciBhcml0aG1ldGljLiBBbGwgbWVtb3J5
IGFjY2Vzc2libGUgdG8gYSBzaGFkZXIgb3V0bGl2ZXMgdGhlIHNoYWRlci4gVGhpcyBpcyBldmVu
IHRydWUgb2YgbG9jYWwgdmFyaWFibGVzLiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgV1NMIGRv
ZXMgbm90IHN1cHBvcnQgcmVjdXJzaW9uLiBUaGVyZWZvcmUsIGxvY2FsIHZhcmlhYmxlcyBzaW1w
bHkgZ2V0IGdsb2JhbCBzdG9yYWdlLiBMb2NhbCB2YXJpYWJsZXMgYXJlIGluaXRpYWxpemVkIGF0
IHRoZSBwb2ludCBvZiB0aGVpciBkZWNsYXJhdGlvbi4gSGVuY2UsIHRoZSBmb2xsb3dpbmcgaXMg
YSB2YWxpZCBwcm9ncmFtLCB3aGljaCB3aWxsIGV4aGliaXQgdGhlIHNhbWUgYmVoYXZpb3Igb24g
ZXZlcnkgV1NMIGltcGxlbWVudGF0aW9uOgotCi0gICAgdGhyZWFkIGludF4gZm9vKCkKLSAgICB7
Ci0gICAgICAgIGludCB4ID0gNDI7Ci0gICAgICAgIHJldHVybiAmeDsKLSAgICB9Ci0gICAgaW50
IGJhcigpCi0gICAgewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIHRo
cmVhZCBpbnReIHEgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgcmV0dXJuIF5x
OyAvLyBSZXR1cm5zIDUzLgotICAgIH0KLSAgICBpbnQgYmF6KCkKLSAgICB7Ci0gICAgICAgIHRo
cmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgZm9vKCk7Ci0g
ICAgICAgIHJldHVybiBecDsgLy8gUmV0dXJucyA0Mi4KLSAgICB9Ci0KLUl0J3MgcG9zc2libGUg
dG8gcG9pbnQgdG8gYW55IGtpbmQgb2YgZGF0YSB0eXBlLiBGb3IgZXhhbXBsZSwgYHRocmVhZCBk
b3VibGVbNDJdXmAgaXMgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDQyIGRvdWJsZXMuCi0KLSMj
IFR5cGUtc2FmZSBhcnJheSByZWZlcmVuY2VzCi0KLVdTTCBzdXBwb3J0cyBhcnJheSByZWZlcmVu
Y2VzIHRoYXQgY2FycnkgYSBwb2ludGVyIHRvIHRoZSBiYXNlIG9mIHRoZSBhcnJheSBhbmQgdGhl
IGFycmF5J3MgbGVuZ3RoLiBUaGlzIGFsbG93cyBhY2Nlc3NlcyB0byB0aGUgYXJyYXkgdG8gYmUg
Ym91bmRzLWNoZWNrZWQuCi0KLUFuIGFycmF5IHJlZmVyZW5jZSBjYW4gYmUgY3JlYXRlZCB1c2lu
ZyB0aGUgYEBgIG9wZXJhdG9yOgotCi0gICAgaW50WzQyXSBhcnJheTsKLSAgICB0aHJlYWQgaW50
W10gYXJyYXlSZWYgPSBAYXJyYXk7Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2Vz
IGNhbiBiZSBsb2FkZWQgZnJvbSBhbmQgc3RvcmVkIHRvIHVzaW5nIGBvcGVyYXRvcltdYDoKLQot
ICAgIGludCB4ID0gYXJyYXlbaV07Ci0gICAgaW50IHkgPSBhcnJheVJlZltpXTsKLQotQm90aCBh
cnJheXMgYW5kIGFycmF5IHJlZmVyZW5jZXMga25vdyB0aGVpciBsZW5ndGg6Ci0KLSAgICB1aW50
IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoOwotICAgIHVpbnQgYXJyYXlSZWZMZW5ndGggPSBh
cnJheVJlZi5sZW5ndGg7Ci0KLUdpdmVuIGFuIGFycmF5IG9yIGFycmF5IHJlZmVyZW5jZSwgaXQn
cyBwb3NzaWJsZSB0byBnZXQgYSBwb2ludGVyIHRvIG9uZSBvZiBpdHMgZWxlbWVudHM6Ci0KLSAg
ICB0aHJlYWQgaW50XiBwdHIxID0gJmFycmF5W2ldOwotICAgIHRocmVhZCBpbnReIHB0cjIgPSAm
YXJyYXlSZWZbaV07Ci0KLUEgcG9pbnRlciBpcyBsaWtlIGFuIGFycmF5IHJlZmVyZW5jZSB3aXRo
IG9uZSBlbGVtZW50LiBJdCdzIHBvc3NpYmxlIHRvIHBlcmZvcm0gdGhpcyBjb252ZXJzaW9uOgot
Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEBwdHIxOwotICAgIHJlZlswXSAvLyBFcXVpdmFsZW50
IHRvIF5wdHIxLgotICAgIHJlZi5sZW5ndGggLy8gMCBpZiBwdHIxIHdhcyBudWxsLCAxIGlmIHB0
cjEgd2FzIG5vdCBudWxsLgotCi1TaW1pbGFybHksIHVzaW5nIGBAYCBvbiBhIG5vbi1wb2ludGVy
IHZhbHVlIHJlc3VsdHMgaW4gYSByZWZlcmVuY2Ugb2YgbGVuZ3RoIDE6Ci0KLSAgICBpbnQgeDsK
LSAgICB0aHJlYWQgaW50W10gcmVmID0gQHg7Ci0gICAgcmVmWzBdIC8vIEFsaWFzZXMgeC4KLSAg
ICByZWYubGVuZ3RoIC8vIFJldHVybnMgMS4KLQotSXQncyBub3QgbGVnYWwgdG8gdXNlIGBAYCBv
biBhbiBhcnJheSByZWZlcmVuY2U6Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmOwotICAgIHRocmVh
ZCBpbnRbXVtdIHJlZmVyZWYgPSBAcmVmOyAvLyBFcnJvciEKLQotIyMgR2VuZXJpY3MKLQotV1NM
IHN1cHBvcnRzIGdlbmVyaWMgdHlwZXMgdXNpbmcgYSBzaW1wbGUgc3ludGF4LiBXU0wncyBnZW5l
cmljIGFyZSBkZXNpZ25lZCB0byBpbnRlZ3JhdGUgY2xlYW5seSBpbnRvIHRoZSBjb21waWxlciBw
aXBlbGluZToKLQotLSBHZW5lcmljcyBoYXZlIHVuYW1iaWd1b3VzIHN5bnRheC4KLS0gR2VuZXJp
YyBmdW5jdGlvbnMgY2FuIGJlIHR5cGUgY2hlY2tlZCBiZWZvcmUgdGhleSBhcmUgaW5zdGFudGlh
dGVkLgotCi1TZW1hbnRpYyBlcnJvcnMgaW5zaWRlIGdlbmVyaWMgZnVuY3Rpb25zIHNob3cgdXAg
b25jZSByZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdlbmVyaWMgZnVuY3Rp
b24gaXMgaW5zdGFudGlhdGVkLgotCi1UaGlzIGlzIGEgc2ltcGxlIGdlbmVyaWMgZnVuY3Rpb246
Ci0KLSAgICBUIGlkZW50aXR5PFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICBUIHRtcCA9IHZh
bHVlOwotICAgICAgICByZXR1cm4gdG1wOwotICAgIH0KLQotV1NMIGFsc28gc3VwcG9ydHMgc3Ry
dWN0cywgd2hpY2ggYXJlIGFsc28gYWxsb3dlZCB0byBiZSBnZW5lcmljOgotCi0gICAgLy8gTm90
IGdlbmVyaWMuCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAgICBkb3Vi
bGUgeTsKLSAgICB9Ci0gICAgLy8gR2VuZXJpYy4KLSAgICBzdHJ1Y3QgQmFyPFQsIFU+IHsKLSAg
ICAgICAgVCB4OwotICAgICAgICBVIHk7Ci0gICAgfQotCi1UeXBlIHBhcmFtZXRlcnMgY2FuIGFs
c28gYmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBpbml0
aWFsaXplQXJyYXk8VCwgdWludCBsZW5ndGg+KHRocmVhZCBUW2xlbmd0aF1eIGFycmF5LCBUIHZh
bHVlKQotICAgIHsKLSAgICAgICAgZm9yICh1aW50IGkgPSBsZW5ndGg7IGktLTspCi0gICAgICAg
ICAgICAoXmFycmF5KVtpXSA9IHZhbHVlOwotICAgIH0KLQotQ29uc3RhbnQgZXhwcmVzc2lvbnMg
cGFzc2VkIGFzIHR5cGUgYXJndW1lbnRzIG11c3Qgb2JleSBhIHZlcnkgbmFycm93IGRlZmluaXRp
b24gb2YgY29uc3RhbnRuZXNzLiBPbmx5IGxpdGVyYWxzIGFuZCByZWZlcmVuY2VzIHRvIG90aGVy
IGNvbnN0YW50IHBhcmFtZXRlcnMgcXVhbGlmeS4KLQotV1NMIGlzIGd1YXJhbnRlZWQgdG8gY29t
cGlsZSBnZW5lcmljcyBieSBpbnN0YW50aWF0aW9uLiBUaGlzIGlzIG9ic2VydmFibGUsIHNpbmNl
IGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHBvaW50ZXJzIHRvIHRoZWlyIGxvY2Fscy4gSGVyZSBpcyBh
biBleGFtcGxlIG9mIHRoaXMgcGhlbm9tZW5vbjoKLQotICAgIHRocmVhZCBpbnReIGFsbG9jYXRl
PHVpbnQ+KCkKLSAgICB7Ci0gICAgICAgIGludCB4OwotICAgICAgICByZXR1cm4gJng7Ci0gICAg
fQotCi1UaGUgYGFsbG9jYXRlYCBmdW5jdGlvbiB3aWxsIHJldHVybiBhIGRpZmZlcmVudCBwb2lu
dGVyIGZvciBlYWNoIHVuc2lnbmVkIGludGVnZXIgY29uc3RhbnQgcGFzc2VkIGFzIGEgdHlwZSBw
YXJhbWV0ZXIuIFRoaXMgYWxsb2NhdGlvbiBpcyBjb21wbGV0ZWx5IHN0YXRpYywgc2luY2UgdGhl
IGB1aW50YCBwYXJhbWV0ZXIgbXVzdCBiZSBnaXZlbiBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4K
LQotV1NMJ3MgYHR5cGVkZWZgIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgc3ludGF4IHRoYW4g
Qy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAgIFQgcmVh
bDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICB0eXBlZGVmIEZDb21wbGV4ID0gQ29tcGxl
eDxmbG9hdD47Ci0KLWB0eXBlZGVmYCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgZ2VuZXJpYyB0eXBl
czoKLQotICAgIHN0cnVjdCBGb288VCwgVT4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFUgeTsK
LSAgICB9Ci0gICAgdHlwZWRlZiBCYXI8VD4gPSBGb288VCwgVD47Ci0KLSMjIFByb3RvY29scwot
Ci1Qcm90b2NvbHMgZW5hYmxlIGdlbmVyaWMgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aCBkYXRhIG9m
IGdlbmVyaWMgdHlwZS4gQmVjYXVzZSBhIGZ1bmN0aW9uIG11c3QgYmUgdHlwZS1jaGVja2FibGUg
YmVmb3JlIGluc3RhbnRpYXRpb24sIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IGJlIGxlZ2FsOgot
Ci0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAgICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4g
fQotICAgIAotICAgIFQgZm9vPFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYmFy
KHZhbHVlKTsgLy8gRXJyb3IhCi0gICAgfQotCi1UaGUgY2FsbCB0byBgYmFyYCBkb2Vzbid0IHR5
cGUgY2hlY2sgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2Fubm90IGtub3cgdGhhdCBgZm9vPFQ+YCB3
aWxsIGJlIGluc3RhbnRpYXRlZCB3aXRoIGBUID0gaW50YCBvciBgVCA9IGRvdWJsZWAuIFByb3Rv
Y29scyBlbmFibGUgdGhlIHByb2dyYW1tZXIgdG8gdGVsbCB0aGUgY29tcGlsZXIgd2hhdCB0byBl
eHBlY3Qgb2YgYSB0eXBlIHZhcmlhYmxlOgotCi0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAg
ICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4gfQotICAgIAotICAgIHByb3RvY29sIFN1cHBvcnRz
QmFyIHsKLSAgICAgICAgU3VwcG9ydHNCYXIgYmFyKFN1cHBvcnRzQmFyKTsKLSAgICB9Ci0gICAg
Ci0gICAgVCBmb288VDpTdXBwb3J0c0Jhcj4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiYXIodmFsdWUpOwotICAgIH0KLSAgICAKLSAgICBpbnQgeCA9IGZvbyg0Mik7Ci0gICAgZG91
YmxlIHkgPSBmb28oNC4yKTsKLQotUHJvdG9jb2xzIGhhdmUgYXV0b21hdGljIHJlbGF0aW9uc2hp
cHMgdG8gb25lIGFub3RoZXIgYmFzZWQgb24gd2hhdCBmdW5jdGlvbnMgdGhleSBjb250YWluOgot
Ci0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsKLSAgICB9Ci0gICAg
cHJvdG9jb2wgQmFyIHsKLSAgICAgICAgdm9pZCBmb28oQmFyKTsKLSAgICAgICAgdm9pZCBiYXIo
QmFyKTsKLSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAgICB2b2lk
IGJ1eno8VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBiZWNhdXNl
IEJhciBpcyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLVByb3RvY29scyBj
YW4gYWxzbyBtaXggb3RoZXIgcHJvdG9jb2xzIGluIGV4cGxpY2l0bHkuIExpa2UgaW4gdGhlIGV4
YW1wbGUgYWJvdmUsIHRoZSBleGFtcGxlIGJlbG93IHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IGBC
YXJgIGlzIGEgbW9yZSBzcGVjaWZpYyBwcm90b2NvbCB0aGFuIGBGb29gLiBIb3dldmVyLCB0aGlz
IGV4YW1wbGUgZGVjbGFyZXMgdGhpcyBleHBsaWNpdGx5IChgcHJvdG9jb2wgQmFyIDogRm9vYCkg
aW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBsYW5ndWFnZSB0byBpbmZlciBpdDoKLQotICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7Ci0gICAgfQotICAgIHByb3RvY29s
IEJhciA6IEZvbyB7Ci0gICAgICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6
ejxUOkZvbz4oVCB4KSB7IC4uLiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewot
ICAgICAgICBmdXp6KHgpOyAvLyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFu
IEZvby4gICAgCi0gICAgfQotCi0jIyBPdmVybG9hZGluZwotCi1XU0wgc3VwcG9ydHMgb3Zlcmxv
YWRpbmcgdmVyeSBzaW1pbGFybHkgdG8gaG93IEMrKyBkb2VzIGl0LiBGb3IgZXhhbXBsZToKLQot
ICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lkIGZvbyhkb3VibGUpOyAvLyAyCi0g
ICAgCi0gICAgaW50IHg7Ci0gICAgZm9vKHgpOyAvLyBjYWxscyAxCi0gICAgCi0gICAgZG91Ymxl
IHk7Ci0gICAgZm9vKHkpOyAvLyBjYWxscyAyCi0KLVdTTCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMg
dGhlIG1vc3Qgc3BlY2lmaWMgb3ZlcmxvYWQgaWYgZ2l2ZW4gbXVsdGlwbGUgY2hvaWNlcy4gRm9y
IGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91
YmxlKTsgLy8gMgotICAgIHZvaWQgZm9vPFQ+KFQpOyAgIC8vIDMKLQotICAgIGZvbygxKTsgLy8g
Y2FsbHMgMQotICAgIGZvbygxLik7IC8vIGNhbGxzIDIKLSAgICBmb28oMXUpOyAvLyBjYWxscyAz
Ci0KLUdlbmVyaWMgZnVuY3Rpb25zIGxpa2UgYGZvbzxUPmAgY2FuIGJlIGNhbGxlZCB3aXRoIG9y
IHdpdGhvdXQgYWxsIG9mIHRoZWlyIHR5cGUgYXJndW1lbnRzIHN1cHBsaWVkLiBJZiB0aGV5IGFy
ZSBub3Qgc3VwcGxpZWQsIHRoZSBmdW5jdGlvbiBwYXJ0aWNpcGF0ZXMgaW4gb3ZlcmxvYWQgcmVz
b2x1dGlvbiBsaWtlIGFueSBvdGhlciBmdW5jdGlvbiB3b3VsZC4gRnVuY3Rpb25zIGFyZSByYW5r
ZWQgYnkgaG93IHNwZWNpZmljIHRoZXkgYXJlOyBmdW5jdGlvbiBBIGlzIG1vcmUgc3BlY2lmaWMg
dGhhbiBmdW5jdGlvbiBCIGlmIEEncyBwYXJhbWV0ZXIgdHlwZXMgY2FuIGJlIHVzZWQgYXMgYXJn
dW1lbnQgdHlwZXMgZm9yIGEgY2FsbCB0byBCIGJ1dCBub3QgdmljZS12ZXJzYS4gSWYgb25lIGZ1
bmN0aW9ucyBtb3JlIHNwZWNpZmljIHRoYW4gYWxsIG90aGVycyB0aGVuIHRoaXMgZnVuY3Rpb24g
aXMgc2VsZWN0ZWQsIG90aGVyd2lzZSBhIHR5cGUgZXJyb3IgaXMgaXNzdWVkLgotCi0jIyBPcGVy
YXRvciBPdmVybG9hZGluZwotCi1NYW55IFdTTCBvcGVyYXRpb25zIGRlc3VnYXIgdG8gY2FsbHMg
dG8gZnVuY3Rpb25zLiBUaG9zZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCAqb3BlcmF0b3Igb3Zlcmxv
YWRzKiBhbmQgYXJlIGRlY2xhcmVkIHVzaW5nIHN5bnRheCB0aGF0IGludm9sdmVzIHRoZSBrZXl3
b3JkIGBvcGVyYXRvcmAuIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyByZXN1bHQgaW4gY2FsbHMg
dG8gb3BlcmF0b3Igb3ZlcmxvYWRzOgotCi0tIE51bWVyaWNhbCBvcGVyYXRvcnMgKGArYCwgYC1g
LCBgKmAsIGAvYCwgZXRjLikuCi0tIEluY3JlbWVudCBhbmQgZGVjcmVtZW50IChgKytgLCBgLS1g
KS4KLS0gQ2FzdGluZyAoYHR5cGUodmFsdWUpYCkuCi0tIEFjY2Vzc2luZyB2YWx1ZXMgaW4gYXJy
YXlzIChgW11gLCBgW109YCwgYCZbXWApLgotLSBBY2Nlc3NpbmcgZmllbGRzIChgLmZpZWxkYCwg
YC5maWVsZD1gLCBgJi5maWVsZGApLgotCi1XU0wncyBvcGVyYXRvciBvdmVybG9hZGluZyBpcyBk
ZXNpZ25lZCB0byBzeW50aGVzaXplIG1hbnkgb3BlcmF0b3JzIGZvciB5b3U6Ci0KLS0gUmVhZC1t
b2RpZnktd3JpdGUgb3BlcmF0b3JzIGxpa2UgYCs9YCBhcmUgZGVzdWdhcmVkIHRvIGEgbG9hZCBv
ZiB0aGUgbG9hZCB2YWx1ZSwgdGhlIHVuZGVybHlpbmcgb3BlcmF0b3IgKGxpa2UgYCtgKSwgYW5k
IGEgc3RvcmUgb2YgdGhlIG5ldyB2YWx1ZS4gSXQncyBub3QgcG9zc2libGUgdG8gb3ZlcnJpZGUg
YCs9YCwgYC09YCwgZXRjLgotLSBgeCsrYCBhbmQgYCsreGAgYm90aCBjYWxsIHRoZSBzYW1lIG9w
ZXJhdG9yIG92ZXJsb2FkLiBgb3BlcmF0b3IrK2AgdGFrZXMgdGhlIG9sZCB2YWx1ZSBhbmQgcmV0
dXJucyBhIG5ldyBvbmU7IGZvciBleGFtcGxlIHRoZSBidWlsdC1pbiBgKytgIGZvciBgaW50YCBj
b3VsZCBiZSB3cml0dGVuIGFzOiBgaW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7IHJldHVybiB2
YWx1ZSArIDE7IH1gLgotLSBgb3BlcmF0b3I9PWAgY2FuIGJlIG92ZXJsb2FkZWQsIGJ1dCBgIT1g
IGlzIGF1dG9tYXRpY2FsbHkgc3ludGhlc2l6ZWQgYW5kIGNhbm5vdCBiZSBvdmVybG9hZGVkLgot
Ci1Tb21lIG9wZXJhdG9ycyBhbmQgb3ZlcmxvYWRzIGFyZSByZXN0cmljdGVkOgotCi0tIGAhYCwg
YCYmYCwgYW5kIGB8fGAgYXJlIGJ1aWx0LWluIG9wZXJhdGlvbnMgb24gdGhlIGBib29sYCB0eXBl
LgotLSBTZWxmLWNhc3RzIChgVChUKWApIGFyZSBhbHdheXMgdGhlIGlkZW50aXR5IGZ1bmN0aW9u
LgotLSBDYXN0cyB3aXRoIG5vIGFyZ3VtZW50cyAoYFQoKWApIGFsd2F5cyByZXR1cm4gdGhlIGRl
ZmF1bHQgdmFsdWUgZm9yIHRoYXQgdHlwZS4gRXZlcnkgdHlwZSBoYXMgYSBkZWZhdWx0IHZhbHVl
IChgMGAsIGBudWxsYCwgb3IgdGhlIGVxdWl2YWxlbnQgZm9yIGVhY2ggZmllbGQpLgotCi1DYXN0
IG92ZXJsb2FkaW5nIGFsbG93cyBmb3Igc3VwcG9ydGluZyBjb252ZXJzaW9ucyBiZXR3ZWVuIHR5
cGVzIGFuZCBmb3IgY3JlYXRpbmcgY29uc3RydWN0b3JzIGZvciBjdXN0b20gdHlwZXMuIEhlcmUg
aXMgYW4gZXhhbXBsZSBvZiBjYXN0IG92ZXJsb2FkaW5nIGJlaW5nIHVzZWQgdG8gY3JlYXRlIGEg
Y29uc3RydWN0b3I6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAgIFQgcmVhbDsK
LSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICBvcGVyYXRvcjxUPiBDb21wbGV4PFQ+KFQgcmVh
bCwgVCBpbWFnKQotICAgIHsKLSAgICAgICAgQ29tcGxleDxUPiByZXN1bHQ7Ci0gICAgICAgIHJl
c3VsdC5yZWFsID0gcmVhbDsKLSAgICAgICAgcmVzdWx0LmltYWcgPSBpbWFnOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBDb21wbGV4PGZsb2F0PiBpID0gQ29tcGxl
eDxmbG9hdD4oMCwgMSk7Ci0KLVdTTCBzdXBwb3J0cyBhY2Nlc3NvciBvdmVybG9hZGluZyBhcyBw
YXJ0IG9mIHRoZSBvcGVyYXRvciBvdmVybG9hZGluZyBzeW50YXguIFRoaXMgZ2l2ZXMgdGhlIHBy
b2dyYW1tZXIgYnJvYWQgcG93ZXJzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBGb28gewot
ICAgICAgICBpbnQgeDsKLSAgICAgICAgaW50IHk7Ci0gICAgfQotICAgIGludCBvcGVyYXRvci5z
dW0oRm9vIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiBmb28ueCArIGZvby55OwotICAgIH0K
LQotSXQncyBwb3NzaWJsZSB0byBzYXkgYGZvby5zdW1gIHRvIGNhbGwgdGhlIGBvcGVyYXRvci5z
dW1gIGZ1bmN0aW9uLiBCb3RoIGdldHRlcnMgYW5kIHNldHRlcnMgY2FuIGJlIHByb3ZpZGVkOgot
Ci0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAgZG91Ymxl
IG9wZXJhdG9yLmRvdWJsZVZhbHVlKEZvbyB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBk
b3VibGUodmFsdWUudmFsdWUpOwotICAgIH0KLSAgICBGb28gb3BlcmF0b3IuZG91YmxlVmFsdWU9
KEZvbyB2YWx1ZSwgZG91YmxlIGRvdWJsZVZhbHVlKQotICAgIHsKLSAgICAgICAgdmFsdWUudmFs
dWUgPSBpbnQoZG91YmxlVmFsdWUpOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi1Q
cm92aWRpbmcgYm90aCBnZXR0ZXIgYW5kIHNldHRlciBvdmVybG9hZHMgbWFrZXMgYGRvdWJsZVZh
bHVlYCBiZWhhdmUgYWxtb3N0IGFzIGlmIGl0IHdhcyBhIGZpZWxkIG9mIGBGb29gLiBGb3IgZXhh
bXBsZSwgaXQncyBwb3NzaWJsZSB0byBzYXk6Ci0KLSAgICBGb28gZm9vOwotICAgIGZvby52YWx1
ZSA9IDQyOwotICAgIGZvby5kb3VibGVWYWx1ZSAqPSAyOyAvLyBOb3cgZm9vLnZhbHVlIGlzIDg0
Ci0KLUl0J3MgYWxzbyBwb3NzaWJsZSB0byBwcm92aWRlIGFuIGFkZHJlc3MtZ2V0dGluZyBvdmVy
bG9hZCBjYWxsZWQgYW4gKmFuZGVyKjoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQg
dmFsdWU7Ci0gICAgfQotICAgIHRocmVhZCBpbnReIG9wZXJhdG9yJi52YWx1ZUFsaWFzKHRocmVh
ZCBGb29eIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiAmZm9vLT52YWx1ZTsKLSAgICB9Ci0K
LVByb3ZpZGluZyBqdXN0IHRoaXMgb3ZlcmxvYWQgZm9yIGEgcG9pbnRlciB0eXBlIGluIGV2ZXJ5
IGFkZHJlc3Mgc3BhY2UgZ2l2ZXMgdGhlIHNhbWUgcG93ZXIgYXMgb3ZlcmxvYWRpbmcgZ2V0dGVy
cyBhbmQgc2V0dGVycy4gQWRkaXRpb25hbGx5LCBpdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBgJmZv
by52YWx1ZUFsaWFzYC4KLQotVGhlIHNhbWUgb3ZlcmxvYWRpbmcgcG93ZXIgaXMgcHJvdmlkZWQg
Zm9yIGFycmF5IGFjY2Vzc2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBWZWN0b3I8VD4g
ewotICAgICAgICBUIHg7Ci0gICAgICAgIFQgeTsKLSAgICB9Ci0gICAgdGhyZWFkIFReIG9wZXJh
dG9yJltdKHRocmVhZCBUXiBwdHIsIHVpbnQgaW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4g
aW5kZXggPyAmcHRyLT55IDogJnB0ci0+eDsKLSAgICB9Ci0KLUFsdGVybmF0aXZlbHksIGl0J3Mg
cG9zc2libGUgdG8gb3ZlcmxvYWQgZ2V0dGVycyBhbmQgc2V0dGVycyAoYG9wZXJhdG9yW11gIGFu
ZCBgb3BlcmF0b3JbXT1gKS4KLQotIyBNYXBwaW5nIG9mIEFQSSBjb25jZXB0cwotCi1XU0wgaXMg
ZGVzaWduZWQgdG8gYmUgdXNlZnVsIGFzIGJvdGggYSBncmFwaGljcyBzaGFkaW5nIGxhbmd1YWdl
IGFuZCBhcyBhIGNvbXB1dGF0aW9uIGxhbmd1YWdlLiBIb3dldmVyLCB0aGVzZSB0d28gZW52aXJv
bm1lbnRzIGhhdmUKLXNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MuCi0KLVdoZW4gdXNpbmcg
V1NMIGFzIGEgZ3JhcGhpY3Mgc2hhZGluZyBsYW5ndWFnZSwgdGhlcmUgaXMgYSBkaXN0aW5jdGlv
biBiZXR3ZWVuICplbnRyeS1wb2ludHMqIGFuZCAqbm9uLWVudHJ5LXBvaW50cyouIEVudHJ5IHBv
aW50cyBhcmUgdG9wLWxldmVsIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGVpdGhlciB0aGUgYHZlcnRl
eGAgb3IgYGZyYWdtZW50YCBrZXl3b3JkIGluIGZyb250IG9mIHRoZWlyIGRlY2xhcmF0aW9uLiBF
bnRyeSBwb2ludHMgbWF5IG5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLiBBbiBlbnRyeSBwb2ludCBh
bm5vdGF0ZWQgd2l0aCB0aGUgYHZlcnRleGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSBm
cmFnbWVudCBzaGFkZXIsIGFuZCBhbiBlbnRyeSBwb2ludCBhbm5vdGF0ZWQgd2l0aCB0aGUgYGZy
YWdtZW50YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBhcyBhIHZlcnRleCBzaGFkZXIuIE5vIGFy
Z3VtZW50IG5vciByZXR1cm4gdmFsdWUgb2YgYW4gZW50cnkgcG9pbnQgbWF5IGJlIGEgcG9pbnRl
ci4gRW50cnkgcG9pbnRzIG11c3Qgbm90IGFjY2VwdCB0eXBlIGFyZ3VtZW50cyAoYWxzbyBrbm93
biBhcyAiZ2VuZXJpY3MiKS4KLQotIyMgVmVydGV4IGVudHJ5IHBvaW50cwotCi1XZWJHUFUncyBB
UEkgcGFzc2VzIGRhdGEgdG8gYSBXU0wgdmVydGV4IHNoYWRlciBpbiBmb3VyIHdheXM6Ci0KLS0g
QXR0cmlidXRlcwotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwot
Ci1FYWNoIG9mIHRoZXNlIEFQSSBvYmplY3RzIGlzIHJlZmVycmVkIHRvIGJ5IG5hbWUgZnJvbSB0
aGUgQVBJLiBWYXJpYWJsZXMgaW4gV1NMIGFyZSBub3QgYW5ub3RhdGVkIHdpdGggZXh0cmEgQVBJ
LXZpc2libGUgbmFtZXMgKGxpa2UgdGhleSBhcmUgaW4gc29tZSBvdGhlciBncmFwaGljcyBBUElz
KS4KLQotVmFyaWFibGVzIGFyZSBwYXNzZWQgdG8gdmVydGV4IHNoYWRlcnMgYXMgYXJndW1lbnRz
IHRvIGEgdmVydGV4IGVudHJ5IHBvaW50LiBFYWNoIGJ1ZmZlciBpcyByZXByZXNlbnRlZCBhcyBh
biBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0eXBlICh1c2luZyB0aGUgYFtdYCBz
eW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFyZ3VtZW50
cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0eXBlcywgcmVzcGVjdGl2ZWx5LiBB
bGwgb3RoZXIgbm9uLWJ1aWx0aW4gYXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IGFy
ZSBpbXBsaWVkIHRvIGJlIGF0dHJpYnV0ZXMuCi0KLVNvbWUgYXJndW1lbnRzIGFyZSByZWNvZ25p
emVkIGJ5IHRoZSBjb21waWxlciBmcm9tIHRoZWlyIG5hbWUgYW5kIHR5cGUuIFRoZXNlIGFyZ3Vt
ZW50cyBwcm92aWRlIGJ1aWx0LWluIGZ1bmN0aW9uYWxpdHkgaW5oZXJlbnQgaW4gdGhlIGdyYXBo
aWNzIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYGludCB3
c2xfdmVydGV4SURgIHJlZmVycyB0byB0aGUgSUQgb2YgdGhlIGN1cnJlbnQgdmVydGV4LCBhbmQg
aXMgbm90IHJlY29nbml6ZWQgYXMgYW4gYXR0cmlidXRlLiBBbGwgbm9uLWJ1aWx0aW4gYXJndW1l
bnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFuIEFQ
SSBvYmplY3Qgd2hlbmV2ZXIgYW55IGRyYXcgY2FsbCB1c2luZyB0aGUgdmVydGV4IGVudHJ5IHBv
aW50IGlzIGludm9rZWQuIE90aGVyd2lzZSwgdGhlIGRyYXcgY2FsbCB3aWxsIGZhaWwuCi0KLVRo
ZSBvbmx5IHdheSB0byBwYXNzIGRhdGEgYmV0d2VlbiBzdWNjZXNzaXZlIHNoYWRlciBzdGFnZXMg
d2l0aGluIGEgc2luZ2xlIGRyYXcgY2FsbCBpcyBieSByZXR1cm4gdmFsdWUuIEFuIGVudHJ5IHBv
aW50IG11c3QgaW5kaWNhdGUgdGhhdCBpdCByZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB2YWx1ZXMg
Y29udGFpbmVkIHdpdGhpbiBhIHN0cnVjdHVyZS4gRXZlcnkgdmFyaWFibGUgaW5zaWRlIHRoaXMg
c3RydWN0dXJlLCByZWN1cnNpdmVseSwgaXMgcGFzc2VkIHRvIHRoZSBuZXh0IHN0YWdlIGluIHRo
ZSBncmFwaGljcyBwaXBlbGluZS4gTWVtYmVycyBvZiB0aGlzIHN0cnVjdCBtYXkgYWxzbyBiZSBv
dXRwdXQgYnVpbHQtaW4gdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwgYSB2ZXJ0ZXggZW50cnkgcG9p
bnQgbWF5IHJldHVybiBhIHN0cnVjdCB3aGljaCBjb250YWlucyBhIG1lbWJlciBgZmxvYXQ0IHdz
bF9Qb3NpdGlvbmAsIGFuZCB0aGlzIHZhcmlhYmxlIHdpbGwgcmVwcmVzZW50IHRoZSByYXN0ZXJp
emVkIHBvc2l0aW9uIG9mIHRoZSB2ZXJ0ZXguIEJ1ZmZlcnMgKGFzIGRlc2NyaWJlZCBieSBXU0wg
YXJyYXkgcmVmZXJlbmNlcyksIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMgbXVzdCBub3QgYmUgcHJl
c2VudCBpbiB0aGlzIHJldHVybmVkIHN0cnVjdC4gQnVpbHQtaW4gdmFyaWFibGVzIG11c3QgbmV2
ZXIgYXBwZWFyIHR3aWNlIGluc2lkZSB0aGUgcmV0dXJuZWQgc3RydWN0dXJlLgotCi0jIyBGcmFn
bWVudCBlbnRyeSBwb2ludHMKLQotRnJhZ21lbnQgZW50cnkgcG9pbnRzIG1heSBhY2NlcHQgb25l
IGFyZ3VtZW50IHdpdGggdGhlIHR5cGUgdGhhdCB0aGUgcHJldmlvdXMgc2hhZGVyIHN0YWdlIHJl
dHVybmVkLiBUaGUgYXJndW1lbnQgbmFtZSBmb3IgdGhpcyBhcmd1bWVudCBtdXN0IGJlIGBzdGFn
ZUluYC4gSW4gYWRkaXRpb24gdG8gdGhpcyBhcmd1bWVudCwgZnJhZ21lbnQgZW50cnkgcG9pbnRz
IG1heSBhY2NlcHQgYnVmZmVycywgdGV4dHVyZXMsIGFuZCBzYW1wbGVycyBhcyBhcmd1bWVudHMg
aW4gdGhlIHNhbWUgd2F5IHRoYXQgdmVydGV4IGVudHJ5IHBvaW50cyBhY2NlcHQgdGhlbS4gRnJh
Z21lbnQgZW50cnkgcG9pbnRzIGFsc28gbXVzdCByZXR1cm4gYSBzdHJ1Y3QsIGFuZCBhbGwgbWVt
YmVycyBvZiB0aGlzIHN0cnVjdCBtdXN0IGJlIGJ1aWx0LWluIHZhcmlhYmxlcy4gVGhlIHNldCBv
ZiByZWNvZ25pemVkIGJ1aWx0LWluIHZhcmlhYmxlcyB3aGljaCBtYXkgYmUgYWNjZXB0ZWQgb3Ig
cmV0dXJuZWQgZnJvbSBhbiBlbnRyeSBwb2ludCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBhbGwgdHlw
ZXMgb2YgZW50cnkgcG9pbnRzLgotCi1Gb3IgZXhhbXBsZSwgdGhpcyB3b3VsZCBiZSBhIHZhbGlk
IGdyYXBoaWNzIHByb2dyYW06Ci0KLSAgICBzdHJ1Y3QgVmVydGV4SW5wdXQgewotICAgICAgICBm
bG9hdDIgcG9zaXRpb247Ci0gICAgICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAg
c3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfUG9zaXRpb247Ci0gICAg
ICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAgc3RydWN0IEZyYWdtZW50T3V0cHV0
IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Db2xvcjsKLSAgICB9Ci0gICAgCi0gICAgdmVydGV4IFZl
cnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQgdmVydGV4SW5wdXQpIHsKLSAgICAg
ICAgVmVydGV4T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LndzbF9Qb3NpdGlvbiA9IGZs
b2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICAgICAgcmVzdWx0LmNvbG9y
ID0gdmVydGV4SW5wdXQuY29sb3I7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAg
IAotICAgIGZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdtZW50U2hhZGVyKFZlcnRleE91dHB1
dCBzdGFnZUluKSB7Ci0gICAgICAgIEZyYWdtZW50T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVz
dWx0LndzbF9Db2xvciA9IGZsb2F0NChzdGFnZUluLmNvbG9yLCAxLik7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotCi0jIyBDb21wdXRlIGVudHJ5IHBvaW50cwotCi1XZWJHUFUncyBB
UEkgcGFzc2VzIGRhdGEgdG8gYSBjb21wdXRlIHNoYWRlciBpbiB0aHJlZSB3YXlzOgotCi0tIEJ1
ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBsZXJzCi0KLUNvbXB1dGUgZW50cnkg
cG9pbnRzIHN0YXJ0IHdpdGggdGhlIGtleXdvcmQgYGNvbXB1dGVgLiBUaGUgcmV0dXJuIHR5cGUg
Zm9yIGEgY29tcHV0ZSBlbnRyeSBwb2ludCBtdXN0IGJlIGB2b2lkYC4gRWFjaCBidWZmZXIgaXMg
cmVwcmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAo
dXNpbmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNl
bnRlZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMs
IHJlc3BlY3RpdmVseS4gQ29tcHV0ZSBlbnRyeSBwb2ludHMgbWF5IGFsc28gYWNjZXB0IGJ1aWx0
LWluIHZhcmlhYmxlcyBhcyBhcmd1bWVudHMuIEFyZ3VtZW50cyBvZiBhbnkgb3RoZXIgdHlwZSBh
cmUgZGlzYWxsb3dlZC4gQXJndW1lbnRzIG1heSBub3QgdXNlIHRoZSBgdGhyZWFkZ3JvdXBgIG1l
bW9yeSBzcGFjZS4KLQotIyBFcnJvciBoYW5kbGluZwotCi1FcnJvcnMgbWF5IG9jY3VyIGR1cmlu
ZyBzaGFkZXIgcHJvY2Vzc2luZy4gRm9yIGV4YW1wbGUsIHRoZSBzaGFkZXIgbWF5IGF0dGVtcHQg
dG8gZGVyZWZlcmVuY2UgYSBgbnVsbGAgYXJyYXkgcmVmZXJlbmNlLiBJZiB0aGlzIG9jY3Vycywg
dGhlIHNoYWRlciBzdGFnZSBpbW1lZGlhdGVseSBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LiBUaGUg
ZW50cnkgcG9pbnQgaW1tZWRpYXRlbHkgcmV0dXJucyBhIHN0cnVjdCB3aXRoIGFsbCBmaWVsZHMg
c2V0IHRvIDAuIEFmdGVyIHRoaXMgZXZlbnQsIHN1YnNlcXVlbnQgc2hhZGVyIHN0YWdlcyB3aWxs
IHByb2NlZWQgYXMgaWYgdGhlcmUgd2FzIG5vIHByb2JsZW0uCi0KLUJ1ZmZlciBhbmQgdGV4dHVy
ZSByZWFkcyBhbmQgd3JpdGVzIGJlZm9yZSB0aGUgZXJyb3IgYWxsIGNvbXBsZXRlLCBhbmQgaGF2
ZSB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgaWYgbm8gZXJyb3IgaGFkIG9jY3VycmVkLiBCdWZmZXIg
YW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBhZnRlciB0aGUgZXJyb3IgZG8gbm90IG9jY3Vy
LgotCi0jIFN1bW1hcnkKLQotV1NMIGlzIGEgdHlwZS1zYWZlIGxhbmd1YWdlIGJhc2VkIG9uIEMg
c3ludGF4LiBJdCBlbGltaW5hdGVzIHNvbWUgQyBmZWF0dXJlcywgbGlrZSB1bmlvbnMgYW5kIHBv
aW50ZXIgY2FzdHMsIGJ1dCBhZGRzIG90aGVyIG1vZGVybiBmZWF0dXJlcyBpbiB0aGVpciBwbGFj
ZSwgbGlrZSBnZW5lcmljcyBhbmQgb3ZlcmxvYWRpbmcuCi0KLSMgQWRkaXRpb25hbCBMaW1pdGF0
aW9ucwotCi1UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbGltaXRhdGlvbnMgbWF5IGJlIHBsYWNl
ZCBvbiBhIFdTTCBwcm9ncmFtOgotCi0tIGBkZXZpY2VgLCBgY29uc3RhbnRgLCBhbmQgYHRocmVh
ZGdyb3VwYCBwb2ludGVycyBjYW5ub3QgcG9pbnQgdG8gZGF0YSB0aGF0IG1heSBoYXZlIHBvaW50
ZXJzIGluIGl0LiBUaGlzIHNhZmV0eSBjaGVjayBpcyBub3QgZG9uZSBhcyBwYXJ0IG9mIHRoZSBu
b3JtYWwgdHlwZSBzeXN0ZW0gY2hlY2tzLiBJdCdzIHBlcmZvcm1lZCBvbmx5IGFmdGVyIGluc3Rh
bnRpYXRpb24uCi0tIFBvaW50ZXJzIGFuZCBhcnJheSByZWZlcmVuY2VzIChjb2xsZWN0aXZlbHks
ICpyZWZlcmVuY2VzKikgbWF5IGJlIHJlc3RyaWN0ZWQgdG8gc3VwcG9ydCBjb21waWxpbmcgdG8g
U1BJUi1WICpsb2dpY2FsIG1vZGUqLiBJbiB0aGlzIG1vZGUsIGFycmF5cyBtdXN0IG5vdCB0cmFu
c2l0aXZlbHkgaG9sZCByZWZlcmVuY2VzLiBSZWZlcmVuY2VzIG11c3QgYmUgaW5pdGlhbGl6ZWQg
dXBvbiBkZWNsYXJhdGlvbiBhbmQgbmV2ZXIgcmVhc3NpZ25lZC4gRnVuY3Rpb25zIHRoYXQgcmV0
dXJuIHJlZmVyZW5jZXMgbXVzdCBoYXZlIG9uZSByZXR1cm4gcG9pbnQuIFRlcm5hcnkgZXhwcmVz
c2lvbnMgbWF5IG5vdCByZXR1cm4gcmVmZXJlbmNlcy4KLS0gR3JhcGhpY3MgZW50cnkgcG9pbnRz
IG11c3QgdHJhbnNpdGl2ZWx5IG5ldmVyIHJlZmVyIHRvIHRoZSBgdGhyZWFkZ3JvdXBgIG1lbW9y
eSBzcGFjZS4KLQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9X
cmFwQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2Vy
LmpzCmluZGV4IDRjYWRjN2QwZDllNmE2ZGZkYTU1NWRhYjg5ZDAyNzE3NzBkYmQ5YTcuLjBlYjRl
ODFlYzJmYzM2Mzk5NzBkOWM2M2EzZmJjY2U5OTZjYjQxMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCkBAIC01MiwxMSArNTIsNiBAQCBjbGFzcyBX
cmFwQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZv
dW5kIHVud3JhcHBlZCAiICsgbm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2lu
U3RyaW5nKG5vZGUpICsgIjogIiArIG5vZGUgKyAiXG5XaGlsZSB2aXNpdGluZyAiICsgdGhpcy5f
c3RhcnROb2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIgKyBvcmlnaW5TdHJpbmcodGhpcy5f
c3RhcnROb2RlLm9yaWdpbikgKyAiOiAiICsgdGhpcy5fc3RhcnROb2RlKTsKICAgICB9CiAgICAg
Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICB0
aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFy
YW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsK
QEAgLTc2LDE0ICs3MSw0IEBAIGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9Ci0gICAgCi0g
ICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvdW5kVW53
cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICAvLyBOT1RFOiBUaGlzIGRvZXMgbm90IGtu
b3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBpcyBuZXZl
ciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCi0gICAgLy8gY29kZS4gT25jZSBjb2RlIGlzIGluc3Rh
bnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgotICAgIAotICAgIC8v
IE5PVEU6IFRoaXMgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggQXV0b1dyYXBwZXIuCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA4MDk0YjE5Mzc4
MWI0YWE5YjBjMzkwOWU5YTkxZDI4MTVmMmIyYWJhLi4wZGQwNGVmMmQxNDEwMThjZGU0ZDMwOTVk
YzhiNzBmMTlmMDE3MzIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0
bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4
cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01
NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpv
bWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjMsNyArNjEs
NiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1
bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1
bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2Nr
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3Njcmlw
dD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJ
bnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2LDcgQEAKIDxzY3JpcHQgc3JjPSJO
YW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5Nyw2IEBACiA8c2NyaXB0IHNy
Yz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1Jl
bW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlBy
b3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEzMSwxMCArMTIxLDcgQEAKIDxz
Y3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVW
YXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRl
cmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0zNDQsNyArMzMxLDcgQEAgZnVuY3Rpb24gc2VsZWN0
ZWRTaGFkZXJzQ2hhbmdlZChmcm9tQ29tcGlsYXRpb24gPSBmYWxzZSkgewogICAgIGN1cnJlbnRW
ZXJ0ZXhTaGFkZXIgPSBhdmFpbGFibGVWZXJ0ZXhTaGFkZXJzW3ZlcnRleFNoYWRlclNlbGVjdC5z
ZWxlY3RlZEluZGV4XTsKICAgICBjdXJyZW50RnJhZ21lbnRTaGFkZXIgPSBhdmFpbGFibGVGcmFn
bWVudFNoYWRlcnNbZnJhZ21lbnRTaGFkZXJTZWxlY3Quc2VsZWN0ZWRJbmRleF07CiAKLSAgICBp
bmxpbmVkVmVydGV4U2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShj
dXJyZW50VmVydGV4U2hhZGVyLCBbXSk7CisgICAgaW5saW5lZFZlcnRleFNoYWRlciA9IGN1cnJl
bnRWZXJ0ZXhTaGFkZXI7CiAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGlubGluZWRWZXJ0
ZXhTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChjdXJyZW50VmVydGV4U2hhZGVyKSk7CiAKICAgICBh
bGxBcmd1bWVudEluZm9zID0gW107CkBAIC00MjYsNyArNDEzLDcgQEAgZnVuY3Rpb24gcnVuU2hh
ZGVycygpIHsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1l
bnRFUHRyc1tpXS5lUHRyLCBhcmd1bWVudEVQdHJzW2ldLnNpemUpOwogICAgIGxldCByZXN1bHQg
PSBuZXcgRXZhbHVhdG9yKHByb2dyYW0pLnJ1bkZ1bmMoZnVuYyk7CiAKLSAgICBpbmxpbmVkRnJh
Z21lbnRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRG
cmFnbWVudFNoYWRlciwgW10pOworICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IGN1cnJlbnRG
cmFnbWVudFNoYWRlcjsKICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZEZyYWdt
ZW50U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudEZyYWdtZW50U2hhZGVyKSk7CiAgICAg
ZnVuYyA9IGlubGluZWRGcmFnbWVudFNoYWRlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346954</attachid>
            <date>2018-08-10 19:41:57 -0700</date>
            <delta_ts>2018-08-13 00:21:19 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180810194156.patch</filename>
            <type>text/plain</type>
            <size>1340615</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0NzY0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTBjZTMxNjgwYTgxMTViMTgwYjA0ZjEwMzU5ZDRmM2Qy
ZjU5MmFiNS4uM2IyNmFjZjNmN2FhM2UyYWJhMjQ2M2UzNjgzZTkzMTQ3YTc3YzQyYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4
NyBAQAorMjAxOC0wOC0xMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwogMjAxOC0w
OC0xMCAgRGF2aWQgRmVudG9uICA8ZGF2aWRfZmVudG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBU
aW1lb3V0cyBpbiBUZXN0V2ViS2l0QVBJLlByZWZlcnJlZEF1ZGlvQnVmZmVyU2l6ZS5BdWRpb1dp
dGhXZWJBdWRpbyBhbmQgVGVzdFdlYktpdEFQSS5QcmVmZXJyZWRBdWRpb0J1ZmZlclNpemUuV2Vi
QXVkaW8uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKaW5kZXggMTVkZDdjY2FiOTQ2
OTJhMzJhY2QyN2I5ZGFjOTZjOGE4ZjU1ZDY1OC4uNDlhNWZiNjg2MjZjOTAyNDRlODQ2MmFkNzE4
ZmYxZTg1OWZkNjIzZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
QWxsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwpAQCAtNTgs
NyArNTgsNiBAQCBsb2FkKCJDaGVja2VyLmpzIik7CiBsb2FkKCJDbG9uZVByb2dyYW0uanMiKTsK
IGxvYWQoIkNvbW1hRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiQ29uc3RleHByRm9sZGVyLmpzIik7
Ci1sb2FkKCJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJDb250aW51ZS5qcyIp
OwogbG9hZCgiQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJEZXJl
ZmVyZW5jZUV4cHJlc3Npb24uanMiKTsKQEAgLTc3LDcgKzc2LDYgQEAgbG9hZCgiRXhwcmVzc2lv
bkZpbmRlci5qcyIpOwogbG9hZCgiRXh0ZXJuYWxPcmlnaW4uanMiKTsKIGxvYWQoIkZpZWxkLmpz
Iik7CiBsb2FkKCJGaW5kSGlnaFpvbWJpZXMuanMiKTsKLWxvYWQoIkZsYXR0ZW5Qcm90b2NvbEV4
dGVuZHMuanMiKTsKIGxvYWQoIkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWwuanMiKTsKIGxvYWQoIkZsb2F0TGl0ZXJhbFR5cGUuanMiKTsKQEAg
LTg1LDcgKzgzLDYgQEAgbG9hZCgiRm9sZENvbnN0ZXhwcnMuanMiKTsKIGxvYWQoIkZvckxvb3Au
anMiKTsKIGxvYWQoIkZ1bmMuanMiKTsKIGxvYWQoIkZ1bmNEZWYuanMiKTsKLWxvYWQoIkZ1bmNJ
bnN0YW50aWF0b3IuanMiKTsKIGxvYWQoIkZ1bmNQYXJhbWV0ZXIuanMiKTsKIGxvYWQoIkZ1bmN0
aW9uTGlrZUJsb2NrLmpzIik7CiBsb2FkKCJIaWdoWm9tYmllRmluZGVyLmpzIik7CkBAIC05NSw3
ICs5Miw2IEBAIGxvYWQoIkluZGV4RXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiSW5mZXJUeXBlc0Zv
ckNhbGwuanMiKTsKIGxvYWQoIklubGluZS5qcyIpOwogbG9hZCgiSW5saW5lci5qcyIpOwotbG9h
ZCgiSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIik7CiBsb2FkKCJJbnRMaXRlcmFsLmpzIik7CiBs
b2FkKCJJbnRMaXRlcmFsVHlwZS5qcyIpOwogbG9hZCgiSW50cmluc2ljcy5qcyIpOwpAQCAtMTEy
LDkgKzEwOCw3IEBAIGxvYWQoIk5hbWVDb250ZXh0LmpzIik7CiBsb2FkKCJOYW1lRmluZGVyLmpz
Iik7CiBsb2FkKCJOYW1lUmVzb2x2ZXIuanMiKTsKIGxvYWQoIk5hdGl2ZUZ1bmMuanMiKTsKLWxv
YWQoIk5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyIpOwogbG9hZCgiTmF0aXZlVHlwZS5qcyIpOwotbG9h
ZCgiTmF0aXZlVHlwZUluc3RhbmNlLmpzIik7CiBsb2FkKCJOb3JtYWxVc2VQcm9wZXJ0eVJlc29s
dmVyLmpzIik7CiBsb2FkKCJOdWxsTGl0ZXJhbC5qcyIpOwogbG9hZCgiTnVsbFR5cGUuanMiKTsK
QEAgLTEyNSwxMCArMTE5LDYgQEAgbG9hZCgiUHJlcGFyZS5qcyIpOwogbG9hZCgiUHJvZ3JhbS5q
cyIpOwogbG9hZCgiUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiKTsKIGxv
YWQoIlByb3BlcnR5UmVzb2x2ZXIuanMiKTsKLWxvYWQoIlByb3RvY29sLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbERlY2wuanMiKTsKLWxvYWQoIlByb3RvY29sRnVuY0RlY2wuanMiKTsKLWxvYWQoIlBy
b3RvY29sUmVmLmpzIik7CiBsb2FkKCJQdHJUeXBlLmpzIik7CiBsb2FkKCJSZWFkTW9kaWZ5V3Jp
dGVFeHByZXNzaW9uLmpzIik7CiBsb2FkKCJSZWN1cnNpb25DaGVja2VyLmpzIik7CkBAIC0xNTMs
MTAgKzE0Myw3IEBAIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMiKTsKIGxvYWQoIlR5cGVEZWYuanMi
KTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwogbG9hZCgiVHlwZU9yVmFyaWFibGVSZWYu
anMiKTsKLWxvYWQoIlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyIpOwogbG9hZCgiVHlwZVJlZi5q
cyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlLmpzIik7Ci1sb2FkKCJUeXBlVmFyaWFibGVUcmFja2Vy
LmpzIik7CiBsb2FkKCJUeXBlZFZhbHVlLmpzIik7CiBsb2FkKCJVaW50TGl0ZXJhbC5qcyIpOwog
bG9hZCgiVWludExpdGVyYWxUeXBlLmpzIik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0F1dG9XcmFwcGVyLmpzCmluZGV4IDgwYWU3ZDkyYTRmYTYyNjY2ZGIyYTJmZjUyMjBkMTQ5
YTdmMzhlOWMuLjIxNmE3ZTJlMzNkZTk5MWIwNmFiNjM2ZGI1Y2ZjYWI0MDVkOGVlMjkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCkBAIC0zNSwxMSAr
MzUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0
dXJuIG5vZGU7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihu
b2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7CkBAIC02MCwxMSArNTUsNiBAQCBjbGFzcyBBdXRv
V3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAgcmV0dXJuIFR5cGVSZWYud3JhcChu
b2RlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0
R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbm9kZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKaW5kZXgg
YjVhZTBmZTQ5ZmNlZGM4ZmE3NmE2Njc5M2NmZTBjYjFmMDhiNDU3MS4uZjA2NmFjMzIwYTlkY2U0
MjFkNGY4ZWZkMzYzMzNhMjRlYTc2MmZiZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKQEAgLTI1LDExICsyNSwxMCBAQAogInVzZSBzdHJp
Y3QiOwogCiBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRMaXN0KQorICAg
IGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRMaXN0KQogICAgIHsKICAgICAgICAg
c3VwZXIob3JpZ2luKTsKICAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMu
X3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAgICAgICB0aGlzLl9hcmd1bWVudExp
c3QgPSBhcmd1bWVudExpc3Q7CiAgICAgICAgIHRoaXMuZnVuYyA9IG51bGw7CiAgICAgICAgIHRo
aXMuX2lzQ2FzdCA9IGZhbHNlOwpAQCAtMzcsNzEgKzM2LDQxIEBAIGNsYXNzIENhbGxFeHByZXNz
aW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgfQogICAgIAogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhp
cy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBhcmd1bWVudExpc3QoKSB7IHJldHVybiB0aGlz
Ll9hcmd1bWVudExpc3Q7IH0KICAgICBnZXQgaXNDYXN0KCkgeyByZXR1cm4gdGhpcy5faXNDYXN0
OyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9CiAg
ICAgCi0gICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBh
cmFtZXRlcnNJblNjb3BlLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUpCisgICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3NzaWJs
ZU92ZXJsb2FkcywgbmFtZSwgYXJndW1lbnRMaXN0LCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBl
KQogICAgIHsKLSAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2FsbEV4cHJlc3Npb24ob3JpZ2luLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBsZXQgY2FsbCA9IG5l
dyBDYWxsRXhwcmVzc2lvbihvcmlnaW4sIG5hbWUsIGFyZ3VtZW50TGlzdCk7CiAgICAgICAgIGNh
bGwuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXMubWFwKGFyZ3VtZW50ID0+IGFyZ3VtZW50
LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7CiAgICAgICAgIGNhbGwucG9zc2libGVPdmVybG9h
ZHMgPSBwb3NzaWJsZU92ZXJsb2FkczsKICAgICAgICAgaWYgKHJldHVyblR5cGUpCiAgICAgICAg
ICAgICBjYWxsLnNldENhc3REYXRhKHJldHVyblR5cGUpOwotICAgICAgICByZXR1cm4ge2NhbGws
IHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRl
cnNJblNjb3BlLCB0eXBlQXJndW1lbnRzKX07CisgICAgICAgIHJldHVybiB7Y2FsbCwgcmVzdWx0
VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKX07CiAgICAgfQogICAgIAotICAg
IHJlc29sdmUocG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJhbWV0ZXJzSW5TY29wZSwgdHlwZUFy
Z3VtZW50cykKKyAgICByZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRzKQogICAgIHsKICAgICAgICAg
aWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9y
KHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBhbnkgZnVuY3Rpb25zIG5h
bWVkICIgKyB0aGlzLm5hbWUpOwogICAgICAgICAKLSAgICAgICAgbGV0IG92ZXJsb2FkID0gbnVs
bDsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJh
bWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJblNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoISh0eXBl
UGFyYW1ldGVyIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICBjb250
aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFtZXRlci5wcm90b2NvbCkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxldCBzaWduYXR1cmVzID0KLSAgICAgICAg
ICAgICAgICB0eXBlUGFyYW1ldGVyLnByb3RvY29sLnByb3RvY29sRGVjbC5zaWduYXR1cmVzQnlO
YW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAg
ICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZXMsIHRoaXMudHlwZUFy
Z3VtZW50cywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOwotICAgICAgICAg
ICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGxl
dCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCisgICAgICAgICAgICBwb3NzaWJsZU92
ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJldHVyblR5cGUpOworICAgICAgICBp
ZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goLi4ub3Zlcmxv
YWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSBudWxsOwotICAgICAgICB9Ci0g
ICAgICAgIGlmICghb3ZlcmxvYWQpIHsKLSAgICAgICAgICAgIG92ZXJsb2FkID0gcmVzb2x2ZU92
ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy50eXBl
QXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMucmV0dXJuVHlwZSk7Ci0gICAgICAg
ICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5wdXNo
KC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9ICJE
aWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMubmFtZSArICIgZm9yIGNhbGwgd2l0
aCAiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJ0eXBlIGFyZ3VtZW50cyA8IiArIHRoaXMudHlw
ZUFyZ3VtZW50cyArICI+IGFuZCAiOwotICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gImFyZ3Vt
ZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsgIikiOwotICAgICAgICAgICAgICAg
IGlmICh0aGlzLnJldHVyblR5cGUpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0iIGFu
ZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5UeXBlOwotICAgICAgICAgICAgICAgIGlmIChm
YWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNv
bnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQotICAgICAgICAgICAgICAgIHRocm93
IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgbWVzc2FnZSk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJn
dW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBsZXQgdHlwZUFyZ3VtZW50VHlwZSA9
IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAgICBsZXQgdHlwZVBhcmFtZXRlciA9IG92ZXJs
b2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1l
dGVyIGluc3RhbmNlb2YgQ29uc3RleHByVHlwZVBhcmFtZXRlcikpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5cGVQYXJhbWV0ZXIudHlwZS5lcXVhbHNXaXRo
Q29tbWl0KHR5cGVBcmd1bWVudFR5cGUpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmluZyArICIgY29uc3RleHByIHR5cGUgYXJn
dW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1YWw6IGFyZ3VtZW50ID0gIiArIHR5cGVB
cmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgdHlwZVBhcmFtZXRlci50eXBlKTsKKyAg
ICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsg
dGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJh
cmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBlcyArICIpIjsKKyAgICAgICAgICAg
IGlmICh0aGlzLnJldHVyblR5cGUpCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSIgYW5kIHJl
dHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7CisgICAgICAgICAgICBpZiAoZmFpbHVyZXMu
bGVuZ3RoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4i
ICsgZmFpbHVyZXMuam9pbigiXG4iKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
dGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsKICAgICAgICAgfQogICAgICAgICBm
b3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJndW1lbnRUeXBlcy5sZW5ndGg7ICsraSkgewogICAg
ICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlc1tpXTsKLSAgICAg
ICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5
cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVu
Yy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsKKyAgICAgICAg
ICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGU7
CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXJndW1lbnRUeXBlLmVxdWFsc1dpdGhDb21taXQo
cGFyYW1ldGVyVHlwZSk7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiIGFy
Z3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMgbm90IGVxdWFsIGFmdGVyIHR5cGUgYXJndW1lbnQg
c3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9ICIgKyBhcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIg
PSAiICsgcGFyYW1ldGVyVHlwZSk7CkBAIC0xMTIsMTAgKzgxLDcgQEAgY2xhc3MgQ2FsbEV4cHJl
c3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICByZXNvbHZlVG9PdmVybG9hZChvdmVybG9h
ZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9IG92ZXJsb2FkLmZ1bmM7Ci0gICAgICAgIHRo
aXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2FkLnR5cGVBcmd1bWVudHMubWFwKHR5cGVB
cmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBUeXBlID8gdHlwZUFyZ3VtZW50LnZp
c2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1bWVudCk7Ci0gICAgICAgIHRoaXMuaW5z
dGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50czsK
LSAgICAgICAgbGV0IHJlc3VsdCA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRl
VG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMs
IG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgIGxldCByZXN1bHQgPSBvdmVy
bG9hZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJOdWxsIHJldHVybiB0eXBlIik7CiAgICAgICAgIHJlc3VsdCA9IHJl
c3VsdC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CkBAIC0xMjUsMTEgKzkxLDEwIEBAIGNsYXNz
IENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgCiAgICAgYmVjb21lQ2Fz
dChyZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmV0dXJuVHlwZSA9IG5ldyBUeXBl
UmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHRoaXMuX3R5cGVBcmd1bWVudHMpOworICAgICAg
ICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhpcy5vcmlnaW4sIHRoaXMubmFtZSk7
CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUudHlwZSA9IHJldHVyblR5cGU7CiAgICAgICAgIHRo
aXMuX25hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IHRydWU7
Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBbXTsKICAgICB9CiAgICAgCiAgICAgc2V0
Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAgLTE0MSw4ICsxMDYsNiBAQCBjbGFzcyBDYWxsRXhwcmVz
c2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHRvU3RyaW5nKCkKICAgICB7CiAgICAgICAg
IHJldHVybiAodGhpcy5pc0Nhc3QgPyAib3BlcmF0b3IgIiArIHRoaXMucmV0dXJuVHlwZSA6IHRo
aXMubmFtZSkgKwotICAgICAgICAgICAgIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iICsK
LSAgICAgICAgICAgICh0aGlzLmFjdHVhbFR5cGVBcmd1bWVudHMgPyAiPDwiICsgdGhpcy5hY3R1
YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6ICIiKSArCiAgICAgICAgICAgICAiKCIgKyB0aGlzLmFy
Z3VtZW50TGlzdCArICIpIjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DYWxsRnVuY3Rpb24uanMKaW5kZXggZjBmMDM5ZjU0NjJkMDc4MWQ4MmIzNDY0Yzg3NDc4
NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVkODFkODM5NDU2Y2RlNGM0NTk3NzBiY2MzMzBmYyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEZ1bmN0aW9uLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxGdW5jdGlvbi5qcwpAQCAtMjUs
MTcgKzI1LDE3IEBACiAidXNlIHN0cmljdCI7CiAKIC8vIFRoaXMgYWxsb3dzIHlvdSB0byBwYXNz
IHN0cnVjdHMgYW5kIGFycmF5cyBpbi1wbGFjZSwgYnV0IGl0J3MgYSBtb3JlIGFubm95aW5nIEFQ
SS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBh
cmd1bWVudExpc3QpCitmdW5jdGlvbiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1l
bnRMaXN0KQogewogICAgIGxldCBhcmd1bWVudFR5cGVzID0gYXJndW1lbnRMaXN0Lm1hcChhcmd1
bWVudCA9PiBhcmd1bWVudC50eXBlKTsKLSAgICBsZXQgZnVuY09yRmFpbHVyZXMgPSByZXNvbHZl
SW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlw
ZXMsIHRydWUpOworICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9IHJlc29sdmVJbmxpbmVkRnVuY3Rp
b24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgdHJ1ZSk7CiAgICAgaWYgKCEoZnVuY09y
RmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5jKSkgewogICAgICAgICBsZXQgZmFpbHVyZXMgPSBmdW5j
T3JGYWlsdXJlczsKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+
IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiPCIgKyB0eXBlQXJn
dW1lbnRzICsgIj4oIiArIGFyZ3VtZW50TGlzdCArICIpIiArIChmYWlsdXJlcy5sZW5ndGggPyAi
OyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpIDogIiIpKTsKKyAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9u
IGNhbGwgIiArIG5hbWUgKyAiKCIgKyBhcmd1bWVudExpc3QgKyAiKSIgKyAoZmFpbHVyZXMubGVu
Z3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7CiAgICAgfQog
ICAgIGxldCBmdW5jID0gZnVuY09yRmFpbHVyZXM7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBm
dW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgbGV0IHR5cGUgPSBhcmd1bWVu
dFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5cGU7CisgICAgICAgIGxldCB0eXBlID0gYXJndW1lbnRU
eXBlc1tpXTsKICAgICAgICAgdHlwZS52aXNpdChuZXcgU3RydWN0TGF5b3V0QnVpbGRlcigpKTsK
ICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1lbnRMaXN0W2ld
LmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0No
ZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4MzZjMTU0ODZmZDI1ODBjNThlOTYwNmNhZDU5NmVjYi4u
NWRjYTQ2MGZiOTZjMTQ4MzljYjg5ZjA1ZjE3MzRkNDM5Y2U5NWI1YiAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC00Myw4ICs0Myw2IEBAIGNsYXNzIENoZWNr
ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIGZvciAobGV0IHR5cGUgb2Yg
bm9kZS50eXBlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGRvU3RhdGVtZW50KHR5cGUpOwotICAg
ICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLnByb3RvY29scy52YWx1ZXMoKSkKLSAgICAg
ICAgICAgIGRvU3RhdGVtZW50KHByb3RvY29sKTsKICAgICAgICAgZm9yIChsZXQgZnVuY3Mgb2Yg
bm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGZvciAobGV0IGZ1bmMgb2Yg
ZnVuY3MpIHsKICAgICAgICAgICAgICAgICB0aGlzLnZpc2l0RnVuYyhmdW5jKTsKQEAgLTU5LDgg
KzU3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgIF9jaGVja1NoYWRl
clR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBSZWxheCB0aGVzZSBjaGVja3Mg
b25jZSB3ZSBoYXZlIGltcGxlbWVudGVkIHN1cHBvcnQgZm9yIHRleHR1cmVzIGFuZCBzYW1wbGVy
cy4KLSAgICAgICAgaWYgKG5vZGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoICE9IDApCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFbnRy
eSBwb2ludCAiICsgbm9kZS5uYW1lICsgIiBtdXN0IG5vdCBoYXZlIHR5cGUgYXJndW1lbnRzLiIp
OwogICAgICAgICBsZXQgc2hhZGVyRnVuYyA9IG5vZGU7CiAgICAgICAgIHN3aXRjaCAobm9kZS5z
aGFkZXJUeXBlKSB7CiAgICAgICAgIGNhc2UgInZlcnRleCI6CkBAIC04NCwxNSArODAsNiBAQCBj
bGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIGlmICghZnVuYy5uYW1lLnN0
YXJ0c1dpdGgoIm9wZXJhdG9yIikpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCBv
cGVyYXRvciBvdmVybG9hZCBuYW1lOiAiICsgZnVuYy5uYW1lKTsKICAgICAgICAgCi0gICAgICAg
IGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5cGVWYXJpYWJsZVRyYWNrZXIoKTsKLSAg
ICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBmdW5jLnBhcmFtZXRlclR5cGVzKQotICAg
ICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAg
ICAgTm9kZS52aXNpdChmdW5jLnJldHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVW
YXJpYWJsZVRyYWNrZXIpOwotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIGZ1bmMu
dHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIGlmICghdHlwZVZhcmlhYmxlVHJhY2tlci5z
ZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVy
cm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2luLm9yaWdpblN0cmluZywgIlR5cGUgcGFyYW1ldGVyICIg
KyB0eXBlUGFyYW1ldGVyICsgIiB0byBvcGVyYXRvciAiICsgZnVuYy50b0RlY2xTdHJpbmcoKSAr
ICIgaXMgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgIH0K
LSAgICAgICAgCiAgICAgICAgIGxldCBjaGVja0dldHRlciA9IChraW5kKSA9PiB7CiAgICAgICAg
ICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzID0ga2luZCA9PSAiaW5kZXgiID8gMiA6IDE7
CiAgICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCAhPSBudW1FeHBlY3RlZFBh
cmFtZXRlcnMpCkBAIC0xMTUsMTEgKzEwMiwxMCBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlz
aXRvciB7CiAgICAgICAgICAgICBpZiAoIWdldHRlckZ1bmNzKQogICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIkV2ZXJ5IHNldHRl
ciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIsIGJ1dCBkaWQgbm90IGZpbmQgYW55IGZ1bmN0
aW9uIG5hbWVkICIgKyBnZXR0ZXJOYW1lICsgIiB0byBtYXRjaCAiICsgZnVuYy5uYW1lKTsKICAg
ICAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gZnVuYy5wYXJhbWV0ZXJUeXBlcy5zbGljZSgw
LCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgLSAxKTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9
IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIFtdLCBhcmd1bWVudFR5cGVzLCBudWxs
KTsKKyAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVy
RnVuY3MsIGFyZ3VtZW50VHlwZXMsIG51bGwpOwogICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5m
dW5jKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9y
aWdpblN0cmluZywgIkRpZCBub3QgZmluZCBmdW5jdGlvbiBuYW1lZCAiICsgZnVuYy5uYW1lICsg
IiB3aXRoIGFyZ3VtZW50cyAiICsgYXJndW1lbnRUeXBlcyArIChvdmVybG9hZC5mYWlsdXJlcy5s
ZW5ndGggPyAiOyB0cmllZDpcbiIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCJcbiIpIDogIiIp
KTsKLSAgICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3ZlcmxvYWQuZnVuYy5yZXR1cm5UeXBl
LnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMu
dHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAgICAgICAg
ICBsZXQgcmVzdWx0VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0dXJuVHlwZTsKICAgICAgICAgICAg
IGlmICghcmVzdWx0VHlwZS5lcXVhbHModmFsdWVUeXBlKSkKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJTZXR0ZXIgYW5kIGdl
dHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUgKGdldHRlciBhdCAiICsgb3ZlcmxvYWQuZnVu
Yy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBzYXlzICIgKyByZXN1bHRUeXBlICsgIiB3aGlsZSB0
aGlzIHNldHRlciBzYXlzICIgKyB2YWx1ZVR5cGUgKyAiKSIpOwogICAgICAgICB9OwpAQCAtMjEx
LDIzICsxOTcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAg
IH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgZm9y
IChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHR5
cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcgVHlwZVZhcmlhYmxlVHJhY2tlcigpOwotICAgICAgICAg
ICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMpCi0g
ICAgICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFyaWFibGVUcmFja2VyKTsK
LSAgICAgICAgICAgIE5vZGUudmlzaXQoc2lnbmF0dXJlLnJldHVyblR5cGVGb3JPdmVybG9hZFJl
c29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICAgICAgZm9yIChsZXQgdHlw
ZVBhcmFtZXRlciBvZiBzaWduYXR1cmUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0eXBlUGFyYW1ldGVyKSkKLSAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgV1R5cGVFcnJvcih0eXBlUGFyYW1ldGVyLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciB0byBwcm90b2NvbCBzaWduYXR1cmUgbm90IGluZmVy
cmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyhub2RlLnR5cGVWYXJpYWJsZSkpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Ioc2lnbmF0dXJlLm9yaWdpbi5vcmln
aW5TdHJpbmcsICJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKCIgKyBub2RlLm5hbWUgKyAiKSBu
b3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZTogIiArIHNpZ25hdHVyZSk7Ci0gICAgICAgICAgICB0
aGlzLl9jaGVja09wZXJhdG9yT3ZlcmxvYWQoc2lnbmF0dXJlLCBuYW1lID0+IG5vZGUuc2lnbmF0
dXJlc0J5TmFtZShuYW1lKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCiAgICAgdmlzaXRFbnVt
VHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5iYXNlVHlwZS52aXNpdCh0aGlzKTsKQEAg
LTI3OCwyOSArMjQ3LDEyIEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAg
ICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkVu
dW0gZG9lcyBub3QgaGF2ZSBhIG1lbWJlciB3aXRoIHRoZSB2YWx1ZSB6ZXJvIik7CiAgICAgfQog
ICAgIAotICAgIF9jaGVja1R5cGVBcmd1bWVudHMob3JpZ2luLCB0eXBlUGFyYW1ldGVycywgdHlw
ZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZVBhcmFt
ZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBhcmd1bWVudElzVHlwZSA9IHR5
cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAgICAgICAgICAgbGV0IHJlc3VsdCA9
IHR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBpZiAoYXJndW1lbnRJ
c1R5cGUpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gdHlwZUFyZ3VtZW50c1tpXS5p
bmhlcml0cyh0eXBlUGFyYW1ldGVyc1tpXS5wcm90b2NvbCk7Ci0gICAgICAgICAgICAgICAgaWYg
KCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJv
cihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBhcmd1bWVudCBkb2VzIG5vdCBpbmhlcml0IHBy
b3RvY29sOiAiICsgcmVzdWx0LnJlYXNvbik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFsc1dpdGhDb21taXQodHlwZVBhcmFtZXRlcnNbaV0u
dHlwZSkpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG9yaWdpbi5v
cmlnaW5TdHJpbmcsICJXcm9uZyB0eXBlIGZvciBjb25zdGV4cHIiKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAg
ICAgICAgIGlmICghbm9kZS50eXBlKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUeXBl
IHJlZmVyZW5jZSB3aXRob3V0IGEgdHlwZSBpbiBjaGVja2VyOiAiICsgbm9kZSArICIgYXQgIiAr
IG5vZGUub3JpZ2luKTsKICAgICAgICAgaWYgKCEobm9kZS50eXBlIGluc3RhbmNlb2YgU3RydWN0
VHlwZSkpCiAgICAgICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIHRoaXMu
X2NoZWNrVHlwZUFyZ3VtZW50cyhub2RlLm9yaWdpbiwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJz
LCBub2RlLnR5cGVBcmd1bWVudHMpOwogICAgIH0KICAgICAKICAgICB2aXNpdEFycmF5VHlwZShu
b2RlKQpAQCAtNDI2LDggKzM3OCw4IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsK
ICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4
cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3Nz
aWJsZUdldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywK
LSAgICAgICAgICAgICAgICBub2RlLmdldEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0
cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRPdmVybG9hZHMsCisgICAgICAgICAg
ICAgICAgbm9kZS5nZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VU
eXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CiAgICAgICAgICAgICBub2RlLmNhbGxGb3JH
ZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIG5vZGUucmVzdWx0VHlwZUZvckdldCA9IHJl
c3VsdC5yZXN1bHRUeXBlOwogICAgICAgICB9IGNhdGNoIChlKSB7CkBAIC00NDAsOCArMzkyLDgg
QEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgbGV0IGJhc2VG
b3JBbmQgPSBiYXNlVHlwZS5hcmd1bWVudEZvckFuZE92ZXJsb2FkKG5vZGUub3JpZ2luLCBub2Rl
LmJhc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJl
c3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJs
ZUFuZE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAg
ICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbXSwgW2Jhc2VGb3JBbmQsIC4uLmV4dHJh
QXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVzXSwKKyAgICAgICAgICAgICAgICBu
b2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywKKyAgICAgICAgICAgICAgICBu
b2RlLmFuZEZ1bmNOYW1lLCBbYmFzZUZvckFuZCwgLi4uZXh0cmFBcmdzXSwgW3R5cGVGb3JBbmQs
IC4uLmV4dHJhQXJnVHlwZXNdLAogICAgICAgICAgICAgICAgIG51bGwpOwogICAgICAgICAgICAg
bm9kZS5jYWxsRm9yQW5kID0gcmVzdWx0LmNhbGw7CiAgICAgICAgICAgICBub2RlLnJlc3VsdFR5
cGVGb3JBbmQgPSByZXN1bHQucmVzdWx0VHlwZS51bmlmeU5vZGUucmV0dXJuVHlwZUZyb21BbmRP
dmVybG9hZChub2RlLm9yaWdpbik7CkBAIC00NjUsOSArNDE3LDkgQEAgY2xhc3MgQ2hlY2tlciBl
eHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5v
cmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVzdWx0IHR5cGUgcmVzb2x2ZWQgYnktdmFsdWUgKCIgKyBu
b2RlLnJlc3VsdFR5cGVGb3JHZXQgKyAiKSBkb2VzIG5vdCBtYXRjaCByZXN1bHQgdHlwZSByZXNv
bHZlZCBieS1wb2ludGVyICgiICsgbm9kZS5yZXN1bHRUeXBlRm9yQW5kICsgIikiKTsKICAgICAg
ICAgCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Np
b24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZVNl
dE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50eXBlUGFyYW1ldGVycywKLSAgICAg
ICAgICAgICAgICBub2RlLnNldEZ1bmNOYW1lLCBbXSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdz
LCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBu
dWxsKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHByZXNzaW9uLnJlc29sdmUoCisgICAg
ICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVTZXRPdmVybG9hZHMsCisgICAg
ICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzLCBu
dWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBub2RlLnJlc3VsdFR5cGVdLCBudWxs
KTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvclNldCA9IHJlc3VsdC5jYWxsOwogICAgICAgICAg
ICAgaWYgKCFyZXN1bHQucmVzdWx0VHlwZS5lcXVhbHMoYmFzZVR5cGUpKQogICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIlJlc3Vs
dCB0eXBlIG9mIHNldHRlciAiICsgcmVzdWx0LmNhbGwuZnVuYyArICIgaXMgbm90IHRoZSBiYXNl
IHR5cGUgIiArIGJhc2VUeXBlKTsKQEAgLTY3NSw3ICs2MjcsNiBAQCBjbGFzcyBDaGVja2VyIGV4
dGVuZHMgVmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAg
IHsKLSAgICAgICAgbGV0IHR5cGVBcmd1bWVudHMgPSBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5
cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpOwogICAgICAgICBsZXQgYXJn
dW1lbnRUeXBlcyA9IG5vZGUuYXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiB7CiAgICAgICAg
ICAgICBsZXQgbmV3QXJndW1lbnQgPSBhcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgICAg
IGlmICghbmV3QXJndW1lbnQpCkBAIC02ODcsNyArNjM4LDcgQEAgY2xhc3MgQ2hlY2tlciBleHRl
bmRzIFZpc2l0b3IgewogICAgICAgICBpZiAobm9kZS5yZXR1cm5UeXBlKQogICAgICAgICAgICAg
bm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpOwogCi0gICAgICAgIGxldCByZXN1bHQgPSBub2Rl
LnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50
eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cyk7CisgICAgICAgIGxldCByZXN1bHQgPSBub2Rl
LnJlc29sdmUobm9kZS5wb3NzaWJsZU92ZXJsb2Fkcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29u
c3RleHByRm9sZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHBy
Rm9sZGVyLmpzCmluZGV4IDFlNWFkNjYxNWIzOTI0M2MwNmEwYzQ1YWVmNzYzNGY2Mzc2NTM3NTAu
LjFmZDUyMzExMTQ0NjUyYmE2Zjg4ZWNiMTI2Yjc4NTc5Y2M3YjY4NWIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJGb2xkZXIuanMKQEAgLTM0LDcgKzM0
LDYgQEAgY2xhc3MgQ29uc3RleHByRm9sZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHN1
cGVyLnZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSk7CiAgICAgICAgIAogICAgICAgICBpZiAobm9k
ZS5uYW1lID09ICJvcGVyYXRvci0iCi0gICAgICAgICAgICAmJiAhbm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aAogICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3QubGVuZ3RoID09IDEKICAg
ICAgICAgICAgICYmIG5vZGUuYXJndW1lbnRMaXN0WzBdLnVuaWZ5Tm9kZS5pc0NvbnN0ZXhwcgog
ICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0udW5pZnlOb2RlLm5lZ0NvbnN0ZXhw
cikgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHBy
VHlwZVBhcmFtZXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhw
clR5cGVQYXJhbWV0ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzYzE4MjZl
ZDU1ZjNmZTU2ZjdlMGVkMmEwM2RmZGEwMjhkYTViMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29u
c3RleHByVHlwZVBhcmFtZXRlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotY2xhc3MgQ29uc3RleHByVHlwZVBhcmFtZXRlciBleHRlbmRzIFZhbHVlIHsKLSAgICBjb25z
dHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAg
ICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47Ci0gICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwot
ICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigp
IHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5f
bmFtZTsgfQotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCBp
c0NvbnN0ZXhwcigpIHsgcmV0dXJuIHRydWU7IH0KLSAgICBnZXQgaXNVbmlmaWFibGUoKSB7IHJl
dHVybiB0cnVlOyB9Ci0gICAgZ2V0IHZhcklzTFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAg
IHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBWYWx1ZSkpCi0gICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlci50eXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
Ci0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25D
b250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5p
ZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFz
QXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlv
bkNvbnRleHQpCi0gICAgewotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQot
ICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAi
ICIgKyB0aGlzLm5hbWU7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NyZWF0ZUxpdGVyYWxUeXBlLmpzCmluZGV4IDEyOTE0ZGEzMTM3ZmQ2YjkwZmVk
YTcyNTg2MjdlZmZmZmJkNGU1NDEuLjk5Njg2YWI0NDVmMTkwMWY4MjE1NmI3ZTQwODAwODMwM2Iy
OTJkODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxp
dGVyYWxUeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0ZUxp
dGVyYWxUeXBlLmpzCkBAIC0zMiw3ICszMiw3IEBAIGZ1bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBl
KGNvbmZpZykKICAgICAgICAgICAgIHN1cGVyKCk7CiAgICAgICAgICAgICB0aGlzLl9vcmlnaW4g
PSBvcmlnaW47CiAgICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgICAgICAgICAg
dGhpcy5wcmVmZXJyZWRUeXBlID0gbmV3IFR5cGVSZWYob3JpZ2luLCBjb25maWcucHJlZmVycmVk
VHlwZU5hbWUsIFtdKTsKKyAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBUeXBl
UmVmKG9yaWdpbiwgY29uZmlnLnByZWZlcnJlZFR5cGVOYW1lKTsKICAgICAgICAgfQogICAgICAg
ICAKICAgICAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQpAQCAtNTgs
NyArNTgsNyBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgIHBy
ZXBhcmVUb1ZlcmlmeSh1bmlmaWNhdGlvbkNvbnRleHQpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICAg
ICAgaWYgKHJlYWxUaGlzIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlIHx8IHJlYWxUaGlzLmlzTGl0
ZXJhbCkgeworICAgICAgICAgICAgaWYgKHJlYWxUaGlzLmlzTGl0ZXJhbCkgewogICAgICAgICAg
ICAgICAgIHJldHVybiAoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChyZWFsVGhpcy51
bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIHRoaXMucHJlZmVycmVkVHlwZSkpCiAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07CkBAIC03Niw3ICs3Niw3IEBAIGZ1
bmN0aW9uIGNyZWF0ZUxpdGVyYWxUeXBlKGNvbmZpZykKICAgICAgICAgewogICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJHZW5lcmljTGl0ZXJhbFR5cGUgc2hvdWxkIG5ldmVyIGJlIHVzZWQg
YXMgYSB0eXBlIHBhcmFtZXRlciIpOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGNv
bnZlcnNpb25Db3N0KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAg
bGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwppbmRleCAzMGU2
YjAzMWE2ZGQ2NjU5NzQwN2YzZjZiN2ZlNzEzZWQ4ZmRjYzRhLi4wMjk0NzgyYzBlNzkzYWEzNzk1
NzNmNTI4OGM2ZWU5ZThmOTAwNjljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgRXhwcmVz
c2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsK
ICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgZm9yIChs
ZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICB9
CkBAIC00NiwxMSArNDQsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7CiAgICAgfQogICAgIAotICAg
IHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y2FsbGJhY2sobm9kZS50eXBlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5v
ZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjE3MmQ5OGQxZTJjMDA4ZWRiNWQ4MTgzZjVl
ZWZkNjc4ZGM4ZWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZsYXR0ZW5Q
cm90b2NvbEV4dGVuZHMocHJvZ3JhbSkKLXsKLSAgICBsZXQgdmlzaXRpbmcgPSBuZXcgVmlzaXRp
bmdTZXQoKTsKLSAgICAKLSAgICBmdW5jdGlvbiBmbGF0dGVuKHByb3RvY29sKQotICAgIHsKLSAg
ICAgICAgaWYgKCFwcm90b2NvbC5leHRlbmRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCi0gICAgICAgIHZpc2l0aW5nLmRvVmlzaXQocHJvdG9jb2wsICgpID0+IHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHBhcmVudCBvZiBwcm90b2NvbC5leHRlbmRzKSB7Ci0gICAgICAg
ICAgICAgICAgcGFyZW50ID0gcGFyZW50LnByb3RvY29sRGVjbDsKLSAgICAgICAgICAgICAgICBm
bGF0dGVuKHBhcmVudCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIHBh
cmVudC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBuZXdTaWduYXR1cmUg
PSBzaWduYXR1cmUudmlzaXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3Vic3RpdHV0
aW9uKFtwYXJlbnQudHlwZVZhcmlhYmxlXSwgW3Byb3RvY29sLnR5cGVWYXJpYWJsZV0pKTsKLSAg
ICAgICAgICAgICAgICAgICAgcHJvdG9jb2wuYWRkKG5ld1NpZ25hdHVyZSk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvdG9jb2wuZXh0ZW5kcyA9IFtd
OwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJv
Z3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIGZsYXR0ZW4ocHJvdG9jb2wpOwotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKaW5kZXgg
ZTZjNTczN2RlMTZhNGE2NDhkODVhZGNhMTY5MzQ1NGI2MTQwNzI3ZS4uZDVkMWIxNTIzMGYwOWMx
MGEwYmMxMjVmMDNjZjVhZDRjZTNkZDJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcwpAQCAtMzAsNyArMzAsNyBAQCBsZXQgRmxvYXRMaXRlcmFs
ID0gY3JlYXRlTGl0ZXJhbCh7CiAgICAgCiAgICAgbmVnQ29uc3RleHByKG9yaWdpbikKICAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgSW50TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CiAgICAg
fSwKICAgICAKICAgICBjcmVhdGVUeXBlKG9yaWdpbiwgdmFsdWUpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuYy5qcwppbmRleCA2ZmE3YzlkMWI2ZjRiOTU4MzM1OTgxYzI3MjhiZTg2NWE1
NmU3M2FlLi42ZmM3MzMyNzYxZDQ2M2MzNWE4YzQwYzJhNzZmMmY0YjM2YzIzMjIzIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3Ry
aWN0IjsKIAogY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwg
c2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBh
cmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7CiAgICAgICAgIGlmICghKG9yaWdp
biBpbnN0YW5jZW9mIExleGVyVG9rZW4pKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgb3JpZ2luOiAiICsgb3JpZ2luKTsKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgRnVuYyBleHRl
bmRzIE5vZGUgewogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAg
ICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhp
cy5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2Fz
dDsKICAgICAgICAgdGhpcy5fc2hhZGVyVHlwZSA9IHNoYWRlclR5cGU7CkBAIC00OCw4ICs0Nyw2
IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4g
dGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAg
ICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0
IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICBn
ZXQgdHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMudHlwZVBh
cmFtZXRlcnM7IH0KICAgICBnZXQgcGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRl
cnM7IH0KICAgICBnZXQgcGFyYW1ldGVyVHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMu
bWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyBy
ZXR1cm4gdGhpcy5faXNDYXN0OyB9CkBAIC02NSw5ICs2Miw5IEBAIGNsYXNzIEZ1bmMgZXh0ZW5k
cyBOb2RlIHsKICAgICAgICAgaWYgKHRoaXMuc2hhZGVyVHlwZSkKICAgICAgICAgICAgIHJlc3Vs
dCArPSB0aGlzLnNoYWRlclR5cGUgKyAiICI7CiAgICAgICAgIGlmICh0aGlzLmlzQ2FzdCkKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3I8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAi
PiAiICsgdGhpcy5yZXR1cm5UeXBlOworICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvciAi
ICsgdGhpcy5yZXR1cm5UeXBlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0g
dGhpcy5yZXR1cm5UeXBlICsgIiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1l
dGVycyArICI+IjsKKyAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIg
KyB0aGlzLm5hbWU7CiAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKCIgKyB0aGlzLnBhcmFtZXRl
cnMgKyAiKSI7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0RlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNE
ZWYuanMKaW5kZXggMTFmYTA5MmUzYjIyNzhlMjE1YTBhNjdlOTUxZTE3ZGFiYTEzNmE4My4uY2Ew
NTk3ZmNkMjk0ZGZhYjYwNDQyMTRlMDc1NGY3ZWY5NDRiODc4ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzCkBAIC0yNSw5ICsyNSw5IEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nh
c3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBz
dXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJz
LCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuX2Jv
ZHkgPSBib2R5OwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KQEAg
LTM2LDggKzM2LDYgQEAgY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMgewogICAgIAogICAgIHJl
d3JpdGUocmV3cml0ZXIpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMu
bGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBhbiB1
bmluc3RhbnRpYXRlZCBmdW5jdGlvbiIpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhp
cy5fcmV0dXJuVHlwZS52aXNpdChyZXdyaXRlcik7CiAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMg
PSB0aGlzLl9wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3Jp
dGVyKSk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRv
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5Mjg2MmE2ZGQ4NTY1ZWUzN2U0MjA2MzFk
N2FmNzBkNTIyN2U1ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEZ1bmNJbnN0YW50aWF0
b3IgewotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLl9wcm9n
cmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhpcy5faW5zdGFuY2VzID0gbmV3IE1hcCgpOwotICAg
IH0KLSAgICAKLSAgICBnZXQgaW5zdGFuY2VzKCkgeyByZXR1cm4gdGhpcy5faW5zdGFuY2VzOyB9
Ci0gICAgCi0gICAgLy8gUmV0dXJucyBhIEZ1bmMgb2JqZWN0IHRoYXQgdW5pcXVlbHkgaWRlbnRp
ZmllcyBhIHBhcnRpY3VsYXIgc3lzdGVtIG9mIHR5cGUgYXJndW1lbnRzLiBZb3UgbXVzdAotICAg
IC8vIGludGFudGlhdGUgdGhpbmdzIHdpdGggY29uY3JldGUgdHlwZXMsIGJlY2F1c2UgdGhpcyBj
b2RlIGNhc3VhbGx5IGFzc3VtZXMgdGhpcy4gTm90ZSB0aGF0IHRoaXMKLSAgICAvLyB3aWxsIHJl
dHVybiBhIGRpZmZlcmVudCBmdW5jIGZyb20gYGZ1bmNgIG5vIG1hdHRlciB3aGF0LiBUaGlzIGVu
c3VyZXMgdGhhdCB3ZSBjYW4gdXNlIHRoZQotICAgIC8vIHJldHVybmVkIGZ1bmMgZm9yIHJld3Jp
dGVzIHRoYXQgaW5zdGFudGlhdGUgdHlwZXMgd2l0aG91dCBkZXN0cm95aW5nIG91ciBhYmlsaXR5
IHRvIGRvIG92ZXJsb2FkCi0gICAgLy8gcmVzb2x1dGlvbnMgb24gdGhlIG9yaWdpbmFsIFByb2dy
YW0uCi0gICAgZ2V0VW5pcXVlKGZ1bmMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBj
bGFzcyBGaW5kVHlwZVZhcmlhYmxlIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNp
dFR5cGVSZWYobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpIHsKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdHlwZSB2YXJpYWJsZTogIiArIG5vZGUgKyAiIHdoZW4g
aW5zdGFudGlhdGluZyAiICsgZnVuYyArICIgd2l0aCBhcmd1bWVudHMgIiArIHR5cGVBcmd1bWVu
dHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1
bWVudCBvZiB0eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KG5l
dyBGaW5kVHlwZVZhcmlhYmxlKCkpOwotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbmNlcyA9
IHRoaXMuX2luc3RhbmNlcy5nZXQoZnVuYyk7Ci0gICAgICAgIGlmICghaW5zdGFuY2VzKQotICAg
ICAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChmdW5jLCBpbnN0YW5jZXMgPSBbXSk7Ci0gICAg
ICAgIAotICAgICAgICBmb3IgKGxldCBpbnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAg
ICAgIGxldCBvayA9IHRydWU7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5zdGFuY2UudHlw
ZUFyZ3VtZW50cy5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNl
LnR5cGVBcmd1bWVudHNbaV0uZXF1YWxzKHR5cGVBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG9rID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZnVuYzsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHRoaXNJbnN0YW50aWF0b3IgPSB0aGlzOwot
ICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbiBleHRlbmRz
IFN1YnN0aXR1dGlvbiB7Ci0gICAgICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVyLnZpc2l0Q2Fs
bEV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8g
V2UgbWF5IGhhdmUgdG8gcmUtcmVzb2x2ZSB0aGUgZnVuY3Rpb24gY2FsbCwgaWYgaXQgd2FzIGEg
Y2FsbCB0byBhIHByb3RvY29sCi0gICAgICAgICAgICAgICAgLy8gc2lnbmF0dXJlLgotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQuZnVuYyBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpIHsK
LSAgICAgICAgICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChy
ZXN1bHQucG9zc2libGVPdmVybG9hZHMsIHJlc3VsdC50eXBlQXJndW1lbnRzLCByZXN1bHQuYXJn
dW1lbnRUeXBlcywgcmVzdWx0LnJldHVyblR5cGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkNvdWxkIG5vdCByZXNvbHZlIHByb3RvY29sIHNpZ25hdHVyZSBmdW5jdGlvbiBjYWxsIGR1cmlu
ZyBpbnN0YW50aWF0aW9uOiAiICsgcmVzdWx0LmZ1bmMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVu
Z3RoID8gIjsgdHJpZWQ6XG4iICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQuZnVuYy5pc05hdGl2ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5hdGl2
ZUZ1bmNJbnN0YW5jZSA9IHRoaXNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5mdW5jLCBy
ZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9u
KGZ1bmMudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGNsYXNzIElu
c3RhbnRpYXRpb25JbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBJbnN0YW50aWF0ZUltbWVk
aWF0ZXMgewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcHJlc2VydmUgY2VydGFpbiB0aGlu
Z3MgdGhhdCB3b3VsZCBoYXZlIGluc3RhbnRpYXRlZCwgYnV0IHRoYXQgd2UgY2Fubm90Ci0gICAg
ICAgICAgICAgICAgLy8gaW5zdGFudGlhdGUgd2l0aG91dCBicmVha2luZyBjaGFpbi1pbnN0YW50
aWF0aW9ucyAoZ2VuZXJpYyBmdW5jdGlvbiBjYWxscyBnZW5lcmljCi0gICAgICAgICAgICAgICAg
Ly8gZnVuY3Rpb24gc28gdGhlcmVmb3JlIHRoZSBpbnN0YW50aWF0ZWQgZ2VuZXJpYyBmdW5jdGlv
biBtdXN0IHN0aWxsIGhhdmUgdGhlIG9yaWdpbmFsCi0gICAgICAgICAgICAgICAgLy8gKHVuaW5z
dGFudGlhdGVkKSB0eXBlcyB0byBpbnN0YW50aWF0ZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0
IGl0IGNhbGxzKS4KLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNz
aW9uKAotICAgICAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5
cGVBcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChh
cmd1bWVudCA9PiBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKSkpOwotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gQXJy
YXkuZnJvbShub2RlLmFyZ3VtZW50VHlwZXMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmlz
Q2FzdCkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0dXJu
VHlwZSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMgPSBBcnJh
eS5mcm9tKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGxldCBpbnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGlvbkluc3Rh
bnRpYXRlSW1tZWRpYXRlcygpOwotICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGUg
ewotICAgICAgICAgICAgdmlzaXRGdW5jRGVmKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgbGV0IHJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0
aW9uKTsKLSAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gcmV0dXJuVHlwZS52aXNpdChpbnN0
YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZnVu
Yy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlv
bikpOwotICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpOwotICAgICAgICAg
ICAgICAgIGxldCBib2R5ID0gZnVuYy5ib2R5LnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAg
ICAgICAgICAgYm9keSA9IGJvZHkudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
b3JpZ2luLCBmdW5jLm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJhbWV0ZXJzLCBib2R5LCBmdW5j
LmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFu
Y2UoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
cmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cyksCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cykpLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5zaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24oc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgbGV0IHJlc3VsdGluZ0Z1bmMgPSBmdW5jLnZpc2l0KG5ldyBJbnN0YW50aWF0ZSgp
KTsKLSAgICAgICAgcmVzdWx0aW5nRnVuYy51bmluc3RhbnRpYXRlZFJldHVyblR5cGUgPSBmdW5j
LnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgbGV0IGluc3RhbmNlID0g
e2Z1bmM6IHJlc3VsdGluZ0Z1bmMsIHR5cGVBcmd1bWVudHN9OwotICAgICAgICBpbnN0YW5jZXMu
cHVzaChpbnN0YW5jZSk7Ci0gICAgICAgIHJldHVybiByZXN1bHRpbmdGdW5jOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0Zv
ckNhbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2Fs
bC5qcwppbmRleCA0NDZiMzUxZGE1NzE1YzY4YTM1ZDc2OTc5NjlkNjk4ZWM3M2U3NGY4Li42MDQ5
MTUzNjI1MWQwOWJjZTAzYTE0ZWQ2Nzc1MjJhMDJkMTNhNjQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwpAQCAtMjQsMTkgKzI0
LDExIEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwo
ZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKK2Z1bmN0aW9u
IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiB7Ci0g
ICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICYmIHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IGZ1
bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1
bWVudHMgKHBhc3NlZCAiICsgdHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBm
dW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwogICAgIGlmIChhcmd1bWVudFR5cGVz
Lmxlbmd0aCAhPSBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1
cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2Yg
YXJndW1lbnRzIChwYXNzZWQgIiArIGFyZ3VtZW50VHlwZXMubGVuZ3RoICsgIiwgcmVxdWlyZSAi
ICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwotICAgIGxldCB1bmlmaWNhdGlvbkNv
bnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KGZ1bmMudHlwZVBhcmFtZXRlcnNGb3JDYWxs
UmVzb2x1dGlvbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIGxldCBhcmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAg
ICAgIGxldCBwYXJhbWV0ZXIgPSBmdW5jLnR5cGVQYXJhbWV0ZXJzW2ldOwotICAgICAgICBpZiAo
IWFyZ3VtZW50LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcGFyYW1ldGVyKSkKLSAgICAgICAg
ICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywg
IlR5cGUgYXJndW1lbnQgIyIgKyAoaSArIDEpICsgIiBmb3IgcGFyYW1ldGVyICIgKyBwYXJhbWV0
ZXIubmFtZSArICIgZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgYXJndW1lbnQgKyAiLCByZXF1
aXJlICIgKyBwYXJhbWV0ZXIgKyAiKSIpfTsKLSAgICB9CisgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGFyZ3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCFhcmd1bWVudFR5cGVz
W2ldKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGFyZ3VtZW50IHR5cGUgYXQg
aSA9ICIgKyBpKTsKQEAgLTQ4LDE2ICs0MCw2IEBAIGZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxs
KGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiAgICAgbGV0
IHZlcmlmaWNhdGlvblJlc3VsdCA9IHVuaWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICBp
ZiAoIXZlcmlmaWNhdGlvblJlc3VsdC5yZXN1bHQpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTog
bmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgdmVyaWZpY2F0aW9uUmVzdWx0LnJl
YXNvbil9OwotICAgIGxldCBzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMgPSAhdHlwZUFyZ3VtZW50
cy5sZW5ndGg7Ci0gICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgdHlw
ZUFyZ3VtZW50cyA9IFtdOwotICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBl
UGFyYW1ldGVycykgewotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIGlmICh0eXBlQXJndW1lbnQgPT0gdHlw
ZVBhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsg
IiBkaWQgbm90IGdldCBhc3NpZ25lZCBhIHR5cGUiKX07Ci0gICAgICAgIGlmIChzaG91bGRCdWls
ZFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnRzLnB1c2godHlwZUFyZ3Vt
ZW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHQsIHR5cGVB
cmd1bWVudHN9OworICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0fTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCmluZGV4IGYwMjg3M2JkMjczZDkx
MGIzZGYwNGZkMmE1MWEzYzdjMGE0NjdjZWYuLjA5MDc0Njk5MjZmOGMwN2Q1MzM0YmIwMzA3ZGQz
NTE4NWI4ZTUyM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKQEAg
LTI4LDE4ICsyOCwxMyBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKIHsKICAgICBmb3IgKGxl
dCBmdW5jTGlzdCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3Ig
KGxldCBmdW5jIG9mIGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFt
ZXRlcnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3Rh
bnRpYXRvci5nZXRVbmlxdWUoZnVuYywgW10pCi0gICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5n
U2V0KGZ1bmMpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAogZnVuY3Rpb24gX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIHZpc2l0aW5nKQogewotICAgIGlmIChmdW5jLnR5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5saW5lIGZ1bmN0
aW9uIHRoYXQgaGFzIHR5cGUgcGFyYW1ldGVycyIpOwogICAgIGlmIChmdW5jLmlubGluZWQgfHwg
ZnVuYy5pc05hdGl2ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtNTUsMTQgKzUwLDEwIEBA
IGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKICAgICBm
dW5jLmlubGluZWQgPSB0cnVlOwogfQogCi1mdW5jdGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9u
KHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQ
b2ludCA9IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCBhcmd1bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKLSAgICBsZXQg
b3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQo
bmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5
UG9pbnQpOworICAgIGxldCBvdmVybG9hZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQucmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50
cnlQb2ludCk7CiAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICByZXR1cm4gb3Zlcmxv
YWQuZmFpbHVyZXM7Ci0gICAgaWYgKCFvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzKQotICAg
ICAgICByZXR1cm4gb3ZlcmxvYWQuZnVuYzsKLSAgICBsZXQgZnVuYyA9IHByb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUob3ZlcmxvYWQuZnVuYywgb3ZlcmxvYWQudHlwZUFyZ3VtZW50
cyk7Ci0gICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChv
dmVybG9hZC5mdW5jKSk7Ci0gICAgcmV0dXJuIGZ1bmM7CisgICAgcmV0dXJuIG92ZXJsb2FkLmZ1
bmM7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVy
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwppbmRleCA0OTFl
ZjNlMjIxZmMwNjMxOGVlMDM2N2EzODE2OTllNTcyM2JmZTVhLi40NzRjNTQ2OGJmNzE1N2NkNzNj
NTA5Yzc3Mzg4ZWQzMzk3ZWQ0ODM1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbmxpbmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZXIuanMKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0
ZXIgewogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBy
ZXN1bHQgPSBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgICAgICBpZiAocmVz
dWx0Lm5hdGl2ZUZ1bmNJbnN0YW5jZSkKKyAgICAgICAgaWYgKHJlc3VsdC5mdW5jLmlzTmF0aXZl
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0
aW5nLmRvVmlzaXQobm9kZS5mdW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRo
aXMuX3Byb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3Vs
dC5hY3R1YWxUeXBlQXJndW1lbnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1
bmM7CiAgICAgICAgICAgICBpZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAg
ICAgIF9pbmxpbmVGdW5jdGlvbih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEz
NDhhYmMxMjc2OTZiNmVlMzFlMGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlh
dGVJbW1lZGlhdGVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBl
UmVmKG5vZGUpCi0gICAgewotICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUp
OwotICAgICAgICBpZiAoIW5vZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYg
KG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJ0eXBlIGRvZXMgbm90IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgi
ICsgdHlwZS5jb25zdHJ1Y3Rvci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2Rl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50
eXBlQXJndW1lbnRzKS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpp
bmRleCA5MzNkZmUwMTEzMDJiMGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi43MmFmMDExZGNj
ZDNmMDJkOTFiZTUwN2NhNWFmZWNhYTlkMDc4MzY5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVj
bGFyZWQgdXNpbmcgImludCIgcmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAg
ICAgIC8vIHVzZSAiaW50IiBoZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkg
YXJlIHRoZSBzYW1lIHR5cGUuCiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsK
LSAgICAgICAgICAgICAgICB0aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUu
c2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgp
ID0+IHsgfTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNC
aXR3aXNlRXF1aXZhbGVudChsZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0
IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5NCArNDcsODY1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJh
eUNvbnN0cnVjdG9yLCBudW1iZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9
IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51
bWJlcjsKKyAgICAgICAgICAgIHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0g
ICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsK
LSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUg
fCAwLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2
YWx1ZSA9PiAodmFsdWUgKyAxKSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVh
bCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZh
dWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9
IGZ1bmN0aW9uKigpIHsgCi0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9
IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
aSB8IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgdHlwZWRlZiB1aW50MzI8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAg
ICAgICB0aGlzLnVpbnQzMiA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25l
ZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4g
aXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOwotICAgICAgICAgICAgICAg
IHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwot
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAg
ICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsK
LSAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4g
MDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsgCi0gICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0gICAgICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7CisgICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKKyAg
ICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5
cGVkZWYgdWludDg8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0
aGlzLnVpbnQ4ID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBl
LmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2
YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZiwgdmFsdWUpOwotICAgICAg
ICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFs
dWUgPSAwOwotICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZh
bHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgJiAweGZmLCB0eXBlKTsK
LSAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsg
MSkgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1
ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwot
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0g
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBjYXN0
VG9IYWxmKG51bWJlcikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJl
cikpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcgorICAgICAgICAgICAgaWYgKG51bWJl
ciA+IDY1NTA0KQorICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5J
VFk7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQorICAgICAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgICAgICAgICBpZiAobnVtYmVyID4g
MCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgJiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0y
NCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0wOworICAgICAgICAgICAgbGV0IGRvdWJsZUFy
cmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKKyAgICAgICAgICAgIGxldCB1aW50QXJyYXkgPSBu
ZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIpOworICAgICAgICAgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgICAgICAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4
ODA7CisgICAgICAgICAgICBsZXQgZXhwb25lbnQgPSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8
IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7CisgICAgICAgICAgICBsZXQgc2ln
bmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0g
JiAweGZjKSA+Pj4gMik7CisKKyAgICAgICAgICAgIGlmICgoZXhwb25lbnQgLSAxMDIzKSA8IC0x
NCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gMDsKKyAgICAgICAgICAgICAgICBzaWdu
aWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAg
ICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQg
LyAxMDI0OworICAgICAgICAgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlICo9IC0xOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0gPSAwOwogCisgICAgICAgICAgICB1
aW50QXJyYXlbN10gfD0gc2lnbjsKKyAgICAgICAgICAgIHVpbnRBcnJheVs3XSB8PSAoZXhwb25l
bnQgPj4+IDQpOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkg
JiAweGYwKTsKKyAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYp
OworICAgICAgICAgICAgdWludEFycmF5WzVdIHw9ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZj
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworICAg
ICAgICB9CisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIGZsb2F0MzI8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9p
ZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmZsb2F0ID0g
dHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KE1h
dGguZnJvdW5kKHZhbHVlKSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsK
LSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21G
bG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgdGhpcy52b2lkID0gdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAwOworICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoKSA9PiB7IH07CiAgICAg
ICAgICAgICB9KTsKLQorICAgICAgICAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBib29sPD4iLAorICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVm
IGJvb2wiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5ib29s
ID0gdHlwZTsKICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCBmYWxz
ZSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWNoYXIiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLnVjaGFyID0gdHlwZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNh
blJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmLCB2
YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAg
IHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRl
cmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1
ZSAmIDB4ZmYsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0g
dmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVl
c0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxh
dGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAw
KTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFs
dWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAgICAgICB0
eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVs
ZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAg
IH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBl
ZGVmIHVzaG9ydCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMudXNob3J0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAg
ICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9
IGZhbHNlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlz
Qml0d2lzZUVxdWl2YWxlbnQodmFsdWUgJiAweGZmZmYsIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAw
OworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3JpZ2luLCB2YWx1ZSkg
PT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlICYgMHhmZmZmLCB0eXBlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNzb3JWYWx1ZSA9IHZhbHVlID0+ICh2YWx1ZSArIDEp
ICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZm
ZmY7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2
YWx1ZSA9PiB2YWx1ZSAmIDB4ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMg
PSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
PSAweGZmZmY7ICsraSkKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGks
IG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHVpbnQiLAor
ICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnVpbnQgPSB0eXBl
OworICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gZmFsc2U7CisgICAgICAg
ICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVu
dCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOwor
ICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAg
IHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhU
eXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1
Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgPj4+IDA7CisgICAgICAgICAgICAg
ICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVy
LnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUlu
dExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5m
b3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOworICAgICAg
ICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgIm5hdGl2ZSB0eXBlZGVmIGNoYXIiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLmNoYXIgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlz
UHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzU2lnbmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQg
PSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KGNhc3QoSW50OEFycmF5LCB2YWx1ZSksIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50OEFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3Nv
clZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQ4QXJyYXksIHZhbHVlICsgMSk7CisgICAgICAgICAg
ICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4gYSA9PT0gYjsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAg
ICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJ
bnQ4QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5j
dGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSAweGZm
OyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0KEludDhB
cnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwg
bmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgIm5hdGl2ZSB0eXBlZGVmIHNob3J0IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAg
ICAgICAgICAgICAgdGhpcy5zaG9ydCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQ
cmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5
cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9
IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQxNkFycmF5LCB2YWx1ZSksIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5kZWZhdWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVy
YWwgPSAob3JpZ2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIGNhc3Qo
SW50MTZBcnJheSwgdmFsdWUpLCB0eXBlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zdWNjZXNz
b3JWYWx1ZSA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50MTZBcnJheSwgdmFsdWUpOworICAgICAg
ICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gY2Fz
dChJbnQxNkFycmF5LCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0g
ZnVuY3Rpb24qKCkgeworICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0g
MHhmZmZmOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjYXN0
KEludDE2QXJyYXksIGkpOworICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTog
dmFsdWUsIG5hbWU6IHZhbHVlfTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBpbnQiLAorICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICB0aGlzLmludCA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUu
aXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUgfCAwLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVs
dFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdp
biwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2YWx1ZSB8IDAsIHR5cGUp
OworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVl
ICsgMSkgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+
IGEgPT09IGI7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAo
YnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgfCAwOwor
ICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUg
PT4gdmFsdWUgfCAwOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9u
KigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZm
ZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGkgfCAwOwor
ICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogdmFsdWUsIG5hbWU6IHZhbHVl
fTsKKyAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgfTsKKyAgICAgICAg
ICAgICB9KTsKKworICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZl
IHR5cGVkZWYgaGFsZiIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAg
IHRoaXMuaGFsZiA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0
cnVlOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0
eXBlLmlzRmxvYXRpbmcgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0Jp
dHdpc2VFcXVpdmFsZW50KGNhc3RUb0hhbGYodmFsdWUpLCB2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZl
ci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21J
bnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0VG9IYWxmKHZh
bHVlKTsKKyAgICAgICAgICAgICB9KTsKKworICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgZmxvYXQiLAorICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICB0aGlzLmZsb2F0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Cisg
ICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoTWF0aC5mcm91bmQodmFsdWUpLCB2YWx1
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVy
LCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWU7CisgICAgICAgICAg
ICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21GbG9hdExpdGVyYWwgPSB2YWx1
ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhp
cy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX2ludCIsCisg
ICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX2ludCA9
IHR5cGU7CisgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0
IGhlcmUuCisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgYXRvbWljX3VpbnQiLAorICAgICAgICAgICAgIHR5cGUg
PT4geworICAgICAgICAgICAgICAgICB0aGlzLmF0b21pY191aW50ID0gdHlwZTsKKyAgICAgICAg
ICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAg
ICAgICB9KTsKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsiYm9vbCIsICJ1
Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwg
ImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgewor
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRp
dmUgdHlwZWRlZiAke3ByaW1pdGl2ZVR5cGV9JHtpfWAsCisgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtwcmltaXRpdmVUeXBlfSR7
aX1gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91
dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJoYWxm
IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkg
eworICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAyOyBqIDw9IDQ7ICsraikgeworICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9eCR7an1gLAorICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHtw
cmltaXRpdmVUeXBlfSR7aX14JHtqfWBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAgICAgICAg
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVk
ZWYgc2FtcGxlciIsCisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRo
aXMuc2FtcGxlciA9IHR5cGU7CisgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0
IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgZm9yIChsZXQg
dGV4dHVyZVR5cGUgb2YgWyJUZXh0dXJlMUQiLCAiUldUZXh0dXJlMUQiLCAiVGV4dHVyZTFEQXJy
YXkiLCAiUldUZXh0dXJlMURBcnJheSIsICJUZXh0dXJlMkQiLCAiUldUZXh0dXJlMkQiLCAiVGV4
dHVyZTJEQXJyYXkiLCAiUldUZXh0dXJlMkRBcnJheSIsICJUZXh0dXJlM0QiLCAiUldUZXh0dXJl
M0QiLCAiVGV4dHVyZUN1YmUiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50
IG9mIFsiYm9vbCIsICJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0Iiwg
ImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJlVHlwZX08JHt0
eXBlQXJndW1lbnR9PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4geworICAgICAgICAg
ICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9PmBdID0g
dHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQg
dG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGZv
ciAobGV0IGkgPSAyOyBpIDw9IDQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9t
YXAuc2V0KAorICAgICAgICAgICAgICAgICAgICAgICAgYG5hdGl2ZSB0eXBlZGVmICR7dGV4dHVy
ZVR5cGV9PCR7dHlwZUFyZ3VtZW50fSR7aX0+YCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGUgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYCR7dGV4dHVyZVR5cGV9
PCR7dHlwZUFyZ3VtZW50fSR7aX0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICBmb3IgKGxldCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmVEZXB0aDJEIiwg
IlJXVGV4dHVyZURlcHRoMkQiLCAiVGV4dHVyZURlcHRoMkRBcnJheSIsICJSV1RleHR1cmVEZXB0
aDJEQXJyYXkiLCAiVGV4dHVyZURlcHRoQ3ViZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2YgWyJmbG9hdCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0dXJl
VHlwZX08JHt0eXBlQXJndW1lbnR9PmAsCisgICAgICAgICAgICAgICAgICAgIHR5cGUgPT4gewor
ICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlwZX08JHt0eXBlQXJndW1l
bnR9PmBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVz
aG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkg
eworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9w
ZXJhdG9yIHVjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFy
IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7Cisg
ICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0
b3IgdXNob3J0KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmZmZik7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNoYXIi
LCAidXNob3J0IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgewor
ICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIG9wZXJh
dG9yIHVpbnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4gewor
ICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQ
dHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1
c2hvcnQiLCAidWludCIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7CisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3BlcmF0b3Ig
Y2hhcigke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5i
b3goY2FzdChJbnQ4QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNo
YXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3Igc2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KGNhc3QoSW50MTZBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUg
b2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImhhbGYiLCAi
ZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBg
bmF0aXZlIG9wZXJhdG9yIGludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3goY2FzdChJbnQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0
aXZlVHlwZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAi
aW50IiwgImZsb2F0Il0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAg
ICAgICAgYG5hdGl2ZSBvcGVyYXRvciBoYWxmKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAg
ICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChjYXN0VG9IYWxmKHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmlt
aXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiaGFsZiJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAg
ICAgICAgIGBuYXRpdmUgb3BlcmF0b3IgZmxvYXQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAu
c2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGludDMyKHVpbnQzMikiLAorICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBpbnQoYXRvbWljX2ludClgLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVl
KCkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gaW50MzIodWludDgpIiwKKyAgICAgICAg
ICAgIGBuYXRpdmUgb3BlcmF0b3IgdWludChhdG9taWNfdWludClgLAogICAgICAgICAgICAgZnVu
YyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkp
OwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0g
ICAgICAgICAgICAibmF0aXZlIG9wZXJhdG9yPD4gaW50MzIoZmxvYXQpIiwKKyAgICAgICAgICAg
ICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsYm9vbCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBF
UHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSB8IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAg
ICB9KTsKLSAgICAgICAgCisKKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsi
dWludCIsICJpbnQiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAg
ICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I9PSgke3ByaW1pdGl2ZVR5cGV9LCR7
cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2Fk
VmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPCgke3ByaW1pdGl2ZVR5
cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0
LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdGhpcy5f
bWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I8PSgke3ByaW1p
dGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8
PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBib29sIG9wZXJhdG9yPigk
e3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5j
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwg
cmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0
b3I+PSgke3ByaW1pdGl2ZVR5cGV9LCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0KKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBv
cGVyYXRvcjw+IHVpbnQzMihpbnQzMikiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3IrKGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVl
KCkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgKyByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAK
KwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+
IHVpbnQzMih1aW50OCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ItKGludCxp
bnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDAp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQzMihm
bG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3IqKGludCxpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFs
dWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KGludDMyKSIsCisg
ICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAgICAgICAgICAg
ZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVd
KSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAg
ICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgfCAw
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KHVpbnQzMikiLAorICAgICAgICAg
ICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
RVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgJiAweGZmKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IHVpbnQ4KGZsb2F0KSIsCisgICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7
Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIG9wZXJhdG9yPD4gZmxvYXQoaW50MzIpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvcioodWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94
KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAg
ICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBmbG9hdCh1aW50MzIpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIu
Ym94KE1hdGguZnJvdW5kKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAg
ICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBmbG9hdCh1aW50OCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBvcGVyYXRvcisoZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
RVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgKyByaWdodC5sb2Fk
VmFsdWUoKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcis8PihpbnQsaW50KSIsCisg
ICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCxmbG9hdCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
bGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2Fk
VmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKzw+KHVpbnQsdWludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgKyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvcis8PihmbG9hdCxmbG9hdCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci8oZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAg
IGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVm
dC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAg
IEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUo
KSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci08PihpbnQsaW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGludCBvcGVyYXRvciYoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJp
Z2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVm
dC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IHVpbnQgb3BlcmF0b3ItPD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBv
cGVyYXRvcnwoaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIHwg
cmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3It
PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yXihpbnQs
aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0Lmxv
YWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcio8PihpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcn4oaW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpICogcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSB8
IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqPD4odWludCx1aW50KSIsCisgICAg
ICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8KGludCx1aW50KSIsCiAgICAgICAgICAgICBm
dW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCBy
aWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgp
ICogcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goKGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpIHwgMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqPD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgaW50IG9wZXJhdG9yPj4oaW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUo
KSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChs
ZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvci88PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQg
b3BlcmF0b3ImKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgp
KSB8IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAm
IHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
ci88Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWlu
dCx1aW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciY8PihpbnQsaW50
KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsdWludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpICYgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAg
ICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdWludCBvcGVyYXRvciY8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJu
YXRpdmUgdWludCBvcGVyYXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCgofnZhbHVlLmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAg
ICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICJuYXRpdmUgaW50IG9wZXJhdG9yfDw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
dWludCBvcGVyYXRvcjw8KHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8
PCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAor
CiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0
b3J8PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pih1
aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5s
b2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcl48PihpbnQs
aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNvcyhmbG9hdCkiLAogICAgICAgICAg
ICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVm
dCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1
ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC5jb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAg
ICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWlu
dCBvcGVyYXRvcl48Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgc2lu
KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVlLmxvYWRWYWx1
ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8PD4oaW50LHVpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdGFuKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+
IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0p
ID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPDwgcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0
aC50YW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRv
cjw8PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFjb3MoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgPDwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYWNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I+Pjw+KGludCx1aW50KSIsCisgICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PiByaWdodC5s
b2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFs
dWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmFz
aW4odmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+
PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGludCBvcGVyYXRvcn48PihpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxv
YXQgY29zaChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh+dmFsdWUubG9hZFZh
bHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5jb3NoKHZh
bHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3J+PD4odWlu
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1
ZV0pID0+IEVQdHIuYm94KCh+dmFsdWUubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luaCh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci88PihmbG9hdCxmbG9hdCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVl
KCkgLyByaWdodC5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5m
cm91bmQoTWF0aC50YW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I9PTw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgY2Vp
bChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguY2VpbCh2YWx1ZS5sb2FkVmFsdWUoKSkp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAot
ICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08Pih1aW50LHVpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgZXhwKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQu
bG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5l
eHAodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09
PD4oYm9vbCxib29sKSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGZsb29yKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5mbG9vcih2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPT08PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAg
Im5hdGl2ZSBmbG9hdCBsb2coZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFs
dWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9
PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmxvZyh2YWx1
ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPDw+KGludCxp
bnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xl
ZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFs
dWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGgu
ZnJvdW5kKE1hdGgucm91bmQodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
Ym9vbCBvcGVyYXRvcjw8Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQg
c3FydChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgp
KSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQo
Ci0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PD4oZmxvYXQsZmxvYXQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgZmxvYXQgdHJ1bmMoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMg
PT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0
XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1h
dGgudHJ1bmModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVy
YXRvcjw9PD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBkZHgoZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAg
ICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAg
Im5hdGl2ZSBib29sIG9wZXJhdG9yPD08Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgZGR5KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0
ci5ib3goMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFw
LnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw9PD4oZmxvYXQsZmxvYXQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgcG93KGZsb2F0LGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChNYXRoLmZyb3VuZChNYXRoLnBvdyhsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2FkVmFsdWUo
KSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPjw+KGludCxpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRd
KSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmln
aHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlzRmluaXRl
KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj48Pih1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2luZihmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KHZhbHVlLmxvYWRWYWx1ZSgpID09IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgfHwgKHZhbHVl
LmxvYWRWYWx1ZSgpID09IE51bWJlci5ORUdBVElWRV9JTkZJTklUWSkpOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I+PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
Ym9vbCBpc25hbihmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVyLmlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLgogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29s
IG9wZXJhdG9yPj08PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNub3Jt
YWwoaGFsZikiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgCisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj08Pih1
aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc25vcm1hbChmbG9hdCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KGlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
CisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVy
YXRvcj49PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXRhbjIo
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGguYXRhbjIobGVmdC5sb2Fk
VmFsdWUoKSwgcmlnaHQubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAg
Ci0gICAgICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgICAgIGBuYXRpdmUgVCogJHthZGRy
ZXNzU3BhY2V9IG9wZXJhdG9yJltdPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0sdWludClgLAotICAg
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFtyZWYsIGluZGV4XSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9k
ZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiTnVsbCBkZXJlZmVyZW5jZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaW5kZXggPSBpbmRleC5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpbmRleCA+IHJlZi5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhyb3cgbmV3IFdUcmFwRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiQXJyYXkg
aW5kZXggIiArIGluZGV4ICsgIiBpcyBvdXQgb2YgYm91bmRzIG9mICIgKyByZWYpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5wdHIucGx1cyhpbmRleCAqIG5v
ZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50c1swXS5zaXplKSk7Ci0gICAgICAgICAg
ICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICAgfSk7CiAKLSAgICAgICAgICAgIHRoaXMuX21h
cC5zZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihU
W10gJHthZGRyZXNzU3BhY2V9KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0sIG5vZGUpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZi5sb2FkVmFsdWUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVmKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFUHRyLmJveCgwKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChy
ZWYubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgfQorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgYXNpbnQodWludCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAg
ZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChiaXR3aXNlQ2FzdChVaW50MzJBcnJheSwgSW50MzJBcnJheSwgdmFsdWUubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgIH0pOwogCi0gICAgICAgIGZvciAobGV0IHN3aXp6bGUgb2Yg
U3dpenpsZU9wLmFsbFN3aXp6bGVPcGVyYXRvcnMoKSkgewotICAgICAgICAgICAgdGhpcy5fbWFw
LnNldChzd2l6emxlLnRvU3RyaW5nKCksIAotICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmVjXSwgbm9kZSkgPT4gewotICAgICAg
ICAgICAgICAgICAgICBjb25zdCBvdXRwdXRCdWZmZXIgPSBuZXcgRUJ1ZmZlcihzd2l6emxlLm91
dFNpemUpOwotICAgICAgICAgICAgICAgICAgICBjb25zdCByZWFkSW5kaWNlcyA9IHsgJ3gnOiAw
LCAneSc6IDEsICd6JzogMiwgJ3cnOiAzIH07Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgc3dpenpsZS5vdXRTaXplOyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRCdWZmZXIuc2V0KGksIHZlYy5nZXQocmVhZEluZGljZXNbc3dpenpsZS5jb21wb25l
bnRzW2ldXSkpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRVB0cihvdXRwdXRCdWZmZXIsIDApOwotICAg
ICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbkRhdGEg
PSBzd2l6emxlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBjb25zb2xlLmxvZyhzd2l6
emxlLnRvU3RyaW5nKCkpOwotICAgICAgICB9CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIEludDMy
QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgYXN1aW50KGludCkiLAorICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChJ
bnQzMkFycmF5LCBVaW50MzJBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAg
IH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGludCBh
c3VpbnQoZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goYml0d2lzZUNhc3QoRmxvYXQzMkFycmF5LCBVaW50MzJBcnJheSwgdmFsdWUubG9hZFZh
bHVlKCkpKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAg
ICAgICAgICAibmF0aXZlIGludCBhc2Zsb2F0KGludCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2FzdChJbnQzMkFycmF5LCBGbG9hdDMy
QXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgYXNmbG9hdCh1aW50KSIsCisg
ICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJpdHdpc2VDYXN0
KFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYxNnRvZjMyKHVpbnQpIiwK
KyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7CisgICAg
ICAgICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYzMnRvZjE2KHVpbnQp
IiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goMCk7Cisg
ICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5h
dGl2ZSB2b2lkIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAorICAgICAgICAgICAg
ZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IGZ1bmN0aW9u
KCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgIm5hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAu
c2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEdyb3VwTWVtb3J5QmFycmllcldpdGhHcm91
cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKKyAgICAgICAgICAgIH0pOwogICAgIH0KICAg
ICAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9NeWxlcy5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZWQ4ZjEzYjMwODJkZDYzNjhkMTRkMGQ4NjFlZjMwYTI1MjU2NjdlCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuaHRt
bApAQCAtMCwwICsxLDE1MSBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5NeWxlczwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iTm9kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iVmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJld3JpdGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJWaXNpdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iQWRkcmVz
c1NwYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBbm9ueW1vdXNWYXJpYWJsZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJBcnJheVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFzc2lnbm1lbnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQm9vbExpdGVyYWwu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ2FsbEZ1bmN0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNo
ZWNrTG9vcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrUmVjdXJzaW9uLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDaGVja1JldHVybnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNo
ZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1dyYXBw
ZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQ29tbWFF
eHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb25zdGV4cHJGb2xkZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEb3RFeHByZXNz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEZXJlZmVyZW5jZUV4cHJlc3Npb24uanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVBcnJheVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRUJ1ZmZlckJ1aWxkZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVQdHIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IkVudW1MaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtTWVtYmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRXZhbHVhdGlvbkNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRXZhbHVh
dG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHByZXNzaW9uRmluZGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZpbmRIaWdoWm9tYmllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Rm9sZENvbnN0ZXhwcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1
bmNEZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJZGVu
dGl0eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklmU3RhdGVtZW50Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmRleEV4cHJlc3Npb24uanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJJbmxpbmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklubGluZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Iklu
dExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxleGVyVG9rZW4uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IkxvZ2ljYWxOb3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ikxvb3BDaGVja2VyLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPcmlnaW5L
aW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iUHJlcGFyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlYWRN
b2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vyc2lv
bkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vyc2l2ZVR5cGVDaGVja2Vy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlTmFtZXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJlc29sdmVPdmVybG9hZEltcGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZl
VHlwZURlZnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdGFuZGFyZExpYnJh
cnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iU3RydWN0VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3Vic3RpdHV0
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hDYXNlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTeW50
aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUcmFwU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlUmVmLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVWludExpdGVy
YWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbmlmaWNhdGlvbkNvbnRleHQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlVucmVhY2hhYmxlQ29kZUNoZWNrZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlZhcmlhYmxlRGVjbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlZpc2l0aW5nU2V0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXU3ludGF4RXJyb3IuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IldUcmFwRXJyb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldUeXBlRXJy
b3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IldoaWxlTG9vcC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iV3JhcENoZWNrZXIuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iVGVz
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9h
ZCIsIGZ1bmN0aW9uKCkgeworICAgIHByZXBhcmUoKTsKK30pOworPC9zY3JpcHQ+CisKKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0ibWVzc2FnZXMiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcwppbmRleCBjMzFi
YzQyODI5NDQzMGJkNDUyNzc5NmY0ZDdhOTk2MDUzOWY2MTg4Li5hZmNjZTcxMjM0ZjVhYWNkZWYz
ZTNhZWRkMjE3ZDY4ZDM1ZjdiMTA3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYW1lQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lQ29udGV4dC5qcwpAQCAtMTA0LDEzICsxMDQsMTMgQEAgY2xhc3MgTmFtZUNvbnRleHQg
ewogICAgICAgICB5aWVsZCB0aGluZzsKICAgICB9CiAgICAgCi0gICAgcmVzb2x2ZUZ1bmNPdmVy
bG9hZChuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxv
d0VudHJ5UG9pbnQgPSBmYWxzZSkKKyAgICByZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIGFyZ3Vt
ZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQogICAgIHsKICAg
ICAgICAgbGV0IGZ1bmN0aW9ucyA9IHRoaXMuZ2V0KEZ1bmMsIG5hbWUpOwogICAgICAgICBpZiAo
IWZ1bmN0aW9ucykKICAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZXM6IFtdfTsKICAgICAgICAg
Ci0gICAgICAgIHJldHVybiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3Vt
ZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSwgYWxsb3dFbnRyeVBvaW50KTsKKyAgICAg
ICAgcmV0dXJuIHJlc29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOwogICAgIH0KICAgICAKICAgICBnZXQgY3VycmVu
dFN0YXRlbWVudCgpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9O
YW1lRmluZGVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZpbmRlci5q
cwppbmRleCBmYzJmZGJkMDMyNTI3Y2NjNTRjYWQ3MWJhNTc2Yjk5MjIxZWU5YzdkLi40M2U0NzFh
YWM2MWFkYTQzZjc0YzdmMDgzMmY3M2U4MGNhYTNiNGU1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMKQEAgLTQzLDEyICs0Myw2IEBAIGNsYXNzIE5hbWVG
aW5kZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fd29ya2xpc3QucHVzaChuYW1l
KTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgdGhpcy5hZGQobm9kZS5uYW1lKTsKLSAgICAgICAgc3VwZXIudmlzaXRQcm90b2NvbFJlZihu
b2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAgICAgewogICAgICAg
ICB0aGlzLmFkZChub2RlLm5hbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TmFtZVJlc29sdmVyLmpzCmluZGV4IDczMTk2NGZjNzgyMjFhZTczMTE4OTgxMjUyMjMyNTAzYmNm
YWJjMzAuLjY5ZDRmMmMxYjlhYjdkYzFjNTBjMzZkYTljYzljYTM3ZTM5MWNjMTggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcworKysgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKQEAgLTQxLDE5ICs0
MSwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhp
cy5fbmFtZUNvbnRleHQuZG9TdGF0ZW1lbnQoc3RhdGVtZW50LCAoKSA9PiBzdGF0ZW1lbnQudmlz
aXQodGhpcykpOwogICAgIH0KICAgICAKLSAgICBfdmlzaXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxk
TmFtZUNvbnRleHQobm9kZSkKKyAgICBfYnVpbGROYW1lQ29udGV4dCgpCiAgICAgewotICAgICAg
ICBsZXQgbmFtZUNvbnRleHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwot
ICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsK
LSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAg
IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5h
bWVDb250ZXh0OworICAgICAgICByZXR1cm4gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250
ZXh0KTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewotICAgICAgICBs
ZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIodGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVyc0Fu
ZEJ1aWxkTmFtZUNvbnRleHQobm9kZSkpOworICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1l
UmVzb2x2ZXIodGhpcy5fYnVpbGROYW1lQ29udGV4dChub2RlKSk7CiAgICAgICAgIG5vZGUucmV0
dXJuVHlwZS52aXNpdChjaGVja2VyKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdChjaGVja2VyKTsKQEAg
LTYxLDE2ICs1NiwxNCBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICAKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGxldCBjb250ZXh0V2l0
aFR5cGVQYXJhbWV0ZXJzID0gdGhpcy5fdmlzaXRUeXBlUGFyYW1ldGVyc0FuZEJ1aWxkTmFtZUNv
bnRleHQobm9kZSk7Ci0gICAgICAgIGxldCBjaGVja2VyV2l0aFR5cGVQYXJhbWV0ZXJzID0gbmV3
IE5hbWVSZXNvbHZlcihjb250ZXh0V2l0aFR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgbm9kZS5y
ZXR1cm5UeXBlLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBsZXQg
Y29udGV4dFdpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVDb250ZXh0KGNvbnRleHRXaXRoVHlwZVBh
cmFtZXRlcnMpOworICAgICAgICBsZXQgaW5uZXJDb250ZXh0ID0gdGhpcy5fYnVpbGROYW1lQ29u
dGV4dCgpOworICAgICAgICBsZXQgaW5uZXJDaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihpbm5l
ckNvbnRleHQpOworICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoaW5uZXJDaGVja2VyKTsK
ICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5vZGUucGFyYW1ldGVycykgewotICAgICAg
ICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAg
ICAgICAgY29udGV4dFdpdGhQYXJhbWV0ZXJzLmFkZChwYXJhbWV0ZXIpOworICAgICAgICAgICAg
cGFyYW1ldGVyLnZpc2l0KGlubmVyQ2hlY2tlcik7CisgICAgICAgICAgICBpbm5lckNvbnRleHQu
YWRkKHBhcmFtZXRlcik7CiAgICAgICAgIH0KLSAgICAgICAgbGV0IGNoZWNrZXJXaXRoUGFyYW1l
dGVycyA9IG5ldyBOYW1lUmVzb2x2ZXIoY29udGV4dFdpdGhQYXJhbWV0ZXJzKTsKLSAgICAgICAg
bm9kZS5ib2R5LnZpc2l0KGNoZWNrZXJXaXRoUGFyYW1ldGVycyk7CisgICAgICAgIG5vZGUuYm9k
eS52aXNpdChpbm5lckNoZWNrZXIpOwogICAgIH0KICAgICAKICAgICB2aXNpdEJsb2NrKG5vZGUp
CkBAIC0xMTUsNDEgKzEwOCw5IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3Ig
ewogICAgICAgICBub2RlLmJvZHkudmlzaXQobmV3UmVzb2x2ZXIpOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgcGFyZW50
IG9mIG5vZGUuZXh0ZW5kcykKLSAgICAgICAgICAgIHBhcmVudC52aXNpdCh0aGlzKTsKLSAgICAg
ICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMuX25hbWVDb250ZXh0KTsK
LSAgICAgICAgbmFtZUNvbnRleHQuYWRkKG5vZGUudHlwZVZhcmlhYmxlKTsKLSAgICAgICAgbGV0
IGNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKG5hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChs
ZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykKLSAgICAgICAgICAgIHNpZ25hdHVyZS52
aXNpdChjaGVja2VyKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQot
ICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuX25hbWVDb250ZXh0LmdldChQcm90b2Nv
bCwgbm9kZS5uYW1lKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCBw
cm90b2NvbCBuYW1lZCAiICsgbm9kZS5uYW1lKTsKLSAgICAgICAgbm9kZS5wcm90b2NvbERlY2wg
PSByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0UHJvdG9jb2xGdW5jRGVjbChub2RlKQot
ICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0gICAgICAgIGxldCBmdW5jcyA9
IHRoaXMuX25hbWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwotICAgICAgICBpZiAoIWZ1
bmNzKQotICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2lu
U3RyaW5nLCAiQ2Fubm90IGZpbmQgYW55IGZ1bmN0aW9ucyBuYW1lZCAiICsgbm9kZS5uYW1lKTsK
LSAgICAgICAgbm9kZS5wb3NzaWJsZU92ZXJsb2FkcyA9IGZ1bmNzOwotICAgIH0KLSAgICAKICAg
ICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7CiAgICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5l
dyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQ
YXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgdHlwZVBhcmFt
ZXRlci52aXNpdCh0aGlzKTsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1l
dGVyKTsKLSAgICAgICAgfQogICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIo
bmFtZUNvbnRleHQpOwogICAgICAgICBub2RlLnR5cGUudmlzaXQoY2hlY2tlcik7CiAgICAgfQpA
QCAtMTU3LDE1ICsxMTgsMjIgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7
CiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgbmFtZUNvbnRl
eHQgPSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxl
dCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIHR5
cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICBuYW1lQ29udGV4dC5hZGQodHlw
ZVBhcmFtZXRlcik7Ci0gICAgICAgIH0KICAgICAgICAgbGV0IGNoZWNrZXIgPSBuZXcgTmFtZVJl
c29sdmVyKG5hbWVDb250ZXh0KTsKICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVs
ZHMpCiAgICAgICAgICAgICBmaWVsZC52aXNpdChjaGVja2VyKTsKICAgICB9CiAgICAgCisgICAg
dmlzaXRUeXBlUmVmKG5vZGUpCisgICAgeworICAgICAgICBsZXQgdHlwZSA9IG5vZGUudHlwZTsK
KyAgICAgICAgaWYgKCF0eXBlKSB7CisgICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFtZUNvbnRl
eHQuZ2V0KFR5cGUsIG5vZGUubmFtZSk7CisgICAgICAgICAgICBpZiAoIXR5cGUpCisgICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
Q291bGQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgbm9kZS5uYW1lKTsKKyAgICAgICAgICAgIG5v
ZGUudHlwZSA9IHR5cGU7CisgICAgICAgIH0KKyAgICB9CisKICAgICBfcmVzb2x2ZVR5cGVBcmd1
bWVudHModHlwZUFyZ3VtZW50cykKICAgICB7CiAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkgewpAQCAtMTgxLDM2ICsxNDksMTYgQEAgY2xhc3Mg
TmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnQub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlR5cGUgYXJndW1lbnQgcmVzb2x2ZWQgdG8gd3Jvbmcga2luZCBvZiB0
aGluZzogIiArIHRoaW5nLmtpbmQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAodHlwZUFyZ3VtZW50W2ldIGluc3RhbmNlb2YgVmFsdWUKLSAgICAgICAgICAg
ICAgICAmJiAhdHlwZUFyZ3VtZW50W2ldLmlzQ29uc3RleHByKQorICAgICAgICAgICAgaWYgKHR5
cGVBcmd1bWVudFtpXSBpbnN0YW5jZW9mIFZhbHVlICYmICF0eXBlQXJndW1lbnRbaV0uaXNDb25z
dGV4cHIpCiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodHlwZUFyZ3VtZW50
W2ldLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJFeHBlY3RlZCBjb25zdGV4cHIiKTsKICAgICAgICAg
fQogICAgIH0KICAgICAKLSAgICB2aXNpdFR5cGVSZWYobm9kZSkKKyAgICB2aXNpdE5hdGl2ZVR5
cGUobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRzKG5vZGUu
dHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgIAotICAgICAgICBsZXQgdHlwZSA9IG5vZGUudHlwZTsK
LSAgICAgICAgaWYgKCF0eXBlKSB7Ci0gICAgICAgICAgICB0eXBlID0gdGhpcy5fbmFtZUNvbnRl
eHQuZ2V0KFR5cGUsIG5vZGUubmFtZSk7Ci0gICAgICAgICAgICBpZiAoIXR5cGUpCi0gICAgICAg
ICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAi
Q291bGQgbm90IGZpbmQgdHlwZSBuYW1lZCAiICsgbm9kZS5uYW1lKTsKLSAgICAgICAgICAgIG5v
ZGUudHlwZSA9IHR5cGU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlLnR5
cGVQYXJhbWV0ZXJzLmxlbmd0aCAhPSBub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAg
ICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiV3Jv
bmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIChwYXNzZWQgIiArIG5vZGUudHlwZUFyZ3VtZW50
cy5sZW5ndGggKyAiLCBleHBlY3RlZCAiICsgdHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGggKyAi
KSIpOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGUudHlwZVBhcmFtZXRlcnMubGVu
Z3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJJc1R5cGUgPSB0eXBlLnR5cGVQ
YXJhbWV0ZXJzW2ldIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlOwotICAgICAgICAgICAgbGV0IGFy
Z3VtZW50SXNUeXBlID0gbm9kZS50eXBlQXJndW1lbnRzW2ldIGluc3RhbmNlb2YgVHlwZTsKLSAg
ICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50c1tpXS52aXNpdCh0aGlzKTsKLSAgICAgICAgICAg
IGlmIChwYXJhbWV0ZXJJc1R5cGUgJiYgIWFyZ3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVk
IHR5cGUsIGJ1dCBnb3QgdmFsdWUgYXQgYXJndW1lbnQgIyIgKyBpKTsKLSAgICAgICAgICAgIGlm
ICghcGFyYW1ldGVySXNUeXBlICYmIGFyZ3VtZW50SXNUeXBlKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIkV4cGVjdGVkIHZh
bHVlLCBidXQgZ290IHR5cGUgYXQgYXJndW1lbnQgIyIgKyBpKTsKLSAgICAgICAgfQorICAgICAg
ICBmb3IobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCisgICAgICAgICAg
ICB0eXBlQXJndW1lbnQudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAogICAgIHZpc2l0UmVmZXJl
bmNlVHlwZShub2RlKQpAQCAtMjc5LDggKzIyNyw2IEBAIGNsYXNzIE5hbWVSZXNvbHZlciBleHRl
bmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7
Ci0gICAgICAgIHRoaXMuX3Jlc29sdmVUeXBlQXJndW1lbnRzKG5vZGUudHlwZUFyZ3VtZW50cyk7
Ci0gICAgICAgIAogICAgICAgICBsZXQgZnVuY3MgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoRnVu
Yywgbm9kZS5uYW1lKTsKICAgICAgICAgaWYgKGZ1bmNzKQogICAgICAgICAgICAgbm9kZS5wb3Nz
aWJsZU92ZXJsb2FkcyA9IGZ1bmNzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlRnVuYy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZUZ1bmMuanMKaW5kZXggYTU1MzM1MmQ5YWVlNjBiY2E2MmFkNmUxMjMyODhiODkwNTE4MjQ4
Ny4uZGMwZmY3ODFiNjkyZTE4NDYyNzg2NDg1MGVmNjhkZDM1YjlhOGYwNSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCkBAIC0yNSwxMyArMjUsMTIgQEAK
ICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlRnVuYyBleHRlbmRzIEZ1bmMgewotICAgIGNv
bnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUs
IHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7Ci0gICAg
ICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFt
ZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CisgICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSwg
cmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgdGhp
cy5pc1Jlc3RyaWN0ZWQgPSBmYWxzZTsKICAgICAgICAgdGhpcy5pbXBsZW1lbnRhdGlvbiA9IG51
bGw7CiAgICAgICAgIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YSA9IG51bGw7Ci0gICAgICAgIHRo
aXMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbiA9IChzdWJzdGl0dXRpb24pID0+IHt9OwogICAg
ICAgICB0aGlzLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9uRGF0YSwg
dmlzaXRvcikgPT4gbnVsbDsKICAgICAgICAgdGhpcy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBsZW1l
bnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRhdGEgPT4gbnVsbDsKICAgICB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMg
Yi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5OWI3ODI2MzUzNWE3MGQ5MzA5NjI2ZDU4NTAz
NTkwMDEwNWQ0MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuY0luc3RhbmNlLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBOYXRpdmVGdW5jSW5zdGFu
Y2UgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihmdW5jLCByZXR1cm5UeXBlLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUsIGltcGxlbWVudGF0aW9uRGF0YSkKLSAgICB7Ci0g
ICAgICAgIHN1cGVyKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJh
bWV0ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwotICAgICAgICB0aGlzLl9mdW5jID0gZnVuYzsK
LSAgICAgICAgdGhpcy5faW1wbGVtZW50YXRpb25EYXRhID0gaW1wbGVtZW50YXRpb25EYXRhOwot
ICAgIH0KLSAgICAKLSAgICBnZXQgZnVuYygpIHsgcmV0dXJuIHRoaXMuX2Z1bmM7IH0KLSAgICBn
ZXQgaXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IGltcGxlbWVudGF0aW9uRGF0
YSgpIHsgcmV0dXJuIHRoaXMuX2ltcGxlbWVudGF0aW9uRGF0YTsgfQotCi0gICAgdG9EZWNsU3Ry
aW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZlICIgKyBzdXBlci50b0RlY2xTdHJp
bmcoKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hdGl2ZVR5cGUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVU
eXBlLmpzCmluZGV4IGI4YjFhNDczMzBiNWZkNTFmZjAyMWFmMDY1ODY4NDRjMmFjYmE4ZWEuLjVj
YzE4NDkzODllYmExY2YyYTI2MWVhY2ZkODk4YTMyNWRmYjljMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKKysrIGIvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcwpAQCAtMjUsMTQgKzI1LDE0IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIE5hdGl2ZVR5cGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1
Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzKQorICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSwgdHlwZUFyZ3VtZW50cykKICAgICB7Ci0gICAgICAgIGlmICghKHR5cGVQYXJhbWV0
ZXJzIGluc3RhbmNlb2YgQXJyYXkpKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJ0eXBl
IHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlwZVBhcmFtZXRlcnMpOworICAgICAgICBpZiAo
ISh0eXBlQXJndW1lbnRzIGluc3RhbmNlb2YgQXJyYXkpKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJ0eXBlIHBhcmFtZXRlcnMgbm90IGFycmF5OiAiICsgdHlwZUFyZ3VtZW50cyk7CiAg
ICAgICAgIHN1cGVyKCk7CiAgICAgICAgIHRoaXMuX29yaWdpbiA9IG9yaWdpbjsKICAgICAgICAg
dGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVQYXJhbWV0ZXJzID0gdHlwZVBh
cmFtZXRlcnM7CisgICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwog
ICAgICAgICB0aGlzLl9pc051bWJlciA9IGZhbHNlOwogICAgICAgICB0aGlzLl9pc0ludCA9IGZh
bHNlOwogICAgICAgICB0aGlzLl9pc0Zsb2F0aW5nID0gZmFsc2U7CkBAIC00MCw4ICs0MCwxNSBA
QCBjbGFzcyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgfQogICAgIAogICAgIGdldCBv
cmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgpIHsgcmV0dXJu
IHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90
eXBlUGFyYW1ldGVyczsgfQorICAgIGdldCBiYXNlTmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7
IH0KKyAgICBnZXQgbmFtZSgpCisgICAgeworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5fbmFt
ZTsKKyAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCisgICAgICAgICAgICBy
ZXN1bHQgKz0gIjwiICsgdGhpcy50eXBlQXJndW1lbnRzICsgIj4iOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH0KKyAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5
cGVBcmd1bWVudHM7IH0KICAgICBnZXQgaXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9CiAgICAg
CiAgICAgLy8gV2UgbGV0IEludHJpbnNpY3MuanMgc2V0IHRoZXNlIGFzIGl0IGxpa2VzLgpAQCAt
NTQsMTggKzYxLDkgQEAgY2xhc3MgTmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewogICAgIGdldCBp
c1ByaW1pdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX2lzUHJpbWl0aXZlOyB9CiAgICAgc2V0IGlzUHJp
bWl0aXZlKHZhbHVlKSB7IHRoaXMuX2lzUHJpbWl0aXZlID0gdmFsdWU7IH0KICAgICAKLSAgICBp
bnN0YW50aWF0ZSh0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgaWYgKHR5cGVBcmd1bWVu
dHMubGVuZ3RoICE9IHRoaXMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlh
dGlvbiIpOwotICAgICAgICBpZiAoIXR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAg
cmV0dXJuIHRoaXM7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKHRoaXMs
IHR5cGVBcmd1bWVudHMpOwotICAgIH0KLSAgICAKICAgICB0b1N0cmluZygpCiAgICAgewotICAg
ICAgICByZXR1cm4gIm5hdGl2ZSB0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5
cGVQYXJhbWV0ZXJzICsgIj4iOworICAgICAgICByZXR1cm4gIm5hdGl2ZSB0eXBlZGVmICIgKyB0
aGlzLm5hbWU7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9OYXRpdmVUeXBlSW5zdGFuY2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9OYXRpdmVUeXBlSW5zdGFuY2UuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGNhMzllNzc3ODcwMDQ5ZWQyMmQ3MDQxYTUyMDE0Y2M4ZTY5Y2JjNGYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmF0aXZlVHlwZUluc3RhbmNlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTggKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBOYXRpdmVUeXBlSW5zdGFuY2UgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25z
dHJ1Y3Rvcih0eXBlLCB0eXBlQXJndW1lbnRzKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAg
ICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0
eXBlQXJndW1lbnRzOwotICAgIH0KLSAgICAKLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMu
X3R5cGU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1
bWVudHM7IH0KLSAgICBnZXQgaXNQcmltaXRpdmUoKSB7IHJldHVybiB0aGlzLl90eXBlLmlzUHJp
bWl0aXZlOyB9Ci0gICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAg
IHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYg
KHRoaXMudHlwZSAhPSBvdGhlci50eXBlKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICBpZiAodGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBvdGhlci50eXBlQXJndW1lbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgZm9yIChsZXQgaSA9
IDA7IGkgPCB0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlm
ICghdGhpcy50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIu
dHlwZUFyZ3VtZW50c1tpXSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0g
ICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgIjwiICsgdGhpcy50eXBlQXJndW1lbnRz
ICsgIj4iOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTm9kZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKaW5k
ZXggODgxMDMwMTMwNzczZTcwZWE4OGUwYWI1OTc5NzRjZjU2MWY5ZDVlNC4uZWZlNGExYTQ4MmI0
NzIxZjJmYjNmZTU4Nzc2ZGFkYTZhZjc3ZDljMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTm9kZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Ob2RlLmpzCkBAIC04OCw5ICs4OCw5IEBAIGNsYXNzIE5vZGUgewogICAgIGdldCBpc0xpdGVy
YWwoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIAogICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgCisKICAgICBjb252ZXJzaW9uQ29zdCh1bmlmaWNhdGlvbkNvbnRleHQp
IHsgcmV0dXJuIDA7IH0KLSAgICAKKwogICAgIGVxdWFscyhvdGhlcikKICAgICB7CiAgICAgICAg
IGxldCB1bmlmaWNhdGlvbkNvbnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KCk7CkBAIC0x
MjMsMTEgKzEyMyw0IEBAIGNsYXNzIE5vZGUgewogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMu
dmlzaXQobmV3IFN1YnN0aXR1dGlvbihwYXJhbWV0ZXJzLCBhcmd1bWVudExpc3QpKTsKICAgICB9
Ci0gICAgCi0gICAgc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24ocGFyYW1ldGVycywgdW5pZmljYXRp
b25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuc3Vic3RpdHV0ZSgKLSAgICAg
ICAgICAgIHBhcmFtZXRlcnMsCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLm1hcCh0eXBlID0+IHVu
aWZpY2F0aW9uQ29udGV4dC5maW5kKHR5cGUpKSk7Ci0gICAgfQogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9QYXJzZS5qcwppbmRleCA2ZDJiNDMxNjE1NjAxYWI5ZGQzZDA5MzhmYmZiMzg1
ZWUyYTRkYWYxLi5kODM4NjVjZDQwZTM0YjM3NTY4ZWY1ZjI3Y2U4NGExM2Y1MjA4YTI2IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcworKysgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwpAQCAtMTIxLDEyICsxMjEsNiBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIGZ1bmN0
aW9uIHBhcnNlUHJvdG9jb2xSZWYoKQotICAgIHsKLSAgICAgICAgbGV0IHByb3RvY29sVG9rZW4g
PSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICByZXR1cm4gbmV3IFByb3RvY29s
UmVmKHByb3RvY29sVG9rZW4sIHByb3RvY29sVG9rZW4udGV4dCk7Ci0gICAgfQotICAgIAogICAg
IGZ1bmN0aW9uIGNvbnN1bWVFbmRPZlR5cGVBcmdzKCkKICAgICB7CiAgICAgICAgIGxldCByaWdo
dFNoaWZ0ID0gdHJ5Q29uc3VtZSgiPj4iKTsKQEAgLTEzNiwzNCArMTMwLDYgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICAgICAgY29uc3VtZSgiPiIpOwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBw
YXJzZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGVzdCgiPCIpKQotICAg
ICAgICAgICAgcmV0dXJuIFtdOwotICAgICAgICAKLSAgICAgICAgbGV0IHJlc3VsdCA9IFtdOwot
ICAgICAgICBjb25zdW1lKCI8Iik7Ci0gICAgICAgIHdoaWxlICghdGVzdCgiPiIpKSB7Ci0gICAg
ICAgICAgICBsZXQgY29uc3RleHByID0gbGV4ZXIuYmFja3RyYWNraW5nU2NvcGUoKCkgPT4gewot
ICAgICAgICAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBlKCk7Ci0gICAgICAgICAgICAgICAg
bGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAgIGFz
c2VydE5leHQoIiwiLCAiPiIsICI+PiIpOwotICAgICAgICAgICAgICAgIHJldHVybiBuZXcgQ29u
c3RleHByVHlwZVBhcmFtZXRlcih0eXBlLm9yaWdpbiwgbmFtZS50ZXh0LCB0eXBlKTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKGNvbnN0ZXhwcikKLSAgICAgICAgICAgICAgICBy
ZXN1bHQucHVzaChjb25zdGV4cHIpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgICAg
IGxldCBwcm90b2NvbCA9IHRyeUNvbnN1bWUoIjoiKSA/IHBhcnNlUHJvdG9jb2xSZWYoKSA6IG51
bGw7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3IFR5cGVWYXJpYWJsZShuYW1lLCBu
YW1lLnRleHQsIHByb3RvY29sKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXRy
eUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAg
ICBjb25zdW1lRW5kT2ZUeXBlQXJncygpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0K
LSAgICAKICAgICBmdW5jdGlvbiBwYXJzZVRlcm0oKQogICAgIHsKICAgICAgICAgbGV0IHRva2Vu
OwpAQCAtMjIyLDcgKzE4OCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIGxldCB0b2tl
bjsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiLSIpKQotICAgICAgICAgICAgcmV0
dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtd
LCBbcGFyc2VUZXJtKCldKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgQ2FsbEV4cHJlc3Npb24o
dG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbcGFyc2VUZXJtKCldKTsKICAgICAgICAg
bGV0IGxlZnQgPSBwYXJzZVRlcm0oKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
LiIpKQogICAgICAgICAgICAgbGVmdCA9IG5ldyBEb3RFeHByZXNzaW9uKHRva2VuLCBsZWZ0LCBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQpOwpAQCAtMjgyLDggKzI0OCw3IEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgICAgIGFkZHJlc3NTcGFjZSA9IHRva2VuLnRleHQ7CiAgICAgICAgIAog
ICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxl
dCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7Ci0gICAgICAgIGxldCB0eXBl
ID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0LCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAg
bGV0IHR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBuYW1lLnRleHQpOwogICAgICAgICAKICAgICAg
ICAgZnVuY3Rpb24gZ2V0QWRkcmVzc1NwYWNlKCkKICAgICAgICAgewpAQCAtMzE4LDExICsyODMs
MTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoInR5
cGVkZWYiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRl
eHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsK
ICAgICAgICAgY29uc3VtZSgiPSIpOwogICAgICAgICBsZXQgdHlwZSA9IHBhcnNlVHlwZSgpOwog
ICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZURlZihvcmlnaW4s
IG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBUeXBlRGVm
KG9yaWdpbiwgbmFtZSwgdHlwZSk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIGdlbmVyaWNQ
YXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNvbnN0cnVjdG9yKQpAQCAtMzM5LDEzICszMDMs
MTIgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2VuZXJpY1BhcnNlTGVmdCgKICAgICAg
ICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAogICAgICAgICAgICAgKHRva2VuLCBsZWZ0LCByaWdo
dCkgPT4KLSAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRv
ciIgKyB0b2tlbi50ZXh0LCBbXSwgW2xlZnQsIHJpZ2h0XSkpOworICAgICAgICAgICAgICAgIG5l
dyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtsZWZ0LCBy
aWdodF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VDYWxsRXhwcmVzc2lvbigp
CiAgICAgewogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0g
ICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAg
IGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGFyZ3VtZW50TGlzdCA9IFtdOwogICAgICAgICB3
aGlsZSAoIXRlc3QoIikiKSkgewpAQCAtMzU1LDcgKzMxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHBy
b2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjb25zdW1lKCIpIik7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24obmFtZSwgbmFtZS50ZXh0LCB0eXBl
QXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxF
eHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgYXJndW1lbnRMaXN0KTsKICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zNjMsNyArMzI2LDYgQEAgZnVuY3Rpb24gcGFyc2Uo
cHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAg
IHsKICAgICAgICAgcmV0dXJuIGxleGVyLnRlc3RTY29wZSgoKSA9PiB7CiAgICAgICAgICAgICBj
b25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAgICAgcGFyc2VUeXBlQXJndW1lbnRz
KCk7CiAgICAgICAgICAgICBjb25zdW1lKCIoIik7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTM4
MSw3ICszNDMsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQs
IGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlmIChuYW1lID09ICJvcGVyYXRvciIp
CiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbmFtZTogIiArIG5hbWUpOwog
ICAgICAgICAKLSAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgbmFtZSwg
W10sIGFyZ3MpOworICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCBuYW1l
LCBhcmdzKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gZmluaXNoUGFyc2luZ1Bvc3RJbmNy
ZW1lbnQodG9rZW4sIGxlZnQpCkBAIC00NTQsNyArNDE2LDcgQEAgZnVuY3Rpb24gcGFyc2UocHJv
Z3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAg
ICBpZiAodGVzdCgiKysiLCAiLS0iKSkKICAgICAgICAgICAgIHJldHVybiBwYXJzZVByZUluY3Jl
bWVudCgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1lKCIrIiwgIi0iLCAifiIpKQot
ICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiAr
IHRva2VuLnRleHQsIFtdLCBbcGFyc2VQb3NzaWJsZVByZWZpeCgpXSk7CisgICAgICAgICAgICBy
ZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3BlcmF0b3IiICsgdG9rZW4udGV4dCwg
W3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25zdW1l
KCIqIikpCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlcmVmZXJlbmNlRXhwcmVzc2lvbih0b2tl
biwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3Vt
ZSgiJiIpKQpAQCAtNDYzLDcgKzQyNSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIHJldHVy
biBuZXcgTWFrZUFycmF5UmVmRXhwcmVzc2lvbih0b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgp
KTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiISIpKSB7CiAgICAgICAgICAgICBs
ZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVByZWZpeCgpOwotICAgICAgICAgICAgcmV0dXJu
IG5ldyBMb2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJlc3Npb24ocmVtYWluZGVyLm9yaWdp
biwgImJvb2wiLCBbXSwgW3JlbWFpbmRlcl0pKTsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTG9n
aWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJlbWFpbmRlci5vcmlnaW4sICJib29s
IiwgW3JlbWFpbmRlcl0pKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcGFyc2VQb3NzaWJs
ZVN1ZmZpeCgpOwogICAgIH0KQEAgLTQ5Myw3ICs0NTUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9n
cmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAg
IHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgWyI9PSIsICIhPSJdLCBwYXJz
ZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHksCiAgICAgICAgICAgICAodG9rZW4sIGxlZnQs
IHJpZ2h0KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVz
c2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbXSwgW2xlZnQsIHJpZ2h0XSk7CisgICAgICAgICAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0i
LCBbbGVmdCwgcmlnaHRdKTsKICAgICAgICAgICAgICAgICBpZiAodG9rZW4udGV4dCA9PSAiIT0i
KQogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcgTG9naWNhbE5vdCh0b2tlbiwgcmVz
dWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNTE5LDcgKzQ4MSw3IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAg
ICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0gICAgICAgICAgICAodG9rZW4sIGxlZnQsIHJp
Z2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4sIHRva2VuLnRleHQsIG5ldyBDYWxs
RXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW2xlZnRdKSwgbmV3IENhbGxFeHBy
ZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW3JpZ2h0XSkpKTsKKyAgICAgICAgICAg
ICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5ldyBMb2dpY2FsRXhwcmVzc2lvbih0b2tlbiwgdG9r
ZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9uKGxlZnQub3JpZ2luLCAiYm9vbCIsIFtsZWZ0XSks
IG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJib29sIiwgW3JpZ2h0XSkpKTsKICAg
ICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VQb3NzaWJsZUxvZ2ljYWxBbmQoKQpAQCAtNjU2
LDcgKzYxOCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwg
bGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IGVsc2VCb2R5OwogICAgICAgICBp
ZiAodHJ5Q29uc3VtZSgiZWxzZSIpKQogICAgICAgICAgICAgZWxzZUJvZHkgPSBwYXJzZVN0YXRl
bWVudCgpOwotICAgICAgICByZXR1cm4gbmV3IElmU3RhdGVtZW50KG9yaWdpbiwgbmV3IENhbGxF
eHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSks
IGJvZHksIGVsc2VCb2R5KTsKKyAgICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4s
IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlv
bmFsXSksIGJvZHksIGVsc2VCb2R5KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZVdoaWxl
KCkKQEAgLTY2Niw3ICs2MjgsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9y
aWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBjb25kaXRpb25h
bCA9IHBhcnNlRXhwcmVzc2lvbigpOwogICAgICAgICBjb25zdW1lKCIpIik7CiAgICAgICAgIGxl
dCBib2R5ID0gcGFyc2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Ao
b3JpZ2luLCBuZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtd
LCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CisgICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9y
aWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29u
ZGl0aW9uYWxdKSwgYm9keSk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VGb3IoKQpAQCAt
Njg3LDcgKzY0OSw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBj
b25kaXRpb24gPSBwYXJzZUV4cHJlc3Npb24oKTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsK
LSAgICAgICAgICAgIGNvbmRpdGlvbiA9IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb24ub3Jp
Z2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uXSk7CisgICAgICAgICAgICBjb25kaXRpb24gPSBu
ZXcgQ2FsbEV4cHJlc3Npb24oY29uZGl0aW9uLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uXSk7
CiAgICAgICAgIH0KICAgICAgICAgbGV0IGluY3JlbWVudDsKICAgICAgICAgaWYgKHRyeUNvbnN1
bWUoIikiKSkKQEAgLTcwOCw3ICs2NzAsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmln
aW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGNvbnN1bWUo
IigiKTsKICAgICAgICAgbGV0IGNvbmRpdGlvbmFsID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAg
ICAgIGNvbnN1bWUoIikiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4s
IGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10s
IFtjb25kaXRpb25hbF0pKTsKKyAgICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4s
IGJvZHksIG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2Nv
bmRpdGlvbmFsXSkpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVj
bHMoKQpAQCAtODU4LDEzICs4MjAsMTEgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2lu
OwogICAgICAgICBsZXQgcmV0dXJuVHlwZTsKICAgICAgICAgbGV0IG5hbWU7Ci0gICAgICAgIGxl
dCB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgbGV0IGlzQ2FzdDsKICAgICAgICAgbGV0IHNoYWRl
clR5cGU7CiAgICAgICAgIGxldCBvcGVyYXRvclRva2VuID0gdHJ5Q29uc3VtZSgib3BlcmF0b3Ii
KTsKICAgICAgICAgaWYgKG9wZXJhdG9yVG9rZW4pIHsKICAgICAgICAgICAgIG9yaWdpbiA9IG9w
ZXJhdG9yVG9rZW47Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFt
ZXRlcnMoKTsKICAgICAgICAgICAgIHJldHVyblR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAg
ICAgIG5hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAgICAgICBpc0Nhc3QgPSB0cnVlOwpA
QCAtODc3LDQ0ICs4MzcsMTcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmln
aW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgfSBlbHNlCiAgICAg
ICAgICAgICAgICAgb3JpZ2luID0gcmV0dXJuVHlwZS5vcmlnaW47CiAgICAgICAgICAgICBuYW1l
ID0gcGFyc2VGdW5jTmFtZSgpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5
cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycygpOwotICAgICAgICByZXR1
cm4gbmV3IEZ1bmMob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFy
YW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9y
aWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBwYXJzZVByb3RvY29sRnVuY0RlY2woKQotICAgIHsKLSAg
ICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7Ci0gICAgICAgIHJldHVybiBuZXcgUHJv
dG9jb2xGdW5jRGVjbChmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1
bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hh
ZGVyVHlwZSk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9uIHBhcnNlRnVuY0RlZigpCiAgICAg
ewogICAgICAgICBsZXQgZnVuYyA9IHBhcnNlRnVuY0RlY2woKTsKICAgICAgICAgbGV0IGJvZHkg
PSBwYXJzZUJsb2NrKCk7Ci0gICAgICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwg
ZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFy
YW1ldGVycywgYm9keSwgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAg
IAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBv
cmlnaW4gPSBjb25zdW1lKCJwcm90b2NvbCIpOwotICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIikudGV4dDsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2Nv
bERlY2wob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkgewotICAg
ICAgICAgICAgd2hpbGUgKCF0ZXN0KCJ7IikpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYWRk
RXh0ZW5kcyhwYXJzZVByb3RvY29sUmVmKCkpOwotICAgICAgICAgICAgICAgIGlmICghdHJ5Q29u
c3VtZSgiLCIpKQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgICBjb25zdW1lKCJ7Iik7Ci0gICAgICAgIHdoaWxlICghdHJ5Q29uc3Vt
ZSgifSIpKSB7Ci0gICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgp
KTsKLSAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFt
ZSwgZnVuYy5yZXR1cm5UeXBlLCBmdW5jLnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBm
dW5jLnNoYWRlclR5cGUpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZpZWxkKCkK
QEAgLTkyOSw4ICs4NjIsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgb3JpZ2lu
ID0gY29uc3VtZSgic3RydWN0Iik7CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlk
ZW50aWZpZXIiKS50ZXh0OwotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQ
YXJhbWV0ZXJzKCk7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4s
IG5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RU
eXBlKG9yaWdpbiwgbmFtZSk7CiAgICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgd2hpbGUg
KCF0cnlDb25zdW1lKCJ9IikpCiAgICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlRmllbGQoKSk7
CkBAIC05NDEsNyArODczLDcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmln
aW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMg
PSBwYXJzZUZ1bmNEZWNsKCk7CiAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJu
IG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwg
ZnVuYy50eXBlUGFyYW1ldGVycywgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5z
aGFkZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBm
dW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwg
ZnVuYy5zaGFkZXJUeXBlKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VOYXRpdmUo
KQpAQCAtOTQ5LDkgKzg4MSw5IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbiA9IGNv
bnN1bWUoIm5hdGl2ZSIpOwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgidHlwZWRlZiIpKSB7CiAg
ICAgICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAg
ICAgICBsZXQgcGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKKyAgICAgICAgICAg
IGxldCBwYXJzZWRBcmd1bWVudHMgPSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAgICAgICAg
IGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZShvcmlnaW4s
IG5hbWUudGV4dCwgcGFyYW1ldGVycyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5
cGUob3JpZ2luLCBuYW1lLnRleHQsIHBhcnNlZEFyZ3VtZW50cyk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIHBhcnNlTmF0aXZlRnVuYygpOwogICAgIH0KQEAgLTk4NSw3ICs5MTcsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgICAgIGlmICh0cnlDb25zdW1lKCI6IikpCiAgICAgICAgICAgICBiYXNl
VHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBiYXNlVHlwZSA9
IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQiLCBbXSk7CisgICAgICAgICAgICBiYXNlVHlwZSA9IG5l
dyBUeXBlUmVmKG5hbWUsICJpbnQiKTsKICAgICAgICAgY29uc3VtZSgieyIpOwogICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IEVudW1UeXBlKG5hbWUsIG5hbWUudGV4dCwgYmFzZVR5cGUpOwogICAg
ICAgICB3aGlsZSAoIXRlc3QoIn0iKSkgewpAQCAtMTAxMywxMCArOTQ1LDcgQEAgZnVuY3Rpb24g
cGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0
KQogICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VTdHJ1Y3RUeXBlKCkpOwogICAgICAgICBl
bHNlIGlmICh0b2tlbi50ZXh0ID09ICJlbnVtIikKICAgICAgICAgICAgIHByb2dyYW0uYWRkKHBh
cnNlRW51bVR5cGUoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInByb3RvY29s
IikKLSAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlUHJvdG9jb2xEZWNsKCkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUZ1bmNEZWYoKSk7CiAgICAgfQog
fQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwppbmRleCBhMjA0OGE5
YWQzZTgzYmQxOGI3NjQ0NGNhNTU0NmU0OGZlMDExOWEwLi5lN2MzZjIzNjYwNGY4YmEwODdhYzFl
NjZmNThkNjc4NjAxYzU3NmM2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBh
cmUuanMKQEAgLTQyLDE2ICs0MiwxMyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAg
IGZvbGRDb25zdGV4cHJzKHByb2dyYW0pOwogICAgICAgICBsZXQgbmFtZVJlc29sdmVyID0gY3Jl
YXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFtZXNJblR5cGVzKHBy
b2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAgIHJlc29sdmVOYW1lc0luUHJvdG9jb2xzKHBy
b2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJv
Z3JhbSk7Ci0gICAgICAgIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0pOwogICAg
ICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhw
cm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwgbmFtZVJl
c29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5GdW5jdGlvbnMocHJvZ3JhbSk7Ci0g
ICAgICAgIAotICAgICAgICBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0pOworCiAgICAg
ICAgIGNoZWNrKHByb2dyYW0pOwogICAgICAgICBjaGVja0xpdGVyYWxUeXBlcyhwcm9ncmFtKTsK
ICAgICAgICAgcmVzb2x2ZVByb3BlcnRpZXMocHJvZ3JhbSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcwppbmRleCBiYmM0YjI0YTYyMjdiMWNlNWIwNmQ3MzNhYzIwZDky
YjU5NmE0YzczLi44ZmM2Zjc5M2VlNmU3M2VlY2E1YTZhYTc0YTQ0MGE2N2I4NmJlNmZhIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dyYW0uanMKQEAgLTMxLDggKzMxLDYgQEAg
Y2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewogICAgICAgICB0aGlzLl90b3BMZXZlbFN0YXRl
bWVudHMgPSBbXTsKICAgICAgICAgdGhpcy5fZnVuY3Rpb25zID0gbmV3IE1hcCgpOwogICAgICAg
ICB0aGlzLl90eXBlcyA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2xzID0gbmV3
IE1hcCgpOwotICAgICAgICB0aGlzLl9mdW5jSW5zdGFudGlhdG9yID0gbmV3IEZ1bmNJbnN0YW50
aWF0b3IodGhpcyk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0ID0gbmV3IE5hbWVD
b250ZXh0KCk7CiAgICAgICAgIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0LnByb2dyYW0gPSB0aGlz
OwogICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dC5yZWNvZ25pemVJbnRyaW5zaWNzKCk7
CkBAIC00Miw4ICs0MCw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQg
dG9wTGV2ZWxTdGF0ZW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzOyB9
CiAgICAgZ2V0IGZ1bmN0aW9ucygpIHsgcmV0dXJuIHRoaXMuX2Z1bmN0aW9uczsgfQogICAgIGdl
dCB0eXBlcygpIHsgcmV0dXJuIHRoaXMuX3R5cGVzOyB9Ci0gICAgZ2V0IHByb3RvY29scygpIHsg
cmV0dXJuIHRoaXMuX3Byb3RvY29sczsgfQotICAgIGdldCBmdW5jSW5zdGFudGlhdG9yKCkgeyBy
ZXR1cm4gdGhpcy5fZnVuY0luc3RhbnRpYXRvcjsgfQogICAgIGdldCBnbG9iYWxOYW1lQ29udGV4
dCgpIHsgcmV0dXJuIHRoaXMuX2dsb2JhbE5hbWVDb250ZXh0OyB9CiAgICAgCiAgICAgYWRkKHN0
YXRlbWVudCkKQEAgLTU2LDggKzUyLDYgQEAgY2xhc3MgUHJvZ3JhbSBleHRlbmRzIE5vZGUgewog
ICAgICAgICAgICAgYXJyYXkucHVzaChzdGF0ZW1lbnQpOwogICAgICAgICB9IGVsc2UgaWYgKHN0
YXRlbWVudCBpbnN0YW5jZW9mIFR5cGUpCiAgICAgICAgICAgICB0aGlzLl90eXBlcy5zZXQoc3Rh
dGVtZW50Lm5hbWUsIHN0YXRlbWVudCk7Ci0gICAgICAgIGVsc2UgaWYgKHN0YXRlbWVudCBpbnN0
YW5jZW9mIFByb3RvY29sKQotICAgICAgICAgICAgdGhpcy5fcHJvdG9jb2xzLnNldChzdGF0ZW1l
bnQubmFtZSwgc3RhdGVtZW50KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJTdGF0ZW1lbnQgaXMgbm90IGEgZnVuY3Rpb24gb3IgdHlwZTogIiArIHN0YXRlbWVu
dCk7CiAgICAgICAgIHRoaXMuX3RvcExldmVsU3RhdGVtZW50cy5wdXNoKHN0YXRlbWVudCk7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzM2Y4NDU2NDc3ZWNhMmU4ZGNmNjZjZjQ1YzJkNDczY2EwODU3ZDg4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBz
dHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbCBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9y
KG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1cGVyKCk7Ci0gICAgICAgIHRoaXMuX29y
aWdpbiA9IG9yaWdpbjsKLSAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7Ci0gICAgfQotICAgIAot
ICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgp
IHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQga2luZCgpIHsgcmV0dXJuIFByb3RvY29s
OyB9Ci0gICAgCi0gICAgdG9TdHJpbmcoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFt
ZTsKLSAgICB9Ci19CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Q
cm90b2NvbERlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERl
Y2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MGJjZmNmMzNiYTczOTVjNTZk
OTUyYTU3OWQwOTkyN2IwYmU3NjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xEZWNsLmpz
CisrKyAvZGV2L251bGwKQEAgLTEsMTE5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xEZWNs
IGV4dGVuZHMgUHJvdG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7
Ci0gICAgICAgIHN1cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMuZXh0ZW5kcyA9IFtd
OwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzID0gW107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVy
ZU1hcCA9IG5ldyBNYXAoKTsKLSAgICAgICAgdGhpcy5fdHlwZVZhcmlhYmxlID0gbmV3IFR5cGVW
YXJpYWJsZShvcmlnaW4sIG5hbWUsIG51bGwpOwotICAgIH0KLSAgICAKLSAgICBhZGRFeHRlbmRz
KHByb3RvY29sKQotICAgIHsKLSAgICAgICAgdGhpcy5leHRlbmRzLnB1c2gocHJvdG9jb2wpOwot
ICAgIH0KLSAgICAKLSAgICBhZGQoc2lnbmF0dXJlKQotICAgIHsKLSAgICAgICAgaWYgKCEoc2ln
bmF0dXJlIGluc3RhbmNlb2YgUHJvdG9jb2xGdW5jRGVjbCkpCi0gICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNpZ25hdHVyZSBpc24ndCBhIFByb3RvY29sRnVuY0RlY2wgYnV0IGEgIiArIHNp
Z25hdHVyZS5jb25zdHJ1Y3Rvci5uYW1lKTsKLSAgICAgICAgCi0gICAgICAgIHNpZ25hdHVyZS5w
cm90b2NvbERlY2wgPSB0aGlzOwotICAgICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2goc2lnbmF0
dXJlKTsKLSAgICAgICAgbGV0IG92ZXJsb2FkcyA9IHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQoc2ln
bmF0dXJlLm5hbWUpOwotICAgICAgICBpZiAoIW92ZXJsb2FkcykKLSAgICAgICAgICAgIHRoaXMu
X3NpZ25hdHVyZU1hcC5zZXQoc2lnbmF0dXJlLm5hbWUsIG92ZXJsb2FkcyA9IFtdKTsKLSAgICAg
ICAgb3ZlcmxvYWRzLnB1c2goc2lnbmF0dXJlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IHNpZ25h
dHVyZXMoKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVzOyB9Ci0gICAgc2lnbmF0dXJlc0J5TmFt
ZShuYW1lKSB7IHJldHVybiB0aGlzLl9zaWduYXR1cmVNYXAuZ2V0KG5hbWUpOyB9Ci0gICAgZ2V0
IHR5cGVWYXJpYWJsZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGVWYXJpYWJsZTsgfQotICAgIAotICAg
IHNpZ25hdHVyZXNCeU5hbWVXaXRoVHlwZVZhcmlhYmxlKG5hbWUsIHR5cGVWYXJpYWJsZSkKLSAg
ICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKFt0aGlzLnR5
cGVWYXJpYWJsZV0sIFt0eXBlVmFyaWFibGVdKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMu
c2lnbmF0dXJlc0J5TmFtZShuYW1lKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoc2lnbmF0dXJlID0+IHNp
Z25hdHVyZS52aXNpdChzdWJzdGl0dXRpb24pKTsKLSAgICB9Ci0gICAgCi0gICAgaW5oZXJpdHMo
b3RoZXJQcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghb3RoZXJQcm90b2NvbCkKLSAgICAg
ICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgCi0gICAgICAgIGlmIChvdGhl
clByb3RvY29sIGluc3RhbmNlb2YgUHJvdG9jb2xSZWYpCi0gICAgICAgICAgICBvdGhlclByb3Rv
Y29sID0gb3RoZXJQcm90b2NvbC5wcm90b2NvbERlY2w7Ci0gICAgICAgIAotICAgICAgICBmb3Ig
KGxldCBvdGhlclNpZ25hdHVyZSBvZiBvdGhlclByb3RvY29sLnNpZ25hdHVyZXMpIHsKLSAgICAg
ICAgICAgIGxldCBzaWduYXR1cmVzID0gdGhpcy5zaWduYXR1cmVzQnlOYW1lKG90aGVyU2lnbmF0
dXJlLm5hbWUpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiUHJvdG9jb2wgIiArIHRoaXMubmFtZSAr
ICIgZG9lcyBub3QgaGF2ZSBhIGZ1bmN0aW9uIG5hbWVkICIgKyBvdGhlclNpZ25hdHVyZS5uYW1l
ICsgIiAobG9va2luZyBhdCBzaWduYXR1cmUgIiArIG90aGVyU2lnbmF0dXJlICsgIikifTsKLSAg
ICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCi0gICAgICAgICAg
ICAgICAgc2lnbmF0dXJlcywgW10sCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUucGFy
YW1ldGVyVHlwZXMsCi0gICAgICAgICAgICAgICAgb3RoZXJTaWduYXR1cmUucmV0dXJuVHlwZUZv
ck92ZXJsb2FkUmVzb2x1dGlvbik7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJEaWQgbm90IGZp
bmQgbWF0Y2hpbmcgc2lnbmF0dXJlIGZvciAiICsgb3RoZXJTaWduYXR1cmUgKyAiIGluICIgKyB0
aGlzLm5hbWUgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6ICIgKyBvdmVy
bG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAgICAgIGxldCBz
dWJzdGl0dXRlZFJldHVyblR5cGUgPQotICAgICAgICAgICAgICAgIG92ZXJsb2FkLmZ1bmMucmV0
dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICAgICAgb3Zl
cmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsK
LSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhvdGhlclNpZ25h
dHVyZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2Us
IHJlYXNvbjogIlJldHVybiB0eXBlIG1pc21hdGNoIGJldHdlZW4gIiArIG90aGVyU2lnbmF0dXJl
LnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0ZWRSZXR1cm5UeXBlfTsKLSAgICAgICAg
fQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgfQotICAgIAotICAgIGhhc0hl
aXIodHlwZSkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0
aW9uKFt0aGlzLl90eXBlVmFyaWFibGVdLCBbdHlwZV0pOwotICAgICAgICBsZXQgc2lnbmF0dXJl
cyA9IHRoaXMuc2lnbmF0dXJlczsKLSAgICAgICAgZm9yIChsZXQgb3JpZ2luYWxTaWduYXR1cmUg
b2Ygc2lnbmF0dXJlcykgewotICAgICAgICAgICAgbGV0IHNpZ25hdHVyZSA9IG9yaWdpbmFsU2ln
bmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAgICBsZXQgb3ZlcmxvYWQgPSBy
ZXNvbHZlT3ZlcmxvYWRJbXBsKHNpZ25hdHVyZS5wb3NzaWJsZU92ZXJsb2Fkcywgc2lnbmF0dXJl
LnR5cGVQYXJhbWV0ZXJzLCBzaWduYXR1cmUucGFyYW1ldGVyVHlwZXMsIHNpZ25hdHVyZS5yZXR1
cm5UeXBlRm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQu
ZnVuYykKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkRp
ZCBub3QgZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIgKyBvcmlnaW5hbFNpZ25hdHVyZSAr
ICIgKGF0ICIgKyBvcmlnaW5hbFNpZ25hdHVyZS5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIikgd2l0
aCB0eXBlICIgKyB0eXBlICsgKG92ZXJsb2FkLmZhaWx1cmVzLmxlbmd0aCA/ICIgKHRyaWVkOiAi
ICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiOyAiKSArICIpIiA6ICIiKX07Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlZFJldHVyblR5cGUgPSBvdmVybG9hZC5mdW5j
LnJldHVyblR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAgICAgICAgICAgb3Zl
cmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRpb25Db250ZXh0KTsK
LSAgICAgICAgICAgIGlmICghc3Vic3RpdHV0ZWRSZXR1cm5UeXBlLmVxdWFscyhzaWduYXR1cmUu
cmV0dXJuVHlwZSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFz
b246ICJBdCBzaWduYXR1cmUgIiArIG9yaWdpbmFsU2lnbmF0dXJlICsgIiAoYXQgIiArIG9yaWdp
bmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKTogcmV0dXJuIHR5cGUgbWlzbWF0
Y2ggYmV0d2VlbiAiICsgc2lnbmF0dXJlLnJldHVyblR5cGUgKyAiIGFuZCAiICsgc3Vic3RpdHV0
ZWRSZXR1cm5UeXBlICsgIiBpbiBmb3VuZCBmdW5jdGlvbiAiICsgb3ZlcmxvYWQuZnVuYy50b0Rl
Y2xTdHJpbmcoKX07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9Owot
ICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gInByb3Rv
Y29sICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIHRoaXMuc2lnbmF0dXJlcy5qb2luKCI7ICIpICsg
IjsgfSI7Ci0gICAgfQotfQotCi0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1Byb3RvY29sRnVuY0RlY2wuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Qcm90b2NvbEZ1bmNEZWNsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWI1
YzliOGU3MTYxODY4YTFjZTQ1ZDU4ODY2MzkyYzAyMjI0NGQzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRnVuY0RlY2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0K
LWNsYXNzIFByb3RvY29sRnVuY0RlY2wgZXh0ZW5kcyBGdW5jIHsKLSAgICBnZXQgdHlwZVBhcmFt
ZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy50eXBl
UGFyYW1ldGVycy5jb25jYXQodGhpcy5wcm90b2NvbERlY2wudHlwZVZhcmlhYmxlKTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29s
UmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYzBlYTMwZDc0OGQ4YjllMTYxMDdhOWY4MDhj
MjNiMzI4NjVlNjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xSZWYuanMKKysrIC9kZXYv
bnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0g
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sUmVmIGV4dGVuZHMgUHJv
dG9jb2wgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSkKLSAgICB7Ci0gICAgICAgIHN1
cGVyKG9yaWdpbiwgbmFtZSk7Ci0gICAgICAgIHRoaXMucHJvdG9jb2xEZWNsID0gbnVsbDsKLSAg
ICB9Ci0gICAgCi0gICAgaW5oZXJpdHMob3RoZXIpCi0gICAgewotICAgICAgICByZXR1cm4gdGhp
cy5wcm90b2NvbERlY2wuaW5oZXJpdHMob3RoZXIpOwotICAgIH0KLSAgICAKLSAgICBoYXNIZWly
KHR5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5wcm90b2NvbERlY2wuaGFzSGVpcih0
eXBlKTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci19CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanMKaW5kZXggMTkyMmU4ZWMy
N2ZjMzlkOTViNGFhOGJmYTlhNTZjOTEwZjZlNjhiMi4uNDlkYzg2MzdkNGUxNDNhOWIwN2Q1OWNm
M2ZiOTc1Y2Y4NGE2NWUxNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUmVzb2x2ZU5hbWVzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVOYW1lcy5qcwpAQCAtMzUsMTIgKzM1LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5U
eXBlcyhwcm9ncmFtLCBuYW1lUmVzb2x2ZXIpCiAgICAgICAgIG5hbWVSZXNvbHZlci5kb1N0YXRl
bWVudCh0eXBlKTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZU5hbWVzSW5Qcm90b2NvbHMocHJvZ3Jh
bSwgbmFtZVJlc29sdmVyKQotewotICAgIGZvciAobGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJv
dG9jb2xzLnZhbHVlcygpKQotICAgICAgICBuYW1lUmVzb2x2ZXIuZG9TdGF0ZW1lbnQocHJvdG9j
b2wpOwotfQotCiBmdW5jdGlvbiByZXNvbHZlTmFtZXNJbkZ1bmN0aW9ucyhwcm9ncmFtLCBuYW1l
UmVzb2x2ZXIpCiB7CiAgICAgZm9yIChsZXQgZnVuY3Mgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFs
dWVzKCkpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29s
dmVPdmVybG9hZEltcGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZl
T3ZlcmxvYWRJbXBsLmpzCmluZGV4IDdlMjIxNTZkZTFhYzVlMmE2YzcyNGFkMzQ2OWRjOTFlNzQ2
ZjI1NjYuLmQ1NGI5NGQzNmNkYjBiMDY4Mjk5NjI2YWYwNTY1YTgyYmE3Nzc1YzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVPdmVybG9hZEltcGwuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5q
cwpAQCAtMjQsNyArMjQsNyBAQAogICovCiAidXNlIHN0cmljdCI7CiAKLWZ1bmN0aW9uIHJlc29s
dmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCBy
ZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKK2Z1bmN0aW9uIHJlc29sdmVPdmVy
bG9hZEltcGwoZnVuY3Rpb25zLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5
UG9pbnQgPSBmYWxzZSkKIHsKICAgICBpZiAoIWZ1bmN0aW9ucykKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJOdWxsIGZ1bmN0aW9uczsgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGNhdWdodCBieSB0
aGUgY2FsbGVyLiIpOwpAQCAtMzYsNyArMzYsNyBAQCBmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJ
bXBsKGZ1bmN0aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZQog
ICAgICAgICAgICAgZmFpbHVyZXMucHVzaChuZXcgT3ZlcmxvYWRSZXNvbHV0aW9uRmFpbHVyZShm
dW5jLCAiRnVuY3Rpb24gaXMgYSAiICsgZnVuYy5zaGFkZXJUeXBlICsgIiBzaGFkZXIsIHNvIGl0
IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gYW4gZXhpc3Rpbmcgc2hhZGVyLiIpKQogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5m
ZXJUeXBlc0ZvckNhbGwoZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJu
VHlwZSk7CisgICAgICAgIGxldCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFy
Z3VtZW50VHlwZXMsIHJldHVyblR5cGUpOwogICAgICAgICBpZiAob3ZlcmxvYWQuZmFpbHVyZSkK
ICAgICAgICAgICAgIGZhaWx1cmVzLnB1c2gob3ZlcmxvYWQuZmFpbHVyZSk7CiAgICAgICAgIGVs
c2UKQEAgLTc0LDcgKzc0LDYgQEAgZnVuY3Rpb24gcmVzb2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlv
bnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUKICAgICAgICAgICAg
IGxldCBwYXJhbWV0ZXJGdW5jID0gc3VjY2Vzc2VzW2pdLmZ1bmM7CiAgICAgICAgICAgICBsZXQg
b3ZlcmxvYWQgPSBpbmZlclR5cGVzRm9yQ2FsbCgKICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJG
dW5jLAotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudHMubGVuZ3RoID8gYXJndW1lbnRGdW5j
LnR5cGVQYXJhbWV0ZXJzIDogW10sCiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnBhcmFt
ZXRlclR5cGVzLAogICAgICAgICAgICAgICAgIGFyZ3VtZW50RnVuYy5yZXR1cm5UeXBlRm9yT3Zl
cmxvYWRSZXNvbHV0aW9uKTsKICAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCmluZGV4
IDNiZDJhNGQ2NWY1NjRmNzA4YjBlZjQ3NTllNDNiMmM4OGQ0OGMyMzQuLmU4N2JkYzNjMzQ4MzE5
OTUyZmY5ZDhmMDM5OWYzNDhlYTk1MGQ2MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKQEAgLTMxLDEzICszMSw2IEBAIGZ1bmN0aW9u
IHJlc29sdmVUeXBlRGVmc0luVHlwZXMocHJvZ3JhbSkKICAgICAgICAgdHlwZS52aXNpdChyZXNv
bHZlcik7CiB9CiAKLWZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0p
Ci17Ci0gICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZlcigpOwotICAgIGZvciAo
bGV0IHByb3RvY29sIG9mIHByb2dyYW0ucHJvdG9jb2xzLnZhbHVlcygpKQotICAgICAgICBwcm90
b2NvbC52aXNpdChyZXNvbHZlcik7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVUeXBlRGVmc0luRnVu
Y3Rpb25zKHByb2dyYW0pCiB7CiAgICAgbGV0IHJlc29sdmVyID0gbmV3IFR5cGVEZWZSZXNvbHZl
cigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmV3cml0ZXIu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qcwppbmRleCBmNDBk
NmI4OGIyNmVlZGNiZjgyOWYxYmFiYjEwYTIwNDViN2E4ZTgzLi4xNzE1YWQwZmFiNzk5OWI5NjVi
YjAzOTAyMjU0MDE3ZDE3YjM5YjFlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9SZXdyaXRlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9S
ZXdyaXRlci5qcwpAQCAtNTMsNDEgKzUzLDExIEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAvLyB0
aGF0LgogICAgIHZpc2l0RnVuY0RlZihub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRO
YXRpdmVGdW5jKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0
YW5jZShub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpIHsg
cmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdFR5cGVEZWYobm9kZSkgeyByZXR1cm4gbm9kZTsgfQog
ICAgIHZpc2l0U3RydWN0VHlwZShub2RlKSB7IHJldHVybiBub2RlOyB9Ci0gICAgdmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdFByb3Rv
Y29sRGVjbChub2RlKSB7IHJldHVybiBub2RlOyB9CiAgICAgdmlzaXRFbnVtVHlwZShub2RlKSB7
IHJldHVybiBub2RlOyB9CiAKLSAgICAvLyBUaGlzIGlzIGFsbW9zdCB3cm9uZy4gV2UgaW5zdGFu
dGlhdGUgRnVuYyBpbiBTdWJzdGl0dXRpb24gaW4gUHJvdG9jb2xEZWNsLiBUaGVuLCB3ZSBlbmQg
dXAKLSAgICAvLyBub3QgcmV3cml0aW5nIHR5cGUgdmFyaWFibGVzLiBJIHRoaW5rIHRoYXQganVz
dCB3b3JrcyBiZWNhdXNlIG5vdCByZXdyaXRpbmcgdGhlbSB0aGVyZSBpcyBPSy4KLSAgICAvLyBF
dmVyeXdoZXJlIGVsc2UsIGl0J3MgbWFuZGF0b3J5IHRoYXQgd2UgZG9uJ3QgcmV3cml0ZSB0aGVz
ZSBiZWNhdXNlIHdlIGFsd2F5cyBhc3N1bWUgdGhhdAotICAgIC8vIHR5cGUgdmFyaWFibGVzIGFy
ZSBvdXRzaWRlIHRoZSBzY29wZSBvZiByZXdyaXRpbmcuCi0gICAgdmlzaXRUeXBlVmFyaWFibGUo
bm9kZSkgeyByZXR1cm4gbm9kZTsgfQotCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUp
Ci0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFByb3RvY29sRnVuY0RlY2woCi0gICAg
ICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS5yZXR1cm5U
eXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAocGFy
YW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAgICAgICBub2RlLnBhcmFt
ZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAotICAgICAgICAg
ICAgbm9kZS5pc0Nhc3QsCi0gICAgICAgICAgICBub2RlLnNoYWRlclR5cGUpOwotICAgICAgICBy
ZXN1bHQucHJvdG9jb2xEZWNsID0gbm9kZS5wcm90b2NvbERlY2w7Ci0gICAgICAgIHJlc3VsdC5w
b3NzaWJsZU92ZXJsb2FkcyA9IG5vZGUucG9zc2libGVPdmVybG9hZHM7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIHZpc2l0TmF0aXZlVHlwZUluc3RhbmNlKG5vZGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGVJbnN0YW5jZSgKLSAgICAgICAg
ICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAoYXJndW1lbnQgPT4gYXJndW1lbnQudmlzaXQodGhpcykpKTsKLSAgICB9Ci0gICAgCiAg
ICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICBsZXQgcmVzdWx0ID0g
bmV3IEZ1bmNQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0
KHRoaXMpKTsKQEAgLTEyNSwxNCArOTUsOSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIH0p
KTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG5vZGU7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAg
IHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKG5vZGUub3JpZ2luLCBub2RlLm5h
bWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmln
aW4sIG5vZGUubmFtZSk7CiAgICAgICAgIHJlc3VsdC50eXBlID0gTm9kZS52aXNpdChub2RlLnR5
cGUsIHRoaXMpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KQEAgLTMxNywxNCArMjgy
LDYgQEAgY2xhc3MgUmV3cml0ZXIgewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2Rl
LCByZXN1bHQpCiAgICAgewotICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVh
bFR5cGVBcmd1bWVudHMgPT4gewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5
cGVBcmd1bWVudCA9PiBhY3R1YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAg
IHJlc3VsdC5hY3R1YWxUeXBlQXJndW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFj
dHVhbFR5cGVBcmd1bWVudHMpOwotICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlw
ZUFyZ3VtZW50cyA9IGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxU
eXBlQXJndW1lbnRzKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50
VHlwZXM7CiAgICAgICAgIGlmIChhcmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFy
Z3VtZW50VHlwZXMgPSBhcmd1bWVudFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRU
eXBlLnZpc2l0KHRoaXMpKTsKQEAgLTM0Miw3ICsyOTksNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAg
ICAgewogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAg
ICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50
cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAg
ICAgICBub2RlLmFyZ3VtZW50TGlzdC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVu
dCwgdGhpcykpKTsKICAgICAgICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShu
b2RlLCByZXN1bHQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5o
dG1sCmluZGV4IDkzZjZiOWI5MzJkMjcyZDc3YTNkYzMxNjdmNTI1ZmE0MGE2MWVkMjMuLjM2ODYx
OGY4NTFjOWQ4ZTUwMmZjNWY5ZDY3YjEwOTEwMzRhMzk2N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtNDIsNyArNDIsNiBAQCB0ZCB7CiAgICAgPHNjcmlw
dCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbW1h
RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRl
ci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IkNvbnN0ZXhwclR5cGVQYXJhbWV0ZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkNvbnZlcnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KQEAgLTYxLDcg
KzYwLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iRmxhdHRl
blByb3RvY29sRXh0ZW5kcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZsYXR0ZW5l
ZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxv
YXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlw
ZS5qcyI+PC9zY3JpcHQ+CkBAIC02OSw3ICs2Nyw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0i
Rm9yTG9vcC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNy
Yz0iRnVuY0luc3RhbnRpYXRvci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmNQ
YXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9j
ay5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkhpZ2hab21iaWVGaW5kZXIuanMiPjwv
c2NyaXB0PgpAQCAtNzksNyArNzYsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkluZmVyVHlw
ZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9Ikluc3RhbnRpYXRlSW1tZWRpYXRlcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFs
VHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMiPjwvc2Ny
aXB0PgpAQCAtOTYsOSArOTIsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVGaW5kZXIu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgogICAgIDxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0
IHNyYz0iTmF0aXZlRnVuY0luc3RhbmNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0i
TmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGVJbnN0
YW5jZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5vcm1hbFVzZVByb3BlcnR5UmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAgLTEwOSwx
MCArMTAzLDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJQcm9wZXJ0eVJlc29sdmVyLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNj
cmlwdCBzcmM9IlByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2Nv
bEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iUHJvdG9jb2xSZWYuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCBzcmM9IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgpAQCAtMTQxLDEwICsx
MzEsNyBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlR5
cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVS
ZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IlVpbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVy
YWxUeXBlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1NQSVJWQ29kZWdlbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQ
SVJWQ29kZWdlbi5qcwppbmRleCBiNGY1MDg1OWE4N2FmYjYwZTU0YjM2MGM2MDU5YzRhYWM4YzIz
YmNhLi5hOWZkZWVjZTQ3NTg2Njg2NjNlZDEwMzJmNzJiMjAzZTgyMDUyYWExIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlZDb2RlZ2VuLmpzCkBAIC01Myw3ICs1Myw3
IEBAIGZ1bmN0aW9uIGdlbmVyYXRlU1BJUlYoc3BpcnYsIHByb2dyYW0pCiAgICAgdHlwZU1hcC5z
ZXQocHJvZ3JhbS5pbnRyaW5zaWNzLnVpbnQzMiwgY3VycmVudElkKyspOwogCiAgICAgZm9yIChs
ZXQgZW50cnlQb2ludCBvZiBmaW5kRW50cnlQb2ludHMoKSkgewotICAgICAgICBsZXQgaW5saW5l
ZFNoYWRlciA9IHByb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUoZW50cnlQb2ludCwg
W10pOworICAgICAgICBsZXQgaW5saW5lZFNoYWRlciA9IGVudHJ5UG9pbnQ7CiAgICAgICAgIF9p
bmxpbmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkU2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoZW50
cnlQb2ludCkpOwogCiAgICAgICAgIGxldCB0eXBlQW5hbHl6ZXIgPSBuZXcgU1BJUlZUeXBlQW5h
bHl6ZXIocHJvZ3JhbSwgdHlwZU1hcCwgY3VycmVudElkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJkTGlicmFyeS5qcwppbmRleCAxOTg4NzIzYzM1NDgwODFj
NjY3ZmFjNzg2MmY0MDI2N2Y5ZjhiODU3Li40YTZkMzcxMDM1M2U0ODIwYzk4MzI2Y2QzY2M2N2U0
Y2FiMzMxOWQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFu
ZGFyZExpYnJhcnkuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRh
cmRMaWJyYXJ5LmpzCkBAIC0yOSw1MyArMjksNzg3IEBAIGxldCBzdGFuZGFyZExpYnJhcnkgPSBg
CiAvLyBUaGlzIGlzIHRoZSBXU0wgc3RhbmRhcmQgbGlicmFyeS4gSW1wbGVtZW50YXRpb25zIG9m
IGFsbCBvZiB0aGVzZSB0aGluZ3MgYXJlIGluCiAvLyBJbnRyaW5zaWNzLmpzLgogCi0vLyBOZWVk
IHRvIGJvb3RzdHJhcCB2b2lkIGZpcnN0LgogbmF0aXZlIHR5cGVkZWYgdm9pZDsKLQotbmF0aXZl
IHR5cGVkZWYgdWludDg7Ci1uYXRpdmUgdHlwZWRlZiBpbnQzMjsKLW5hdGl2ZSB0eXBlZGVmIHVp
bnQzMjsKIG5hdGl2ZSB0eXBlZGVmIGJvb2w7Ci10eXBlZGVmIGludCA9IGludDMyOwotdHlwZWRl
ZiB1aW50ID0gdWludDMyOwotCi1uYXRpdmUgdHlwZWRlZiBmbG9hdDMyOwotdHlwZWRlZiBmbG9h
dCA9IGZsb2F0MzI7Ci0KLW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50MzIpOwotbmF0aXZlIG9w
ZXJhdG9yIGludDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQzMihmbG9hdCk7Ci1uYXRp
dmUgb3BlcmF0b3IgdWludDMyKGludDMyKTsKLW5hdGl2ZSBvcGVyYXRvciB1aW50MzIodWludDgp
OwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDgo
aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQ4KHVpbnQzMik7Ci1uYXRpdmUgb3BlcmF0b3Ig
dWludDgoZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludDMyKTsKLW5hdGl2ZSBvcGVy
YXRvciBmbG9hdCh1aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVpbnQ4KTsKK25hdGl2
ZSB0eXBlZGVmIHVjaGFyOworbmF0aXZlIHR5cGVkZWYgdXNob3J0OworbmF0aXZlIHR5cGVkZWYg
dWludDsKK25hdGl2ZSB0eXBlZGVmIGNoYXI7CituYXRpdmUgdHlwZWRlZiBzaG9ydDsKK25hdGl2
ZSB0eXBlZGVmIGludDsKK25hdGl2ZSB0eXBlZGVmIGhhbGY7CituYXRpdmUgdHlwZWRlZiBmbG9h
dDsKK25hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQ7CituYXRpdmUgdHlwZWRlZiBhdG9taWNfdWlu
dDsKKworaGFsZiBzdGVwKGhhbGYgeSwgaGFsZiB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEg
OiAwOworfQorCitzdHJ1Y3QgYm9vbDIgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7Cit9Citz
dHJ1Y3QgYm9vbDMgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7CisgICAgYm9vbCB6OworfQor
c3RydWN0IGJvb2w0IHsKKyAgICBib29sIHg7CisgICAgYm9vbCB5OworICAgIGJvb2wgejsKKyAg
ICBib29sIHc7Cit9CitzdHJ1Y3QgdWNoYXIyIHsKKyAgICB1Y2hhciB4OworICAgIHVjaGFyIHk7
Cit9CitzdHJ1Y3QgdWNoYXIzIHsKKyAgICB1Y2hhciB4OworICAgIHVjaGFyIHk7CisgICAgdWNo
YXIgejsKK30KK3N0cnVjdCB1Y2hhcjQgeworICAgIHVjaGFyIHg7CisgICAgdWNoYXIgeTsKKyAg
ICB1Y2hhciB6OworICAgIHVjaGFyIHc7Cit9CitzdHJ1Y3QgdXNob3J0MiB7CisgICAgdXNob3J0
IHg7CisgICAgdXNob3J0IHk7Cit9CitzdHJ1Y3QgdXNob3J0MyB7CisgICAgdXNob3J0IHg7Cisg
ICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7Cit9CitzdHJ1Y3QgdXNob3J0NCB7CisgICAgdXNo
b3J0IHg7CisgICAgdXNob3J0IHk7CisgICAgdXNob3J0IHo7CisgICAgdXNob3J0IHc7Cit9Citz
dHJ1Y3QgdWludDIgeworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7Cit9CitzdHJ1Y3QgdWludDMg
eworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7CisgICAgdWludCB6OworfQorc3RydWN0IHVpbnQ0
IHsKKyAgICB1aW50IHg7CisgICAgdWludCB5OworICAgIHVpbnQgejsKKyAgICB1aW50IHc7Cit9
CitzdHJ1Y3QgY2hhcjIgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7Cit9CitzdHJ1Y3QgY2hh
cjMgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7CisgICAgY2hhciB6OworfQorc3RydWN0IGNo
YXI0IHsKKyAgICBjaGFyIHg7CisgICAgY2hhciB5OworICAgIGNoYXIgejsKKyAgICBjaGFyIHc7
Cit9CitzdHJ1Y3Qgc2hvcnQyIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7Cit9CitzdHJ1
Y3Qgc2hvcnQzIHsKKyAgICBzaG9ydCB4OworICAgIHNob3J0IHk7CisgICAgc2hvcnQgejsKK30K
K3N0cnVjdCBzaG9ydDQgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKKyAgICBzaG9ydCB6
OworICAgIHNob3J0IHc7Cit9CitzdHJ1Y3QgaW50MiB7CisgICAgaW50IHg7CisgICAgaW50IHk7
Cit9CitzdHJ1Y3QgaW50MyB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAgaW50IHo7Cit9
CitzdHJ1Y3QgaW50NCB7CisgICAgaW50IHg7CisgICAgaW50IHk7CisgICAgaW50IHo7CisgICAg
aW50IHc7Cit9CitzdHJ1Y3QgaGFsZjIgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7Cit9Citz
dHJ1Y3QgaGFsZjMgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7CisgICAgaGFsZiB6OworfQor
c3RydWN0IGhhbGY0IHsKKyAgICBoYWxmIHg7CisgICAgaGFsZiB5OworICAgIGhhbGYgejsKKyAg
ICBoYWxmIHc7Cit9CitzdHJ1Y3QgZmxvYXQyIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7
Cit9CitzdHJ1Y3QgZmxvYXQzIHsKKyAgICBmbG9hdCB4OworICAgIGZsb2F0IHk7CisgICAgZmxv
YXQgejsKK30KK3N0cnVjdCBmbG9hdDQgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsKKyAg
ICBmbG9hdCB6OworICAgIGZsb2F0IHc7Cit9CitzdHJ1Y3QgaGFsZjJ4MiB7CisgICAgaGFsZjIg
cm93MDsKKyAgICBoYWxmMiByb3cxOworfQorc3RydWN0IGhhbGYyeDMgeworICAgIGhhbGYzIHJv
dzA7CisgICAgaGFsZjMgcm93MTsKK30KK3N0cnVjdCBoYWxmMng0IHsKKyAgICBoYWxmNCByb3cw
OworICAgIGhhbGY0IHJvdzE7Cit9CitzdHJ1Y3QgaGFsZjN4MiB7CisgICAgaGFsZjIgcm93MDsK
KyAgICBoYWxmMiByb3cxOworICAgIGhhbGYyIHJvdzI7Cit9CitzdHJ1Y3QgaGFsZjN4MyB7Cisg
ICAgaGFsZjMgcm93MDsKKyAgICBoYWxmMyByb3cxOworICAgIGhhbGYzIHJvdzI7Cit9CitzdHJ1
Y3QgaGFsZjN4NCB7CisgICAgaGFsZjQgcm93MDsKKyAgICBoYWxmNCByb3cxOworICAgIGhhbGY0
IHJvdzI7Cit9CitzdHJ1Y3QgaGFsZjR4MiB7CisgICAgaGFsZjIgcm93MDsKKyAgICBoYWxmMiBy
b3cxOworICAgIGhhbGYyIHJvdzI7CisgICAgaGFsZjIgcm93MzsKK30KK3N0cnVjdCBoYWxmNHgz
IHsKKyAgICBoYWxmMyByb3cwOworICAgIGhhbGYzIHJvdzE7CisgICAgaGFsZjMgcm93MjsKKyAg
ICBoYWxmMyByb3czOworfQorc3RydWN0IGhhbGY0eDQgeworICAgIGhhbGY0IHJvdzA7CisgICAg
aGFsZjQgcm93MTsKKyAgICBoYWxmNCByb3cyOworICAgIGhhbGY0IHJvdzM7Cit9CitzdHJ1Y3Qg
ZmxvYXQyeDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworfQorc3RydWN0
IGZsb2F0MngzIHsKKyAgICBmbG9hdDMgcm93MDsKKyAgICBmbG9hdDMgcm93MTsKK30KK3N0cnVj
dCBmbG9hdDJ4NCB7CisgICAgZmxvYXQ0IHJvdzA7CisgICAgZmxvYXQ0IHJvdzE7Cit9CitzdHJ1
Y3QgZmxvYXQzeDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworICAgIGZs
b2F0MiByb3cyOworfQorc3RydWN0IGZsb2F0M3gzIHsKKyAgICBmbG9hdDMgcm93MDsKKyAgICBm
bG9hdDMgcm93MTsKKyAgICBmbG9hdDMgcm93MjsKK30KK3N0cnVjdCBmbG9hdDN4NCB7CisgICAg
ZmxvYXQ0IHJvdzA7CisgICAgZmxvYXQ0IHJvdzE7CisgICAgZmxvYXQ0IHJvdzI7Cit9CitzdHJ1
Y3QgZmxvYXQ0eDIgeworICAgIGZsb2F0MiByb3cwOworICAgIGZsb2F0MiByb3cxOworICAgIGZs
b2F0MiByb3cyOworICAgIGZsb2F0MiByb3czOworfQorc3RydWN0IGZsb2F0NHgzIHsKKyAgICBm
bG9hdDMgcm93MDsKKyAgICBmbG9hdDMgcm93MTsKKyAgICBmbG9hdDMgcm93MjsKKyAgICBmbG9h
dDMgcm93MzsKK30KK3N0cnVjdCBmbG9hdDR4NCB7CisgICAgZmxvYXQ0IHJvdzA7CisgICAgZmxv
YXQ0IHJvdzE7CisgICAgZmxvYXQ0IHJvdzI7CisgICAgZmxvYXQ0IHJvdzM7Cit9CituYXRpdmUg
dHlwZWRlZiBzYW1wbGVyOworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGJvb2w+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29s
Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyMz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGlu
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjQ+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dXNob3J0Mz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDI+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMUQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8
dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUxRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyMz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQz
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMUQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxmbG9hdD47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Zmxv
YXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMURBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJv
b2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyMj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUxREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNo
b3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUxREFycmF5PGNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJy
YXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMURBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxpbnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTFEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTFEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Zmxv
YXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0Mz47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWNo
YXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMURBcnJheTx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MURBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
REFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMURBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8aGFsZjM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxi
b29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkQ8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWNo
YXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dXNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hvcnQ0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxjaGFyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8c2hvcnQyPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0ND47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
RDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFs
ZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZs
b2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxib29sPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2wzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTJEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
PHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0ND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyRDx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVp
bnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGNoYXI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxpbnQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZjM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkRBcnJheTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sMz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hh
cjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWludD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1aW50
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUyREFycmF5PGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNo
YXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI0PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
QXJyYXk8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxoYWxmPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUy
REFycmF5PGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Ym9vbDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyREFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkRBcnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNo
YXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxjaGFyMj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxzaG9ydD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5
PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludD47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
MkRBcnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50ND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGhh
bGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZjQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
REFycmF5PGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0Mz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxi
b29sND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTNEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNE
PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dXNob3J0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQzPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHNob3J0Mj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGludD47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlM0Q8aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8
aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTNEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmND47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGZs
b2F0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmUzRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Ym9vbD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxib29sND47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1
Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dXNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9y
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWludD47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUzRDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDM+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTNEPGludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGYzPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mj47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUzRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGJvb2w+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9v
bDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZUN1YmU8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlQ3ViZTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZUN1YmU8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hvcnQ0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludDM+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZUN1YmU8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Y2hh
cj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxjaGFyND47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3Vi
ZTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aW50Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlQ3ViZTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8aGFsZj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxm
bG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDI+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZUN1YmU8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0
ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkQ8
ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVwdGgyRDxoYWxmPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVEZXB0aDJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZURlcHRoMkRBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJh
eTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEQXJyYXk8aGFsZj47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlRGVwdGhDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVEZXB0aEN1YmU8aGFsZj47CiAKK29wZXJhdG9yIHVjaGFyKHVjaGFyIHgpIHsKKyAgICBy
ZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciB1Y2hhcih1c2hvcnQpOworbmF0aXZlIG9wZXJh
dG9yIHVjaGFyKHVpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGNoYXIpOworbmF0aXZlIG9w
ZXJhdG9yIHVjaGFyKHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1Y2hhcihpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVjaGFyKGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGZsb2F0KTsKK25h
dGl2ZSBvcGVyYXRvciB1c2hvcnQodWNoYXIpOworb3BlcmF0b3IgdXNob3J0KHVzaG9ydCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KHVpbnQpOworbmF0aXZl
IG9wZXJhdG9yIHVzaG9ydChjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoc2hvcnQpOwor
bmF0aXZlIG9wZXJhdG9yIHVzaG9ydChpbnQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChoYWxm
KTsKK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQo
dWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQodXNob3J0KTsKK29wZXJhdG9yIHVpbnQodWlu
dCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgdWludChjaGFyKTsKK25h
dGl2ZSBvcGVyYXRvciB1aW50KHNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGludCk7Citu
YXRpdmUgb3BlcmF0b3IgdWludChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGZsb2F0KTsK
K25hdGl2ZSBvcGVyYXRvciBjaGFyKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVzaG9y
dCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcih1aW50KTsKK29wZXJhdG9yIGNoYXIoY2hhciB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3IgY2hhcihzaG9ydCk7CituYXRpdmUg
b3BlcmF0b3IgY2hhcihpbnQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIoaGFsZik7CituYXRpdmUg
b3BlcmF0b3IgY2hhcihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIHNob3J0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodWludCk7
CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoY2hhcik7CitvcGVyYXRvciBzaG9ydChzaG9ydCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgb3BlcmF0b3Igc2hvcnQoaW50KTsKK25hdGl2ZSBv
cGVyYXRvciBzaG9ydChoYWxmKTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChmbG9hdCk7CituYXRp
dmUgb3BlcmF0b3IgaW50KHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodXNob3J0KTsKK25h
dGl2ZSBvcGVyYXRvciBpbnQodWludCk7CituYXRpdmUgb3BlcmF0b3IgaW50KGNoYXIpOworbmF0
aXZlIG9wZXJhdG9yIGludChzaG9ydCk7CitvcGVyYXRvciBpbnQoaW50IHgpIHsKKyAgICByZXR1
cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBpbnQoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgaW50
KGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVjaGFyKTsKK25hdGl2ZSBvcGVyYXRvciBo
YWxmKHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgaGFsZih1aW50KTsKK25hdGl2ZSBvcGVyYXRv
ciBoYWxmKGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYoc2hvcnQpOworbmF0aXZlIG9wZXJh
dG9yIGhhbGYoaW50KTsKK29wZXJhdG9yIGhhbGYoaGFsZiB4KSB7CisgICAgcmV0dXJuIHg7Cit9
CituYXRpdmUgb3BlcmF0b3IgaGFsZihmbG9hdCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodWNo
YXIpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KHVzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgZmxv
YXQodWludCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoY2hhcik7CituYXRpdmUgb3BlcmF0b3Ig
ZmxvYXQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludCk7CituYXRpdmUgb3BlcmF0
b3IgZmxvYXQoaGFsZik7CitvcGVyYXRvciBmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitvcGVyYXRvciBib29sKGJvb2wgeCkgeworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9w
ZXJhdG9yIGludChhdG9taWNfaW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191aW50
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oYm9vbCwgYm9vbCk7Citib29sIG9wZXJhdG9yJihi
b29sIGEsIGJvb2wgYikKK3sKKyAgICByZXR1cm4gYSAmJiBiOworfQorYm9vbCBvcGVyYXRvcnwo
Ym9vbCBhLCBib29sIGIpCit7CisgICAgcmV0dXJuIGEgfHwgYjsKK30KK2Jvb2wgb3BlcmF0b3Je
KGJvb2wgYSwgYm9vbCBiKQoreworICAgIGlmIChhKQorICAgICAgICByZXR1cm4gIWI7CisgICAg
cmV0dXJuIGI7Cit9Citib29sIG9wZXJhdG9yfihib29sIHZhbHVlKQoreworICAgIHJldHVybiAh
dmFsdWU7Cit9CiBuYXRpdmUgaW50IG9wZXJhdG9yKyhpbnQsIGludCk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvcisodWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvcisodWludDggYSwgdWludDggYikg
eyByZXR1cm4gdWludDgodWludChhKSArIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0
b3IrKGZsb2F0LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3IrKyhpbnQgdmFsdWUpIHsgcmV0dXJuIHZh
bHVlICsgMTsgfQotdWludCBvcGVyYXRvcisrKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsg
MTsgfQotdWludDggb3BlcmF0b3IrKyh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgKyAxOyB9
CiBuYXRpdmUgaW50IG9wZXJhdG9yLShpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci0o
dWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvci0odWludDggYSwgdWludDggYikgeyByZXR1cm4g
dWludDgodWludChhKSAtIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0
LCBmbG9hdCk7Ci1pbnQgb3BlcmF0b3ItLShpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsg
fQotdWludCBvcGVyYXRvci0tKHVpbnQgdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQotdWlu
dDggb3BlcmF0b3ItLSh1aW50OCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgLSAxOyB9CiBuYXRpdmUg
aW50IG9wZXJhdG9yKihpbnQsIGludCk7Ci1uYXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWlu
dCk7Ci11aW50OCBvcGVyYXRvcioodWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWlu
dChhKSAqIHVpbnQoYikpOyB9Ci1uYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7
CiBuYXRpdmUgaW50IG9wZXJhdG9yLyhpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09
KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7CituYXRpdmUgYm9v
bCBvcGVyYXRvcjw9KGludCwgaW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7
CituYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9y
Kyh1aW50LCB1aW50KTsKK25hdGl2ZSB1aW50IG9wZXJhdG9yLSh1aW50LCB1aW50KTsKK25hdGl2
ZSB1aW50IG9wZXJhdG9yKih1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50IG9wZXJhdG9yLyh1aW50
LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yLyh1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50
OCh1aW50KGEpIC8gdWludChiKSk7IH0KK25hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWlu
dCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7CituYXRpdmUgYm9vbCBvcGVy
YXRvcjw9KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOwor
bmF0aXZlIGJvb2wgb3BlcmF0b3I+PSh1aW50LCB1aW50KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRv
cisoZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVyYXRvci0oZmxvYXQsIGZsb2F0KTsK
K25hdGl2ZSBmbG9hdCBvcGVyYXRvciooZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBmbG9hdCBvcGVy
YXRvci8oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPT0oZmxvYXQsIGZsb2F0
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPChmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3Bl
cmF0b3I8PShmbG9hdCwgZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+KGZsb2F0LCBmbG9h
dCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7CiBuYXRpdmUgaW50IG9w
ZXJhdG9yJihpbnQsIGludCk7CiBuYXRpdmUgaW50IG9wZXJhdG9yfChpbnQsIGludCk7CiBuYXRp
dmUgaW50IG9wZXJhdG9yXihpbnQsIGludCk7CkBAIC04OCwzMDIgKzgyMiwyOTg4NSBAQCBuYXRp
dmUgdWludCBvcGVyYXRvcl4odWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcn4odWlu
dCk7CiBuYXRpdmUgdWludCBvcGVyYXRvcjw8KHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQgb3Bl
cmF0b3I+Pih1aW50LCB1aW50KTsKLXVpbnQ4IG9wZXJhdG9yJih1aW50OCBhLCB1aW50OCBiKSB7
IHJldHVybiB1aW50OCh1aW50KGEpICYgdWludChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yfCh1aW50
OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIHwgdWludChiKSk7IH0KLXVpbnQ4
IG9wZXJhdG9yXih1aW50OCBhLCB1aW50OCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpIF4gdWlu
dChiKSk7IH0KLXVpbnQ4IG9wZXJhdG9yfih1aW50OCB2YWx1ZSkgeyByZXR1cm4gdWludDgofnVp
bnQodmFsdWUpKTsgfQotdWludDggb3BlcmF0b3I8PCh1aW50OCBhLCB1aW50IGIpIHsgcmV0dXJu
IHVpbnQ4KHVpbnQoYSkgPDwgKGIgJiA3KSk7IH0KLXVpbnQ4IG9wZXJhdG9yPj4odWludDggYSwg
dWludCBiKSB7IHJldHVybiB1aW50OCh1aW50KGEpID4+IChiICYgNykpOyB9Ci1uYXRpdmUgZmxv
YXQgb3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KGludCwg
aW50KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPT0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9y
PT0odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA9PSB1aW50KGIpOyB9Ci1uYXRp
dmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsIGJvb2wpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShm
bG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I8KGludCwgaW50KTsKLW5hdGl2ZSBi
b29sIG9wZXJhdG9yPCh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8KHVpbnQ4IGEsIHVpbnQ4
IGIpIHsgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjwo
ZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPD0oaW50LCBpbnQpOwotbmF0aXZl
IGJvb2wgb3BlcmF0b3I8PSh1aW50LCB1aW50KTsKLWJvb2wgb3BlcmF0b3I8PSh1aW50OCBhLCB1
aW50OCBiKSB7IHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7IH0KLW5hdGl2ZSBib29sIG9wZXJh
dG9yPD0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPihpbnQsIGludCk7Ci1u
YXRpdmUgYm9vbCBvcGVyYXRvcj4odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPih1aW50OCBh
LCB1aW50OCBiKSB7IHJldHVybiB1aW50KGEpID4gdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3Bl
cmF0b3I+KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KGludCwgaW50KTsK
LW5hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPj0odWlu
dDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9v
bCBvcGVyYXRvcj49KGZsb2F0LCBmbG9hdCk7Ci0KLWJvb2wgb3BlcmF0b3ImKGJvb2wgYSwgYm9v
bCBiKQotewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gYjsKLSAgICByZXR1cm4gZmFsc2U7
Cit1Y2hhciBvcGVyYXRvcisodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1
aW50KGEpICsgdWludChiKSk7CiB9Ci0KLWJvb2wgb3BlcmF0b3J8KGJvb2wgYSwgYm9vbCBiKQot
ewotICAgIGlmIChhKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAoYikKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwordWNoYXIgb3BlcmF0b3ItKHVjaGFyIGEs
IHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAtIHVpbnQoYikpOwogfQotCi1i
b29sIG9wZXJhdG9yXihib29sIGEsIGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0
dXJuICFiOwotICAgIHJldHVybiBiOwordWNoYXIgb3BlcmF0b3IqKHVjaGFyIGEsIHVjaGFyIGIp
IHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAqIHVpbnQoYikpOwogfQotCi1ib29sIG9wZXJh
dG9yfihib29sIHZhbHVlKQotewotICAgIHJldHVybiAhdmFsdWU7Cit1Y2hhciBvcGVyYXRvci8o
dWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIC8gdWludChiKSk7
CiB9Ci0KLXByb3RvY29sIEFkZGFibGUgewotICAgIEFkZGFibGUgb3BlcmF0b3IrKEFkZGFibGUs
IEFkZGFibGUpOwordWNoYXIgb3BlcmF0b3ImKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1
cm4gdWNoYXIodWludChhKSAmIHVpbnQoYikpOwogfQotCi1wcm90b2NvbCBFcXVhdGFibGUgewot
ICAgIGJvb2wgb3BlcmF0b3I9PShFcXVhdGFibGUsIEVxdWF0YWJsZSk7Cit1Y2hhciBvcGVyYXRv
cnwodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIHwgdWludChi
KSk7CiB9Ci0KLXJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVCgpCi17Ci0gICAgVCBkZWZhdWx0VmFs
dWU7Ci0gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKK3VjaGFyIG9wZXJhdG9yXih1Y2hhciBhLCB1
Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgXiB1aW50KGIpKTsKIH0KLQotcmVz
dHJpY3RlZCBvcGVyYXRvcjxUPiBUKFQgeCkKLXsKLSAgICByZXR1cm4geDsKK3VjaGFyIG9wZXJh
dG9yfih1Y2hhciBhKSB7CisgICAgcmV0dXJuIHVjaGFyKH51aW50KGEpKTsKIH0KLQotb3BlcmF0
b3I8VDpFcXVhdGFibGU+IGJvb2woVCB4KQotewotICAgIHJldHVybiB4ICE9IFQoKTsKK2Jvb2wg
b3BlcmF0b3I9PSh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPT0gdWlu
dChiKTsKIH0KLQotc3RydWN0IHZlYzI8VD4gewotICAgIFQgeDsKLSAgICBUIHk7Citib29sIG9w
ZXJhdG9yPCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIp
OwogfQotCi10eXBlZGVmIGludDIgPSB2ZWMyPGludD47Ci10eXBlZGVmIHVpbnQyID0gdmVjMjx1
aW50PjsKLXR5cGVkZWYgZmxvYXQyID0gdmVjMjxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzI8
VD4oVCB4LCBUIHkpCi17Ci0gICAgdmVjMjxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4Owot
ICAgIHJlc3VsdC55ID0geTsKLSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcjw9KHVj
aGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOwogfQotCi1i
b29sIG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzI8VD4gYSwgdmVjMjxUPiBiKQotewotICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Citib29sIG9wZXJhdG9yPih1Y2hhciBh
LCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOwogfQotCi10aHJlYWQg
VCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzI8VD4qIGZvbywgdWludCBpbmRleCkKLXsKLSAg
ICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgaWYgKGluZGV4
ID09IDEpCi0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIHRyYXA7Citib29sIG9wZXJhdG9y
Pj0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID49IHVpbnQoYik7CiB9
Ci0KLXN0cnVjdCB2ZWMzPFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5OwotICAgIFQgejsKK3VzaG9y
dCBvcGVyYXRvcisodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50
KGEpICsgdWludChiKSk7CiB9Ci0KLXR5cGVkZWYgaW50MyA9IHZlYzM8aW50PjsKLXR5cGVkZWYg
dWludDMgPSB2ZWMzPHVpbnQ+OwotdHlwZWRlZiBmbG9hdDMgPSB2ZWMzPGZsb2F0PjsKLQotb3Bl
cmF0b3I8VD4gdmVjMzxUPihUIHgsIFQgeSwgVCB6KQotewotICAgIHZlYzM8VD4gcmVzdWx0Owot
ICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHk7Ci0gICAgcmVzdWx0LnogPSB6Owot
ICAgIHJldHVybiByZXN1bHQ7Cit1c2hvcnQgb3BlcmF0b3ItKHVzaG9ydCBhLCB1c2hvcnQgYikg
eworICAgIHJldHVybiB1c2hvcnQodWludChhKSAtIHVpbnQoYikpOwogfQotCi1vcGVyYXRvcjxU
PiB2ZWMzPFQ+KHZlYzI8VD4gdjIsIFQgeikKLXsKLSAgICB2ZWMzPFQ+IHJlc3VsdDsKLSAgICBy
ZXN1bHQueCA9IHYyLng7Ci0gICAgcmVzdWx0LnkgPSB2Mi55OwotICAgIHJlc3VsdC56ID0gejsK
LSAgICByZXR1cm4gcmVzdWx0OwordXNob3J0IG9wZXJhdG9yKih1c2hvcnQgYSwgdXNob3J0IGIp
IHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgKiB1aW50KGIpKTsKIH0KLQotb3BlcmF0b3I8
VD4gdmVjMzxUPihUIHgsIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjMzxUPiByZXN1bHQ7Ci0gICAg
cmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9IHYyLnk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKK3VzaG9ydCBvcGVyYXRvci8odXNob3J0IGEsIHVzaG9ydCBi
KSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpIC8gdWludChiKSk7CiB9Ci0KLWJvb2wgb3Bl
cmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjMzxUPiBhLCB2ZWMzPFQ+IGIpCi17Ci0gICAgcmV0dXJu
IGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OwordXNob3J0IG9wZXJhdG9y
Jih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgJiB1aW50
KGIpKTsKIH0KLQotdGhyZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMzPFQ+KiBmb28s
IHVpbnQgaW5kZXgpCi17Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgIHJldHVybiAmZm9v
LT54OwotICAgIGlmIChpbmRleCA9PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICBp
ZiAoaW5kZXggPT0gMikKLSAgICAgICAgcmV0dXJuICZmb28tPno7Ci0gICAgdHJhcDsKK3VzaG9y
dCBvcGVyYXRvcnwodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50
KGEpIHwgdWludChiKSk7CiB9Ci0KLXN0cnVjdCB2ZWM0PFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5
OwotICAgIFQgejsKLSAgICBUIHc7Cit1c2hvcnQgb3BlcmF0b3JeKHVzaG9ydCBhLCB1c2hvcnQg
YikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSBeIHVpbnQoYikpOwogfQotCi10eXBlZGVm
IGludDQgPSB2ZWM0PGludD47Ci10eXBlZGVmIHVpbnQ0ID0gdmVjNDx1aW50PjsKLXR5cGVkZWYg
ZmxvYXQ0ID0gdmVjNDxmbG9hdD47Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIFQg
eiwgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0geDsKLSAgICBy
ZXN1bHQueSA9IHk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsKLSAgICBy
ZXR1cm4gcmVzdWx0OwordXNob3J0IG9wZXJhdG9yfih1c2hvcnQgYSkgeworICAgIHJldHVybiB1
c2hvcnQofnVpbnQoYSkpOwogfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KHZlYzI8VD4gdjIsIFQg
eiwgVCB3KQotewotICAgIHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjIueDsKLSAg
ICByZXN1bHQueSA9IHYyLnk7Ci0gICAgcmVzdWx0LnogPSB6OwotICAgIHJlc3VsdC53ID0gdzsK
LSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcj09KHVzaG9ydCBhLCB1c2hvcnQgYikg
eworICAgIHJldHVybiB1aW50KGEpID09IHVpbnQoYik7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8
VD4oVCB4LCB2ZWMyPFQ+IHYyLCBUIHcpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVz
dWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9IHYyLnk7Ci0g
ICAgcmVzdWx0LncgPSB3OwotICAgIHJldHVybiByZXN1bHQ7Citib29sIG9wZXJhdG9yPCh1c2hv
cnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA8IHVpbnQoYik7CiB9Ci0KLW9w
ZXJhdG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjNDxUPiBy
ZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0geTsKLSAgICByZXN1bHQu
eiA9IHYyLng7Ci0gICAgcmVzdWx0LncgPSB2Mi55OwotICAgIHJldHVybiByZXN1bHQ7Citib29s
IG9wZXJhdG9yPD0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPD0g
dWludChiKTsKIH0KLQotb3BlcmF0b3I8VD4gdmVjNDxUPih2ZWMyPFQ+IHYyYSwgdmVjMjxUPiB2
MmIpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2MmEueDsKLSAgICBy
ZXN1bHQueSA9IHYyYS55OwotICAgIHJlc3VsdC56ID0gdjJiLng7Ci0gICAgcmVzdWx0LncgPSB2
MmIueTsKLSAgICByZXR1cm4gcmVzdWx0OworYm9vbCBvcGVyYXRvcj4odXNob3J0IGEsIHVzaG9y
dCBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPiB1aW50KGIpOwogfQotCi1vcGVyYXRvcjxUPiB2
ZWM0PFQ+KHZlYzM8VD4gdjMsIFQgdykKLXsKLSAgICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1
bHQueCA9IHYzLng7Ci0gICAgcmVzdWx0LnkgPSB2My55OwotICAgIHJlc3VsdC56ID0gdjMuejsK
LSAgICByZXN1bHQudyA9IHc7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK2Jvb2wgb3BlcmF0b3I+PSh1
c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIpOwogfQot
Ci1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgdmVjMzxUPiB2MykKLXsKLSAgICB2ZWM0PFQ+IHJl
c3VsdDsKLSAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2My54OwotICAgIHJlc3Vs
dC56ID0gdjMueTsKLSAgICByZXN1bHQudyA9IHYzLno7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK3Vj
aGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQo
YSkgPDwgKGIgJiAyNTUpKTsKIH0KLQotYm9vbCBvcGVyYXRvcj09PFQ6RXF1YXRhYmxlPih2ZWM0
PFQ+IGEsIHZlYzQ8VD4gYikKLXsKLSAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
ICYmIGEueiA9PSBiLnogJiYgYS53ID09IGIudzsKK3VzaG9ydCBvcGVyYXRvcjw8KHVzaG9ydCBh
LCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgPDwgKGIgJiA2NTUzNSkpOwog
fQotCi10aHJlYWQgVCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzQ8VD4qIGZvbywgdWludCBp
bmRleCkKLXsKLSAgICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0g
ICAgaWYgKGluZGV4ID09IDEpCi0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIGlmIChpbmRl
eCA9PSAyKQotICAgICAgICByZXR1cm4gJmZvby0+ejsKLSAgICBpZiAoaW5kZXggPT0gMykKLSAg
ICAgICAgcmV0dXJuICZmb28tPnc7Ci0gICAgdHJhcDsKK3VjaGFyIG9wZXJhdG9yPj4odWNoYXIg
YSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPj4gKGIgJiAyNTUpKTsKIH0K
LQotbmF0aXZlIHRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgVFtdLCB1aW50KTsKLW5h
dGl2ZSB0aHJlYWRncm91cCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWRncm91cCBUW10sIHVpbnQp
OwotbmF0aXZlIGRldmljZSBUKiBvcGVyYXRvciZbXTxUPihkZXZpY2UgVFtdLCB1aW50KTsKLW5h
dGl2ZSBjb25zdGFudCBUKiBvcGVyYXRvciZbXTxUPihjb25zdGFudCBUW10sIHVpbnQpOwotCi1u
YXRpdmUgdWludCBvcGVyYXRvci5sZW5ndGg8VD4odGhyZWFkIFRbXSk7Ci1uYXRpdmUgdWludCBv
cGVyYXRvci5sZW5ndGg8VD4odGhyZWFkZ3JvdXAgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9y
Lmxlbmd0aDxUPihkZXZpY2UgVFtdKTsKLW5hdGl2ZSB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihj
b25zdGFudCBUW10pOwotCi11aW50IG9wZXJhdG9yLmxlbmd0aDxULCB1aW50IGxlbmd0aD4oVFts
ZW5ndGhdKQotewotICAgIHJldHVybiBsZW5ndGg7Cit1c2hvcnQgb3BlcmF0b3I+Pih1c2hvcnQg
YSwgdWludCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpID4+IChiICYgNjU1MzUpKTsK
IH0KLWA7Ci0KLWZ1bmN0aW9uIGludFRvU3RyaW5nKHgpCi17Ci0gICAgc3dpdGNoICh4KSB7Ci0g
ICAgY2FzZSAwOgotICAgICAgICByZXR1cm4gIngiOwotICAgIGNhc2UgMToKLSAgICAgICAgcmV0
dXJuICJ5IjsKLSAgICBjYXNlIDI6Ci0gICAgICAgIHJldHVybiAieiI7Ci0gICAgY2FzZSAzOgot
ICAgICAgICByZXR1cm4gInciOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93IG5ldyBFcnJv
cigiQ291bGQgbm90IGdlbmVyYXRlIHN0YW5kYXJkIGxpYnJhcnkuIik7Ci0gICAgfQotfQotCi0v
LyBUaGVyZSBhcmUgNDgxIHN3aXp6bGUgb3BlcmF0b3JzLCBzbyB3ZSBjb21waWxlIHRoZW0gYXMg
bmF0aXZlIGZ1bmN0aW9ucwotc3RhbmRhcmRMaWJyYXJ5ICs9IFN3aXp6bGVPcC5hbGxTd2l6emxl
T3BlcmF0b3JzKCkuam9pbigiO1xuIikgKyAiOyI7Ci1jb25zb2xlLmxvZyhzdGFuZGFyZExpYnJh
cnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2NoYXIgb3BlcmF0b3IrKGNoYXIgYSwg
Y2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICsgaW50KGIpKTsKK30KK2NoYXIgb3Bl
cmF0b3ItKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIC0gaW50KGIp
KTsKK30KK2NoYXIgb3BlcmF0b3IqKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIo
aW50KGEpICogaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3IvKGNoYXIgYSwgY2hhciBiKSB7Cisg
ICAgcmV0dXJuIGNoYXIoaW50KGEpIC8gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3ImKGNoYXIg
YSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpICYgaW50KGIpKTsKK30KK2NoYXIg
b3BlcmF0b3J8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNoYXIoaW50KGEpIHwgaW50
KGIpKTsKK30KK2NoYXIgb3BlcmF0b3JeKGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGNo
YXIoaW50KGEpIF4gaW50KGIpKTsKK30KK2NoYXIgb3BlcmF0b3J+KGNoYXIgYSkgeworICAgIHJl
dHVybiBjaGFyKH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIgYSwgY2hhciBiKSB7
CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPiBpbnQoYik7Cit9Citib29sIG9wZXJhdG9y
Pj0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpID49IGludChiKTsKK30KK2Jv
b2wgb3BlcmF0b3I8KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGludChhKSA8IGludChi
KTsKK30KK2Jvb2wgb3BlcmF0b3I8PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQo
YSkgPD0gaW50KGIpOworfQorc2hvcnQgb3BlcmF0b3IrKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpICsgaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yLShzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAtIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvciooc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgKiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IvKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIC8gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yJihzaG9y
dCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSAmIGludChiKSk7Cit9Citz
aG9ydCBvcGVyYXRvcnwoc2hvcnQgYSwgc2hvcnQgYikgeworICAgIHJldHVybiBzaG9ydChpbnQo
YSkgfCBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3JeKHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gc2hvcnQoaW50KGEpIF4gaW50KGIpKTsKK30KK3Nob3J0IG9wZXJhdG9yfihzaG9y
dCBhKSB7CisgICAgcmV0dXJuIHNob3J0KH5pbnQoYSkpOworfQorYm9vbCBvcGVyYXRvcj09KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID09IGludChiKTsKK30KK2Jvb2wg
b3BlcmF0b3I+KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpID4gaW50KGIp
OworfQorYm9vbCBvcGVyYXRvcj49KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gaW50
KGEpID49IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KHNob3J0IGEsIHNob3J0IGIpIHsKKyAg
ICByZXR1cm4gaW50KGEpIDwgaW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHNob3J0IGEsIHNo
b3J0IGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsKK30KK2NoYXIgb3BlcmF0b3I8
PChjaGFyIGEsIHVpbnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA8PCAoYiAmIDI1NSkp
OworfQorc2hvcnQgb3BlcmF0b3I8PChzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hv
cnQoaW50KGEpIDw8IChiICYgNjU1MzUpKTsKK30KK2NoYXIgb3BlcmF0b3I+PihjaGFyIGEsIHVp
bnQgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSA+PiAoYiAmIDI1NSkpOworfQorc2hvcnQg
b3BlcmF0b3I+PihzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpID4+
IChiICYgNjU1MzUpKTsKK30KK3VjaGFyIG9wZXJhdG9yKysodWNoYXIgdmFsdWUpIHsKKyAgICBy
ZXR1cm4gdmFsdWUgKyAxOworfQordWNoYXIgb3BlcmF0b3ItLSh1Y2hhciB2YWx1ZSkgeworICAg
IHJldHVybiB2YWx1ZSAtIDE7Cit9Cit1c2hvcnQgb3BlcmF0b3IrKyh1c2hvcnQgdmFsdWUpIHsK
KyAgICByZXR1cm4gdmFsdWUgKyAxOworfQordXNob3J0IG9wZXJhdG9yLS0odXNob3J0IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3VpbnQgb3BlcmF0b3IrKyh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK3VpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2NoYXIgb3BlcmF0b3IrKyhjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2NoYXIgb3BlcmF0b3ItLShjaGFyIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK3Nob3J0IG9wZXJhdG9yKysoc2hvcnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorc2hvcnQgb3BlcmF0b3ItLShzaG9ydCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitpbnQgb3BlcmF0b3IrKyhpbnQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQoraW50IG9wZXJhdG9yLS0oaW50IHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2hhbGYgb3BlcmF0b3IrKyhoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsKK30KK2hhbGYgb3BlcmF0b3ItLShoYWxmIHZhbHVl
KSB7CisgICAgcmV0dXJuIHZhbHVlIC0gMTsKK30KK2Zsb2F0IG9wZXJhdG9yKysoZmxvYXQgdmFs
dWUpIHsKKyAgICByZXR1cm4gdmFsdWUgKyAxOworfQorZmxvYXQgb3BlcmF0b3ItLShmbG9hdCB2
YWx1ZSkgeworICAgIHJldHVybiB2YWx1ZSAtIDE7Cit9CitoYWxmIG9wZXJhdG9yKyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpICsgZmxvYXQoYikpOworfQoraGFs
ZiBvcGVyYXRvci0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gaGFsZihmbG9hdChhKSAt
IGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0
dXJuIGhhbGYoZmxvYXQoYSkgKiBmbG9hdChiKSk7Cit9CitoYWxmIG9wZXJhdG9yLyhoYWxmIGEs
IGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEpIC8gZmxvYXQoYikpOworfQorYm9v
bCBvcGVyYXRvcj09KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpID09IGZs
b2F0KGIpOworfQorYm9vbCBvcGVyYXRvcjwoaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4g
ZmxvYXQoYSkgPCBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShoYWxmIGEsIGhhbGYgYikg
eworICAgIHJldHVybiBmbG9hdChhKSA8PSBmbG9hdChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQoYik7Cit9Citib29s
IG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxvYXQoYSkgPD0gZmxv
YXQoYik7Cit9CisKK29wZXJhdG9yIGJvb2wyKGJvb2wgeCwgYm9vbCB5KSB7CisgICAgYm9vbDIg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbCB5LCBib29sIHopIHsKKyAg
ICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAg
ICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJv
b2wyIHgsIGJvb2wgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsK
KyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbDIgeSkgeworICAgIGJvb2wzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0Lnog
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9v
bCB5LCBib29sIHosIGJvb2wgdykgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9
IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wg
eSwgYm9vbCB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAg
IHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbDIgeSwgYm9v
bCB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5LCBib29sMiB6KSB7
CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7
CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wyIHkpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGJvb2w0KGJvb2wzIHgsIGJvb2wgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHgu
ejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJv
b2w0KGJvb2wgeCwgYm9vbDMgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0
LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJv
b2wyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChib29sMykgewor
ICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoYm9vbDQpIHsKKyAgICByZXR1
cm4gNDsKK30KK29wZXJhdG9yIHVjaGFyMih1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeikg
eworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVj
aGFyMyh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIyIHkpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsK
KyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyIHosIHVjaGFyIHcpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dWNoYXI0KHVjaGFyMiB4LCB1Y2hhciB5LCB1Y2hhciB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9
IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1
Y2hhcjQodWNoYXIgeCwgdWNoYXIyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVj
aGFyNCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhcjIgeikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsK
KyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAg
cmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1
Y2hhcjMgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0
LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwg
dWNoYXIzIHkpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXIyKSB7Cisg
ICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjMpIHsKKyAgICByZXR1
cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVjaGFyNCkgeworICAgIHJldHVybiA0Owor
fQorb3BlcmF0b3IgdXNob3J0Mih1c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0IHop
IHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Ig
dXNob3J0Myh1c2hvcnQyIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQy
IHkpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydCB5LCB1c2hvcnQgeiwgdXNob3J0IHcpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQyIHksIHVzaG9ydCB6
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55
ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVzaG9y
dDIgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQyIHkp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQzIHkpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDIpIHsKKyAgICByZXR1cm4gMjsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3Vp
bnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9y
IHVpbnQyKHVpbnQgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVpbnQzKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQyIHgsIHVpbnQgeSkgeworICAg
IHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsK
KyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQz
KHVpbnQgeCwgdWludDIgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50IHosIHVpbnQgdykg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAg
IHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDIgeSwgdWludCB6KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50MiB6KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7
CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVp
bnQ0KHVpbnQyIHgsIHVpbnQyIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVz
dWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQz
IHgsIHVpbnQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDMgeSkg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQyKSB7CisgICAgcmV0dXJuIDI7
Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50MykgeworICAgIHJldHVybiAzOworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgodWludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGNo
YXIyKGNoYXIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNo
YXIzKGNoYXIgeCwgY2hhciB5LCBjaGFyIHopIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIyIHgsIGNoYXIgeSkgeworICAgIGNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAg
ICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNo
YXIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyIHosIGNoYXIgdykgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGNoYXI0KGNoYXIyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9
IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyMiB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7Cisg
ICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0
KGNoYXIyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0
LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIzIHgs
IGNoYXIgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjMgeSkgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIyKSB7CisgICAgcmV0dXJuIDI7Cit9
Cit1aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMykgeworICAgIHJldHVybiAzOworfQordWludCBv
cGVyYXRvci5sZW5ndGgoY2hhcjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHNob3J0
MihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBz
aG9ydDMoc2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydDIgeCwgc2hvcnQgeSkg
eworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRv
ciBzaG9ydDMoc2hvcnQgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0IHksIHNo
b3J0IHosIHNob3J0IHcpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydCB5
LCBzaG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQyIHks
IHNob3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydCB5LCBz
aG9ydDIgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydDIgeSkg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0Lnkg
PSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydDMgeCwgc2hvcnQgeSkgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7
CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1
bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludCBvcGVyYXRvci5sZW5ndGgoc2hvcnQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3Iu
bGVuZ3RoKHNob3J0NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgaW50MihpbnQgeCwg
aW50IHkpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQg
eSwgaW50IHopIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3Bl
cmF0b3IgaW50MyhpbnQyIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQyIHkpIHsKKyAgICBpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgs
IGludCB5LCBpbnQgeiwgaW50IHcpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9
IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQgeSwg
aW50IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQyIHksIGludCB6KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54Owor
ICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorb3BlcmF0b3IgaW50NChpbnQgeCwgaW50IHksIGludDIgeikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0Lnog
PSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGludDQoaW50MiB4LCBpbnQyIHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICBy
ZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQz
IHgsIGludCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQzIHkpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3Vp
bnQgb3BlcmF0b3IubGVuZ3RoKGludDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0
b3IubGVuZ3RoKGludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGhhbGYyKGhhbGYg
eCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICBy
ZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYg
eCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYyIHgsIGhhbGYgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQu
eiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmIHosIGhhbGYgdykgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3Vs
dC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGhhbGY0KGhhbGYyIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhh
bGY0KGhhbGYgeCwgaGFsZjIgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAg
ICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhh
bGYgeCwgaGFsZiB5LCBoYWxmMiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0
LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYyIHgs
IGhhbGYyIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAg
cmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYzIHgsIGhhbGYgeSkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVz
dWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9w
ZXJhdG9yLmxlbmd0aChoYWxmMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5s
ZW5ndGgoaGFsZjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGZsb2F0MihmbG9hdCB4
LCBmbG9hdCB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxv
YXQgeCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0MyhmbG9hdDIgeCwgZmxvYXQgeSkgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMo
ZmxvYXQgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZs
b2F0IHcpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdCB5LCBmbG9hdCB6
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQyIHksIGZsb2F0IHop
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBmbG9hdCB5LCBmbG9hdDIgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVz
dWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Citv
cGVyYXRvciBmbG9hdDQoZmxvYXQgeCwgZmxvYXQzIHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVy
YXRvci5sZW5ndGgoZmxvYXQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxl
bmd0aChmbG9hdDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZs
b2F0NCkgeworICAgIHJldHVybiA0OworfQorYm9vbCBvcGVyYXRvcj09KGJvb2wyIGEsIGJvb2wy
IGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVy
YXRvcj09KGJvb2wzIGEsIGJvb2wzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDQgYSwgYm9vbDQg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAm
JiBhLncgPT0gYi53OworfQordGhyZWFkIGJvb2wqIG9wZXJhdG9yJltdKHRocmVhZCBib29sMiog
Zm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAm
Zm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAg
ICB0cmFwOworfQordGhyZWFkIGJvb2wqIG9wZXJhdG9yJltdKHRocmVhZCBib29sMyogZm9vLCB1
aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54
OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAo
aW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgdHJhcDsKK30KK3RocmVh
ZCBib29sKiBvcGVyYXRvciZbXSh0aHJlYWQgYm9vbDQqIGZvbywgdWludCBpbmRleCkgeworICAg
IGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAg
ICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4g
JmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KHVjaGFyMiBhLCB1Y2hhcjIg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJh
dG9yPT0odWNoYXIzIGEsIHVjaGFyMyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55
ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KHVjaGFyNCBhLCB1Y2hh
cjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIu
eiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVjaGFyKiBvcGVyYXRvciZbXSh0aHJlYWQgdWNo
YXIyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0
dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55
OworICAgIHRyYXA7Cit9Cit0aHJlYWQgdWNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCB1Y2hhcjMq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIHRyYXA7Cit9
Cit0aHJlYWQgdWNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCB1Y2hhcjQqIGZvbywgdWludCBpbmRl
eCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBp
ZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09
IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAg
ICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDIg
YSwgdXNob3J0MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30K
K2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQzIGEsIHVzaG9ydDMgYikgeworICAgIHJldHVybiBhLngg
PT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1
c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
LnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVzaG9ydCogb3BlcmF0
b3ImW10odGhyZWFkIHVzaG9ydDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9
PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAg
ICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJhcDsKK30KK3RocmVhZCB1c2hvcnQqIG9wZXJhdG9y
JltdKHRocmVhZCB1c2hvcnQzKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0g
MCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAg
IHJldHVybiAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZv
by0+ejsKKyAgICB0cmFwOworfQordGhyZWFkIHVzaG9ydCogb3BlcmF0b3ImW10odGhyZWFkIHVz
aG9ydDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICBy
ZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28t
Pnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlm
IChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9v
bCBvcGVyYXRvcj09KHVpbnQyIGEsIHVpbnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAm
JiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHVpbnQzIGEsIHVpbnQzIGIpIHsKKyAg
ICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29s
IG9wZXJhdG9yPT0odWludDQgYSwgdWludDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHVpbnQq
IG9wZXJhdG9yJltdKHRocmVhZCB1aW50MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGlu
ZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQor
ICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIHVpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCB1aW50MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09
IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAg
ICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZm
b28tPno7CisgICAgdHJhcDsKK30KK3RocmVhZCB1aW50KiBvcGVyYXRvciZbXSh0aHJlYWQgdWlu
dDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1
cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7
CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChp
bmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBv
cGVyYXRvcj09KGNoYXIyIGEsIGNoYXIyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBh
LnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KGNoYXIzIGEsIGNoYXIzIGIpIHsKKyAgICBy
ZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9w
ZXJhdG9yPT0oY2hhcjQgYSwgY2hhcjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGNoYXIqIG9w
ZXJhdG9yJltdKHRocmVhZCBjaGFyMiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4
ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAg
ICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIGNoYXIqIG9wZXJhdG9y
JltdKHRocmVhZCBjaGFyMyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28t
Pno7CisgICAgdHJhcDsKK30KK3RocmVhZCBjaGFyKiBvcGVyYXRvciZbXSh0aHJlYWQgY2hhcjQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVy
YXRvcj09KHNob3J0MiBhLCBzaG9ydDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQzIGEsIHNob3J0MyBiKSB7CisgICAg
cmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBv
cGVyYXRvcj09KHNob3J0NCBhLCBzaG9ydDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYm
IGEueSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIHNob3J0
KiBvcGVyYXRvciZbXSh0aHJlYWQgc2hvcnQyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAo
aW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEp
CisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9Cit0aHJlYWQgc2hvcnQqIG9w
ZXJhdG9yJltdKHRocmVhZCBzaG9ydDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRl
eCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAg
ICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVy
biAmZm9vLT56OworICAgIHRyYXA7Cit9Cit0aHJlYWQgc2hvcnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBzaG9ydDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAg
ICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZm
b28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAg
IGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQor
Ym9vbCBvcGVyYXRvcj09KGludDIgYSwgaW50MiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLngg
JiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShpbnQzIGEsIGludDMgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wg
b3BlcmF0b3I9PShpbnQ0IGEsIGludDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGludCogb3Bl
cmF0b3ImW10odGhyZWFkIGludDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9
PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAg
ICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJhcDsKK30KK3RocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBpbnQzKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAg
ICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVy
biAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+ejsK
KyAgICB0cmFwOworfQordGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIGludDQqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYg
KGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAz
KQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09
KGhhbGYyIGEsIGhhbGYyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYzIGEsIGhhbGYzIGIpIHsKKyAgICByZXR1cm4gYS54
ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0o
aGFsZjQgYSwgaGFsZjQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkg
JiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGhhbGYqIG9wZXJhdG9yJltd
KHRocmVhZCBoYWxmMiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisg
ICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1
cm4gJmZvby0+eTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYqIG9wZXJhdG9yJltdKHRocmVh
ZCBoYWxmMyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAg
IHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAg
dHJhcDsKK30KK3RocmVhZCBoYWxmKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjQqIGZvbywgdWlu
dCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsK
KyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGlu
ZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRleCA9PSAzKQor
ICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KGZs
b2F0MiBhLCBmbG9hdDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7
Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzIGEsIGZsb2F0MyBiKSB7CisgICAgcmV0dXJuIGEu
eCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09
KGZsb2F0NCBhLCBmbG9hdDQgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBi
LnkgJiYgYS56ID09IGIueiAmJiBhLncgPT0gYi53OworfQordGhyZWFkIGZsb2F0KiBvcGVyYXRv
ciZbXSh0aHJlYWQgZmxvYXQyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0g
MCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAg
IHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQqIG9wZXJhdG9yJltd
KHRocmVhZCBmbG9hdDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQor
ICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0
dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56
OworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQqIG9wZXJhdG9yJltdKHRocmVhZCBmbG9hdDQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+dzsKKyAgICB0cmFwOworfQordGhyZWFkIGhh
bGYyKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjJ4MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRl
eCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICB0cmFwOworfQordGhyZWFk
IGhhbGYyKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjN4MiogZm9vLCB1aW50IGluZGV4KSB7Cisg
ICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChp
bmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0g
MikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxm
Miogb3BlcmF0b3ImW10odGhyZWFkIGhhbGY0eDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlm
IChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisg
ICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICBy
ZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYzKiBvcGVyYXRvciZb
XSh0aHJlYWQgaGFsZjJ4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAg
ICByZXR1cm4gJmZvby0+cm93MTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYzKiBvcGVyYXRv
ciZbXSh0aHJlYWQgaGFsZjN4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09
IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAg
ICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0
dXJuICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxmMyogb3BlcmF0b3ImW10o
dGhyZWFkIGhhbGY0eDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQor
ICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAg
cmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAm
Zm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93
MzsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGY0KiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjJ4
NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVy
biAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+
cm93MTsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGY0KiBvcGVyYXRvciZbXSh0aHJlYWQgaGFs
ZjN4NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJl
dHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7
CisgICAgdHJhcDsKK30KK3RocmVhZCBoYWxmNCogb3BlcmF0b3ImW10odGhyZWFkIGhhbGY0eDQq
IGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4g
JmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJv
dzE7CisgICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAg
IGlmIChpbmRleCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOwor
fQordGhyZWFkIGZsb2F0Miogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0MngyKiBmb28sIHVpbnQg
aW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7
CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRy
YXA7Cit9Cit0aHJlYWQgZmxvYXQyKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDIqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7Cisg
ICAgaWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7
Cit9Cit0aHJlYWQgZmxvYXQyKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDIqIGZvbywgdWlu
dCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93
MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAg
aWYgKGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRl
eCA9PSAzKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFk
IGZsb2F0Myogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0MngzKiBmb28sIHVpbnQgaW5kZXgpIHsK
KyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYg
KGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0
aHJlYWQgZmxvYXQzKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDMqIGZvbywgdWludCBpbmRl
eCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAg
ICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGlu
ZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7Cit9Cit0aHJl
YWQgZmxvYXQzKiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDMqIGZvbywgdWludCBpbmRleCkg
eworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBp
ZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4
ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQor
ICAgICAgICByZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQordGhyZWFkIGZsb2F0NCog
b3BlcmF0b3ImW10odGhyZWFkIGZsb2F0Mng0KiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAo
aW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYgKGluZGV4ID09
IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxv
YXQ0KiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQzeDQqIGZvbywgdWludCBpbmRleCkgeworICAg
IGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5k
ZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIp
CisgICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQ0
KiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQ0eDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlm
IChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXgg
PT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgaWYgKGluZGV4ID09IDIpCisg
ICAgICAgIHJldHVybiAmZm9vLT5yb3cyOworICAgIGlmIChpbmRleCA9PSAzKQorICAgICAgICBy
ZXR1cm4gJmZvby0+cm93MzsKKyAgICB0cmFwOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDIg
YSwgaGFsZjJ4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAm
JgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFd
WzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgIHRydWU7Cit9Citib29s
IG9wZXJhdG9yPT0oaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAg
YVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAg
ICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYm
CisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1b
Ml0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGYyeDQgYSwgaGFsZjJ4NCBi
KSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBh
WzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAg
ICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYK
KyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsy
XSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBv
cGVyYXRvcj09KGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFb
MF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAg
ICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgor
ICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFd
ICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmM3gzIGEsIGhhbGYzeDMgYikg
eworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVsw
XVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAg
ICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisg
ICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0g
JiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsy
XVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjN4NCBhLCBoYWxmM3g0
IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAg
IGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAg
ICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAm
JgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFd
WzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09
IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1b
Ml0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVl
OworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0g
YlsxXVsxXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsx
XSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBh
WzNdWzFdID09IGJbM11bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGhhbGY0
eDMgYSwgaGFsZjR4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBi
WzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFd
ID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFb
Ml1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAg
ICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgor
ICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJd
ICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNHg0IGEsIGhhbGY0eDQgYikg
eworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVsw
XVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAg
ICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisg
ICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0g
JiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsy
XVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9
PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNd
WzBdID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAg
IGFbM11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MngyIGEsIGZsb2F0MngyIGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsx
XVsxXSA9PSBiWzFdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4
MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1bMF0gPT0gYlswXVsw
XSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBi
WzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFd
ID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgdHJ1ZTsK
K30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDJ4NCBhLCBmbG9hdDJ4NCBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0g
YlswXVszXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsx
XSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBh
WzFdWzNdID09IGJbMV1bM10gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0
M3gyIGEsIGZsb2F0M3gyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBd
WzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09
IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1b
MF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICB0cnVl
OworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3gzIGEsIGZsb2F0M3gzIGIpIHsKKyAgICByZXR1
cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlsw
XVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVswXSA9
PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFd
WzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAg
IGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAg
ICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0M3g0IGEsIGZsb2F0M3g0IGIpIHsKKyAg
ICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0g
PT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsw
XVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAg
ICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisg
ICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAgICAgICBhWzJdWzBdID09IGJbMl1bMF0g
JiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFbMl1bMl0gPT0gYlsy
XVsyXSAmJgorICAgICAgICBhWzJdWzNdID09IGJbMl1bM10gJiYKKyAgICB0cnVlOworfQorYm9v
bCBvcGVyYXRvcj09KGZsb2F0NHgyIGEsIGZsb2F0NHgyIGIpIHsKKyAgICByZXR1cm4KKyAgICAg
ICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgor
ICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFd
ICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJb
Ml1bMV0gJiYKKyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0g
PT0gYlszXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDMgYSwg
ZmxvYXQ0eDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsy
XSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBi
WzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzJdWzBd
ID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisgICAgICAgIGFb
Ml1bMl0gPT0gYlsyXVsyXSAmJgorICAgICAgICBhWzNdWzBdID09IGJbM11bMF0gJiYKKyAgICAg
ICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFbM11bMl0gPT0gYlszXVsyXSAmJgor
ICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDQgYSwgZmxvYXQ0eDQgYikgewor
ICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsx
XSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBh
WzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAg
ICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYK
KyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVsw
XSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBi
WzJdWzJdICYmCisgICAgICAgIGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgICAgICBhWzNdWzBd
ID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgICAgIGFb
M11bMl0gPT0gYlszXVsyXSAmJgorICAgICAgICBhWzNdWzNdID09IGJbM11bM10gJiYKKyAgICB0
cnVlOworfQorCituYXRpdmUgZmxvYXQgY29zKGZsb2F0KTsKK2hhbGYgY29zKGhhbGYgeCkgewor
ICAgIHJldHVybiBoYWxmKGNvcyhmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHNpbihmbG9h
dCk7CitoYWxmIHNpbihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihzaW4oZmxvYXQoeCkpKTsK
K30KK25hdGl2ZSBmbG9hdCB0YW4oZmxvYXQpOworaGFsZiB0YW4oaGFsZiB4KSB7CisgICAgcmV0
dXJuIGhhbGYodGFuKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgYWNvcyhmbG9hdCk7Cito
YWxmIGFjb3MoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoYWNvcyhmbG9hdCh4KSkpOworfQor
bmF0aXZlIGZsb2F0IGFzaW4oZmxvYXQpOworaGFsZiBhc2luKGhhbGYgeCkgeworICAgIHJldHVy
biBoYWxmKGFzaW4oZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBhdGFuKGZsb2F0KTsKK2hh
bGYgYXRhbihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihhdGFuKGZsb2F0KHgpKSk7Cit9Citu
YXRpdmUgZmxvYXQgY29zaChmbG9hdCk7CitoYWxmIGNvc2goaGFsZiB4KSB7CisgICAgcmV0dXJu
IGhhbGYoY29zaChmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHNpbmgoZmxvYXQpOworaGFs
ZiBzaW5oKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKHNpbmgoZmxvYXQoeCkpKTsKK30KK25h
dGl2ZSBmbG9hdCB0YW5oKGZsb2F0KTsKK2hhbGYgdGFuaChoYWxmIHgpIHsKKyAgICByZXR1cm4g
aGFsZih0YW5oKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgY2VpbChmbG9hdCk7CitoYWxm
IGNlaWwoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoY2VpbChmbG9hdCh4KSkpOworfQorbmF0
aXZlIGZsb2F0IGV4cChmbG9hdCk7CitoYWxmIGV4cChoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFs
ZihleHAoZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBmbG9vcihmbG9hdCk7CitoYWxmIGZs
b29yKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKGZsb29yKGZsb2F0KHgpKSk7Cit9CituYXRp
dmUgZmxvYXQgbG9nKGZsb2F0KTsKK2hhbGYgbG9nKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxm
KGxvZyhmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IHJvdW5kKGZsb2F0KTsKK2hhbGYgcm91
bmQoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYocm91bmQoZmxvYXQoeCkpKTsKK30KK25hdGl2
ZSBmbG9hdCB0cnVuYyhmbG9hdCk7CitoYWxmIHRydW5jKGhhbGYgeCkgeworICAgIHJldHVybiBo
YWxmKHRydW5jKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgZGR4KGZsb2F0KTsKK2hhbGYg
ZGR4KGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKGRkeChmbG9hdCh4KSkpOworfQorbmF0aXZl
IGZsb2F0IGRkeShmbG9hdCk7CitoYWxmIGRkeShoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihk
ZHkoZmxvYXQoeCkpKTsKK30KK2hhbGYgc3FydChoYWxmIHgpIHsKKyAgICByZXR1cm4gcG93KHgs
IDAuNSk7Cit9CitoYWxmIGxvZzIoaGFsZiB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygy
KTsKK30KK2hhbGYgbG9nMTAoaGFsZiB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygxMCk7
Cit9CitoYWxmIGZyYWMoaGFsZiB4KSB7CisgICAgcmV0dXJuIHggLSBmbG9vcih4KTsKK30KK2hh
bGYgZXhwMihoYWxmIHgpIHsKKyAgICByZXR1cm4gZXhwKHggKiBsb2coMikpOworfQoraGFsZiBk
ZWdyZWVzKGhhbGYgeCkgeworICAgIHJldHVybiB4ICogMTgwIC8gUEk7Cit9CitoYWxmIHJhZGlh
bnMoaGFsZiB4KSB7CisgICAgcmV0dXJuIHggKiBQSSAvIDE4MDsKK30KK2hhbGYgcmNwKGhhbGYg
eCkgeworICAgIHJldHVybiAxIC8geDsKK30KK2hhbGYgcnNxcnQoaGFsZiB4KSB7CisgICAgcmV0
dXJuIDEgLyBzcXJ0KHgpOworfQoraGFsZiBzYXR1cmF0ZShoYWxmIHgpIHsKKyAgICByZXR1cm4g
Y2xhbXAoeCwgMCwgMSk7Cit9CitoYWxmIGRkeF9jb2Fyc2UoaGFsZiB4KSB7CisgICAgcmV0dXJu
IGRkeCh4KTsKK30KK2hhbGYgZGR4X2ZpbmUoaGFsZiB4KSB7CisgICAgcmV0dXJuIGRkeCh4KTsK
K30KK2hhbGYgZGR5X2NvYXJzZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR5KHgpOworfQoraGFs
ZiBkZHlfZmluZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR5KHgpOworfQoraGFsZiBmd2lkdGgo
aGFsZiB4KSB7CisgICAgcmV0dXJuIGFicyhkZHgoeCkpICsgYWJzKGRkeSh4KSk7Cit9CitoYWxm
MiBjb3MoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3Mo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBjb3MoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgY29zKGhhbGY0IHgpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGNvcyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjb3MoeFsyXSk7CisgICAgcmVzdWx0
WzNdID0gY29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGNvcyhoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgY29zKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGNvcyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBjb3MoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGNvcyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyBjb3MoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgY29zKGhhbGYzeDQgeCkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3MoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gY29zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGNvcyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gY29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgzIGNvcyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gY29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBjb3MoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjb3MoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3MoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBzaW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBzaW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IHNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc2luKGhh
bGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2luKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW4oeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gc2luKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngy
IHNpbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgc2luKGhhbGYyeDMgeCkgeworICAg
IGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNpbihoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHNpbihoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4MyBzaW4oaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBzaW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgc2luKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbih4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgyIHNpbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgzIHNpbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gc2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbih4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzaW4oaGFsZjR4NCB4KSB7CisgICAg
aGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBzaW4oeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHNpbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBz
aW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc2luKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiB0YW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyB0YW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHRhbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgdGFuKGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFu
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW4o
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIHRhbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0
YW4oeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgdGFuKGhhbGYyeDMg
eCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
dGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHRhbihoYWxmMng0IHgpIHsKKyAgICBo
YWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
dGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHRhbihoYWxmM3gyIHgpIHsKKyAgICBo
YWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4MyB0YW4oaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
dGFuKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbih4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
dGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSB0YW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSB0
YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIHRhbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0
YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgzIHRhbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0
YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW4oeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRh
bih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCB0YW4oaGFsZjR4NCB4
KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0
YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRh
bih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdGFu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRhbih4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSB0YW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gdGFuKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBhY29zKGhhbGYyIHgpIHsKKyAgICBoYWxmMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhY29z
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhY29zKGhhbGYzIHgpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBhY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFjb3MoeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IGFjb3MoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFjb3MoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhY29zKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGFjb3MoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjJ4MyBhY29zKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMng0IGFjb3MoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gYWNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhY29zKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIGFjb3MoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
Y29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDMgYWNvcyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3Mo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
Y29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4
NCBhY29zKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3Mo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gYWNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
Y29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGFjb3MoaGFsZjR4MiB4KSB7Cisg
ICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
Y29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGFjb3MoaGFsZjR4
MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3Mo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
Y29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFjb3MoeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgYWNvcyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBhY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFjb3MoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
Y29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gYWNvcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhY29zKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gYWNvcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhY29zKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBhc2luKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhc2luKGhhbGYzIHgpIHsKKyAgICBo
YWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhc2luKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzaW4oeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IGFzaW4oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gYXNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2luKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGFzaW4oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4MyBhc2luKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMng0IGFzaW4oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2luKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGFzaW4oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2lu
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDMgYXNpbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBh
c2luKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzaW4oeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2luKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGFzaW4oaGFsZjR4MiB4KSB7CisgICAg
aGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2lu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGFzaW4oaGFsZjR4MyB4
KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2lu
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzaW4oeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDQgYXNpbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBhc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW4oeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2lu
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gYXNpbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhc2luKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXNpbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhc2luKHhbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBhdGFuKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhdGFuKGhhbGYzIHgpIHsKKyAgICBoYWxm
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
dGFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGF0YW4oeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IGF0YW4oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhdGFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gYXRhbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhdGFuKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGF0YW4oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjJ4MyBhdGFuKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGF0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhdGFuKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
Mng0IGF0YW4oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRh
bih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBhdGFuKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gyIGF0YW4oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzeDMgYXRhbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBhdGFu
KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGF0YW4oaGFsZjR4MiB4KSB7CisgICAgaGFs
ZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGF0YW4oaGFsZjR4MyB4KSB7
CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0
YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4oeFszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgYXRhbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0
YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGF0YW4oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFuKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gYXRhbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRh
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhdGFuKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiBjb3NoKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3NoKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBjb3NoKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3No
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvc2goeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IGNvc2goaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2goeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gY29zaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3NoKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIGNvc2goaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBjb3NoKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNv
c2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IGNvc2goaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY29zaCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIGNvc2goaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgY29zaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
b3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBjb3NoKGhh
bGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2go
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvc2goeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gY29zaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3NoKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGNvc2goaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGNvc2goaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2go
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBj
b3NoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvc2goeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDQgY29zaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2go
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBjb3NoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBj
b3NoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvc2goeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gY29zaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGNvc2goeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY29zaCh4
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjb3NoKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBzaW5oKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBzaW5oKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IHNpbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IHNpbmgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBzaW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gc2luaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaW5oKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIHNpbmgoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MyBzaW5oKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNp
bmgoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luaCh4WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBzaW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmM3gyIHNpbmgoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDMgc2luaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5o
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzaW5oKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbmgoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5o
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNpbmgoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5o
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5oKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHNpbmgoaGFsZjR4MyB4KSB7CisgICAg
aGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbmgoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaW5o
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5oKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNpbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgc2luaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW5o
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbmgoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
c2luaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW5oKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2luaCh4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMiB0YW5oKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyB0YW5oKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHRhbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IHRhbmgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0
YW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
dGFuaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSB0YW5oKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIHRhbmgoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5o
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyB0
YW5oKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSB0YW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSB0YW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHRhbmgo
aGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFu
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHRhbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSB0YW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIHRhbmgoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFu
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMg
dGFuaChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFu
aCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCB0YW5oKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSB0YW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gdGFuaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFu
aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIHRhbmgoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHRhbmgoaGFsZjR4MyB4KSB7CisgICAgaGFs
ZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHRhbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDQgdGFuaChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSB0YW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFu
aCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuaCh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSB0YW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBjZWlsKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBjZWlsKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGNlaWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IGNlaWwoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjZWls
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY2Vp
bCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjZWlsKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngyIGNlaWwoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBjZWls
KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNl
aWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBjZWlsKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGNlaWwoaGFs
ZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2VpbCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNl
aWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gy
IGNlaWwoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgY2Vp
bChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
ZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBjZWlsKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
ZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNlaWwoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjZWlsKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHgyIGNlaWwoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
ZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGNlaWwoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
ZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGNlaWwoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDQgY2VpbChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBj
ZWlsKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGNlaWwoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gY2VpbCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY2VpbCh4
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGNlaWwoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2VpbCh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBjZWlsKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiBleHAoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyBleHAoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGV4cCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZXhwKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGV4cCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBleHAoeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gZXhwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGV4
cChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBl
eHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZXhwKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBl
eHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IGV4cChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBleHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBl
eHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGV4cChoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjN4MyBleHAoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
ZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBl
eHAoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgZXhwKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBl
eHAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gZXhwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIGV4cChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBl
eHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIGV4cChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBl
eHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4
cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cCh4WzNdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBleHAoaGFsZjR4NCB4KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBleHAoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGV4cCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBleHAo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZXhwKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBmbG9vcihoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmbG9vcihoYWxmMyB4KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZs
b29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBmbG9vcihoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZsb29yKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGZsb29yKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIGZsb29yKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IGZsb29yKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZs
b29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29yKHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZsb29yKGhhbGYzeDIgeCkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29y
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGZsb29yKGhhbGYzeDMg
eCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZs
b29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGZsb29yKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGZsb29yKGhhbGY0eDIgeCkgeworICAgIGhh
bGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGZsb29yKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZsb29yKGhh
bGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29y
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZs
b29yKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZsb29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGZsb29yKGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29y
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZs
b29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IGZsb29yKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBsb2coaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2co
eFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBsb2coaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBsb2coeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGxvZyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbG9nKGhhbGY0IHgpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGxvZyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBsb2coeFsyXSk7CisgICAgcmVzdWx0
WzNdID0gbG9nKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxvZyhoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbG9nKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGxvZyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBsb2coeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2coeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxvZyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyBsb2coaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsb2coeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbG9nKGhhbGYzeDQgeCkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2coeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsb2coeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gbG9nKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGxvZyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgzIGxvZyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gbG9nKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxvZyh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBsb2coaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gbG9nKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbG9nKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBsb2coeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGxvZyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsb2coeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gbG9nKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiByb3VuZChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyByb3VuZChoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCByb3VuZChoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHJvdW5kKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHJvdW5kKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJvdW5kKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngzIHJvdW5kKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5k
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IHJvdW5kKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJv
dW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHJvdW5kKGhhbGYzeDIgeCkgeworICAg
IGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5k
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHJvdW5kKGhhbGYzeDMgeCkgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHJvdW5kKGhhbGYzeDQgeCkgeworICAg
IGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5k
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJv
dW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHJvdW5kKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5k
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJvdW5kKGhhbGY0eDMg
eCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJv
dW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHJvdW5kKGhhbGY0eDQgeCkgeworICAg
IGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5k
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJv
dW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5kKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IHJvdW5kKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiB0cnVu
YyhoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyB0cnVuYyhoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCB0cnVuYyho
YWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRydW5jKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IHRydW5jKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIHRydW5jKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHRy
dW5jKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IHRydW5jKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRy
dW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIHRydW5jKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5j
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gzIHRydW5jKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRy
dW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3g0IHRydW5jKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIHRydW5jKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHRydW5jKGhhbGY0eDMgeCkgeworICAgIGhhbGY0
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRy
dW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJl
c3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHg0IHRydW5jKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHRy
dW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHRydW5jKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHgoaGFsZjIgeCkgeworICAg
IGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gZGR4KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHgoaGFsZjMgeCkg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZGR4KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgZGR4KGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gZGR4KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBkZHgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDMgZGR4KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRkeCho
YWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZGR4KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeCho
YWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHgoaGFsZjN4MyB4KSB7
CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgZGR4KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR4KHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeChoYWxmNHgyIHgpIHsK
KyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeChoYWxmNHgzIHgpIHsK
KyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGRkeCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjR4NCBkZHgoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGR4KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4KHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHgoeFsyXVszXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gZGR4KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeCh4WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHgoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNd
ID0gZGR4KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHkoaGFsZjIg
eCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHko
aGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeSh4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZGR5KGhhbGY0IHgpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeSh4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBkZHkoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR5KHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeShoYWxmMngyIHgpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDMgZGR5KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
Mng0IGRkeShoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gZGR5KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIGRkeShoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeSh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHkoaGFs
ZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgZGR5KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gZGR5KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeShoYWxm
NHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZGR5KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeShoYWxm
NHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjR4NCBkZHkoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gZGR5KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHkoeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGRkeSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHkoeFszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gZGR5KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBz
cXJ0KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3FydCh4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBzcXJ0KGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHNxcnQoaGFsZjQg
eCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzcXJ0KHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc3FydCh4WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngy
IHNxcnQoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBzcXJ0KGhhbGYyeDMgeCkg
eworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBz
cXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHNxcnQoaGFsZjJ4NCB4KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3FydCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBz
cXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHNxcnQoaGFsZjN4
MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgc3FydChoYWxmM3gzIHgp
IHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
c3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzcXJ0KGhhbGYzeDQgeCkgeworICAgIGhhbGYz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IHNxcnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3FydCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBzcXJ0KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIHNxcnQoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgzIHNxcnQoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c3FydCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IHNxcnQoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgc3FydCho
YWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzcXJ0KHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNxcnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHNxcnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3FydCh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNxcnQo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc3FydCh4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsb2cy
KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMyBsb2cyKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bG9nMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGxvZzIoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxvZzIoaGFsZjQgeCkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGxvZzIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBsb2cyKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxv
ZzIoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBsb2cyKGhhbGYyeDMgeCkgewor
ICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxvZzIoaGFsZjJ4NCB4KSB7CisgICAg
aGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2cy
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGxvZzIoaGFsZjN4MiB4
KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzIoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbG9nMihoYWxmM3gzIHgpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9n
Mih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBsb2cyKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGxvZzIoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9n
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgzIGxvZzIoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9n
Mih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGxvZzIoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbG9nMihoYWxm
NHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsb2cyKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9n
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nMih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nMih4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzIoeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBsb2cyKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsb2cxMCho
YWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMyBsb2cxMChoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGxvZzEwKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBsb2cxMChoYWxm
NCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0p
OworICAgIHJlc3VsdFszXSA9IGxvZzEwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngyIGxvZzEwKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGxvZzEw
KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxv
ZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxv
ZzEwKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzEw
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxvZzEwKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gzIGxvZzEwKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEw
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3g0IGxvZzEwKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIGxvZzEwKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxv
ZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGxvZzEwKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IGxvZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHg0IGxvZzEwKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEw
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzEwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmcmFjKGhhbGYyIHgpIHsKKyAgICBo
YWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBmcmFjKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmcmFjKGhhbGYzIHgp
IHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBmcmFjKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZyYWMoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGZyYWMoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZyYWMoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBmcmFjKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGZyYWMoaGFsZjJ4MiB4KSB7Cisg
ICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4MyBmcmFjKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGZyYWMoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFj
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmcmFjKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZyYWMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFj
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgZnJhYyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjN4NCBmcmFjKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJhYyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmcmFj
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGZyYWMoaGFsZjR4MiB4
KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZyYWMo
aGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJh
Yyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZyYWMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZnJhYyhoYWxmNHg0IHgpIHsKKyAgICBoYWxm
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmcmFjKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZyYWMoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZnJhYyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmcmFj
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZyYWMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gZnJhYyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBmcmFjKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBleHAyKGhhbGYyIHgpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBl
eHAyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBleHAyKGhhbGYzIHgpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGV4cDIoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IGV4cDIoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gZXhwMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAyKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGV4cDIoaGFsZjJ4MiB4KSB7CisgICAg
aGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4MyBleHAyKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhw
Mih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IGV4cDIoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZXhwMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhw
Mih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBleHAyKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGV4cDIoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDMgZXhwMihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4
cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4NCBleHAyKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4
cDIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAyKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGV4cDIoaGFsZjR4MiB4KSB7
CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBleHAyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGV4cDIoaGFs
ZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4
cDIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBleHAyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cDIoeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZXhwMihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGV4
cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cDIoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gZXhwMih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAyKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBleHAyKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZWdyZWVzKGhhbGYyIHgpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBkZWdyZWVzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZWdyZWVzKGhh
bGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRlZ3Jl
ZXMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRlZ3JlZXMoaGFsZjQgeCkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZWdyZWVzKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGVncmVlcyh4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBkZWdyZWVzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIGRlZ3JlZXMoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdy
ZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjJ4MyBkZWdyZWVzKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVl
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVl
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRlZ3JlZXMoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGVncmVlcyh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBkZWdyZWVzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIGRlZ3JlZXMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgZGVncmVlcyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZWdyZWVzKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGVncmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBkZWdyZWVzKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRl
Z3JlZXMoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZGVncmVlcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRlZ3JlZXMoaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBkZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGRlZ3JlZXMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGRlZ3JlZXMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZGVncmVl
cyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBk
ZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBk
ZWdyZWVzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBk
ZWdyZWVzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZGVncmVlcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBk
ZWdyZWVzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gZGVncmVlcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBk
ZWdyZWVzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiByYWRpYW5zKGhh
bGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFucyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyByYWRpYW5zKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gcmFkaWFucyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJhZGlhbnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IHJhZGlhbnMoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBy
YWRpYW5zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gcmFkaWFucyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByYWRpYW5zKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJhZGlhbnMoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlh
bnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyByYWRpYW5zKGhhbGYyeDMgeCkgeworICAgIGhhbGYy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5z
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5z
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHJhZGlhbnMoaGFsZjJ4
NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmFkaWFucyh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIHJhZGlhbnMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgcmFkaWFucyhoYWxmM3gzIHgp
IHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBy
YWRpYW5zKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IHJhZGlhbnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmFkaWFucyh4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIHJhZGlhbnMoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSByYWRpYW5zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJhZGlh
bnMoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
cmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
cmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByYWRpYW5zKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHJhZGlhbnMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgcmFkaWFucyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJh
ZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJh
ZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJh
ZGlhbnMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJh
ZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmFkaWFucyh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJh
ZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmFkaWFucyh4WzNdWzJdKTsKKyAg
ICByZXN1bHRbM11bM10gPSByYWRpYW5zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiByY3AoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyByY3AoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHJjcCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgcmNwKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmNwKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHJjcCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSByY3AoeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gcmNwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJj
cChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBy
Y3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgcmNwKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBy
Y3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHJjcChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSByY3AoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBy
Y3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIHJjcChoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjN4MyByY3AoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBy
Y3AoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgcmNwKGhhbGYzeDQg
eCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
cmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBy
Y3AoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmNwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIHJjcChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBy
Y3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIHJjcChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBy
Y3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJj
cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCByY3AoaGFsZjR4NCB4KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJj
cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNw
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSByY3AoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmNwKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHJjcCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSByY3Ao
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmNwKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiByc3FydChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyByc3FydChoYWxmMyB4KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJz
cXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCByc3FydChoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHJzcXJ0KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHJzcXJ0KGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIHJzcXJ0KGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHJzcXJ0KGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJz
cXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHJzcXJ0KGhhbGYzeDIgeCkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHJzcXJ0KGhhbGYzeDMg
eCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJz
cXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHJzcXJ0KGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHJzcXJ0KGhhbGY0eDIgeCkgeworICAgIGhh
bGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHJzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHJzcXJ0KGhh
bGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJz
cXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHJzcXJ0KGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJz
cXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IHJzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBzYXR1cmF0ZShoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBzYXR1cmF0ZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNh
dHVyYXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBzYXR1cmF0ZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVy
YXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IHNhdHVyYXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIHNhdHVy
YXRlKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHNh
dHVyYXRlKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IHNhdHVyYXRlKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRl
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVy
YXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNhdHVyYXRlKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNh
dHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHNhdHVyYXRlKGhhbGYzeDMgeCkgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IHNhdHVyYXRlKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRl
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVy
YXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNh
dHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNhdHVyYXRlKGhhbGY0eDIgeCkgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgzIHNhdHVyYXRlKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRl
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVy
YXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNh
dHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHNhdHVy
YXRlKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRl
KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVy
YXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNhdHVyYXRlKHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IHNhdHVyYXRlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiBkZHhfY29hcnNlKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHhfY29hcnNlKGhhbGYzIHgpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9jb2Fy
c2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeF9jb2Fyc2UoaGFsZjQg
eCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGRkeF9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4
X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZHhfY29hcnNlKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeF9jb2Fyc2UoaGFsZjJ4MiB4KSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHhfY29hcnNlKGhhbGYyeDMg
eCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2Uo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMng0IGRkeF9jb2Fyc2UoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9j
b2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2NvYXJzZSh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHhfY29hcnNlKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeF9jb2Fyc2UoaGFsZjN4MiB4KSB7CisgICAgaGFs
ZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgZGR4X2NvYXJzZShoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJz
ZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
ZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZHhf
Y29hcnNlKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGRkeF9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4
X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZGR4X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNl
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBk
ZHhfY29hcnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeF9j
b2Fyc2UoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhf
Y29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgz
IGRkeF9jb2Fyc2UoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29h
cnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9j
b2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQg
ZGR4X2NvYXJzZShoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fy
c2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2Nv
YXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gZGR4X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHhfY29hcnNlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZGR4X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHhf
Y29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHhfZmluZSho
YWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBkZHhfZmluZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBkZHhfZmluZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeF9maW5l
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeF9maW5lKGhhbGYyeDIg
eCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5l
KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGRkeF9maW5lKGhhbGYy
eDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9m
aW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMng0IGRkeF9maW5lKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRk
eF9maW5lKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gzIGRkeF9maW5lKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9m
aW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRk
eF9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGRkeF9maW5l
KGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeF9maW5lKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5l
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9m
aW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgzIGRkeF9maW5lKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1b
Ml0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeF9maW5lKGhhbGY0eDQg
eCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5l
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9m
aW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9
IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVsz
XSA9IGRkeF9maW5lKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHlf
Y29hcnNlKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5
X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBkZHlfY29hcnNlKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9jb2Fyc2UoeFsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeV9jb2Fyc2UoaGFsZjQgeCkgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGRkeV9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBkZHlfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngyIGRkeV9jb2Fyc2UoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHlfY29hcnNlKGhhbGYyeDMgeCkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMng0IGRkeV9jb2Fyc2UoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fy
c2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gyIGRkeV9jb2Fyc2UoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZGR5X2Nv
YXJzZShoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9j
b2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZHlfY29hcnNlKGhhbGYz
eDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fy
c2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGRkeV9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5X2Nv
YXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlfY29hcnNlKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGRkeV9jb2Fyc2UoaGFsZjR4
MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJz
ZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHlfY29h
cnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRkeV9jb2Fyc2Uo
aGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5
X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9jb2Fy
c2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZGR5X2NvYXJzZSho
YWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlf
Y29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRk
eV9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5X2NvYXJz
ZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29hcnNlKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
ZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHlfY29hcnNlKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBkZHlfZmluZShoYWxmMiB4KSB7Cisg
ICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBk
ZHlfZmluZShoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRk
eV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBkZHlf
ZmluZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9m
aW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeV9maW5lKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGRkeV9maW5lKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGRkeV9maW5lKGhhbGYyeDMgeCkgeworICAg
IGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGRk
eV9maW5lKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5l
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGRkeV9maW5lKGhhbGYz
eDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gzIGRkeV9maW5lKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGRkeV9maW5lKGhhbGYzeDQgeCkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5l
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9m
aW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHgyIGRkeV9maW5lKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGRk
eV9maW5lKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5l
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJl
c3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9m
aW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeV9maW5lKGhhbGY0eDQgeCkgeworICAgIGhh
bGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRk
eV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeV9maW5l
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmd2lkdGgoaGFsZjIgeCkg
eworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBm
d2lkdGgoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lk
dGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZ3aWR0aCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZndpZHRoKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZndpZHRoKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGZ3aWR0aCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmd2lkdGgoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZndpZHRoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngyIGZ3aWR0aChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRo
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDMgZndpZHRoKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IGZ3aWR0aChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndp
ZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRo
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZndpZHRoKHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZ3aWR0aChoYWxmM3gyIHgp
IHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBmd2lkdGgo
aGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndp
ZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRo
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
ZndpZHRoKGhhbGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZ3aWR0aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3
aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmd2lkdGgoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZndpZHRoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGZ3aWR0aChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIGZ3aWR0aChoYWxmNHgzIHgpIHsKKyAgICBo
YWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZndpZHRoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZ3aWR0aCh4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBmd2lkdGgoaGFsZjR4NCB4KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBm
d2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZndpZHRoKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lk
dGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmd2lkdGgoeFsy
XVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZndpZHRoKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZ3aWR0aCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmd2lkdGgoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gZndpZHRoKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK2Zsb2F0IHNxcnQoZmxvYXQgeCkgeworICAgIHJldHVybiBwb3coeCwgMC41KTsK
K30KK2Zsb2F0IGxvZzIoZmxvYXQgeCkgeworICAgIHJldHVybiBsb2coeCkgLyBsb2coMik7Cit9
CitmbG9hdCBsb2cxMChmbG9hdCB4KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygxMCk7Cit9
CitmbG9hdCBmcmFjKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAtIGZsb29yKHgpOworfQorZmxv
YXQgZXhwMihmbG9hdCB4KSB7CisgICAgcmV0dXJuIGV4cCh4ICogbG9nKDIpKTsKK30KK2Zsb2F0
IGRlZ3JlZXMoZmxvYXQgeCkgeworICAgIHJldHVybiB4ICogMTgwIC8gUEk7Cit9CitmbG9hdCBy
YWRpYW5zKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAqIFBJIC8gMTgwOworfQorZmxvYXQgcmNw
KGZsb2F0IHgpIHsKKyAgICByZXR1cm4gMSAvIHg7Cit9CitmbG9hdCByc3FydChmbG9hdCB4KSB7
CisgICAgcmV0dXJuIDEgLyBzcXJ0KHgpOworfQorZmxvYXQgc2F0dXJhdGUoZmxvYXQgeCkgewor
ICAgIHJldHVybiBjbGFtcCh4LCAwLCAxKTsKK30KK2Zsb2F0IGRkeF9jb2Fyc2UoZmxvYXQgeCkg
eworICAgIHJldHVybiBkZHgoeCk7Cit9CitmbG9hdCBkZHhfZmluZShmbG9hdCB4KSB7CisgICAg
cmV0dXJuIGRkeCh4KTsKK30KK2Zsb2F0IGRkeV9jb2Fyc2UoZmxvYXQgeCkgeworICAgIHJldHVy
biBkZHkoeCk7Cit9CitmbG9hdCBkZHlfZmluZShmbG9hdCB4KSB7CisgICAgcmV0dXJuIGRkeSh4
KTsKK30KK2Zsb2F0IGZ3aWR0aChmbG9hdCB4KSB7CisgICAgcmV0dXJuIGFicyhkZHgoeCkpICsg
YWJzKGRkeSh4KSk7Cit9CitmbG9hdDIgY29zKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY29zKGZsb2F0MyB4KSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
Y29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IGNvcyhmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvcyh4WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBjb3MoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gY29zKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjb3MoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MngzIGNvcyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gY29zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBjb3Mo
ZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3MoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNv
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBj
b3MoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgY29zKGZsb2F0
M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGNvcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3Mo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3MoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gY29zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjb3Mo
ZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNv
cyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gY29zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBj
b3MoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
Y29zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgY29zKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjb3MoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3MoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgc2luKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgc2luKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IHNpbihmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lu
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW4o
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gc2luKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBzaW4oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHNpbihmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzaW4oZmxvYXQyeDQgeCkg
eworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNp
bih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lu
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBzaW4oZmxvYXQzeDIg
eCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgc2luKGZsb2F0M3gzIHgpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3g0IHNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW4oZmxvYXQ0eDIgeCkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
bih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2lu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW4oZmxvYXQ0eDMg
eCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNpbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0eDQgc2luKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW4oeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHNpbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzaW4oeFszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gc2luKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
dGFuKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW4o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgdGFuKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHRhbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHRhbihmbG9hdDQg
eCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW4oeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0
YW4oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHRhbihmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0YW4oZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFu
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW4oZmxvYXQzeDIgeCkgeworICAgIGZs
b2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
dGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgdGFuKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IHRhbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbih4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSB0YW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSB0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiB0YW4oZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSB0YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyB0YW4oZmxvYXQ0eDMgeCkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
dGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0
YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHRhbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
dGFuKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gdGFuKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRhbih4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSB0YW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
dGFuKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYWNvcyhmbG9hdDIg
eCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBhY29zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
YWNvcyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNv
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFj
b3MoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhY29zKGZsb2F0NCB4KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGFjb3MoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBhY29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBh
Y29zKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYWNvcyhmbG9hdDJ4MyB4
KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhY29zKGZsb2F0Mng0IHgp
IHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWNvcyh4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhY29zKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhY29z
KGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFjb3Mo
ZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
Y29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNvcyh4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYWNvcyhmbG9hdDN4NCB4
KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3MoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhY29zKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gYWNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNv
cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MiBhY29zKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29z
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhY29zKGZsb2F0NHgzIHgpIHsKKyAg
ICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3Mo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
Y29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gYWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFjb3MoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NHg0IGFjb3MoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFj
b3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFjb3MoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhY29zKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gYWNvcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhY29zKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWNv
cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhY29zKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDIgYXNpbihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNpbihmbG9hdDMgeCkgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhc2luKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzaW4oeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBhc2luKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gYXNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2luKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBhc2luKGZsb2F0MngyIHgpIHsKKyAgICBm
bG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgYXNpbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCBhc2luKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gYXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2luKHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhc2luKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9h
dDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzaW4oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0
M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzeDQgYXNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGFzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4o
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBhc2luKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBh
c2luKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MyBhc2luKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNp
bih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGFzaW4oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGFzaW4oZmxv
YXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2lu
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGFzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGFzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbih4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4o
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNpbih4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBhc2luKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYXRh
bihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgYXRhbihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYXRhbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGF0YW4oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhdGFuKGZs
b2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhdGFuKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbih4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBhdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4MiBhdGFuKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYXRhbihm
bG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhdGFuKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhdGFuKGZs
b2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRh
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbih4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGF0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBhdGFuKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MiBhdGFuKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3gzIGF0YW4oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
dGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYXRhbihm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBhdGFuKGZsb2F0NHgyIHgpIHsKKyAgICBm
bG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFu
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhdGFuKGZsb2F0NHgz
IHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
dGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGF0YW4oZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGF0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGF0
YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGF0YW4oeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBhdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gYXRhbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gYXRhbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhdGFuKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgY29zaChmbG9hdDIgeCkgeworICAgIGZsb2F0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3NoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY29zaChmbG9hdDMgeCkg
eworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBjb3NoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvc2goeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBjb3NoKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2go
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gY29zaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3No
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjb3NoKGZsb2F0MngyIHgp
IHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgY29zaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Y29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBjb3NoKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gY29zaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
b3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBjb3NoKGZsb2F0M3gyIHgpIHsK
KyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNv
c2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGNvc2goZmxvYXQzeDMgeCkgewor
ICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29z
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgY29zaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGNvc2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29zaCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBjb3NoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBjb3NoKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zaCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBjb3NoKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gY29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29z
aCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGNvc2goeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0
IGNvc2goZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3No
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGNvc2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Y29zaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY29zaCh4WzJd
WzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGNvc2goeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY29zaCh4WzNdWzJdKTsKKyAg
ICByZXN1bHRbM11bM10gPSBjb3NoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDIgc2luaChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgc2luaChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNpbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBzaW5oKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBz
aW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
c2luaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaW5oKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBzaW5oKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDMgc2luaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
bmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBzaW5oKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lu
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBzaW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBzaW5oKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5o
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIHNpbmgoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDQgc2luaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
bmgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW5oKGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBzaW5oKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW5o
KGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBzaW5oKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbmgoeFszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNpbmgoZmxvYXQ0eDQgeCkgeworICAg
IGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNp
bmgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzaW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzaW5oKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc2luaCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaW5oKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgdGFuaChmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdGFuaChm
bG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRhbmgoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCB0YW5oKGZsb2F0NCB4KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW5oKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IHRhbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdGFuaCh4WzJdKTsKKyAgICByZXN1bHRb
M10gPSB0YW5oKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0YW5oKGZs
b2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFu
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgdGFuaChmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5o
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0YW5oKGZsb2F0Mng0IHgpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSB0
YW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW5oKGZsb2F0
M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRh
bmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHRhbmgoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5oKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFu
aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgdGFuaChmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5o
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
dGFuaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiB0YW5oKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0
YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyB0YW5oKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gdGFuaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHRhbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IHRhbmgoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSB0YW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5o
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
dGFuaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuaCh4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSB0YW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDIgY2VpbChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY2VpbChmbG9hdDMgeCkgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWls
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNlaWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBjZWlsKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBjZWlsKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gY2VpbCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjZWlsKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjZWlsKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDMgY2VpbChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4NCBjZWlsKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gY2VpbCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2Vp
bCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBjZWlsKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWls
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3gzIGNlaWwoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDQgY2VpbChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGNlaWwoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNl
aWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBjZWlsKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjZWlsKGZs
b2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2Vp
bCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBjZWlsKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNlaWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjZWlsKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNlaWwo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGNlaWwoZmxvYXQ0eDQg
eCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjZWlsKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGNlaWwoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNl
aWwoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY2VpbCh4WzJdWzNdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNlaWwoeFszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2VpbCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBjZWlsKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZXhwKGZsb2F0
MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
ZXhwKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGV4cCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGV4cChmbG9hdDQgeCkgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGV4cCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBleHAoeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gZXhwKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBleHAoZmxvYXQy
eDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGV4cChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBleHAoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBleHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBl
eHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBleHAoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDMgZXhwKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBleHAoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGV4cChm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4
cCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhw
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBleHAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZXhwKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBleHAoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBl
eHAoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MyBleHAoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGV4cCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZXhwKGZsb2F0
NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGV4cCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZXhwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cCh4WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBleHAoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZXhwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZmxvb3IoZmxvYXQyIHgpIHsKKyAg
ICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZmxvb3Io
ZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29y
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgZmxvb3IoZmxvYXQ0IHgpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGZsb29yKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MiBmbG9vcihmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGZsb29yKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbG9vcihm
bG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZs
b29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBm
bG9vcihmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZs
b29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBmbG9vcihmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZs
b29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBmbG9vcihmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZs
b29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBmbG9vcihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZs
b29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBmbG9vcihmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZs
b29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29yKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmbG9vcihmbG9hdDR4MyB4
KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZs
b29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZsb29yKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBmbG9vcihmbG9hdDR4NCB4KSB7Cisg
ICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZs
b29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZsb29yKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAg
IHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29y
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJlc3Vs
dFszXVszXSA9IGZsb29yKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
bG9nKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2co
eFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgbG9nKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBsb2coeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGxvZyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGxvZyhmbG9hdDQg
eCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGxvZyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBsb2coeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gbG9nKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBs
b2coZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGxvZyhmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2coZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBsb2coeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2coZmxvYXQzeDIgeCkgeworICAgIGZs
b2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbG9nKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbG9nKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBsb2coeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IGxvZyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gbG9nKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBsb2coeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBsb2coeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBsb2coZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9n
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBsb2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2coZmxvYXQ0eDMgeCkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBs
b2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
bG9nKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGxvZyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2coeFsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbG9nKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZyh4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBsb2coeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bG9nKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcm91bmQoZmxvYXQy
IHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgcm91bmQoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHJvdW5kKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgcm91bmQoZmxv
YXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IHJvdW5kKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiByb3VuZChmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5k
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MyByb3VuZChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4NCByb3VuZChmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiByb3VuZChmbG9hdDN4MiB4KSB7CisgICAgZmxv
YXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyByb3VuZChmbG9hdDN4MyB4KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCByb3VuZChmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJv
dW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiByb3VuZChmbG9hdDR4MiB4KSB7CisgICAgZmxv
YXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHJvdW5kKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyByb3VuZChm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJv
dW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5k
KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCByb3VuZChmbG9hdDR4
NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5k
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1b
M10pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOwor
ICAgIHJlc3VsdFszXVszXSA9IHJvdW5kKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDIgdHJ1bmMoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdHJ1bmMoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5j
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgdHJ1bmMoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHRydW5jKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0cnVuYyhmbG9hdDJ4MiB4KSB7CisgICAg
ZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MyB0cnVuYyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0cnVuYyhmbG9hdDJ4NCB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IHRydW5jKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0cnVuYyhm
bG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRy
dW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyB0
cnVuYyhmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRy
dW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCB0
cnVuYyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRy
dW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJlc3VsdFsy
XVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHRydW5jKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiB0cnVuYyhm
bG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRy
dW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyB0cnVuYyhmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRy
dW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHRydW5jKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IHRydW5jKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCB0cnVuYyhmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5j
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3Vs
dFsyXVszXSA9IHRydW5jKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IHRydW5jKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHRydW5jKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4KGZsb2F0MiB4KSB7CisgICAgZmxvYXQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR4
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR4KGZsb2F0MyB4KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZGR4KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IGRkeChmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gZGR4KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBkZHgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MngzIGRkeChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBkZHgoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gZGR4KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MiBkZHgoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR4
KGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBk
ZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGRkeChmbG9hdDN4NCB4KSB7CisgICAg
ZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBkZHgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZGR4KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MiBkZHgoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGRkeCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gZGR4KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBkZHgoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZGR4KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeCh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZGR4KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9h
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZGR4KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeCh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBkZHgoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4KHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGRkeCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHgo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZGR4KHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgZGR5KGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR5KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGRkeSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IGRkeShmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZGR5KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeSh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBkZHkoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR5KHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBkZHkoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGRk
eShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZGR5KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHkoZmxvYXQy
eDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR5KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHkoZmxv
YXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHko
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR5KGZsb2F0M3gzIHgp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3g0IGRkeShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
ZGR5KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHkoZmxvYXQ0
eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZGR5KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHkoZmxv
YXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHko
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDQgZGR5KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZGR5KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHko
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5KHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGRkeSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHkoeFszXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gZGR5KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDIgc3FydChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgc3FydChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IHNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBzcXJ0KGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBz
cXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
c3FydCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBzcXJ0KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
cXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDMgc3FydChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNx
cnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBzcXJ0KGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3Fy
dCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBzcXJ0KGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIHNxcnQoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
cXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDQgc3FydChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNx
cnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3FydCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzcXJ0KHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzcXJ0KGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzcXJ0
KGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBzcXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNxcnQoeFszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNxcnQoZmxvYXQ0eDQgeCkgeworICAg
IGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNx
cnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3FydCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNxcnQoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc3FydCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzcXJ0KHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbG9nMihmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9nMihm
bG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzIoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBsb2cyKGZsb2F0NCB4KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGxvZzIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICByZXN1bHRb
M10gPSBsb2cyKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cyKGZs
b2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9n
Mih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbG9nMihmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cyKGZsb2F0Mng0IHgpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMih4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBs
b2cyKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2cyKGZsb2F0
M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxv
ZzIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGxvZzIoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9n
Mih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbG9nMihmbG9hdDN4NCB4KSB7Cisg
ICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cy
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
bG9nMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiBsb2cyKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBs
b2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gbG9nMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2cyKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbG9nMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gbG9nMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGxvZzIoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IGxvZzIoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBsb2cyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cy
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbG9nMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
bG9nMih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGxvZzIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsb2cyKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDIgbG9nMTAoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9nMTAoZmxvYXQzIHgpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGxvZzEwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgbG9nMTAoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGxvZzEwKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cxMChmbG9hdDJ4MiB4KSB7
CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBsb2cxMChmbG9hdDJ4MyB4KSB7CisgICAgZmxv
YXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cxMChmbG9hdDJ4NCB4KSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxv
ZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBs
b2cxMChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MyBsb2cxMChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxv
ZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBsb2cxMChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxv
ZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBs
b2cxMChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEwKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2cxMChmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxv
ZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGxvZzEwKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4NCBsb2cxMChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxv
ZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEw
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzEwKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZnJhYyhmbG9hdDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmcmFjKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZnJhYyhmbG9h
dDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBmcmFjKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZyYWMoeFsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBmcmFjKGZsb2F0NCB4KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGZyYWMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXN1bHRbM10g
PSBmcmFjKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBmcmFjKGZsb2F0
MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZnJhYyhmbG9hdDJ4MyB4KSB7CisgICAg
ZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBmcmFjKGZsb2F0Mng0IHgpIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmcmFj
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBmcmFjKGZsb2F0M3gy
IHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGZyYWMoZmxvYXQzeDMg
eCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZnJhYyhmbG9hdDN4NCB4KSB7CisgICAg
ZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJh
Yyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmcmFjKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MiBmcmFjKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFj
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
ZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmcmFjKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
cmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZnJhYyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGZyYWMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NHg0IGZyYWMoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBmcmFjKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZyYWMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZnJh
Yyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmcmFjKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IGZyYWMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZnJhYyh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSBmcmFjKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgZXhwMihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZXhwMihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGV4cDIoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBleHAyKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gZXhwMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAyKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBleHAyKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDMgZXhwMihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4NCBleHAyKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gZXhwMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBleHAyKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBleHAyKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIGV4cDIoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDQgZXhwMihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGV4cDIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBl
eHAyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBleHAyKGZsb2F0
NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4
cDIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBleHAyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBleHAyKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhw
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGV4cDIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGV4cDIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBleHAyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cDIoeFsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGV4cDIoZmxvYXQ0eDQgeCkg
eworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZXhwMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGV4cDIoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZXhwMih4WzJdWzNdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBleHAyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBl
eHAyKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGVncmVlcyhmbG9h
dDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgZGVncmVlcyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGVncmVlcyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRlZ3JlZXMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBkZWdyZWVzKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBkZWdyZWVzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gZGVncmVlcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZWdyZWVzKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZWdyZWVzKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZGVncmVlcyhmbG9hdDJ4MyB4KSB7
CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBk
ZWdyZWVzKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZGVncmVlcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZWdyZWVzKHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZWdyZWVzKGZsb2F0M3gyIHgp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gz
IGRlZ3JlZXMoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgZGVncmVlcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gZGVncmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZWdyZWVzKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZWdyZWVzKGZsb2F0NHgy
IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZWdyZWVzKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRlZ3JlZXMo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGRlZ3JlZXMoZmxvYXQ0
eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVz
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZWdyZWVz
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZWdyZWVz
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gZGVncmVlcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZWdyZWVz
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZGVncmVlcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZWdyZWVz
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmFkaWFucyhmbG9hdDIg
eCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFucyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgcmFkaWFucyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gcmFkaWFucyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHJhZGlhbnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCByYWRpYW5zKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSByYWRpYW5zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gcmFkaWFucyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByYWRpYW5zKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByYWRpYW5zKGZsb2F0MngyIHgpIHsKKyAg
ICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgcmFkaWFucyhmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSByYWRpYW5zKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByYWRp
YW5zKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gcmFkaWFucyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiByYWRpYW5zKGZsb2F0M3gyIHgpIHsK
KyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHJh
ZGlhbnMoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzeDQgcmFkaWFucyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IHJhZGlhbnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gcmFkaWFucyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiByYWRpYW5zKGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByYWRpYW5zKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyByYWRpYW5zKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSByYWRpYW5zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJhZGlhbnMoeFsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHJhZGlhbnMoZmxvYXQ0eDQg
eCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJhZGlhbnMoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gcmFkaWFucyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJhZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gcmFkaWFucyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSByYWRpYW5zKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmNwKGZsb2F0MiB4KSB7Cisg
ICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmNwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcmNwKGZsb2F0
MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcmNwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJjcCh4WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHJjcChmbG9hdDQgeCkgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmNwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJjcCh4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSByY3AoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gcmNwKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByY3AoZmxvYXQyeDIgeCkgewor
ICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngzIHJjcChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBy
Y3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4NCByY3AoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSByY3AoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByY3AoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiByY3AoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDMgcmNwKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNw
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3Ao
eFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHJjcChmbG9hdDN4NCB4
KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
cmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBy
Y3AoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmNwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MiByY3AoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyByY3AoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgcmNwKGZsb2F0NHg0IHgpIHsK
KyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3Ao
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSByY3AoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmNwKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJjcCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSByY3AoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmNwKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcnNxcnQoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJz
cXJ0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcnNxcnQoZmxvYXQzIHgp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgcnNxcnQoZmxvYXQ0IHgpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IHJzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IHJzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByc3FydChm
bG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJz
cXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhb
MV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyByc3FydChmbG9hdDJ4MyB4
KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJz
cXJ0KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByc3FydChmbG9h
dDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiByc3FydChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MyByc3FydChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCByc3FydChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MiByc3FydChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyByc3FydChmbG9hdDR4MyB4KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJz
cXJ0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCByc3FydChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJz
cXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJlc3VsdFsz
XVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9
IHJzcXJ0KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgc2F0dXJhdGUo
ZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRl
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgc2F0dXJhdGUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgc2F0dXJhdGUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJlc3VsdFszXSA9
IHNhdHVyYXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBzYXR1cmF0
ZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBz
YXR1cmF0ZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzYXR1cmF0ZShmbG9hdDJ4NCB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNh
dHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MiBzYXR1cmF0ZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRl
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBzYXR1cmF0ZShmbG9h
dDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVy
YXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNh
dHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCBzYXR1cmF0ZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVy
YXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNh
dHVyYXRlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzYXR1cmF0
ZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsz
XVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzYXR1cmF0ZShmbG9hdDR4
MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRl
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVy
YXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNh
dHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4NCBzYXR1cmF0ZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVy
YXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNh
dHVyYXRlKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHNhdHVyYXRlKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2NvYXJzZShmbG9hdDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgZGR4X2NvYXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBkZHhfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9j
b2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1
bHRbM10gPSBkZHhfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MiBkZHhfY29hcnNlKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgZGR4X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhf
Y29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBkZHhfY29hcnNlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2Uo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBkZHhfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBkZHhfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRkeF9j
b2Fyc2UoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2Uo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2NvYXJz
ZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR4X2NvYXJzZShm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGRkeF9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJz
ZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
ZGR4X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHhfY29h
cnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhfY29hcnNl
KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29h
cnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBk
ZHhfY29hcnNlKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29h
cnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9j
b2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0
IGRkeF9jb2Fyc2UoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9j
b2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4
X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gZGR4X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHhfY29hcnNl
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gZGR4X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBk
ZHhfY29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2Zp
bmUoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeF9m
aW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgZGR4X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9m
aW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgZGR4X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9m
aW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGRkeF9maW5lKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHhf
ZmluZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
MyBkZHhfZmluZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5l
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHhfZmluZShmbG9hdDJ4NCB4KSB7CisgICAg
ZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHhfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5l
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9m
aW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHhfZmluZShm
bG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4NCBkZHhfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRk
eF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhf
ZmluZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5l
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHhfZmluZShmbG9h
dDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9m
aW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBkZHhfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRk
eF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGRkeF9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeF9maW5lKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5X2NvYXJzZShmbG9hdDIgeCkg
eworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgZGR5X2NvYXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNl
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBkZHlfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9jb2Fyc2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBkZHlfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBkZHlfY29hcnNlKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDMgZGR5X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4NCBkZHlfY29hcnNlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fy
c2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MiBkZHlfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fy
c2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRk
eV9jb2Fyc2UoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fy
c2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGRkeV9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2Nv
YXJzZSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR5X2NvYXJz
ZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGRkeV9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2Nv
YXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR5X2NvYXJzZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlf
Y29hcnNlKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHlfY29h
cnNlKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlf
Y29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBkZHlfY29hcnNlKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2Uo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRk
eV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGRkeV9jb2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NHg0IGRkeV9jb2Fyc2UoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eV9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJz
ZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeV9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gZGR5X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29h
cnNlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBkZHlfY29hcnNlKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5
X2ZpbmUoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRk
eV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgZGR5X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgZGR5X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRk
eV9maW5lKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGRkeV9maW5lKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBk
ZHlfZmluZShmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MyBkZHlfZmluZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9m
aW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHlfZmluZShmbG9hdDJ4NCB4KSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHlfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9m
aW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eV9maW5lKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHlfZmlu
ZShmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4NCBkZHlfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9m
aW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBk
ZHlfZmluZShmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5l
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9m
aW5lKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHlfZmluZShm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4NCBkZHlfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9m
aW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGRkeV9maW5lKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeV9maW5lKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZndpZHRoKGZsb2F0MiB4KSB7
CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
ZndpZHRoKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBm
d2lkdGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZ3aWR0aCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGZ3aWR0aChm
bG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZndpZHRoKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZ3aWR0aCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmd2lk
dGgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZndpZHRoKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBmd2lkdGgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngzIGZ3aWR0aChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBm
d2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lk
dGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBmd2lkdGgoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gZndpZHRoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBm
d2lkdGgoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDMgZndpZHRoKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3
aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3g0IGZ3aWR0aChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZ3aWR0aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBmd2lkdGgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBm
d2lkdGgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZndpZHRoKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBmd2lkdGgoZmxvYXQ0eDIgeCkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0
aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBmd2lkdGgoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBm
d2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGZ3aWR0aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0eDQgZndpZHRoKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gZndpZHRoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmd2lkdGgoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZndpZHRoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZ3aWR0aCh4WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBmd2lkdGgoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
ZndpZHRoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK25hdGl2ZSBmbG9hdCBw
b3coZmxvYXQsIGZsb2F0KTsKK2hhbGYgcG93KGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJu
IGhhbGYocG93KGZsb2F0KHgpLCBmbG9hdCh5KSkpOworfQoraGFsZiBzdGVwKGhhbGYgeSwgaGFs
ZiB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEgOiAwOworfQoraGFsZiBsZGV4cChoYWxmIHgs
IGhhbGYgZSkgeworICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQoraGFsZiBmbW9kKGhhbGYg
eCwgaGFsZiB5KSB7CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGhhbGYgbXVs
dGlwbGUgPSBoYWxmKHdob2xlKSAqIHk7CisgICAgcmV0dXJuIHggLSBtdWx0aXBsZTsKK30KK2hh
bGYyIHBvdyhoYWxmMiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHBvdyhoYWxmMyB4LCBoYWxmMyB5KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gcG93KHhbMl0sIHlb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBwb3coaGFsZjQgeCwgaGFsZjQgeSkg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IHBvdyh4WzJd
LCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBwb3coeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyeDIgcG93KGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHBvdyhoYWxmMngzIHgs
IGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBv
dyh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBw
b3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHBvdyhoYWxmMng0IHgsIGhh
bGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHBvdyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3co
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBwb3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzeDIgcG93KGhhbGYzeDIgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgcG93KGhhbGYzeDMgeCwgaGFsZjN4MyB5KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgcG93KGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBwb3coeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcG93KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNd
LCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBwb3coeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gcG93KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHBvdyh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBwb3coeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgcG93KGhhbGY0eDIg
eCwgaGFsZjR4MiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHBvdyh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjR4MyBwb3coaGFsZjR4MyB4LCBoYWxmNHgzIHkpIHsKKyAgICBoYWxmNHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBv
dyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBw
b3coeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcG93KHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHBvdyh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBwb3coeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
cG93KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5
WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBwb3coaGFsZjR4NCB4LCBo
YWxmNHg0IHkpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3co
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBwb3coeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gcG93KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHBv
dyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJl
c3VsdFsyXVszXSA9IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBw
b3coeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcG93KHhbM11bMV0sIHlb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBwb3coeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIHN0ZXAoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsx
XSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHN0ZXAoaGFsZjMgeCwgaGFs
ZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
c3RlcCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc3RlcChoYWxm
NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHN0ZXAo
eFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gc3RlcCh4WzFdLCB5WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBzdGVwKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHN0ZXAoeFszXSwgeVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc3RlcChoYWxmMngyIHgsIGhhbGYy
eDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDMgc3RlcChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVw
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IHN0ZXAoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
c3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsx
XVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc3RlcChoYWxm
M3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVw
KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHN0ZXAo
aGFsZjN4MyB4LCBoYWxmM3gzIHkpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4NCBzdGVwKGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBd
WzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVw
KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHN0ZXAoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
c3RlcChoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFsz
XVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBzdGVwKGhhbGY0eDMgeCwgaGFsZjR4
MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVw
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBd
LCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IHN0ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgc3RlcChoYWxmNHg0IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHN0ZXAoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3Rl
cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBzdGVwKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBzdGVwKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IHN0ZXAoeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyIGxkZXhwKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbGRleHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwg
eVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxkZXhwKGhhbGYzIHgsIGhhbGYz
IHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRleHAoeFswXSwgeVsw
XSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
bGRleHAoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxkZXhwKGhh
bGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRl
eHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gbGRleHAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbGRleHAoeFsz
XSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbGRleHAoaGFsZjJ4MiB4
LCBoYWxmMngyIHkpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBs
ZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4MyBsZGV4cChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxk
ZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGxkZXhwKGhhbGYyeDQgeCwgaGFsZjJ4NCB5
KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRl
eHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDIgbGRleHAoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxm
M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4
cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBsZGV4cChoYWxmM3gzIHgsIGhhbGYzeDMgeSkg
eworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxkZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhw
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGxkZXhwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IGxkZXhwKGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRleHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsx
XVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGRleHAoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGRleHAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGRleHAoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
bGRleHAoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
bGRleHAoaGFsZjR4MiB4LCBoYWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFd
WzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBs
ZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFd
LCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBsZGV4cChoYWxmNHgz
IHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGxkZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxk
ZXhwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGxkZXhwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGxkZXhwKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxkZXhw
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxkZXhwKHhbM11bMl0sIHlb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGxkZXhwKGhhbGY0eDQgeCwg
aGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRl
eHAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbGRleHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbGRleHAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gbGRleHAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbGRleHAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGRleHAoeFsyXVszXSwgeVsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gbGRleHAoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gbGRleHAoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
bGRleHAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbGRleHAoeFszXVsz
XSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGZtb2QoaGFsZjIgeCwg
aGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIGZtb2QoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZt
b2QoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gZm1vZCh4WzJdLCB5WzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZm1vZChoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtb2QoeFswXSwgeVswXSk7CisgICAgcmVzdWx0
WzFdID0gZm1vZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbW9kKHhbMl0sIHlbMl0p
OworICAgIHJlc3VsdFszXSA9IGZtb2QoeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDIgZm1vZChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
bW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZm1vZChoYWxmMngzIHgs
IGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZt
b2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZm1vZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGZtb2QoaGFsZjJ4
NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBmbW9kKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1vZCh4
WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtb2QoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZm1vZChoYWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAg
IGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZt
b2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGZtb2QoaGFsZjN4MyB4LCBoYWxmM3gzIHkpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZtb2QoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4
WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmbW9kKGhh
bGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1vZCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZt
b2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmbW9kKHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtb2QoeFsyXVszXSwgeVsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZm1vZChoYWxmNHgyIHgsIGhhbGY0eDIg
eSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjR4MyBmbW9kKGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZt
b2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1b
MV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZm1vZCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBmbW9kKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZtb2Qo
eFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZm1vZCho
YWxmNHg0IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZtb2QoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4WzJd
WzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmbW9kKHhbMl1bM10sIHlbMl1bM10p
OworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbW9k
KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZtb2QoeFszXVszXSwgeVsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZmxvYXQgc3RlcChmbG9hdCB5LCBmbG9h
dCB4KSB7CisgICAgcmV0dXJuIHggPj0geSA/IDEgOiAwOworfQorZmxvYXQgbGRleHAoZmxvYXQg
eCwgZmxvYXQgZSkgeworICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQorZmxvYXQgZm1vZChm
bG9hdCB4LCBmbG9hdCB5KSB7CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGZs
b2F0IG11bHRpcGxlID0gZmxvYXQod2hvbGUpICogeTsKKyAgICByZXR1cm4geCAtIG11bHRpcGxl
OworfQorZmxvYXQyIHBvdyhmbG9hdDIgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3co
eFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBwb3coZmxvYXQzIHgs
IGZsb2F0MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsy
XSA9IHBvdyh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHBvdyhm
bG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gcG93KHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHBvdyh4WzNdLCB5
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgcG93KGZsb2F0MngyIHgsIGZs
b2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MyBwb3coZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBv
dyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDQgcG93KGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBw
b3coeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10sIHlb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
cG93KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNdLCB5
WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgcG93KGZsb2F0M3gyIHgs
IGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHBvdyhmbG9hdDN4MyB4
LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHBvdyh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gcG93KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
NCBwb3coZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBwb3coeFswXVszXSwgeVswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcG93KHhbMV1bM10sIHlbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgcG93KGZsb2F0NHgyIHgsIGZsb2F0NHgy
IHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJd
WzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHBvdyh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgcG93KGZsb2F0NHgzIHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFsw
XVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhb
Ml1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHBvdyh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBwb3coeFszXVsyXSwgeVszXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHBvdyhmbG9hdDR4NCB4LCBmbG9h
dDR4NCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHBvdyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3co
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBwb3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93
KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gcG93KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHBv
dyh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBwb3coeFszXVsxXSwgeVsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcG93KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IHBvdyh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyIHN0ZXAoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAo
eFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBzdGVwKGZsb2F0MyB4
LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3RlcCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHN0ZXAoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBz
dGVwKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gc3RlcCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0p
OworICAgIHJlc3VsdFsyXSA9IHN0ZXAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gc3Rl
cCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgc3RlcChmbG9h
dDJ4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgewor
ICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHN0ZXAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gc3RlcCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDIgc3RlcChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MyBzdGVwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3RlcCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHN0ZXAoZmxv
YXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3RlcCh4WzJdWzNdLCB5WzJdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgc3RlcChmbG9hdDR4MiB4LCBmbG9h
dDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0s
IHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgc3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5KSB7CisgICAgZmxv
YXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzdGVwKHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBzdGVwKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4NCBzdGVwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBdWzNdLCB5WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVwKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHN0ZXAoeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBdLCB5WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHN0ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc3Rl
cCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxkZXhw
KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbGRleHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBsZGV4cChmbG9hdDMgeCwgZmxvYXQzIHkp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxkZXhwKHhbMF0sIHlbMF0p
OworICAgIHJlc3VsdFsxXSA9IGxkZXhwKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IGxk
ZXhwKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbGRleHAoZmxv
YXQ0IHgsIGZsb2F0NCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBs
ZGV4cCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZGV4cCh4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBsZGV4cCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZGV4cCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGRleHAoZmxvYXQy
eDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbGRleHAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkg
eworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4
cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbGRleHAoZmxvYXQyeDQg
eCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBsZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBs
ZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbGRleHAoZmxvYXQzeDIgeCwgZmxvYXQz
eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbGRleHAoZmxv
YXQzeDMgeCwgZmxvYXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4
cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbGRleHAoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkg
eworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBsZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbGRleHAoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4
cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgbGRleHAoZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBs
ZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4
cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBsZGV4cCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDQgbGRleHAoZmxvYXQ0eDQgeCwgZmxvYXQ0eDQgeSkgeworICAgIGZs
b2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBs
ZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4
cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZGV4cCh4WzNdWzJdLCB5WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsZGV4cCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGZtb2QoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MyBmbW9kKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZm1vZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbW9kKHhbMV0sIHlb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBmbW9kKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZm1vZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBm
bW9kKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAg
cmVzdWx0WzNdID0gZm1vZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyeDIgZm1vZChmbG9hdDJ4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9k
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGZtb2QoZmxvYXQyeDMgeCwg
ZmxvYXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
bW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgZm1vZChmbG9h
dDJ4NCB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgZm1vZChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5
KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBmbW9kKGZsb2F0M3gzIHgsIGZs
b2F0M3gzIHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1v
ZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBmbW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3g0IGZtb2QoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1v
ZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbW9kKHhbMF1bM10sIHlb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZm1vZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBmbW9kKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtb2QoeFsxXVsz
XSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1vZCh4
WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1vZChm
bG9hdDR4MiB4LCBmbG9hdDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1v
ZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgZm1vZChmbG9hdDR4MyB4LCBmbG9hdDR4
MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1v
ZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVsw
XSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBmbW9kKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBmbW9kKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBm
bG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1v
ZCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBmbW9kKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZtb2QoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1vZCh4
WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbW9kKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZtb2QoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gZm1vZCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitoYWxmIHNtb290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZiB4KSB7Cisg
ICAgaGFsZiB0ID0gY2xhbXAoKHggLSBlZGdlMCkgLyAoZWRnZTEgLSBlZGdlMCksIDAsIDEpOwor
ICAgIHJldHVybiB0ICogdCAqICgzIC0gMiAqIHQpOworfQoraGFsZiBsZXJwKGhhbGYgeCwgaGFs
ZiB5LCBoYWxmIHMpIHsKKyAgICByZXR1cm4geCAqICgxIC0gcykgKyB5ICogczsKK30KK2hhbGYg
Zm1hKGhhbGYgeCwgaGFsZiB5LCBoYWxmIHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQor
aGFsZiBtYWQoaGFsZiB4LCBoYWxmIHksIGhhbGYgeikgeworICAgIHJldHVybiB4ICogeSArIHo7
Cit9CitoYWxmMiBzbW9vdGhzdGVwKGhhbGYyIHgsIGhhbGYyIHksIGhhbGYyIHopIHsKKyAgICBo
YWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBzbW9vdGhzdGVwKGhhbGYzIHgsIGhhbGYzIHksIGhhbGYz
IHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBd
LCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJlc3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHNtb290aHN0ZXAoaGFsZjQgeCwgaGFsZjQgeSwgaGFs
ZjQgeikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhb
MF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBzbW9vdGhzdGVwKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIHNtb290aHN0ZXAoaGFsZjJ4MiB4LCBoYWxmMngyIHksIGhhbGYy
eDIgeikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDMgc21vb3Roc3RlcChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhb
MF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAo
eFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhz
dGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290
aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDQgc21vb3Roc3RlcChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBd
LCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1b
MV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFsw
XVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc21vb3Roc3RlcCh4
WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVw
KHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0
ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc21vb3Ro
c3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzbW9v
dGhzdGVwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNtb290aHN0ZXAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhb
MV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAo
eFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3Rl
cCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhz
dGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmM3gzIHNtb290aHN0ZXAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhhbGYzeDMgeikgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwg
eVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1b
Ml0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4
WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVw
KHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290aHN0
ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21vb3Ro
c3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzbW9v
dGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3g0IHNtb290aHN0ZXAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhb
MF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNtb290aHN0ZXAo
eFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhz
dGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290
aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc21v
b3Roc3RlcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
bW9vdGhzdGVwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNtb290aHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc21vb3Roc3RlcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBzbW9vdGhzdGVwKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHgyIHNtb290aHN0ZXAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0
eDIgeikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IHNtb290aHN0ZXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc21vb3Roc3RlcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBzbW9vdGhzdGVwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxm
NHgzIHopIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhz
dGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNtb290
aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21v
b3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBz
bW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBzbW9vdGhzdGVwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHNtb290aHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gc21vb3Roc3RlcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBzbW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzbW9vdGhzdGVwKGhhbGY0eDQgeCwgaGFsZjR4
NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBzbW9vdGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJd
WzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzbW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwg
elszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJd
LCB6WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzbW9vdGhzdGVwKHhbM11bM10sIHlbM11b
M10sIHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsZXJwKGhhbGYyIHgs
IGhhbGYyIHksIGhhbGYyIHopIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bGVycCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBsZXJwKGhhbGYzIHgsIGhhbGYz
IHksIGhhbGYzIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4
WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0p
OworICAgIHJlc3VsdFsyXSA9IGxlcnAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IGxlcnAoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZjQgeikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsZXJwKHhbMF0sIHlbMF0sIHpbMF0pOworICAg
IHJlc3VsdFsxXSA9IGxlcnAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbGVy
cCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZXJwKHhbM10sIHlbM10sIHpb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxlcnAoaGFsZjJ4MiB4LCBoYWxm
MngyIHksIGhhbGYyeDIgeikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJw
KHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMg
bGVycChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgbGVycChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7CisgICAg
aGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBd
LCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBsZXJwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIGxlcnAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGxlcnAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhh
bGYzeDMgeikgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAo
eFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0s
IHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsx
XVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGxlcnAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhh
bGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAo
eFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0s
IHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFswXVszXSwgeVsw
XVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBd
LCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBsZXJwKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIGxlcnAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0eDIgeikgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gbGVycCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBsZXJwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxmNHgzIHop
IHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBsZXJwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IGxlcnAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
bGVycCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4NCBsZXJwKGhhbGY0eDQgeCwgaGFsZjR4NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxm
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGxlcnAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJw
KHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAoeFsy
XVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJdWzNd
LCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZXJwKHhbM11bMF0sIHlb
M11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxlcnAoeFszXVsxXSwgeVszXVsx
XSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbGVycCh4WzNdWzJdLCB5WzNdWzJdLCB6
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBsZXJwKHhbM11bM10sIHlbM11bM10sIHpbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBmbWEoaGFsZjIgeCwgaGFsZjIgeSwg
aGFsZjIgeikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwg
eVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBmbWEoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMgeikg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwgeVswXSwgelsw
XSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZtYSh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
Zm1hKGhhbGY0IHgsIGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gZm1hKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtYSh4
WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbWEoeFsyXSwgeVsyXSwgelsyXSk7
CisgICAgcmVzdWx0WzNdID0gZm1hKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIGZtYShoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7Cisg
ICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1b
MF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGZtYShoYWxmMngzIHgsIGhhbGYyeDMgeSwg
aGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1h
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwg
eVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZm1hKGhhbGYyeDQgeCwgaGFsZjJ4
NCB5LCBoYWxmMng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1h
KHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbWEoeFswXVszXSwg
eVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1hKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIGZtYShoYWxmM3gyIHgsIGhhbGYzeDIgeSwg
aGFsZjN4MiB6KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1h
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwg
eVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1b
MV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZm1hKGhhbGYzeDMgeCwgaGFsZjN4
MyB5LCBoYWxmM3gzIHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1h
KHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwg
eVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1b
MV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmbWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1hKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZtYSh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmbWEoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYz
eDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwg
eVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1b
Ml0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNdLCB6
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBm
bWEoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1hKHhb
Ml1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgy
IGZtYShoYWxmNHgyIHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBm
bWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhb
M11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFd
LCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBmbWEo
aGFsZjR4MyB4LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
bWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhb
MV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBd
LCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsy
XVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlbMl1bMl0s
IHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNdWzBdLCB5WzNdWzBdLCB6WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGZtYShoYWxmNHg0IHgsIGhhbGY0eDQgeSwgaGFs
ZjR4NCB6KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhb
MF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVsw
XVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1hKHhbMF1bM10sIHlbMF1bM10s
IHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZtYSh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBmbWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZm1hKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZtYSh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmbWEo
eFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11b
MF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbWEoeFszXVsyXSwgeVszXVsy
XSwgelszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZm1hKHhbM11bM10sIHlbM11bM10sIHpb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYWQoaGFsZjIgeCwgaGFsZjIg
eSwgaGFsZjIgeikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFsw
XSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtYWQoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMg
eikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFswXSwgeVswXSwg
elswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IG1hZCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgbWFkKGhhbGY0IHgsIGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gbWFkKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IG1h
ZCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYWQoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmVzdWx0WzNdID0gbWFkKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngyIG1hZChoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7
CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlb
MF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG1hZChoYWxmMngzIHgsIGhhbGYyeDMg
eSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsy
XSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbWFkKGhhbGYyeDQgeCwgaGFs
ZjJ4NCB5LCBoYWxmMng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYWQoeFswXVsz
XSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWFkKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1hZChoYWxmM3gyIHgsIGhhbGYzeDIg
eSwgaGFsZjN4MiB6KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbWFkKGhhbGYzeDMgeCwgaGFs
ZjN4MyB5LCBoYWxmM3gzIHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJd
LCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWFkKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IG1hZCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBtYWQoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhh
bGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4
WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsx
XSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5WzBdWzNd
LCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYWQoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWFk
KHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIG1hZChoYWxmNHgyIHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFk
KHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNd
WzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBt
YWQoaGFsZjR4MyB4LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFk
KHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwg
eVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1bMl0sIHlbMl1b
Ml0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1hZCh4WzNdWzBdLCB5WzNdWzBdLCB6
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYWQoeFszXVsxXSwgeVszXVsxXSwgelszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWFkKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG1hZChoYWxmNHg0IHgsIGhhbGY0eDQgeSwg
aGFsZjR4NCB6KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFk
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwg
eVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1b
M10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IG1hZCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbWFkKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IG1hZCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YWQoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhb
M11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFd
LCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVsz
XVsyXSwgelszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWFkKHhbM11bM10sIHlbM11bM10s
IHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IHNtb290aHN0ZXAoZmxv
YXQgZWRnZTAsIGZsb2F0IGVkZ2UxLCBmbG9hdCB4KSB7CisgICAgZmxvYXQgdCA9IGNsYW1wKCh4
IC0gZWRnZTApIC8gKGVkZ2UxIC0gZWRnZTApLCAwLCAxKTsKKyAgICByZXR1cm4gdCAqIHQgKiAo
MyAtIDIgKiB0KTsKK30KK2Zsb2F0IGxlcnAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcykgewor
ICAgIHJldHVybiB4ICogKDEgLSBzKSArIHkgKiBzOworfQorZmxvYXQgZm1hKGZsb2F0IHgsIGZs
b2F0IHksIGZsb2F0IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxvYXQgbWFkKGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxv
YXQyIHNtb290aHN0ZXAoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgc21vb3Roc3RlcChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0
MyB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhb
MF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHNtb290aHN0ZXAoZmxvYXQ0IHgsIGZsb2F0NCB5
LCBmbG9hdDQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Ro
c3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0s
IHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmVzdWx0WzNdID0gc21vb3Roc3RlcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgc21vb3Roc3RlcChmbG9hdDJ4MiB4LCBmbG9hdDJ4
MiB5LCBmbG9hdDJ4MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHNtb290aHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMg
eSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgc21vb3Roc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5LCBmbG9hdDJ4NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHNtb290aHN0ZXAoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gc21vb3Roc3RlcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgc21vb3Roc3RlcChmbG9hdDN4MiB4LCBm
bG9hdDN4MiB5LCBmbG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBzbW9vdGhzdGVwKGZsb2F0M3gzIHgs
IGZsb2F0M3gzIHksIGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwg
elsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHNtb290aHN0ZXAoZmxv
YXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzbW9vdGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwg
elsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1b
Ml0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsx
XVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5
WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0s
IHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsy
XSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
c21vb3Roc3RlcChmbG9hdDR4MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxv
YXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5
WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0s
IHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNtb290aHN0ZXAo
eFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc21vb3Roc3Rl
cCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgc21vb3Roc3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7Cisg
ICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBd
WzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhb
MF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAo
eFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3Rl
cCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhz
dGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290
aHN0ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21v
b3Roc3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBz
bW9vdGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IHNtb290aHN0ZXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gc21vb3Roc3RlcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBzbW9vdGhzdGVwKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBzbW9vdGhzdGVwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZs
b2F0NHg0IHopIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21v
b3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
bW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc21vb3Roc3RlcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBzbW9vdGhzdGVwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IHNtb290aHN0ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gc21vb3Roc3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzbW9vdGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IHNtb290aHN0ZXAoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc21vb3Roc3RlcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBzbW9vdGhzdGVwKHhbM11bMV0sIHlbM11bMV0sIHpbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNtb290aHN0ZXAoeFszXVsyXSwgeVszXVsyXSwgelsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc21vb3Roc3RlcCh4WzNdWzNdLCB5WzNdWzNdLCB6
WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxlcnAoZmxvYXQyIHgsIGZs
b2F0MiB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bGVycCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbGVycChmbG9hdDMgeCwgZmxv
YXQzIHksIGZsb2F0MyB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBs
ZXJwKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGxlcnAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gbGVycCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IGxlcnAoZmxvYXQ0IHgsIGZsb2F0NCB5LCBmbG9hdDQgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGxlcnAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0WzNdID0gbGVycCh4WzNd
LCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGVycChmbG9h
dDJ4MiB4LCBmbG9hdDJ4MiB5LCBmbG9hdDJ4MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MngzIGxlcnAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikg
eworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbGVycChmbG9hdDJ4NCB4LCBmbG9hdDJ4
NCB5LCBmbG9hdDJ4NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJw
KHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFsw
XVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBd
LCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsy
XSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6
WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbGVycChmbG9hdDN4MiB4
LCBmbG9hdDN4MiB5LCBmbG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVy
cCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MyBsZXJwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHksIGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxl
cnAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3g0IGxlcnAoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZs
b2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGxlcnAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBs
ZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAo
eFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
bGVycChmbG9hdDR4MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxvYXQ0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
bGVycCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0eDMgbGVycChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVsw
XSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9
IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbGVy
cCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZXJwKHhb
M11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
NCBsZXJwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZsb2F0NHg0IHopIHsKKyAgICBmbG9hdDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBsZXJwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGxl
cnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVycCh4
WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxlcnAoeFsyXVszXSwg
eVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbGVycCh4WzNdWzBdLCB5WzNd
WzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZXJwKHhbM11bMV0sIHlbM11bMV0s
IHpbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxlcnAoeFszXVsyXSwgeVszXVsyXSwgelsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbGVycCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGZtYShmbG9hdDIgeCwgZmxvYXQyIHks
IGZsb2F0MiB6KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFsw
XSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZm1hKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxv
YXQzIHopIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5
WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbWEoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmVzdWx0WzJdID0gZm1hKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgZm1hKGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBmbWEoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gZm1hKHhbMl0s
IHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGZtYSh4WzNdLCB5WzNdLCB6WzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgZm1hKGZsb2F0MngyIHgsIGZsb2F0MngyIHks
IGZsb2F0MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Zm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVsw
XSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbWEoZmxv
YXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Zm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4
WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
eDQgZm1hKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBmbG9hdDJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZm1hKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
Zm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtYSh4
WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDIgZm1hKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIGZtYShmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBd
WzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwg
elswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Zm1hKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4NCBmbWEoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZs
b2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBmbWEoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
Zm1hKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlb
Ml1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtYSh4WzJdWzNdLCB5WzJdWzNd
LCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1hKGZsb2F0NHgy
IHgsIGZsb2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Zm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlb
M11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFd
LCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgZm1hKGZsb2F0NHgz
IHgsIGZsb2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Zm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4
WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsy
XSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlb
Ml1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFd
LCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbWEoeFsyXVsyXSwgeVsyXVsyXSwgelsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBmbWEoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGZtYShmbG9hdDR4NCB4LCBmbG9hdDR4NCB5LCBmbG9h
dDR4NCB6KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4
WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsx
XSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNd
LCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmbWEoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1h
KHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNd
WzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwg
eVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11b
Ml0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZtYSh4WzNdWzNdLCB5WzNdWzNdLCB6
WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG1hZChmbG9hdDIgeCwgZmxv
YXQyIHksIGZsb2F0MiB6KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBt
YWQoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbWFkKGZsb2F0MyB4LCBmbG9hdDMg
eSwgZmxvYXQzIHopIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1hZCh4
WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7
CisgICAgcmVzdWx0WzJdID0gbWFkKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgbWFkKGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1hZCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbWFk
KHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IG1hZCh4WzNdLCB5WzNdLCB6WzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbWFkKGZsb2F0MngyIHgsIGZsb2F0
MngyIHksIGZsb2F0MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQo
eFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1b
MV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBt
YWQoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDQgbWFkKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IG1hZCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDIgbWFkKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBm
bG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIG1hZChmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6
KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBd
LCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0s
IHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbWFkKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4NCBtYWQoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgewor
ICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0s
IHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYWQoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbWFkKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IG1hZCh4WzJdWzNdLCB5
WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbWFkKGZs
b2F0NHgyIHgsIGZsb2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11b
MF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbWFkKGZs
b2F0NHgzIHgsIGZsb2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQo
eFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWFkKHhbMl1b
MF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1hZCh4WzJdWzFdLCB5
WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYWQoeFsyXVsyXSwgeVsyXVsy
XSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlbM11bMF0sIHpb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IG1hZChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5
LCBmbG9hdDR4NCB6KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQo
eFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1b
Ml0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5
WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVsw
XSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBtYWQoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gbWFkKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IG1h
ZCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYWQoeFsz
XVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWFkKHhbM11bMl0s
IHlbM11bMl0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IG1hZCh4WzNdWzNdLCB5WzNd
WzNdLCB6WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc25v
cm1hbChoYWxmKTsKK25hdGl2ZSBib29sIGlzbm9ybWFsKGZsb2F0KTsKK2Jvb2wyIGlzbm9ybWFs
KGhhbGYyIHgpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2wzIGlzbm9ybWFsKGhhbGYzIHgpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IGlzbm9ybWFsKGhhbGY0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNub3Jt
YWwoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbDIgaXNub3JtYWwoZmxvYXQy
IHgpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIGlzbm9ybWFsKGZsb2F0MyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGlzbm9ybWFsKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbm9ybWFsKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGlzbm9ybWFsKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBpc25vcm1hbChmbG9hdDQgeCkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBpc25vcm1hbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc25vcm1hbCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBpc25vcm1hbCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc25vcm1hbCh4
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9h
dCk7Citib29sIGlzZmluaXRlKGhhbGYgeCkgeworICAgIHJldHVybiBpc2Zpbml0ZShmbG9hdCh4
KSk7Cit9CituYXRpdmUgYm9vbCBpc2luZihmbG9hdCk7Citib29sIGlzaW5mKGhhbGYgeCkgewor
ICAgIHJldHVybiBpc2luZihmbG9hdCh4KSk7Cit9CituYXRpdmUgYm9vbCBpc25hbihmbG9hdCk7
Citib29sIGlzbmFuKGhhbGYgeCkgeworICAgIHJldHVybiBpc25hbihmbG9hdCh4KSk7Cit9Citi
b29sMiBpc2Zpbml0ZShoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2Zpbml0ZShoYWxmMyB4KSB7CisgICAgYm9vbDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzZmluaXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBpc2Zpbml0ZShoYWxmNCB4KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlz
ZmluaXRlKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGlzZmluaXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBpc2lu
ZihoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBpc2luZihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzaW5mKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGlzaW5mKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc2luZiho
YWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzaW5mKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IGlzaW5mKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMiBpc25hbihoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBpc25hbihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGlzbmFuKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBpc25hbihoYWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGlzbmFuKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGlzbmFuKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK2Jvb2wyIGlzZmluaXRlKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlz
ZmluaXRlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2Zpbml0ZShmbG9h
dDMgeCkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc2Zpbml0ZSh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBpc2Zpbml0ZSh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc2Zp
bml0ZSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgaXNmaW5pdGUoZmxvYXQ0
IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNmaW5pdGUoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gaXNmaW5pdGUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNmaW5p
dGUoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNmaW5pdGUoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wyIGlzaW5mKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGlzaW5mKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2luZihmbG9hdDMgeCkgeworICAgIGJvb2wz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc2luZih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBp
c2luZih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc2luZih4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgaXNpbmYoZmxvYXQ0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gaXNpbmYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNpbmYoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gaXNpbmYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNpbmYoeFszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIGlzbmFuKGZsb2F0MiB4KSB7CisgICAgYm9v
bDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzbmFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc25hbihmbG9hdDMg
eCkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc25hbih4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBpc25hbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc25hbih4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgaXNuYW4oZmxvYXQ0IHgpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNuYW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0g
aXNuYW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNuYW4oeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gaXNuYW4oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBpc29yZGVyZWQo
aGFsZiB4LCBoYWxmIHkpIHsKKyAgICByZXR1cm4gKHggPT0geCkgJiYgKHkgPT0geSk7Cit9Citi
b29sIGlzdW5vcmRlcmVkKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8
IGlzbmFuKHkpOworfQorYm9vbDIgaXNvcmRlcmVkKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBi
b29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IGlzb3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgaXNvcmRlcmVkKGhhbGYzIHgsIGhhbGYzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzb3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc29yZGVyZWQoeFsyXSwg
eVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlzb3JkZXJlZChoYWxmNCB4LCBo
YWxmNCB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IGlzb3Jk
ZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1bm9yZGVy
ZWQoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4
WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgaXN1bm9yZGVyZWQoaGFs
ZjMgeCwgaGFsZjMgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vu
b3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgaXN1bm9yZGVyZWQoaGFsZjQgeCwgaGFsZjQgeSkgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc3Vub3JkZXJlZCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGlzb3JkZXJlZChmbG9h
dCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuICh4ID09IHgpICYmICh5ID09IHkpOworfQorYm9v
bCBpc3Vub3JkZXJlZChmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8
IGlzbmFuKHkpOworfQorYm9vbDIgaXNvcmRlcmVkKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAg
IGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc29yZGVyZWQoeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gaXNvcmRlcmVkKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sMyBpc29yZGVyZWQoZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgYm9vbDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNvcmRlcmVkKHhb
Ml0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc29yZGVyZWQoZmxvYXQ0
IHgsIGZsb2F0NCB5KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3Jk
ZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7
CisgICAgcmVzdWx0WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9
IGlzb3JkZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1
bm9yZGVyZWQoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGlzdW5vcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzdW5v
cmRlcmVkKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc3Vub3Jk
ZXJlZChmbG9hdDMgeCwgZmxvYXQzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gaXN1bm9yZGVyZWQoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gaXN1bm9yZGVy
ZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gaXN1bm9yZGVyZWQoeFsyXSwgeVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlzdW5vcmRlcmVkKGZsb2F0NCB4LCBmbG9h
dDQgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBp
c3Vub3JkZXJlZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUg
ZmxvYXQgYXRhbjIoZmxvYXQsIGZsb2F0KTsKK2hhbGYgYXRhbjIoaGFsZiB4LCBoYWxmIHkpIHsK
KyAgICByZXR1cm4gaGFsZihhdGFuMihmbG9hdCh4KSwgZmxvYXQoeSkpKTsKK30KK2hhbGYyIGF0
YW4yKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gYXRhbjIoeFswXSwgeVswXTsKKyAgICByZXN1bHRbMV0gPSBhdGFuMih4WzFdLCB5WzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBhdGFuMihoYWxmMyB4LCBoYWxmMyB5KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07CisgICAg
cmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBhdGFuMih4WzJd
LCB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBhdGFuMihoYWxmNCB4LCBoYWxm
NCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlb
MF07CisgICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBh
dGFuMih4WzJdLCB5WzJdOworICAgIHJlc3VsdFszXSA9IGF0YW4yKHhbM10sIHlbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgYXRhbjIoaGFsZjJ4MiB4LCBoYWxmMngyIHkpIHsK
KyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBhdGFuMihoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0YW4y
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMng0IGF0YW4yKGhhbGYyeDQgeCwgaGFsZjJ4NCB5KSB7CisgICAgaGFsZjJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIo
eFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgYXRhbjIoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhdGFuMih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4MyBhdGFuMihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGF0YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4yKHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGF0YW4yKGhhbGYz
eDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRh
bjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwg
eVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgYXRhbjIoaGFsZjR4MiB4
LCBoYWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
dGFuMih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFu
Mih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuMih4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuMih4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBhdGFuMihoYWxmNHgzIHgsIGhhbGY0eDMgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGF0YW4yKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4y
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGF0YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGF0YW4yKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGF0YW4yKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4yKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4yKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGF0YW4yKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
YXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsx
XSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRh
bjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwg
eVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXRhbjIoeFszXVszXSwgeVszXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBhdGFuMihmbG9hdDIgeCwgZmxvYXQyIHkpIHsK
KyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07Cisg
ICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzIGF0YW4yKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gYXRhbjIoeFswXSwgeVswXTsKKyAgICByZXN1bHRbMV0gPSBhdGFuMih4
WzFdLCB5WzFdOworICAgIHJlc3VsdFsyXSA9IGF0YW4yKHhbMl0sIHlbMl07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBhdGFuMihmbG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF07CisgICAgcmVzdWx0
WzFdID0gYXRhbjIoeFsxXSwgeVsxXTsKKyAgICByZXN1bHRbMl0gPSBhdGFuMih4WzJdLCB5WzJd
OworICAgIHJlc3VsdFszXSA9IGF0YW4yKHhbM10sIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngyIGF0YW4yKGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGF0YW4y
KGZsb2F0MngzIHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0Mng0IGF0YW4yKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
YXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gy
IGF0YW4yKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gzIGF0YW4yKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9h
dDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRh
bjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIo
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGF0YW4y
KGZsb2F0M3g0IHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRh
bjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwg
eVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIGF0YW4y
KGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXRh
bjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFszXVsxXSwg
eVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGF0YW4yKGZsb2F0NHgz
IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRh
bjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwg
eVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGF0YW4yKGZsb2F0NHg0
IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRh
bjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwg
eVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gYXRhbjIoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXRhbjIo
eFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBzaW5jb3Mo
aGFsZiB4LCB0aHJlYWQgaGFsZiogeSwgdGhyZWFkIGhhbGYqIHopIHsKKyAgICAqeSA9IHNpbih4
KTsKKyAgICAqeiA9IGNvcyh4KTsKK30KK3ZvaWQgc2luY29zKGhhbGYyIHgsIHRocmVhZCBoYWxm
MiogeSwgdGhyZWFkIGhhbGYyKiB6KSB7CisgICAgc2luY29zKHhbMF0sICYoKCp5KVswXSksICYo
KCp6KVswXSkpOworICAgIHNpbmNvcyh4WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0pKTsKK30K
K3ZvaWQgc2luY29zKGhhbGYzIHgsIHRocmVhZCBoYWxmMyogeSwgdGhyZWFkIGhhbGYzKiB6KSB7
CisgICAgc2luY29zKHhbMF0sICYoKCp5KVswXSksICYoKCp6KVswXSkpOworICAgIHNpbmNvcyh4
WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0pKTsKKyAgICBzaW5jb3MoeFsyXSwgJigoKnkpWzJd
KSwgJigoKnopWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNCB4LCB0aHJlYWQgaGFsZjQqIHks
IHRocmVhZCBoYWxmNCogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAmKCgqeilb
MF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7CisgICAgc2lu
Y29zKHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworICAgIHNpbmNvcyh4WzNdLCAmKCgq
eSlbM10pLCAmKCgqeilbM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYyeDIgeCwgdGhyZWFkIGhh
bGYyeDIqIHksIHRocmVhZCBoYWxmMngyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5
KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1b
MV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwg
JigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6
KVsxXVsxXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjJ4MyB4LCB0aHJlYWQgaGFsZjJ4MyogeSwg
dGhyZWFkIGhhbGYyeDMqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwg
JigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6
KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1b
Ml0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7
CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOworICAg
IHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKK30KK3ZvaWQg
c2luY29zKGhhbGYyeDQgeCwgdGhyZWFkIGhhbGYyeDQqIHksIHRocmVhZCBoYWxmMng0KiB6KSB7
CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAg
IHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5j
b3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2luY29zKHhb
MF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAgIHNpbmNvcyh4WzFdWzBd
LCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsxXSwgJigo
KnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYoKCp5KVsx
XVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNdLCAmKCgqeSlbMV1bM10p
LCAmKCgqeilbMV1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYzeDIgeCwgdGhyZWFkIGhhbGYz
eDIqIHksIHRocmVhZCBoYWxmM3gyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVsw
XVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0p
LCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigo
KnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsx
XVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0p
KTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7Cit9
Cit2b2lkIHNpbmNvcyhoYWxmM3gzIHgsIHRocmVhZCBoYWxmM3gzKiB5LCB0aHJlYWQgaGFsZjN4
MyogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0p
KTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7Cisg
ICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOworICAgIHNp
bmNvcyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3Mo
eFsxXVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1b
Ml0sICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAm
KCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkp
WzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsy
XSksICYoKCp6KVsyXVsyXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjN4NCB4LCB0aHJlYWQgaGFs
ZjN4NCogeSwgdGhyZWFkIGhhbGYzeDQqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkp
WzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsx
XSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAm
KCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFswXVszXSwgJigoKnkpWzBdWzNdKSwgJigoKnop
WzBdWzNdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVsw
XSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsK
KyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAg
c2luY29zKHhbMV1bM10sICYoKCp5KVsxXVszXSksICYoKCp6KVsxXVszXSkpOworICAgIHNpbmNv
cyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsy
XVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0s
ICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzNdLCAmKCgq
eSlbMl1bM10pLCAmKCgqeilbMl1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGY0eDIgeCwgdGhy
ZWFkIGhhbGY0eDIqIHksIHRocmVhZCBoYWxmNHgyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0s
ICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgq
eSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSks
ICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgq
eilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJd
WzFdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVswXSksICYoKCp6KVszXVswXSkp
OworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAmKCgqeilbM11bMV0pKTsKK30K
K3ZvaWQgc2luY29zKGhhbGY0eDMgeCwgdGhyZWFkIGhhbGY0eDMqIHksIHRocmVhZCBoYWxmNHgz
KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkp
OworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAg
ICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2lu
Y29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsy
XSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMl1bMF0sICYo
KCp5KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAmKCgqeSlb
Ml1bMV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkpWzJdWzJd
KSwgJigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVswXSksICYo
KCp6KVszXVswXSkpOworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAmKCgqeilb
M11bMV0pKTsKKyAgICBzaW5jb3MoeFszXVsyXSwgJigoKnkpWzNdWzJdKSwgJigoKnopWzNdWzJd
KSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNHg0IHgsIHRocmVhZCBoYWxmNHg0KiB5LCB0aHJlYWQg
aGFsZjR4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilb
MF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFd
KSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOwor
ICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAmKCgqeilbMF1bM10pKTsKKyAgICBz
aW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29z
KHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzFd
WzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVszXSwg
JigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7CisgICAgc2luY29zKHhbMl1bMF0sICYoKCp5
KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAmKCgqeSlbMl1b
MV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSwg
JigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbMl1bM10sICYoKCp5KVsyXVszXSksICYoKCp6
KVsyXVszXSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11b
MF0pKTsKKyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7
CisgICAgc2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkpOworICAg
IHNpbmNvcyh4WzNdWzNdLCAmKCgqeSlbM11bM10pLCAmKCgqeilbM11bM10pKTsKK30KK3ZvaWQg
c2luY29zKGZsb2F0IHgsIHRocmVhZCBmbG9hdCogeSwgdGhyZWFkIGZsb2F0KiB6KSB7CisgICAg
KnkgPSBzaW4oeCk7CisgICAgKnogPSBjb3MoeCk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDIgeCwg
dGhyZWFkIGZsb2F0MiogeSwgdGhyZWFkIGZsb2F0MiogeikgeworICAgIHNpbmNvcyh4WzBdLCAm
KCgqeSlbMF0pLCAmKCgqeilbMF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigo
KnopWzFdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDMgeCwgdGhyZWFkIGZsb2F0MyogeSwgdGhy
ZWFkIGZsb2F0MyogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAmKCgqeilbMF0p
KTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7CisgICAgc2luY29z
KHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworfQordm9pZCBzaW5jb3MoZmxvYXQ0IHgs
IHRocmVhZCBmbG9hdDQqIHksIHRocmVhZCBmbG9hdDQqIHopIHsKKyAgICBzaW5jb3MoeFswXSwg
JigoKnkpWzBdKSwgJigoKnopWzBdKSk7CisgICAgc2luY29zKHhbMV0sICYoKCp5KVsxXSksICYo
KCp6KVsxXSkpOworICAgIHNpbmNvcyh4WzJdLCAmKCgqeSlbMl0pLCAmKCgqeilbMl0pKTsKKyAg
ICBzaW5jb3MoeFszXSwgJigoKnkpWzNdKSwgJigoKnopWzNdKSk7Cit9Cit2b2lkIHNpbmNvcyhm
bG9hdDJ4MiB4LCB0aHJlYWQgZmxvYXQyeDIqIHksIHRocmVhZCBmbG9hdDJ4MiogeikgeworICAg
IHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5j
b3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhb
MV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFd
LCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKK30KK3ZvaWQgc2luY29zKGZsb2F0Mngz
IHgsIHRocmVhZCBmbG9hdDJ4MyogeSwgdGhyZWFkIGZsb2F0MngzKiB6KSB7CisgICAgc2luY29z
KHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBd
WzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFswXVsyXSwg
JigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5
KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1b
MV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSwg
JigoKnopWzFdWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDJ4NCB4LCB0aHJlYWQgZmxvYXQy
eDQqIHksIHRocmVhZCBmbG9hdDJ4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFd
KSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYo
KCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAmKCgqeilb
MF1bM10pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBd
KSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOwor
ICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKKyAgICBz
aW5jb3MoeFsxXVszXSwgJigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7Cit9Cit2b2lkIHNp
bmNvcyhmbG9hdDN4MiB4LCB0aHJlYWQgZmxvYXQzeDIqIHksIHRocmVhZCBmbG9hdDN4Miogeikg
eworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAg
ICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2lu
Y29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsw
XSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYo
KCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworfQordm9pZCBzaW5jb3MoZmxvYXQzeDMgeCwg
dGhyZWFkIGZsb2F0M3gzKiB5LCB0aHJlYWQgZmxvYXQzeDMqIHopIHsKKyAgICBzaW5jb3MoeFsw
XVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0s
ICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgq
eSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSks
ICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgq
eilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJd
WzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkp
OworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0pLCAmKCgqeilbMl1bMl0pKTsKK30K
K3ZvaWQgc2luY29zKGZsb2F0M3g0IHgsIHRocmVhZCBmbG9hdDN4NCogeSwgdGhyZWFkIGZsb2F0
M3g0KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVsw
XSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsK
KyAgICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAg
c2luY29zKHhbMF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAgIHNpbmNv
cyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsx
XVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0s
ICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNdLCAmKCgq
eSlbMV1bM10pLCAmKCgqeilbMV1bM10pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJd
WzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSks
ICYoKCp6KVsyXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0pLCAmKCgq
eilbMl1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVszXSwgJigoKnkpWzJdWzNdKSwgJigoKnopWzJd
WzNdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDR4MiB4LCB0aHJlYWQgZmxvYXQ0eDIqIHksIHRo
cmVhZCBmbG9hdDR4MiogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAm
KCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnop
WzBdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVsw
XSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsK
KyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAg
c2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworICAgIHNpbmNv
cyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11bMF0pKTsKKyAgICBzaW5jb3MoeFsz
XVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9h
dDR4MyB4LCB0aHJlYWQgZmxvYXQ0eDMqIHksIHRocmVhZCBmbG9hdDR4MyogeikgeworICAgIHNp
bmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3Mo
eFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1b
Ml0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzBdLCAm
KCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsxXSwgJigoKnkp
WzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYoKCp5KVsxXVsy
XSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAm
KCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnop
WzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsy
XSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11bMF0pKTsK
KyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7CisgICAg
c2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkpOworfQordm9pZCBz
aW5jb3MoZmxvYXQ0eDQgeCwgdGhyZWFkIGZsb2F0NHg0KiB5LCB0aHJlYWQgZmxvYXQ0eDQqIHop
IHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7Cisg
ICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNp
bmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3Mo
eFswXVszXSwgJigoKnkpWzBdWzNdKSwgJigoKnopWzBdWzNdKSk7CisgICAgc2luY29zKHhbMV1b
MF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAm
KCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkp
WzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMV1bM10sICYoKCp5KVsxXVsz
XSksICYoKCp6KVsxXVszXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAm
KCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnop
WzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsy
XSkpOworICAgIHNpbmNvcyh4WzJdWzNdLCAmKCgqeSlbMl1bM10pLCAmKCgqeilbMl1bM10pKTsK
KyAgICBzaW5jb3MoeFszXVswXSwgJigoKnkpWzNdWzBdKSwgJigoKnopWzNdWzBdKSk7CisgICAg
c2luY29zKHhbM11bMV0sICYoKCp5KVszXVsxXSksICYoKCp6KVszXVsxXSkpOworICAgIHNpbmNv
cyh4WzNdWzJdLCAmKCgqeSlbM11bMl0pLCAmKCgqeilbM11bMl0pKTsKKyAgICBzaW5jb3MoeFsz
XVszXSwgJigoKnkpWzNdWzNdKSwgJigoKnopWzNdWzNdKSk7Cit9CisKK2Jvb2wgYWxsKGJvb2wg
eCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChib29sMiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGJvb2wzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKGJvb2w0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChib29sMngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChib29sMngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGJvb2wyeDQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChib29sM3gyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGJv
b2wzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoYm9vbDN4NCB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChib29sNHgyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bGwoYm9vbDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChib29sNHg0IHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
WzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsz
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbCh1Y2hhciB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxsKHVj
aGFyMiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1Y2hhcjQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyMngyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1Y2hhcjJ4MyB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1Y2hhcjJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFy
M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyM3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRy
dWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVj
aGFyM3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVjaGFyNHgyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodWNoYXI0eDMgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbGwodWNoYXI0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bM10g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydCB4KSB7CisgICAg
cmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxsKHVzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1c2hvcnQzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKHVzaG9ydDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YWxsKHVzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbGwodXNob3J0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDJ4NCB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1c2hvcnQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodXNob3J0M3g0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKHVzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVl
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKHVzaG9ydDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1c2hv
cnQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVszXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bM10gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9
Citib29sIGFsbCh1aW50MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQzIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQ0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50MngyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50MngzIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKHVpbnQyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1aW50M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHVpbnQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bGwodWludDN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50NHgyIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodWludDR4MyB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFsbCh1aW50NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
Ml1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyIHgpIHsKKyAgICBy
ZXR1cm4geCAhPSAwOworfQorYm9vbCBhbGwoY2hhcjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
dHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChj
aGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChjaGFyNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hh
cjJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
Y2hhcjJ4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyMng0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbGwoY2hhcjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChjaGFyM3gzIHgpIHsK
KyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKGNoYXIzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
Y2hhcjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGNoYXI0eDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hhcjR4NCB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
c2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChzaG9ydDIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChzaG9ydDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQyeDQg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDN4MiB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbChzaG9ydDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDN4NCB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYWxsKHNob3J0NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxs
KHNob3J0NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
M11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7
Cit9Citib29sIGFsbChpbnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaW50MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQyeDIgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGludDJ4MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChpbnQyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChp
bnQzeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaW50M3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRy
dWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGlu
dDN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0eDIgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbChpbnQ0eDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
dHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bCBhbGwoaW50NHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
M10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmIHgpIHsKKyAgICByZXR1cm4geCAh
PSAwOworfQorYm9vbCBhbGwoaGFsZjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmMyB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCho
YWxmNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjJ4MiB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjJ4MyB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChoYWxmMng0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbGwoaGFsZjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmM3gzIHgpIHsKKyAgICBib29s
IHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGhhbGYzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjR4MiB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGhhbGY0eDMgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVl
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQgeCkg
eworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFsbChmbG9hdDIgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChmbG9hdDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbGwoZmxvYXQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFsbChmbG9hdDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbGwoZmxvYXQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQyeDQgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1b
M10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChmbG9hdDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bChmbG9hdDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChmbG9hdDN4NCB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbChmbG9hdDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGZsb2F0NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGZsb2F0NHg0
IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK2Jvb2wgYW55KGJvb2wgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citi
b29sIGFueShib29sMiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sMyB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoYm9vbDQgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sMngyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsx
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoYm9vbDJ4MyB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoYm9vbDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFueShib29sM3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sM3gzIHgpIHsKKyAgICBib29sIHJl
c3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFueShib29sM3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShib29sNHgyIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGJvb2w0eDMgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGJvb2w0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1Y2hhciB4
KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYW55KHVjaGFyMiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFueSh1Y2hhcjMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYW55KHVjaGFyMngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkodWNoYXIyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyMng0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyM3gyIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFueSh1Y2hhcjN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWNoYXIzeDQgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNHgyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyNHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZh
bHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFueSh1Y2hhcjR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bM10gIT0gMCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydCB4KSB7CisgICAgcmV0dXJu
IHggIT0gMDsKK30KK2Jvb2wgYW55KHVzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodXNo
b3J0MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbnkodXNob3J0NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55
KHVzaG9ydDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wgYW55KHVzaG9ydDJ4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAw
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodXNob3J0Mng0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydDN4MiB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBh
bnkodXNob3J0M3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1c2hvcnQzeDQgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KHVzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFueSh1c2hvcnQ0eDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55
KHVzaG9ydDR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9Citib29sIGFueSh1aW50MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50MyB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnko
dWludDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50MngyIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWludDJ4
MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbnkodWludDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFueSh1aW50M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1aW50M3gzIHgpIHsKKyAg
ICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFueSh1aW50M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1
aW50NHgyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQ0eDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVpbnQ0eDQgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShjaGFyIHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbnkoY2hhcjIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoY2hhcjMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXI0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoY2hhcjJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXIyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGNoYXIyeDQg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsz
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjN4MiB4KSB7Cisg
ICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoY2hhcjN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjN4NCB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJd
WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVszXSAhPSAwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShjaGFyNHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNl
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShjaGFyNHg0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVszXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQgeCkgeworICAgIHJldHVybiB4ICE9
IDA7Cit9Citib29sIGFueShzaG9ydDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQzIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShzaG9ydDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDJ4
MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHNo
b3J0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQzeDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHNob3J0M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sIGFueShzaG9ydDR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShzaG9ydDR4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsy
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoc2hvcnQ0eDQgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFueShpbnQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShp
bnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGludDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0g
MCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGludDQgeCkgeworICAgIGJvb2wg
cmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQyeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
ZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGlu
dDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQzeDIgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2wgYW55KGludDN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsy
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaW50M3g0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
Ml1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShpbnQ0eDIgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbnkoaW50NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNl
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFu
eShpbnQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmIHgpIHsKKyAgICByZXR1cm4geCAhPSAw
OworfQorYm9vbCBhbnkoaGFsZjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjMgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGhh
bGY0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjJ4MiB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGhhbGYyeDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wgYW55KGhhbGYyeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoaGFsZjN4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjN4MyB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbCBhbnkoaGFsZjN4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsyXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFs
ZjR4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmNHgzIHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmNHg0IHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsy
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFszXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnko
ZmxvYXQgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShmbG9hdDIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoZmxvYXQzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDQgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDJ4MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0MngzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9h
dDJ4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdWzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDN4MiB4
KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbCBhbnkoZmxvYXQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0
M3g0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDAp
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDR4MiB4KSB7CisgICAgYm9v
bCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDR4MyB4KSB7CisgICAgYm9vbCByZXN1
bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
M11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbnkoZmxvYXQ0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
Ml1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNd
ICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIGFicyh1Y2hhciB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9Cit1c2hvcnQgYWJzKHVzaG9ydCB4KSB7CisgICAgcmV0dXJuIHg7Cit9
Cit1aW50IGFicyh1aW50IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2NoYXIgYWJzKGNoYXIgeCkg
eworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQor
c2hvcnQgYWJzKHNob3J0IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAteDsK
KyAgICByZXR1cm4geDsKK30KK2ludCBhYnMoaW50IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAg
ICAgIHJldHVybiAteDsKKyAgICByZXR1cm4geDsKK30KK2hhbGYgYWJzKGhhbGYgeCkgeworICAg
IGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQorZmxvYXQg
YWJzKGZsb2F0IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAteDsKKyAgICBy
ZXR1cm4geDsKK30KK3VjaGFyMiBhYnModWNoYXIyIHgpIHsKKyAgICB1Y2hhcjIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBhYnModWNoYXIzIHgpIHsKKyAgICB1Y2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgYWJzKHVjaGFyNCB4KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMngyIGFicyh1Y2hhcjJ4MiB4KSB7CisgICAgdWNoYXIyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyeDMg
YWJzKHVjaGFyMngzIHgpIHsKKyAgICB1Y2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMng0IGFicyh1Y2hh
cjJ4NCB4KSB7CisgICAgdWNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gyIGFicyh1
Y2hhcjN4MiB4KSB7CisgICAgdWNoYXIzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MyBhYnModWNoYXIzeDMg
eCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXIzeDQgYWJzKHVjaGFyM3g0IHgpIHsKKyAgICB1Y2hhcjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgyIGFicyh1Y2hh
cjR4MiB4KSB7CisgICAgdWNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgzIGFicyh1
Y2hhcjR4MyB4KSB7CisgICAgdWNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4NCBhYnModWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFi
cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDIgYWJzKHVzaG9ydDIgeCkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDMgYWJzKHVzaG9ydDMgeCkgeworICAgIHVzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IGFicyh1c2hvcnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDJ4MiBhYnModXNob3J0MngyIHgpIHsKKyAgICB1c2hvcnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0Mngz
IGFicyh1c2hvcnQyeDMgeCkgeworICAgIHVzaG9ydDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4NCBhYnMo
dXNob3J0Mng0IHgpIHsKKyAgICB1c2hvcnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4
MiBhYnModXNob3J0M3gyIHgpIHsKKyAgICB1c2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDMgYWJz
KHVzaG9ydDN4MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IGFicyh1c2hvcnQzeDQgeCkgewor
ICAgIHVzaG9ydDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDR4MiBhYnModXNob3J0NHgyIHgpIHsKKyAgICB1c2hvcnQ0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDR4MyBhYnModXNob3J0NHgzIHgpIHsKKyAgICB1c2hvcnQ0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDQgYWJzKHVzaG9ydDR4NCB4
KSB7CisgICAgdXNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
YWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBh
YnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIGFicyh1aW50MiB4KSB7CisgICAgdWludDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGFicyh1aW50MyB4KSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBhYnModWludDQgeCkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQyeDIgYWJzKHVpbnQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBh
YnModWludDJ4MyB4KSB7CisgICAgdWludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDQgYWJzKHVpbnQyeDQg
eCkgeworICAgIHVpbnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
YWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBh
YnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDIgYWJzKHVpbnQzeDIg
eCkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIGFicyh1aW50M3gzIHgpIHsKKyAgICB1
aW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4NCBhYnModWludDN4NCB4KSB7CisgICAgdWludDN4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
YnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDIgYWJzKHVpbnQ0eDIgeCkgeworICAgIHVp
bnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
YnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgYWJzKHVpbnQ0eDMgeCkgeworICAgIHVp
bnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
YnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFi
cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHg0IGFi
cyh1aW50NHg0IHgpIHsKKyAgICB1aW50NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
YnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJz
KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIGFicyhjaGFyMiB4KSB7Cisg
ICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIGFicyhjaGFyMyB4
KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBhYnMoY2hhcjQgeCkgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyeDIgYWJzKGNoYXIyeDIgeCkgeworICAgIGNoYXIy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjJ4MyBhYnMoY2hhcjJ4MyB4KSB7CisgICAgY2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJz
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyeDQgYWJz
KGNoYXIyeDQgeCkgeworICAgIGNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJz
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzeDIgYWJz
KGNoYXIzeDIgeCkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIGFicyhjaGFyM3gzIHgp
IHsKKyAgICBjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFi
cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjN4NCBhYnMoY2hhcjN4NCB4KSB7CisgICAgY2hhcjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFi
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMo
eFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDIgYWJzKGNoYXI0eDIgeCkg
eworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJz
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDMgYWJzKGNoYXI0eDMgeCkg
eworICAgIGNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJz
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNHg0IGFicyhjaGFyNHg0IHgpIHsKKyAgICBjaGFyNHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MiBhYnMoc2hv
cnQyIHgpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
MyBhYnMoc2hvcnQzIHgpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFi
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJz
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgYWJzKHNob3J0NCB4KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRb
M10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MngyIGFicyhzaG9y
dDJ4MiB4KSB7CisgICAgc2hvcnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyeDMgYWJzKHNob3J0MngzIHgpIHsKKyAgICBzaG9y
dDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0Mng0IGFicyhzaG9ydDJ4NCB4KSB7CisgICAgc2hvcnQyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0M3gyIGFicyhzaG9ydDN4MiB4KSB7CisgICAgc2hvcnQzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDN4MyBhYnMoc2hvcnQzeDMgeCkgeworICAgIHNob3J0M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJz
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDQgYWJz
KHNob3J0M3g0IHgpIHsKKyAgICBzaG9ydDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
YnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFi
cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NHgyIGFicyhzaG9ydDR4MiB4KSB7CisgICAgc2hvcnQ0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NHgzIGFicyhzaG9ydDR4MyB4KSB7CisgICAgc2hvcnQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4NCBhYnMoc2hv
cnQ0eDQgeCkgeworICAgIHNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgYWJzKGludDIgeCkgeworICAgIGlu
dDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
YnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgYWJzKGludDMgeCkgeworICAg
IGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IGFicyhpbnQ0IHgpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDJ4MiBhYnMoaW50MngyIHgpIHsKKyAgICBpbnQyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MngzIGFicyhpbnQy
eDMgeCkgeworICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBhYnMoaW50Mng0IHgpIHsKKyAgICBp
bnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
YnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MiBhYnMoaW50M3gyIHgpIHsKKyAgICBpbnQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzeDMgYWJzKGludDN4MyB4KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3g0IGFicyhpbnQz
eDQgeCkgeworICAgIGludDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDR4MiBhYnMoaW50NHgyIHgpIHsKKyAgICBpbnQ0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFi
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDR4MyBhYnMoaW50NHgzIHgpIHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhb
Ml1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQgYWJzKGludDR4NCB4KSB7CisgICAgaW50NHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJd
KTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIGFicyhoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIGFicyhoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBhYnMoaGFs
ZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhYnMoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFicyh4WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIg
YWJzKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBhYnMoaGFsZjJ4MyB4KSB7CisgICAg
aGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgYWJzKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgYWJzKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gzIGFicyhoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGFicyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBhYnMoaGFsZjN4
NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFicyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDIgYWJzKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDMgYWJzKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
YWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGFicyhoYWxmNHg0IHgpIHsKKyAgICBo
YWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
YnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3Vs
dFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFi
cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MiBhYnMoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBhYnMoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgYWJzKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhYnMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYWJzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGFicyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhYnMoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIGFicyhmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
YnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMg
YWJzKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhYnMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IGFicyhmbG9h
dDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhYnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIGFicyhm
bG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJz
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBhYnMoZmxvYXQzeDMg
eCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YWJzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYWJzKGZsb2F0M3g0IHgpIHsKKyAgICBmbG9hdDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFicyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBhYnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIGFicyhmbG9h
dDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhYnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYWJzKHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGFicyhm
bG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFi
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhYnMo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4NCBhYnMoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFi
cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhYnMoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gYWJzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFicyh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBhYnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KwordWNoYXIgc2lnbih1Y2hhciB4KSB7CisgICAgcmV0dXJuIHggPT0gMCA/IDAgOiAxOworfQor
dXNob3J0IHNpZ24odXNob3J0IHgpIHsKKyAgICByZXR1cm4geCA9PSAwID8gMCA6IDE7Cit9Cit1
aW50IHNpZ24odWludCB4KSB7CisgICAgcmV0dXJuIHggPT0gMCA/IDAgOiAxOworfQorY2hhciBz
aWduKGNoYXIgeCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlm
ICh4ID09IDApCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorc2hvcnQgc2ln
bihzaG9ydCB4KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYg
KHggPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CitpbnQgc2lnbihp
bnQgeCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICh4ID09
IDApCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQoraGFsZiBzaWduKGhhbGYg
eCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICh4ID09IDAp
CisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorZmxvYXQgc2lnbihmbG9hdCB4
KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHggPT0gMCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9Cit1Y2hhcjIgc2lnbih1Y2hhcjIg
eCkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMg
c2lnbih1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2ln
bih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNp
Z24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBzaWduKHVjaGFyNCB4KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBz
aWduKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyeDMgc2lnbih1Y2hhcjJ4MyB4
KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBzaWduKHVjaGFyMng0IHgp
IHsKKyAgICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBzaWdu
KHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIHNpZ24o
dWNoYXIzeDMgeCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBz
aWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDQgc2lnbih1Y2hhcjN4NCB4
KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2ln
bih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBzaWduKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWdu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBzaWduKHVjaGFyNHgzIHgpIHsKKyAg
ICB1Y2hhcjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNHg0IHNpZ24odWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2ln
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQyIHNpZ24odXNob3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIHNpZ24odXNob3J0MyB4KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgc2lnbih1c2hvcnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24o
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWdu
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgc2lnbih1c2hvcnQyeDIg
eCkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MngzIHNpZ24odXNob3J0MngzIHgpIHsKKyAgICB1
c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgc2lnbih1c2hvcnQyeDQgeCkgeworICAg
IHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBz
aWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgc2lnbih1c2hv
cnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2ln
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBzaWduKHVz
aG9ydDN4MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBz
aWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4
WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IHNpZ24odXNob3J0M3g0
IHgpIHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWdu
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgc2lnbih1c2hvcnQ0eDIgeCkgeworICAgIHVzaG9y
dDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgc2lnbih1c2hvcnQ0eDMg
eCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4NCBzaWduKHVzaG9ydDR4NCB4KSB7CisgICAgdXNob3J0
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWdu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBzaWduKHVpbnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBz
aWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBzaWduKHVpbnQzIHgpIHsK
KyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IHNpZ24odWludDQgeCkgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIHNpZ24odWludDJ4MiB4KSB7CisgICAg
dWludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDJ4MyBzaWduKHVpbnQyeDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50Mng0IHNpZ24odWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2ln
bih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3gyIHNpZ24odWludDN4MiB4KSB7CisgICAgdWludDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzeDMgc2lnbih1aW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDN4NCBzaWduKHVpbnQzeDQgeCkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
Z24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIHNpZ24odWludDR4MiB4KSB7
CisgICAgdWludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIHNpZ24odWlu
dDR4MyB4KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNp
Z24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgc2lnbih1aW50NHg0IHgpIHsKKyAgICB1aW50NHg0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBzaWduKGNoYXIyIHgpIHsKKyAgICBjaGFyMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBzaWduKGNoYXIzIHgpIHsKKyAg
ICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IHNpZ24oY2hhcjQgeCkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIHNpZ24oY2hhcjJ4MiB4KSB7CisgICAgY2hh
cjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjJ4MyBzaWduKGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMng0IHNpZ24oY2hhcjJ4NCB4KSB7CisgICAgY2hhcjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyM3gyIHNpZ24oY2hhcjN4MiB4KSB7CisgICAgY2hhcjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzeDMgc2lnbihjaGFyM3gzIHgpIHsKKyAgICBjaGFyM3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjN4
NCBzaWduKGNoYXIzeDQgeCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24o
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIHNpZ24oY2hhcjR4MiB4KSB7Cisg
ICAgY2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgzIHNpZ24oY2hhcjR4
MyB4KSB7CisgICAgY2hhcjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgc2lnbihjaGFyNHg0IHgpIHsKKyAgICBjaGFyNHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgc2lnbihzaG9ydDIgeCkgeworICAgIHNob3J0MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgc2lnbihzaG9ydDMgeCkgewor
ICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBzaWduKHNob3J0NCB4KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBzaWduKHNob3J0MngyIHgpIHsK
KyAgICBzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQyeDMgc2lnbihzaG9ydDJ4MyB4KSB7CisgICAgc2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2ln
bih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDJ4NCBzaWduKHNob3J0Mng0IHgpIHsKKyAgICBzaG9ydDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWdu
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBzaWduKHNob3J0M3gyIHgpIHsKKyAg
ICBzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0M3gzIHNpZ24oc2hvcnQzeDMgeCkgeworICAg
IHNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNp
Z24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQzeDQgc2lnbihzaG9ydDN4NCB4KSB7CisgICAgc2hvcnQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2ln
bih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDR4MiBzaWduKHNob3J0NHgyIHgpIHsKKyAgICBzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDR4MyBzaWduKHNob3J0NHgzIHgpIHsKKyAgICBzaG9ydDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
aWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NHg0IHNp
Z24oc2hvcnQ0eDQgeCkgeworICAgIHNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2ln
bih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQy
IHNpZ24oaW50MiB4KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQzIHNpZ24oaW50MyB4KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
c2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgc2lnbihpbnQ0IHgpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1
bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgc2lnbihp
bnQyeDIgeCkgeworICAgIGludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MngzIHNpZ24oaW50MngzIHgpIHsKKyAgICBpbnQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyeDQgc2lnbihpbnQyeDQgeCkgeworICAgIGludDJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgc2lnbihpbnQzeDIgeCkgeworICAgIGludDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDN4MyBzaWduKGludDN4MyB4KSB7CisgICAgaW50M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50M3g0IHNpZ24oaW50M3g0IHgpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
Z24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgc2lnbihpbnQ0eDIgeCkgewor
ICAgIGludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24o
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBz
aWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDMgc2lnbihpbnQ0eDMg
eCkgeworICAgIGludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWdu
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDR4NCBzaWduKGludDR4NCB4KSB7CisgICAgaW50NHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2ln
bih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiBzaWduKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBzaWduKGhhbGYzIHgpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWdu
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IHNpZ24oaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIHNpZ24oaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBzaWduKGhhbGYyeDMgeCkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNp
Z24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IHNpZ24oaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIHNpZ24oaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgc2lnbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBz
aWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzaWduKGhh
bGYzeDQgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24o
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBz
aWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHNpZ24oaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIHNpZ24oaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24o
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpZ24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDQgc2lnbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBzaWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBz
aWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc2lnbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gc2lnbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgc2lnbihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaWduKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgc2lnbihmbG9hdDMgeCkgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2lnbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBz
aWduKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHNpZ24oeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBzaWduKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaWduKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBzaWduKGZsb2F0MngyIHgpIHsKKyAgICBmbG9h
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgc2lnbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4NCBzaWduKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWdu
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBzaWduKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBz
aWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHNpZ24oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNp
Z24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDQgc2lnbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBzaWduKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaWdu
KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyBzaWduKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2lnbih4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBzaWduKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNp
Z24oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNpZ24oZmxvYXQ0
eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2ln
bih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lnbih4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaWduKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNpZ24oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2lnbih4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBzaWduKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIG1pbih1
Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1Y2hhcjIg
bWluKHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1pbih1Y2hhcjMgeCwgdWNoYXIzIHkpIHsK
KyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhbMl0s
IHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgbWluKHVjaGFyNCB4LCB1Y2hh
cjQgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
aW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBtaW4odWNoYXIyeDIgeCwgdWNoYXIyeDIgeSkgewor
ICAgIHVjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIG1p
bih1Y2hhcjJ4MyB4LCB1Y2hhcjJ4MyB5KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
aW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
bWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBt
aW4odWNoYXIyeDQgeCwgdWNoYXIyeDQgeSkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBtaW4odWNoYXIzeDIgeCwgdWNoYXIzeDIgeSkg
eworICAgIHVjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDMgbWluKHVjaGFyM3gzIHgsIHVjaGFyM3gzIHkp
IHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IG1pbih1Y2hhcjN4
NCB4LCB1Y2hhcjN4NCB5KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4MiBtaW4odWNoYXI0eDIgeCwgdWNoYXI0eDIgeSkgeworICAgIHVj
aGFyNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBtaW4odWNo
YXI0eDMgeCwgdWNoYXI0eDMgeSkgeworICAgIHVjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtaW4o
eFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0eDQgbWluKHVjaGFyNHg0IHgsIHVjaGFyNHg0IHkpIHsKKyAg
ICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWlu
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1p
bih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
aW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgbWF4
KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1heCh1Y2hhcjMgeCwgdWNoYXIzIHkpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0sIHlb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgbWF4KHVjaGFyNCB4LCB1Y2hhcjQg
eSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0p
OworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgo
eFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBtYXgodWNoYXIyeDIgeCwgdWNoYXIyeDIgeSkgeworICAg
IHVjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIG1heCh1
Y2hhcjJ4MyB4LCB1Y2hhcjJ4MyB5KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBtYXgo
dWNoYXIyeDQgeCwgdWNoYXIyeDQgeSkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MiBtYXgodWNoYXIzeDIgeCwgdWNoYXIzeDIgeSkgewor
ICAgIHVjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
YXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDMgbWF4KHVjaGFyM3gzIHgsIHVjaGFyM3gzIHkpIHsK
KyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IG1heCh1Y2hhcjN4NCB4
LCB1Y2hhcjN4NCB5KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFd
LCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjR4MiBtYXgodWNoYXI0eDIgeCwgdWNoYXI0eDIgeSkgeworICAgIHVjaGFy
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11b
MV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBtYXgodWNoYXI0
eDMgeCwgdWNoYXI0eDMgeSkgeworICAgIHVjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtYXgoeFsz
XVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11bMV0sIHlbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0eDQgbWF4KHVjaGFyNHg0IHgsIHVjaGFyNHg0IHkpIHsKKyAgICB1
Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhb
MF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4
WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4
KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VzaG9ydCBtaW4o
dXNob3J0IHgsIHVzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1c2hv
cnQyIG1pbih1c2hvcnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwg
eVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgbWluKHVzaG9ydDMgeCwgdXNo
b3J0MyB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgbWluKHVz
aG9ydDQgeCwgdXNob3J0NCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10s
IHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgbWluKHVzaG9ydDJ4MiB4
LCB1c2hvcnQyeDIgeSkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQyeDMgbWluKHVzaG9ydDJ4MyB4LCB1c2hvcnQyeDMgeSkgeworICAgIHVz
aG9ydDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDJ4NCBtaW4odXNob3J0Mng0IHgsIHVzaG9ydDJ4NCB5KSB7Cisg
ICAgdXNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBt
aW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
bWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIg
bWluKHVzaG9ydDN4MiB4LCB1c2hvcnQzeDIgeSkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDN4MyBtaW4odXNob3J0M3gzIHgsIHVzaG9ydDN4MyB5KSB7CisgICAgdXNob3J0M3gzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4
WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4o
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0M3g0IG1pbih1c2hvcnQzeDQgeCwgdXNob3J0M3g0IHkpIHsK
KyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
eDIgbWluKHVzaG9ydDR4MiB4LCB1c2hvcnQ0eDIgeSkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NHgzIG1pbih1c2hvcnQ0eDMgeCwgdXNo
b3J0NHgzIHkpIHsKKyAgICB1c2hvcnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gbWluKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0eDQgbWluKHVzaG9ydDR4NCB4LCB1c2hvcnQ0eDQgeSkgeworICAgIHVzaG9y
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1b
M10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFd
WzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhb
M11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG1heCh1c2hv
cnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgbWF4KHVzaG9ydDMgeCwgdXNob3J0MyB5KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwg
eVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgbWF4KHVzaG9ydDQgeCwgdXNo
b3J0NCB5KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgbWF4KHVzaG9ydDJ4MiB4LCB1c2hvcnQyeDIg
eSkgeworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQyeDMgbWF4KHVzaG9ydDJ4MyB4LCB1c2hvcnQyeDMgeSkgeworICAgIHVzaG9ydDJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDJ4NCBtYXgodXNob3J0Mng0IHgsIHVzaG9ydDJ4NCB5KSB7CisgICAgdXNob3J0Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgbWF4KHVzaG9ydDN4
MiB4LCB1c2hvcnQzeDIgeSkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsy
XVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBtYXgodXNo
b3J0M3gzIHgsIHVzaG9ydDN4MyB5KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1h
eCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0M3g0IG1heCh1c2hvcnQzeDQgeCwgdXNob3J0M3g0IHkpIHsKKyAgICB1c2hvcnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNd
LCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVsz
XSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1b
M10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgbWF4KHVzaG9y
dDR4MiB4LCB1c2hvcnQ0eDIgeSkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgo
eFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NHgzIG1heCh1c2hvcnQ0eDMgeCwgdXNob3J0NHgzIHkpIHsK
KyAgICB1c2hvcnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gbWF4KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
eDQgbWF4KHVzaG9ydDR4NCB4LCB1c2hvcnQ0eDQgeSkgeworICAgIHVzaG9ydDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFsw
XVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhb
MV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4
WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgo
eFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VpbnQgbWluKHVpbnQgeCwgdWludCB5KSB7
CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1aW50MiBtaW4odWludDIgeCwgdWludDIg
eSkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7
CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MyBtaW4odWludDMgeCwgdWludDMgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlb
MV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgbWluKHVpbnQ0IHgsIHVpbnQ0IHkpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFd
LCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNd
ID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIG1pbih1
aW50MngyIHgsIHVpbnQyeDIgeSkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDJ4MyBtaW4odWludDJ4MyB4LCB1aW50MngzIHkpIHsKKyAgICB1aW50
MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDJ4NCBtaW4odWludDJ4NCB4LCB1aW50Mng0IHkpIHsKKyAgICB1aW50Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIG1pbih1aW50M3gyIHgs
IHVpbnQzeDIgeSkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
aW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIG1pbih1aW50M3gzIHgsIHVp
bnQzeDMgeSkgeworICAgIHVpbnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWlu
KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3g0IG1pbih1
aW50M3g0IHgsIHVpbnQzeDQgeSkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NHgyIG1pbih1aW50NHgyIHgsIHVpbnQ0eDIgeSkgeworICAgIHVp
bnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsz
XVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4oeFsz
XVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgbWluKHVpbnQ0
eDMgeCwgdWludDR4MyB5KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0eDQgbWluKHVpbnQ0eDQgeCwgdWludDR4NCB5KSB7CisgICAgdWludDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1bM10s
IHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFdWzNd
LCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhbM11b
M10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtYXgodWludDIgeCwg
dWludDIgeSkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwg
eVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBtYXgodWludDMgeCwgdWludDMgeSkgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhb
MV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgbWF4KHVpbnQ0IHgsIHVpbnQ0IHkpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1h
eCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVz
dWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mngy
IG1heCh1aW50MngyIHgsIHVpbnQyeDIgeSkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBtYXgodWludDJ4MyB4LCB1aW50MngzIHkpIHsKKyAg
ICB1aW50MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDJ4NCBtYXgodWludDJ4NCB4LCB1aW50Mng0IHkpIHsKKyAgICB1
aW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhb
MV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIG1heCh1aW50
M3gyIHgsIHVpbnQzeDIgeSkgeworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1b
MV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIG1heCh1aW50M3gz
IHgsIHVpbnQzeDMgeSkgeworICAgIHVpbnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3g0
IG1heCh1aW50M3g0IHgsIHVpbnQzeDQgeSkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIG1heCh1aW50NHgyIHgsIHVpbnQ0eDIgeSkgewor
ICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBt
YXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgbWF4
KHVpbnQ0eDMgeCwgdWludDR4MyB5KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgo
eFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgbWF4KHVpbnQ0eDQgeCwgdWludDR4NCB5KSB7CisgICAg
dWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhb
MF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4
WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4
KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIgbWluKGNo
YXIgeCwgY2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitjaGFyMiBtaW4o
Y2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBt
aW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyMyBtaW4oY2hhcjMgeCwgY2hhcjMgeSkgeworICAgIGNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgbWluKGNoYXI0IHgsIGNoYXI0IHkpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMngyIG1pbihjaGFyMngyIHgsIGNoYXIyeDIgeSkgeworICAgIGNoYXIyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4MyBtaW4oY2hhcjJ4MyB4LCBjaGFyMngz
IHkpIHsKKyAgICBjaGFyMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4NCBtaW4oY2hhcjJ4NCB4LCBjaGFyMng0IHkp
IHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gy
IG1pbihjaGFyM3gyIHgsIGNoYXIzeDIgeSkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
aW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
bWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIG1p
bihjaGFyM3gzIHgsIGNoYXIzeDMgeSkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWlu
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gbWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyM3g0IG1pbihjaGFyM3g0IHgsIGNoYXIzeDQgeSkgeworICAgIGNoYXIzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhb
MF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4o
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIG1pbihjaGFyNHgyIHgsIGNoYXI0
eDIgeSkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsy
XVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0eDMgbWluKGNoYXI0eDMgeCwgY2hhcjR4MyB5KSB7CisgICAgY2hhcjR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNd
WzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgbWluKGNoYXI0eDQgeCwgY2hhcjR4NCB5
KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVsw
XSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNd
WzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MiBtYXgoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtYXgoY2hhcjMgeCwgY2hhcjMgeSkgeworICAg
IGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVz
dWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgbWF4KGNoYXI0IHgsIGNoYXI0IHkpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwg
eVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMngyIG1heChjaGFyMngyIHgsIGNoYXIyeDIgeSkgeworICAgIGNoYXIyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4MyBtYXgoY2hhcjJ4MyB4LCBj
aGFyMngzIHkpIHsKKyAgICBjaGFyMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjJ4NCBtYXgoY2hhcjJ4NCB4LCBjaGFy
Mng0IHkpIHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyM3gyIG1heChjaGFyM3gyIHgsIGNoYXIzeDIgeSkgeworICAgIGNoYXIzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
M3gzIG1heChjaGFyM3gzIHgsIGNoYXIzeDMgeSkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyM3g0IG1heChjaGFyM3g0IHgsIGNoYXIzeDQgeSkgeworICAgIGNoYXIzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwg
eVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10s
IHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgyIG1heChjaGFyNHgyIHgs
IGNoYXI0eDIgeSkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1h
eCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
YXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0eDMgbWF4KGNoYXI0eDMgeCwgY2hhcjR4MyB5KSB7CisgICAgY2hhcjR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4
KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1h
eCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0eDQgbWF4KGNoYXI0eDQgeCwgY2hh
cjR4NCB5KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhb
MF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgo
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK3Nob3J0IG1pbihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6
IHg7Cit9CitzaG9ydDIgbWluKHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1p
bih4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG1pbihzaG9ydDMg
eCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0
WzJdID0gbWluKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgbWlu
KHNob3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10s
IHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBtaW4oc2hvcnQyeDIgeCwg
c2hvcnQyeDIgeSkgeworICAgIHNob3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
aW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0MngzIG1pbihzaG9ydDJ4MyB4LCBzaG9ydDJ4MyB5KSB7CisgICAgc2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDJ4NCBtaW4oc2hvcnQyeDQgeCwgc2hvcnQyeDQgeSkgeworICAgIHNob3J0Mng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwg
eVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10s
IHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBtaW4oc2hvcnQzeDIg
eCwgc2hvcnQzeDIgeSkgeworICAgIHNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0s
IHlbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFd
LCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDMgbWluKHNob3J0M3gz
IHgsIHNob3J0M3gzIHkpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
M3g0IG1pbihzaG9ydDN4NCB4LCBzaG9ydDN4NCB5KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1b
Ml0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBtaW4oc2hvcnQ0eDIgeCwgc2hvcnQ0
eDIgeSkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhb
Ml1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gbWluKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDR4MyBtaW4oc2hvcnQ0eDMgeCwgc2hvcnQ0eDMgeSkgeworICAgIHNob3J0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4
WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4o
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWlu
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgbWluKHNob3J0NHg0IHgsIHNo
b3J0NHg0IHkpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWlu
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1p
bih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
aW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
bWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAg
cmVzdWx0WzNdWzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDIgbWF4KHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHNob3J0MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4
WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG1heChzaG9ydDMgeCwg
c2hvcnQzIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBd
LCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJd
ID0gbWF4KHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgbWF4KHNo
b3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MiBtYXgoc2hvcnQyeDIgeCwgc2hv
cnQyeDIgeSkgeworICAgIHNob3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0MngzIG1heChzaG9ydDJ4MyB4LCBzaG9ydDJ4MyB5KSB7CisgICAgc2hvcnQyeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDJ4NCBtYXgoc2hvcnQyeDQgeCwgc2hvcnQyeDQgeSkgeworICAgIHNob3J0Mng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1h
eCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
YXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBtYXgoc2hvcnQzeDIgeCwg
c2hvcnQzeDIgeSkgeworICAgIHNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
YXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzeDMgbWF4KHNob3J0M3gzIHgs
IHNob3J0M3gzIHkpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0M3g0
IG1heChzaG9ydDN4NCB4LCBzaG9ydDN4NCB5KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBtYXgoc2hvcnQ0eDIgeCwgc2hvcnQ0eDIg
eSkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gbWF4KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDR4MyBtYXgoc2hvcnQ0eDMgeCwgc2hvcnQ0eDMgeSkgeworICAgIHNob3J0NHgzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBd
WzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsy
XVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgbWF4KHNob3J0NHg0IHgsIHNob3J0
NHg0IHkpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhb
MF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgo
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK2ludCBtaW4oaW50IHgsIGludCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9
CitpbnQyIG1pbihpbnQyIHgsIGludDIgeSkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgbWluKGludDMgeCwgaW50MyB5KSB7CisgICAg
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbWluKGludDQgeCwgaW50NCB5KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7
CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQyeDIgbWluKGludDJ4MiB4LCBpbnQyeDIgeSkgeworICAgIGludDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDMgbWluKGludDJ4MyB4LCBpbnQyeDMgeSkgewor
ICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWlu
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBtaW4oaW50Mng0IHgsIGludDJ4NCB5KSB7CisgICAgaW50
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVsz
XSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1b
M10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgbWluKGludDN4MiB4
LCBpbnQzeDIgeSkgeworICAgIGludDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWlu
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1p
bih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MyBtaW4oaW50M3gzIHgsIGludDN4
MyB5KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJd
WzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3g0IG1pbihpbnQzeDQg
eCwgaW50M3g0IHkpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
aW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0eDIgbWluKGludDR4MiB4LCBpbnQ0eDIgeSkgeworICAgIGludDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIG1pbihpbnQ0eDMgeCwgaW50NHgzIHkp
IHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWluKHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gbWluKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQg
bWluKGludDR4NCB4LCBpbnQ0eDQgeSkgeworICAgIGludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWlu
KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1p
bih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyIG1heChpbnQyIHgsIGludDIgeSkgeworICAgIGludDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBt
YXgoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgbWF4KGludDMgeCwg
aW50MyB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbWF4KGludDQgeCwg
aW50NCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyeDIgbWF4KGludDJ4MiB4LCBpbnQyeDIgeSkgeworICAgIGlu
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDMgbWF4KGludDJ4MyB4
LCBpbnQyeDMgeSkgeworICAgIGludDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDJ4NCBtYXgoaW50Mng0IHgsIGludDJ4
NCB5KSB7CisgICAgaW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
eDIgbWF4KGludDN4MiB4LCBpbnQzeDIgeSkgeworICAgIGludDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1h
eCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBt
YXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MyBtYXgo
aW50M3gzIHgsIGludDN4MyB5KSB7CisgICAgaW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
M3g0IG1heChpbnQzeDQgeCwgaW50M3g0IHkpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwg
eVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgbWF4KGludDR4MiB4LCBpbnQ0eDIgeSkgeworICAg
IGludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIG1heChpbnQ0
eDMgeCwgaW50NHgzIHkpIHsKKyAgICBpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBd
LCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gbWF4KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0eDQgbWF4KGludDR4NCB4LCBpbnQ0eDQgeSkgeworICAgIGludDR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4
KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1h
eCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsy
XVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBt
YXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgbWluKGhhbGYgeCwgaGFsZiB5
KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitoYWxmMiBtaW4oaGFsZjIgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVsw
XSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBtaW4oaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0s
IHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgbWluKGhhbGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4
WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0
WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG1p
bihoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtaW4oaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsKKyAgICBo
YWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4NCBtaW4oaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxm
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVsz
XSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1b
M10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1pbihoYWxmM3gy
IHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwg
eVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0s
IHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG1pbihoYWxmM3gzIHgs
IGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1p
bih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
aW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1p
bihoYWxmM3g0IHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4o
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWlu
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1p
bih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG1pbihoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAg
IGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4
WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4o
eFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbWluKGhh
bGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsx
XVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhb
M11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDQgbWluKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFs
ZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1b
M10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFd
WzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhb
M11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYXgoaGFsZjIg
eCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBtYXgoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4
KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgbWF4KGhhbGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAg
cmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIG1heChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtYXgoaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsK
KyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
YXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBtYXgoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAg
ICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgo
eFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4
KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1heCho
YWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhb
Ml1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG1heChoYWxm
M3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IG1heChoYWxmM3g0IHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG1heChoYWxmNHgyIHgsIGhhbGY0eDIgeSkg
eworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwg
eVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMg
bWF4KGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1h
eCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
YXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
bWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbWF4KGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1h
eCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IG1p
bihmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitmbG9h
dDIgbWluKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG1pbihmbG9hdDMgeCwgZmxvYXQzIHkp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhb
Ml0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbWluKGZsb2F0NCB4LCBm
bG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0s
IHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtaW4oZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkg
eworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IG1pbihmbG9hdDJ4MyB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0s
IHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4
NCBtaW4oZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwgeVswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsy
XSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10sIHlbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtaW4oZmxvYXQzeDIgeCwgZmxvYXQzeDIg
eSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVsw
XSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1b
MF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbWluKGZsb2F0M3gzIHgsIGZsb2F0M3gz
IHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG1pbihmbG9h
dDN4NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFsw
XVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MiBtaW4oZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkgeworICAg
IGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBtaW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWlu
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtaW4o
ZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWlu
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1p
bih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBt
aW4oeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWluKHhbM11bMV0sIHlb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1pbih4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbWluKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsK
KyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
bWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwg
eVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0s
IHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNd
ID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
bWF4KGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG1heChmbG9hdDMgeCwgZmxvYXQzIHkpIHsK
KyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0s
IHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbWF4KGZsb2F0NCB4LCBmbG9h
dDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlb
MF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBt
YXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtYXgoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkgewor
ICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
YXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG1h
eChmbG9hdDJ4MyB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
YXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
bWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBt
YXgoZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtYXgoZmxvYXQzeDIgeCwgZmxvYXQzeDIgeSkg
eworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbWF4KGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG1heChmbG9hdDN4
NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBtYXgoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBtYXgoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhb
M11bMV0sIHlbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtYXgoZmxv
YXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBtYXgo
eFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbWF4KHhbM11bMV0sIHlbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IG1heCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbWF4KGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4
KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1h
eCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IG1heCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBt
YXgoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
bWF4KHhbM11bM10sIHlbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyIGNs
YW1wKHVjaGFyIHgsIHVjaGFyIGxvd2VyLCB1Y2hhciB1cHBlcikgeworICAgIHJldHVybiBtYXgo
bWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQordWNoYXIyIGNsYW1wKHVjaGFyMiB4LCB1Y2hhcjIg
eSwgdWNoYXIyIHopIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1w
KHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgY2xhbXAodWNoYXIzIHgsIHVjaGFy
MyB5LCB1Y2hhcjMgeikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBjbGFtcCh1Y2hhcjQgeCwgdWNoYXI0IHksIHVjaGFyNCB6
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBd
LCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFt
cCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1c2hvcnQgY2xh
bXAodXNob3J0IHgsIHVzaG9ydCBsb3dlciwgdXNob3J0IHVwcGVyKSB7CisgICAgcmV0dXJuIG1h
eChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9Cit1c2hvcnQyIGNsYW1wKHVzaG9ydDIgeCwgdXNo
b3J0MiB5LCB1c2hvcnQyIHopIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5
WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBjbGFtcCh1c2hvcnQz
IHgsIHVzaG9ydDMgeSwgdXNob3J0MyB6KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAo
eFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgY2xhbXAodXNob3J0NCB4LCB1c2hv
cnQ0IHksIHVzaG9ydDQgeikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlb
MV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAg
IHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3VpbnQgY2xhbXAodWludCB4LCB1aW50IGxvd2VyLCB1aW50IHVwcGVyKSB7CisgICAg
cmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9Cit1aW50MiBjbGFtcCh1aW50MiB4
LCB1aW50MiB5LCB1aW50MiB6KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlb
MV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBjbGFtcCh1aW50MyB4LCB1
aW50MyB5LCB1aW50MyB6KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNs
YW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0s
IHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBjbGFtcCh1aW50NCB4LCB1aW50NCB5LCB1aW50NCB6KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhb
M10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2NoYXIgY2xhbXAoY2hh
ciB4LCBjaGFyIGxvd2VyLCBjaGFyIHVwcGVyKSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIs
IHgpLCBsb3dlcik7Cit9CitjaGFyMiBjbGFtcChjaGFyMiB4LCBjaGFyMiB5LCBjaGFyMiB6KSB7
CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyMyBjbGFtcChjaGFyMyB4LCBjaGFyMyB5LCBjaGFyMyB6KSB7Cisg
ICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0p
OworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NCBjbGFtcChjaGFyNCB4LCBjaGFyNCB5LCBjaGFyNCB6KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9
IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlb
Ml0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3Nob3J0IGNsYW1wKHNob3J0IHgsIHNob3J0IGxvd2VyLCBz
aG9ydCB1cHBlcikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQor
c2hvcnQyIGNsYW1wKHNob3J0MiB4LCBzaG9ydDIgeSwgc2hvcnQyIHopIHsKKyAgICBzaG9ydDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJl
c3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDMgY2xhbXAoc2hvcnQzIHgsIHNob3J0MyB5LCBzaG9ydDMgeikgeworICAgIHNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAg
cmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xh
bXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBjbGFt
cChzaG9ydDQgeCwgc2hvcnQ0IHksIHNob3J0NCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
bGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJd
LCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitpbnQgY2xhbXAoaW50IHgsIGludCBsb3dlciwgaW50IHVwcGVy
KSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBsb3dlcik7Cit9CitpbnQyIGNsYW1w
KGludDIgeCwgaW50MiB5LCBpbnQyIHopIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFd
LCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBjbGFtcChpbnQzIHgs
IGludDMgeSwgaW50MyB6KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgY2xhbXAoaW50NCB4LCBpbnQ0IHksIGludDQgeikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9
IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlb
M10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgY2xhbXAoaGFsZiB4LCBo
YWxmIGxvd2VyLCBoYWxmIHVwcGVyKSB7CisgICAgcmV0dXJuIG1heChtaW4odXBwZXIsIHgpLCBs
b3dlcik7Cit9CitoYWxmMiBjbGFtcChoYWxmMiB4LCBoYWxmMiB5LCBoYWxmMiB6KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyBjbGFtcChoYWxmMyB4LCBoYWxmMyB5LCBoYWxmMyB6KSB7CisgICAgaGFs
ZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAg
IHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNs
YW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBjbGFt
cChoYWxmNCB4LCBoYWxmNCB5LCBoYWxmNCB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1w
KHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpb
Ml0pOworICAgIHJlc3VsdFszXSA9IGNsYW1wKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIGNsYW1wKGhhbGYyeDIgeCwgaGFsZjJ4MiB5LCBoYWxmMngy
IHopIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBjbGFtcChoYWxm
MngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
Y2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDQgY2xhbXAoaGFsZjJ4NCB4LCBoYWxmMng0IHksIGhhbGYyeDQgeikgeworICAgIGhh
bGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNsYW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIGNsYW1wKGhhbGYzeDIgeCwgaGFsZjN4MiB5LCBoYWxmM3gy
IHopIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBjbGFtcChoYWxmM3gzIHgs
IGhhbGYzeDMgeSwgaGFsZjN4MyB6KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xh
bXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAo
eFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xhbXAoeFsy
XVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwg
eVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgY2xhbXAo
aGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgeworICAgIGhhbGYzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNs
YW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGNsYW1w
KHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNsYW1wKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNsYW1wKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGNsYW1wKHhbMl1bM10s
IHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGNsYW1w
KGhhbGY0eDIgeCwgaGFsZjR4MiB5LCBoYWxmNHgyIHopIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBj
bGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBjbGFtcChoYWxmNHgzIHgsIGhhbGY0eDMgeSwgaGFsZjR4MyB6KSB7CisgICAgaGFs
ZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gY2xhbXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gY2xhbXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
Y2xhbXAoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDQgY2xhbXAoaGFsZjR4NCB4LCBoYWxmNHg0IHksIGhhbGY0eDQgeikgeworICAgIGhh
bGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0s
IHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGNsYW1wKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNsYW1wKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGNsYW1wKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGNsYW1wKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNsYW1wKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGNsYW1wKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGNs
YW1wKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNsYW1w
KHhbM11bMV0sIHlbM11bMV0sIHpbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNsYW1wKHhb
M11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGNsYW1wKHhbM11b
M10sIHlbM11bM10sIHpbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IGNs
YW1wKGZsb2F0IHgsIGZsb2F0IGxvd2VyLCBmbG9hdCB1cHBlcikgeworICAgIHJldHVybiBtYXgo
bWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQorZmxvYXQyIGNsYW1wKGZsb2F0MiB4LCBmbG9hdDIg
eSwgZmxvYXQyIHopIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1w
KHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY2xhbXAoZmxvYXQzIHgsIGZsb2F0
MyB5LCBmbG9hdDMgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xh
bXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwg
elsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBjbGFtcChmbG9hdDQgeCwgZmxvYXQ0IHksIGZsb2F0NCB6
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBd
LCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFt
cCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgY2xh
bXAoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSwgZmxvYXQyeDIgeikgeworICAgIGZsb2F0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgY2xhbXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwg
ZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
bGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFt
cCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFd
WzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFd
LCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5
WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgY2xhbXAo
ZmxvYXQyeDQgeCwgZmxvYXQyeDQgeSwgZmxvYXQyeDQgeikgeworICAgIGZsb2F0Mng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDIgY2xhbXAoZmxvYXQzeDIgeCwgZmxvYXQzeDIgeSwgZmxvYXQzeDIgeikgewor
ICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5
WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBd
WzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBd
LCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgY2xhbXAoZmxvYXQzeDMgeCwgZmxv
YXQzeDMgeSwgZmxvYXQzeDMgeikgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
bGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFt
cCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4
WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFd
LCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5
WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgY2xhbXAo
ZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
bGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFt
cCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4
WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJd
WzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
Y2xhbXAoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSwgZmxvYXQ0eDIgeikgeworICAgIGZsb2F0NHgy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgY2xhbXAoZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSwgZmxvYXQ0eDMg
eikgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5
WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5WzFd
WzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFdWzFd
LCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJdLCB6
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBjbGFtcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgY2xhbXAoZmxvYXQ0eDQgeCwgZmxvYXQ0eDQgeSwgZmxv
YXQ0eDQgeikgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjbGFt
cCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFtcCh4
WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBdWzNd
LCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5WzFdWzJd
LCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNdLCB6
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBjbGFtcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBjbGFtcCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitoYWxmIG1vZGYoaGFsZiB4LCB0aHJlYWQgaGFsZiogaXApIHsKKyAgICB1aW50
IHJlc3VsdCA9IHVpbnQoeCk7CisgICAgKmlwID0geCAtIGhhbGYocmVzdWx0KTsKKyAgICByZXR1
cm4gaGFsZihyZXN1bHQpOworfQoraGFsZjIgbW9kZihoYWxmMiB4LCB0aHJlYWQgaGFsZjIqIHkp
IHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlb
MF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBtb2RmKGhhbGYzIHgsIHRocmVhZCBoYWxmMyogeSkgeworICAg
IGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtb2RmKHhbMF0sICYoKCp5KVswXSkpOwor
ICAgIHJlc3VsdFsxXSA9IG1vZGYoeFsxXSwgJigoKnkpWzFdKSk7CisgICAgcmVzdWx0WzJdID0g
bW9kZih4WzJdLCAmKCgqeSlbMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbW9k
ZihoYWxmNCB4LCB0aHJlYWQgaGFsZjQqIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhb
MV0sICYoKCp5KVsxXSkpOworICAgIHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwgJigoKnkpWzJdKSk7
CisgICAgcmVzdWx0WzNdID0gbW9kZih4WzNdLCAmKCgqeSlbM10pKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4MiBtb2RmKGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0p
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAg
IHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjJ4MyBtb2RmKGhhbGYyeDMgeCwgaGFsZjJ4MyB5KSB7CisgICAgaGFsZjJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJl
c3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
b2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsx
XVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbW9k
ZihoYWxmMng0IHgsIGhhbGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2Rm
KHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9IG1vZGYoeFswXVsz
XSwgJigoKnkpWzBdWzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgq
eSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsx
XSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10pKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4MiBtb2RmKGhhbGYzeDIgeCwgaGFsZjN4MiB5KSB7CisgICAg
aGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkp
OworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9
IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDMgbW9kZihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1v
ZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFd
WzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYo
KCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsyXVswXSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJd
WzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0gbW9kZih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhbMl1bMl0sICYoKCp5KVsyXVsyXSkpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1vZGYoaGFsZjN4NCB4LCBoYWxmM3g0IHkpIHsKKyAg
ICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5
KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFswXVsxXSwgJigoKnkpWzBdWzFd
KSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBtb2RmKHhbMF1bM10sICYoKCp5KVswXVszXSkpOworICAgIHJlc3Vs
dFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2Rm
KHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsxXVszXSA9IG1vZGYoeFsxXVsz
XSwgJigoKnkpWzFdWzNdKSk7CisgICAgcmVzdWx0WzJdWzBdID0gbW9kZih4WzJdWzBdLCAmKCgq
eSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtb2RmKHhbMl1bMV0sICYoKCp5KVsyXVsx
XSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gbW9kZih4WzJdWzNdLCAmKCgqeSlbMl1bM10pKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjR4MiBtb2RmKGhhbGY0eDIgeCwgaGFsZjR4MiB5KSB7CisgICAg
aGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlb
MF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkp
OworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9
IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4
WzNdWzBdLCAmKCgqeSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0s
ICYoKCp5KVszXVsxXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG1vZGYoaGFs
ZjR4MyB4LCBoYWxmNHgzIHkpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1v
ZGYoeFswXVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBd
WzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYo
KCp5KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFd
WzFdKSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJl
c3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJd
WzJdID0gbW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbM11bMF0gPSBt
b2RmKHhbM11bMF0sICYoKCp5KVszXVswXSkpOworICAgIHJlc3VsdFszXVsxXSA9IG1vZGYoeFsz
XVsxXSwgJigoKnkpWzNdWzFdKSk7CisgICAgcmVzdWx0WzNdWzJdID0gbW9kZih4WzNdWzJdLCAm
KCgqeSlbM11bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBtb2RmKGhhbGY0
eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2Rm
KHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsy
XSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNdLCAmKCgq
eSlbMF1bM10pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsxXVsw
XSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICByZXN1
bHRbMV1bM10gPSBtb2RmKHhbMV1bM10sICYoKCp5KVsxXVszXSkpOworICAgIHJlc3VsdFsyXVsw
XSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0gbW9k
Zih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhbMl1b
Ml0sICYoKCp5KVsyXVsyXSkpOworICAgIHJlc3VsdFsyXVszXSA9IG1vZGYoeFsyXVszXSwgJigo
KnkpWzJdWzNdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgqeSlbM11b
MF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsxXSkpOwor
ICAgIHJlc3VsdFszXVsyXSA9IG1vZGYoeFszXVsyXSwgJigoKnkpWzNdWzJdKSk7CisgICAgcmVz
dWx0WzNdWzNdID0gbW9kZih4WzNdWzNdLCAmKCgqeSlbM11bM10pKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitmbG9hdCBtb2RmKGZsb2F0IHgsIHRocmVhZCBmbG9hdCogaXApIHsKKyAgICB1
aW50IHJlc3VsdCA9IHVpbnQoeCk7CisgICAgKmlwID0geCAtIGZsb2F0KHJlc3VsdCk7CisgICAg
cmV0dXJuIGZsb2F0KHJlc3VsdCk7Cit9CitmbG9hdDIgbW9kZihmbG9hdDIgeCwgdGhyZWFkIGZs
b2F0MiogeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBd
LCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbW9kZihmbG9hdDMgeCwgdGhyZWFkIGZsb2F0
MyogeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBdLCAm
KCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOworICAg
IHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwgJigoKnkpWzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBtb2RmKGZsb2F0NCB4LCB0aHJlYWQgZmxvYXQ0KiB5KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtb2RmKHhbMF0sICYoKCp5KVswXSkpOworICAgIHJl
c3VsdFsxXSA9IG1vZGYoeFsxXSwgJigoKnkpWzFdKSk7CisgICAgcmVzdWx0WzJdID0gbW9kZih4
WzJdLCAmKCgqeSlbMl0pKTsKKyAgICByZXN1bHRbM10gPSBtb2RmKHhbM10sICYoKCp5KVszXSkp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtb2RmKGZsb2F0MngyIHgsIGZsb2F0
MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4
WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0s
ICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkp
WzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0p
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbW9kZihmbG9hdDJ4MyB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYo
eFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFd
LCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5
KVswXVsyXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBd
KSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCBtb2RmKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAg
ICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgq
eSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsx
XSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigoKnkpWzBdWzJdKSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNdLCAmKCgqeSlbMF1bM10pKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsx
XSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9k
Zih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICByZXN1bHRbMV1bM10gPSBtb2RmKHhbMV1b
M10sICYoKCp5KVsxXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtb2Rm
KGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1v
ZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFd
WzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYo
KCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJd
WzFdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG1vZGYoZmxvYXQzeDMgeCwg
ZmxvYXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
b2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFsw
XVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAm
KCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsx
XVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsy
XVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDQgbW9kZihmbG9hdDN4NCB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9
IG1vZGYoeFswXVszXSwgJigoKnkpWzBdWzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4
WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0s
ICYoKCp5KVsxXVsxXSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkp
WzFdWzJdKSk7CisgICAgcmVzdWx0WzFdWzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10p
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAg
IHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0
WzJdWzJdID0gbW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbMl1bM10g
PSBtb2RmKHhbMl1bM10sICYoKCp5KVsyXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBtb2RmKGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3Vs
dFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2Rm
KHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsx
XSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgq
eSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsx
XSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtb2RmKGZsb2F0NHgzIHgsIGZs
b2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9k
Zih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1b
MV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigo
KnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1b
MF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOwor
ICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbW9kZih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBtb2RmKHhbMl1bMV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1v
ZGYoeFsyXVsyXSwgJigoKnkpWzJdWzJdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNd
WzBdLCAmKCgqeSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYo
KCp5KVszXVsxXSkpOworICAgIHJlc3VsdFszXVsyXSA9IG1vZGYoeFszXVsyXSwgJigoKnkpWzNd
WzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IG1vZGYoZmxvYXQ0eDQgeCwg
ZmxvYXQ0eDQgeSkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
b2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFsw
XVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAm
KCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMF1bM10gPSBtb2RmKHhbMF1bM10sICYoKCp5KVsw
XVszXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsx
XVszXSA9IG1vZGYoeFsxXVszXSwgJigoKnkpWzFdWzNdKSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bW9kZih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtb2RmKHhb
Ml1bMV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYoeFsyXVsyXSwg
JigoKnkpWzJdWzJdKSk7CisgICAgcmVzdWx0WzJdWzNdID0gbW9kZih4WzJdWzNdLCAmKCgqeSlb
Ml1bM10pKTsKKyAgICByZXN1bHRbM11bMF0gPSBtb2RmKHhbM11bMF0sICYoKCp5KVszXVswXSkp
OworICAgIHJlc3VsdFszXVsxXSA9IG1vZGYoeFszXVsxXSwgJigoKnkpWzNdWzFdKSk7CisgICAg
cmVzdWx0WzNdWzJdID0gbW9kZih4WzNdWzJdLCAmKCgqeSlbM11bMl0pKTsKKyAgICByZXN1bHRb
M11bM10gPSBtb2RmKHhbM11bM10sICYoKCp5KVszXVszXSkpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3VjaGFyIGNvdW50X2JpdHModWNoYXIgeCkgeworICAgIHJldHVybiAoKHggfCAoMSA8
PCAwKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEpKSA9PSAwID8g
MCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMikpID09IDAgPyAwIDogMSkgKworICAg
ICAgICAgICAoKHggfCAoMSA8PCAzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8
ICgxIDw8IDQpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNSkpID09
IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSAr
CisgICAgICAgICAgICgoeCB8ICgxIDw8IDcpKSA9PSAwID8gMCA6IDEpOworfQordWNoYXIgY291
bnRfYml0cyh1c2hvcnQgeCkgeworICAgIHJldHVybiAoKHggfCAoMSA8PCAwKSkgPT0gMCA/IDAg
OiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAg
ICAgICAgKCh4IHwgKDEgPDwgMikpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAo
MSA8PCAzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDQpKSA9PSAw
ID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNSkpID09IDAgPyAwIDogMSkgKwor
ICAgICAgICAgICAoKHggfCAoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgo
eCB8ICgxIDw8IDcpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgOCkp
ID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA5KSkgPT0gMCA/IDAgOiAx
KSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEwKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAg
ICAgICgoeCB8ICgxIDw8IDExKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgx
IDw8IDEyKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDEzKSkgPT0g
MCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDE0KSkgPT0gMCA/IDAgOiAxKSAr
CisgICAgICAgICAgICgoeCB8ICgxIDw8IDE1KSkgPT0gMCA/IDAgOiAxKTsKK30KK3VjaGFyIGNv
dW50X2JpdHModWludCB4KSB7CisgICAgcmV0dXJuICgoeCB8ICgxIDw8IDApKSA9PSAwID8gMCA6
IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMSkpID09IDAgPyAwIDogMSkgKworICAgICAg
ICAgICAoKHggfCAoMSA8PCAyKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgx
IDw8IDMpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgNCkpID09IDAg
PyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA1KSkgPT0gMCA/IDAgOiAxKSArCisg
ICAgICAgICAgICgoeCB8ICgxIDw8IDYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4
IHwgKDEgPDwgNykpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCAoMSA8PCA4KSkg
PT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8ICgxIDw8IDkpKSA9PSAwID8gMCA6IDEp
ICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgKDEgPDwgMTEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEg
PDwgMTIpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTMpKSA9PSAw
ID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTQpKSA9PSAwID8gMCA6IDEpICsK
KyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTUpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAg
KCh4IHwgKDEgPDwgMTYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwg
MTcpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTgpKSA9PSAwID8g
MCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMTkpKSA9PSAwID8gMCA6IDEpICsKKyAg
ICAgICAgICAgKCh4IHwgKDEgPDwgMjApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4
IHwgKDEgPDwgMjEpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjIp
KSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjMpKSA9PSAwID8gMCA6
IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjQpKSA9PSAwID8gMCA6IDEpICsKKyAgICAg
ICAgICAgKCh4IHwgKDEgPDwgMjUpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwg
KDEgPDwgMjYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjcpKSA9
PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjgpKSA9PSAwID8gMCA6IDEp
ICsKKyAgICAgICAgICAgKCh4IHwgKDEgPDwgMjkpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgKDEgPDwgMzApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgKDEg
PDwgMzEpKSA9PSAwID8gMCA6IDEpOworfQordWNoYXIgcmV2ZXJzZWJpdHModWNoYXIgeCkgewor
ICAgIHJldHVybiAoKHggJiAoMSA8PCAwKSkgPDwgNykgfAorICAgICAgICAgICAoKHggJiAoMSA8
PCAxKSkgPDwgNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyKSkgPDwgMykgfAorICAgICAg
ICAgICAoKHggJiAoMSA8PCAzKSkgPDwgMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA0KSkg
Pj4gMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA1KSkgPj4gMykgfAorICAgICAgICAgICAo
KHggJiAoMSA8PCA2KSkgPj4gNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCA3KSkgPj4gNyk7
Cit9Cit1c2hvcnQgcmV2ZXJzZWJpdHModXNob3J0IHgpIHsKKyAgICByZXR1cm4gKCh4ICYgKDEg
PDwgMCkpIDw8IDE1KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEpKSA8PCAxMykgfAorICAg
ICAgICAgICAoKHggJiAoMSA8PCAyKSkgPDwgMTEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwg
MykpIDw8IDkpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNCkpIDw8IDcpIHwKKyAgICAgICAg
ICAgKCh4ICYgKDEgPDwgNSkpIDw8IDUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNikpIDw8
IDMpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNykpIDw8IDEpIHwKKyAgICAgICAgICAgKCh4
ICYgKDEgPDwgOCkpID4+IDEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpID4+IDMpIHwK
KyAgICAgICAgICAgKCh4ICYgKDEgPDwgMTApKSA+PiA1KSB8CisgICAgICAgICAgICgoeCAmICgx
IDw8IDExKSkgPj4gNykgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAxMikpID4+IDkpIHwKKyAg
ICAgICAgICAgKCh4ICYgKDEgPDwgMTMpKSA+PiAxMSkgfAorICAgICAgICAgICAoKHggJiAoMSA8
PCAxNCkpID4+IDEzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE1KSkgPj4gMTUpOworfQor
dWludCByZXZlcnNlYml0cyh1aW50IHgpIHsKKyAgICByZXR1cm4gKCh4ICYgKDEgPDwgMCkpIDw8
IDMxKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEpKSA8PCAyOSkgfAorICAgICAgICAgICAo
KHggJiAoMSA8PCAyKSkgPDwgMjcpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMykpIDw8IDI1
KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDQpKSA8PCAyMykgfAorICAgICAgICAgICAoKHgg
JiAoMSA8PCA1KSkgPDwgMjEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgNikpIDw8IDE5KSB8
CisgICAgICAgICAgICgoeCAmICgxIDw8IDcpKSA8PCAxNykgfAorICAgICAgICAgICAoKHggJiAo
MSA8PCA4KSkgPDwgMTUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpIDw8IDEzKSB8Cisg
ICAgICAgICAgICgoeCAmICgxIDw8IDEwKSkgPDwgMTEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEg
PDwgMTEpKSA8PCA5KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDEyKSkgPDwgNykgfAorICAg
ICAgICAgICAoKHggJiAoMSA8PCAxMykpIDw8IDUpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwg
MTQpKSA8PCAzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE1KSkgPDwgMSkgfAorICAgICAg
ICAgICAoKHggJiAoMSA8PCAxNikpID4+IDEpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMTcp
KSA+PiAzKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDE4KSkgPj4gNSkgfAorICAgICAgICAg
ICAoKHggJiAoMSA8PCAxOSkpID4+IDcpIHwKKyAgICAgICAgICAgKCh4ICYgKDEgPDwgMjApKSA+
PiA5KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDIxKSkgPj4gMTEpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjIpKSA+PiAxMykgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyMykpID4+
IDE1KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDI0KSkgPj4gMTcpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjUpKSA+PiAxOSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyNikpID4+
IDIxKSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDI3KSkgPj4gMjMpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMjgpKSA+PiAyNSkgfAorICAgICAgICAgICAoKHggJiAoMSA8PCAyOSkpID4+
IDI3KSB8CisgICAgICAgICAgICgoeCAmICgxIDw8IDMwKSkgPj4gMjkpIHwKKyAgICAgICAgICAg
KCh4ICYgKDEgPDwgMzEpKSA+PiAzMSk7Cit9Cit1Y2hhcjIgY291bnRfYml0cyh1Y2hhcjIgeCkg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjMgY291bnRfYml0cyh1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRz
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBjb3VudF9iaXRzKHVjaGFyNCB4KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNv
dW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY291bnRfYml0cyh4WzJdKTsKKyAgICBy
ZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjJ4MiBjb3VudF9iaXRzKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
b3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXIyeDMgY291bnRfYml0cyh1Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
b3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjJ4NCBjb3VudF9iaXRzKHVjaGFyMng0IHgpIHsKKyAgICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
b3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2Jp
dHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBjb3VudF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjN4MiBjb3VudF9iaXRzKHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2Jp
dHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIGNv
dW50X2JpdHModWNoYXIzeDMgeCkgeworICAgIHVjaGFyM3gzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2Jp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGNvdW50X2JpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRf
Yml0cyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzeDQgY291bnRfYml0
cyh1Y2hhcjN4NCB4KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGNvdW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRf
Yml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gY291bnRfYml0cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3Vu
dF9iaXRzKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBjb3VudF9i
aXRzKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3Vu
dF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4
MyBjb3VudF9iaXRzKHVjaGFyNHgzIHgpIHsKKyAgICB1Y2hhcjR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3Vu
dF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNv
dW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGNvdW50X2JpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NHg0IGNvdW50X2JpdHModWNoYXI0eDQgeCkgeworICAgIHVjaGFyNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNv
dW50X2JpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0
cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGNvdW50X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Y291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gY291bnRfYml0cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9i
aXRzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gY291bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBjb3VudF9iaXRzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIGNv
dW50X2JpdHModXNob3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIGNvdW50X2JpdHModXNob3J0MyB4KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2Jp
dHMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgY291bnRfYml0cyh1c2hv
cnQ0IHgpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRz
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvdW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gY291bnRfYml0cyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgY291bnRfYml0cyh1c2hvcnQyeDIgeCkg
eworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291
bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MngzIGNvdW50
X2JpdHModXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Y291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgY291bnRfYml0cyh1c2hvcnQy
eDQgeCkgeworICAgIHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3VudF9iaXRzKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3Vu
dF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgY291bnRf
Yml0cyh1c2hvcnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRz
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4MyBjb3VudF9iaXRzKHVzaG9ydDN4
MyB4KSB7CisgICAgdXNob3J0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3VudF9i
aXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50
X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0M3g0IGNvdW50X2JpdHModXNob3J0M3g0IHgp
IHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNv
dW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY291bnRfYml0
cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Y291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3VudF9iaXRzKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgY291bnRfYml0cyh1c2hvcnQ0
eDIgeCkgeworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3Vu
dF9iaXRzKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgY291bnRf
Yml0cyh1c2hvcnQ0eDMgeCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRz
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2Jp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGNvdW50X2JpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4NCBj
b3VudF9iaXRzKHVzaG9ydDR4NCB4KSB7CisgICAgdXNob3J0NHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBjb3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50
X2JpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGNvdW50X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291
bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gY291bnRfYml0cyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9iaXRz
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gY291bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBj
b3VudF9iaXRzKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBjb3VudF9i
aXRzKHVpbnQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRf
Yml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50MyBjb3VudF9iaXRzKHVpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IGNvdW50X2JpdHModWludDQgeCkgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGNvdW50X2JpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY291bnRfYml0cyh4WzJdKTsK
KyAgICByZXN1bHRbM10gPSBjb3VudF9iaXRzKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MngyIGNvdW50X2JpdHModWludDJ4MiB4KSB7CisgICAgdWludDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDJ4MyBjb3VudF9iaXRzKHVpbnQyeDMgeCkgeworICAgIHVpbnQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
b3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
Mng0IGNvdW50X2JpdHModWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3Vu
dF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gY291bnRfYml0cyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2JpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBjb3VudF9iaXRzKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50M3gyIGNvdW50X2JpdHModWludDN4MiB4KSB7CisgICAgdWludDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50
X2JpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDMgY291bnRfYml0
cyh1aW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
b3VudF9iaXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBjb3VudF9iaXRzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvdW50X2Jp
dHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY291bnRfYml0cyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY291bnRfYml0cyh4WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDN4NCBjb3VudF9iaXRzKHVpbnQzeDQg
eCkgeworICAgIHVpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvdW50X2JpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY291bnRfYml0cyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBjb3VudF9iaXRzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNv
dW50X2JpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY291bnRfYml0cyh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY291bnRfYml0
cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
Y291bnRfYml0cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3VudF9iaXRzKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGNvdW50X2JpdHModWludDR4MiB4
KSB7CisgICAgdWludDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRfYml0cyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291
bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3VudF9iaXRzKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGNvdW50X2JpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3VudF9iaXRz
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGNvdW50X2JpdHModWlu
dDR4MyB4KSB7CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY291bnRf
Yml0cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3VudF9iaXRzKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGNvdW50X2JpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gY291bnRfYml0cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3VudF9iaXRzKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvdW50X2JpdHMoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3Vu
dF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gY291bnRfYml0cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBjb3VudF9iaXRzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvdW50X2JpdHMo
eFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgY291bnRfYml0cyh1aW50
NHg0IHgpIHsKKyAgICB1aW50NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3VudF9i
aXRzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvdW50X2JpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gY291bnRfYml0cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBjb3VudF9iaXRzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvdW50X2JpdHMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY291bnRfYml0cyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBjb3VudF9iaXRzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvdW50
X2JpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY291bnRfYml0cyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBjb3VudF9iaXRzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGNvdW50X2JpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY291bnRfYml0cyh4
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3VudF9iaXRzKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGNvdW50X2JpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY291
bnRfYml0cyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjb3VudF9iaXRzKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyMiByZXZlcnNlYml0cyh1Y2hhcjIgeCkg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyMyByZXZlcnNlYml0cyh1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJz
ZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCByZXZlcnNlYml0cyh1Y2hhcjQgeCkgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gcmV2ZXJzZWJpdHMoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMngyIHJldmVyc2ViaXRzKHVjaGFyMngyIHgpIHsKKyAgICB1Y2hhcjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIHJldmVyc2ViaXRzKHVjaGFyMngz
IHgpIHsKKyAgICB1Y2hhcjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJp
dHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMng0IHJldmVyc2ViaXRzKHVjaGFyMng0IHgpIHsKKyAg
ICB1Y2hhcjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJz
ZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJp
dHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gyIHJldmVyc2ViaXRz
KHVjaGFyM3gyIHgpIHsKKyAgICB1Y2hhcjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2
ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3gzIHJldmVyc2ViaXRzKHVjaGFyM3gz
IHgpIHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJp
dHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
cmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyM3g0IHJldmVyc2ViaXRzKHVjaGFy
M3g0IHgpIHsKKyAgICB1Y2hhcjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJz
ZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJp
dHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
cmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHgyIHJl
dmVyc2ViaXRzKHVjaGFyNHgyIHgpIHsKKyAgICB1Y2hhcjR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJz
ZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJp
dHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNHgzIHJldmVyc2ViaXRzKHVjaGFyNHgzIHgpIHsKKyAgICB1Y2hhcjR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJz
ZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJp
dHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNHg0IHJldmVyc2ViaXRzKHVjaGFyNHg0IHgpIHsK
KyAgICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2
ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJz
ZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJp
dHMoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmV2ZXJzZWJpdHMo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgcmV2ZXJzZWJpdHModXNo
b3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJp
dHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDMgcmV2ZXJzZWJpdHModXNob3J0MyB4KSB7CisgICAgdXNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgcmV2ZXJzZWJpdHModXNob3J0NCB4
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
cmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gcmV2ZXJzZWJpdHMoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MiByZXZlcnNlYml0cyh1c2hvcnQyeDIgeCkg
eworICAgIHVzaG9ydDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MyBy
ZXZlcnNlYml0cyh1c2hvcnQyeDMgeCkgeworICAgIHVzaG9ydDJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2
ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4NCByZXZlcnNl
Yml0cyh1c2hvcnQyeDQgeCkgeworICAgIHVzaG9ydDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDN4MiByZXZlcnNlYml0cyh1c2hvcnQzeDIgeCkgeworICAgIHVzaG9ydDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDN4MyByZXZlcnNlYml0cyh1c2hvcnQzeDMgeCkgeworICAgIHVzaG9ydDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJp
dHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDN4NCByZXZlcnNlYml0cyh1c2hvcnQzeDQgeCkgeworICAgIHVzaG9ydDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4MiByZXZlcnNlYml0cyh1c2hvcnQ0eDIgeCkg
eworICAgIHVzaG9ydDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2
ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDR4MyByZXZl
cnNlYml0cyh1c2hvcnQ0eDMgeCkgeworICAgIHVzaG9ydDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJz
ZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJp
dHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDR4NCByZXZlcnNlYml0cyh1c2hvcnQ0eDQgeCkgeworICAgIHVzaG9ydDR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2
ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJp
dHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmV2ZXJzZWJpdHMoeFszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIHJldmVyc2ViaXRzKHVpbnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIHJl
dmVyc2ViaXRzKHVpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
cmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IHJldmVyc2ViaXRzKHVpbnQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gcmV2ZXJzZWJpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmV2ZXJzZWJpdHMo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmV2ZXJzZWJpdHMoeFsyXSk7CisgICAgcmVzdWx0WzNd
ID0gcmV2ZXJzZWJpdHMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDIgcmV2
ZXJzZWJpdHModWludDJ4MiB4KSB7CisgICAgdWludDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJp
dHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQyeDMgcmV2ZXJzZWJpdHModWludDJ4MyB4KSB7CisgICAgdWludDJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJz
ZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQy
eDQgcmV2ZXJzZWJpdHModWludDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2
ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzeDIgcmV2ZXJzZWJpdHModWludDN4MiB4KSB7CisgICAgdWludDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzeDMgcmV2ZXJzZWJpdHModWludDN4MyB4KSB7CisgICAgdWludDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2
ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzeDQgcmV2ZXJzZWJpdHModWludDN4NCB4KSB7CisgICAgdWludDN4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gcmV2ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2
ZXJzZWJpdHMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0eDIgcmV2ZXJzZWJpdHModWludDR4MiB4KSB7CisgICAgdWludDR4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJz
ZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDMgcmV2ZXJzZWJpdHModWludDR4MyB4KSB7
CisgICAgdWludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2ZXJzZWJpdHMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2
ZXJzZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gcmV2ZXJzZWJpdHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJz
ZWJpdHMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJp
dHMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0eDQgcmV2ZXJzZWJpdHMo
dWludDR4NCB4KSB7CisgICAgdWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmV2
ZXJzZWJpdHMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmV2ZXJzZWJpdHMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmV2ZXJzZWJpdHMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gcmV2ZXJzZWJpdHMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmV2ZXJz
ZWJpdHMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmV2ZXJzZWJpdHMoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gcmV2ZXJzZWJpdHMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gcmV2ZXJzZWJpdHMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmV2ZXJzZWJp
dHMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmV2ZXJzZWJpdHMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gcmV2ZXJzZWJpdHMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gcmV2ZXJzZWJpdHMoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmV2ZXJzZWJpdHMo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmV2ZXJzZWJpdHMoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gcmV2ZXJzZWJpdHMoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
cmV2ZXJzZWJpdHMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordWNoYXIgZmly
c3RiaXRoaWdoKHVjaGFyIHgpIHsKKyAgICByZXR1cm4gKHggJiAoMSA8PCA3KSkgIT0gMCA/IDAg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDYpKSAhPSAwID8gMSA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgNSkpICE9IDAgPyAyIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA0KSkgIT0gMCA/IDMg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDMpKSAhPSAwID8gNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMikpICE9IDAgPyA1IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxKSkgIT0gMCA/IDYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDApKSAhPSAwID8gNyA6IDgpKSkpKSkpOworfQordXNo
b3J0IGZpcnN0Yml0aGlnaCh1c2hvcnQgeCkgeworICAgIHJldHVybiAoeCAmICgxIDw8IDE1KSkg
IT0gMCA/IDAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE0KSkgIT0gMCA/IDEgOgorICAgICAg
ICAgICgoeCAmICgxIDw8IDEzKSkgIT0gMCA/IDIgOgorICAgICAgICAgICgoeCAmICgxIDw8IDEy
KSkgIT0gMCA/IDMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDExKSkgIT0gMCA/IDQgOgorICAg
ICAgICAgICgoeCAmICgxIDw8IDEwKSkgIT0gMCA/IDUgOgorICAgICAgICAgICgoeCAmICgxIDw8
IDkpKSAhPSAwID8gNiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOCkpICE9IDAgPyA3IDoKKyAg
ICAgICAgICAoKHggJiAoMSA8PCA3KSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAmICgxIDw8
IDYpKSAhPSAwID8gOSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9IDAgPyAxMCA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMykpICE9IDAgPyAxMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9IDAgPyAxMyA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMCkpICE9IDAgPyAxNSA6IDE2KSkpKSkpKSkpKSkpKSkpOworfQordWludCBmaXJzdGJp
dGhpZ2godWludCB4KSB7CisgICAgcmV0dXJuICh4ICYgKDEgPDwgMzEpKSAhPSAwID8gMCA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgMzApKSAhPSAwID8gMSA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMjkpKSAhPSAwID8gMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjgpKSAhPSAwID8gMyA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjcpKSAhPSAwID8gNCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMjYpKSAhPSAwID8gNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjUpKSAhPSAwID8g
NiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjQpKSAhPSAwID8gNyA6CisgICAgICAgICAgKCh4
ICYgKDEgPDwgMjMpKSAhPSAwID8gOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjIpKSAhPSAw
ID8gOSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMjEpKSAhPSAwID8gMTAgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDIwKSkgIT0gMCA/IDExIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxOSkp
ICE9IDAgPyAxMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTgpKSAhPSAwID8gMTMgOgorICAg
ICAgICAgICgoeCAmICgxIDw8IDE3KSkgIT0gMCA/IDE0IDoKKyAgICAgICAgICAoKHggJiAoMSA8
PCAxNikpICE9IDAgPyAxNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTUpKSAhPSAwID8gMTYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDE0KSkgIT0gMCA/IDE3IDoKKyAgICAgICAgICAoKHgg
JiAoMSA8PCAxMykpICE9IDAgPyAxOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTIpKSAhPSAw
ID8gMTkgOgorICAgICAgICAgICgoeCAmICgxIDw8IDExKSkgIT0gMCA/IDIwIDoKKyAgICAgICAg
ICAoKHggJiAoMSA8PCAxMCkpICE9IDAgPyAyMSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOSkp
ICE9IDAgPyAyMiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOCkpICE9IDAgPyAyMyA6CisgICAg
ICAgICAgKCh4ICYgKDEgPDwgNykpICE9IDAgPyAyNCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwg
NikpICE9IDAgPyAyNSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9IDAgPyAyNiA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAyNyA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMykpICE9IDAgPyAyOCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9IDAgPyAyOSA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAzMCA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgMCkpICE9IDAgPyAzMSA6IDMyKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKTsK
K30KK2NoYXIgZmlyc3RiaXRoaWdoKGNoYXIgeCkgeworICAgIHJldHVybiBmaXJzdGJpdGhpZ2go
dWNoYXIoeCkpOworfQorc2hvcnQgZmlyc3RiaXRoaWdoKHNob3J0IHgpIHsKKyAgICByZXR1cm4g
Zmlyc3RiaXRoaWdoKHVzaG9ydCh4KSk7Cit9CitpbnQgZmlyc3RiaXRoaWdoKGludCB4KSB7Cisg
ICAgcmV0dXJuIGZpcnN0Yml0aGlnaCh1aW50KHgpKTsKK30KK3VjaGFyIGZpcnN0Yml0bG93KHVj
aGFyIHgpIHsKKyAgICByZXR1cm4gKHggJiAoMSA8PCAwKSkgIT0gMCA/IDcgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDEpKSAhPSAwID8gNiA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMikpICE9
IDAgPyA1IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAzKSkgIT0gMCA/IDQgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDQpKSAhPSAwID8gMyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNSkpICE9
IDAgPyAyIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA2KSkgIT0gMCA/IDEgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDcpKSAhPSAwID8gMCA6IDgpKSkpKSkpOworfQordXNob3J0IGZpcnN0Yml0
bG93KHVzaG9ydCB4KSB7CisgICAgcmV0dXJuICh4ICYgKDEgPDwgMCkpICE9IDAgPyAxNSA6Cisg
ICAgICAgICAgKCh4ICYgKDEgPDwgMSkpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYgKDEg
PDwgMikpICE9IDAgPyAxMyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMykpICE9IDAgPyAxMiA6
CisgICAgICAgICAgKCh4ICYgKDEgPDwgNCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYg
KDEgPDwgNSkpICE9IDAgPyAxMCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgNikpICE9IDAgPyA5
IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCA3KSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDgpKSAhPSAwID8gNyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgOSkpICE9IDAgPyA2
IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMCkpICE9IDAgPyA1IDoKKyAgICAgICAgICAoKHgg
JiAoMSA8PCAxMSkpICE9IDAgPyA0IDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMikpICE9IDAg
PyAzIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxMykpICE9IDAgPyAyIDoKKyAgICAgICAgICAo
KHggJiAoMSA8PCAxNCkpICE9IDAgPyAxIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAxNSkpICE9
IDAgPyAwIDogMTYpKSkpKSkpKSkpKSkpKSk7Cit9Cit1aW50IGZpcnN0Yml0bG93KHVpbnQgeCkg
eworICAgIHJldHVybiAoeCAmICgxIDw8IDApKSAhPSAwID8gMzEgOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDEpKSAhPSAwID8gMzAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDIpKSAhPSAwID8g
MjkgOgorICAgICAgICAgICgoeCAmICgxIDw8IDMpKSAhPSAwID8gMjggOgorICAgICAgICAgICgo
eCAmICgxIDw8IDQpKSAhPSAwID8gMjcgOgorICAgICAgICAgICgoeCAmICgxIDw8IDUpKSAhPSAw
ID8gMjYgOgorICAgICAgICAgICgoeCAmICgxIDw8IDYpKSAhPSAwID8gMjUgOgorICAgICAgICAg
ICgoeCAmICgxIDw8IDcpKSAhPSAwID8gMjQgOgorICAgICAgICAgICgoeCAmICgxIDw8IDgpKSAh
PSAwID8gMjMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDkpKSAhPSAwID8gMjIgOgorICAgICAg
ICAgICgoeCAmICgxIDw8IDEwKSkgIT0gMCA/IDIxIDoKKyAgICAgICAgICAoKHggJiAoMSA8PCAx
MSkpICE9IDAgPyAyMCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTIpKSAhPSAwID8gMTkgOgor
ICAgICAgICAgICgoeCAmICgxIDw8IDEzKSkgIT0gMCA/IDE4IDoKKyAgICAgICAgICAoKHggJiAo
MSA8PCAxNCkpICE9IDAgPyAxNyA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTUpKSAhPSAwID8g
MTYgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE2KSkgIT0gMCA/IDE1IDoKKyAgICAgICAgICAo
KHggJiAoMSA8PCAxNykpICE9IDAgPyAxNCA6CisgICAgICAgICAgKCh4ICYgKDEgPDwgMTgpKSAh
PSAwID8gMTMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDE5KSkgIT0gMCA/IDEyIDoKKyAgICAg
ICAgICAoKHggJiAoMSA8PCAyMCkpICE9IDAgPyAxMSA6CisgICAgICAgICAgKCh4ICYgKDEgPDwg
MjEpKSAhPSAwID8gMTAgOgorICAgICAgICAgICgoeCAmICgxIDw8IDIyKSkgIT0gMCA/IDkgOgor
ICAgICAgICAgICgoeCAmICgxIDw8IDIzKSkgIT0gMCA/IDggOgorICAgICAgICAgICgoeCAmICgx
IDw8IDI0KSkgIT0gMCA/IDcgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI1KSkgIT0gMCA/IDYg
OgorICAgICAgICAgICgoeCAmICgxIDw8IDI2KSkgIT0gMCA/IDUgOgorICAgICAgICAgICgoeCAm
ICgxIDw8IDI3KSkgIT0gMCA/IDQgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI4KSkgIT0gMCA/
IDMgOgorICAgICAgICAgICgoeCAmICgxIDw8IDI5KSkgIT0gMCA/IDIgOgorICAgICAgICAgICgo
eCAmICgxIDw8IDMwKSkgIT0gMCA/IDEgOgorICAgICAgICAgICgoeCAmICgxIDw8IDMxKSkgIT0g
MCA/IDAgOiAzMikpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSk7Cit9CitjaGFyIGZpcnN0
Yml0bG93KGNoYXIgeCkgeworICAgIHJldHVybiBmaXJzdGJpdGxvdyh1Y2hhcih4KSk7Cit9Citz
aG9ydCBmaXJzdGJpdGxvdyhzaG9ydCB4KSB7CisgICAgcmV0dXJuIGZpcnN0Yml0bG93KHVzaG9y
dCh4KSk7Cit9CitpbnQgZmlyc3RiaXRsb3coaW50IHgpIHsKKyAgICByZXR1cm4gZmlyc3RiaXRs
b3codWludCh4KSk7Cit9Cit1Y2hhcjIgZmlyc3RiaXRoaWdoKHVjaGFyMiB4KSB7CisgICAgdWNo
YXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjMgZmlyc3RiaXRoaWdoKHVjaGFyMyB4KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IGZpcnN0Yml0aGlnaCh1Y2hhcjQgeCkgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjJ4MiBmaXJzdGJpdGhpZ2godWNoYXIyeDIgeCkgeworICAgIHVjaGFyMngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMngzIGZpcnN0Yml0aGlnaCh1
Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBmaXJzdGJpdGhpZ2godWNo
YXIyeDQgeCkgeworICAgIHVjaGFyMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJz
dGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmly
c3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjN4MiBmaXJzdGJpdGhpZ2godWNoYXIzeDIgeCkgeworICAgIHVjaGFyM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXIzeDMgZmlyc3RiaXRoaWdoKHVjaGFyM3gzIHgpIHsKKyAgICB1Y2hhcjN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyM3g0IGZpcnN0Yml0aGlnaCh1Y2hhcjN4NCB4KSB7CisgICAgdWNo
YXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0
aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJp
dGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MiBmaXJzdGJp
dGhpZ2godWNoYXI0eDIgeCkgeworICAgIHVjaGFyNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjR4MyBmaXJzdGJpdGhpZ2godWNoYXI0eDMgeCkgeworICAgIHVjaGFy
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhp
Z2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0
aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0eDQgZmlyc3RiaXRo
aWdoKHVjaGFyNHg0IHgpIHsKKyAgICB1Y2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhp
Z2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7
CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQyIGZpcnN0Yml0aGlnaCh1c2hvcnQyIHgpIHsKKyAgICB1c2hvcnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQz
IGZpcnN0Yml0aGlnaCh1c2hvcnQzIHgpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBmaXJzdGJpdGhpZ2godXNob3J0NCB4KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2go
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQyeDIgZmlyc3RiaXRoaWdoKHVzaG9ydDJ4MiB4KSB7CisgICAgdXNo
b3J0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJp
dGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDJ4MyBmaXJzdGJp
dGhpZ2godXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJp
dGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDQgZmlyc3Ri
aXRoaWdoKHVzaG9ydDJ4NCB4KSB7CisgICAgdXNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgZmlyc3RiaXRoaWdoKHVzaG9ydDN4MiB4KSB7CisgICAg
dXNob3J0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0M3gzIGZpcnN0Yml0aGlnaCh1c2hvcnQzeDMgeCkgeworICAg
IHVzaG9ydDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmly
c3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDN4NCBmaXJzdGJpdGhpZ2godXNo
b3J0M3g0IHgpIHsKKyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
aXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAg
cmVzdWx0WzJdWzNdID0gZmlyc3RiaXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0eDIgZmlyc3RiaXRoaWdoKHVzaG9ydDR4MiB4KSB7CisgICAgdXNob3J0NHgy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdo
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDMgZmlyc3RiaXRoaWdo
KHVzaG9ydDR4MyB4KSB7CisgICAgdXNob3J0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhp
Z2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NHg0IGZpcnN0Yml0aGlnaCh1c2hvcnQ0eDQgeCkgeworICAgIHVzaG9y
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJp
dGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhp
Z2godWludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJp
dGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGhpZ2godWludDMgeCkgeworICAgIHVpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZmlyc3RiaXRoaWdoKHVpbnQ0IHgp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBm
aXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngyIGZpcnN0Yml0aGlnaCh1aW50MngyIHgpIHsK
KyAgICB1aW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDMgZmly
c3RiaXRoaWdoKHVpbnQyeDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJp
dGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mng0IGZpcnN0Yml0
aGlnaCh1aW50Mng0IHgpIHsKKyAgICB1aW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50M3gyIGZpcnN0Yml0aGlnaCh1aW50M3gyIHgpIHsKKyAgICB1aW50M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4MyBmaXJzdGJpdGhpZ2godWludDN4MyB4KSB7CisgICAgdWludDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQzeDQgZmlyc3RiaXRoaWdoKHVpbnQzeDQgeCkgeworICAgIHVpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhp
Z2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGZpcnN0Yml0aGln
aCh1aW50NHgyIHgpIHsKKyAgICB1aW50NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
aXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NHgzIGZpcnN0Yml0aGlnaCh1aW50NHgzIHgpIHsKKyAgICB1aW50NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0
Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJz
dGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmly
c3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDR4NCBmaXJzdGJpdGhpZ2godWludDR4
NCB4KSB7CisgICAgdWludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJp
dGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRb
Ml1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0
WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyMiBmaXJzdGJpdGhpZ2goY2hhcjIgeCkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdo
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBmaXJzdGJpdGhpZ2goY2hhcjMg
eCkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgZmlyc3Ri
aXRoaWdoKGNoYXI0IHgpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmly
c3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3Ri
aXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIGZpcnN0Yml0aGln
aChjaGFyMngyIHgpIHsKKyAgICBjaGFyMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
aXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXIyeDMgZmlyc3RiaXRoaWdoKGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyMng0IGZpcnN0Yml0aGlnaChjaGFyMng0IHgpIHsKKyAgICBjaGFyMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhp
Z2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gyIGZpcnN0Yml0aGlnaChjaGFyM3gyIHgpIHsK
KyAgICBjaGFyM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBm
aXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjN4MyBmaXJzdGJpdGhpZ2goY2hhcjN4MyB4KSB7CisgICAg
Y2hhcjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzeDQgZmlyc3RiaXRoaWdoKGNoYXIzeDQg
eCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhp
Z2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBmaXJzdGJpdGhpZ2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gZmlyc3RiaXRoaWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NHgyIGZpcnN0Yml0aGlnaChjaGFyNHgyIHgpIHsKKyAgICBjaGFyNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2go
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHgzIGZpcnN0Yml0aGlnaChjaGFyNHgzIHgpIHsKKyAg
ICBjaGFyNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJz
dGJpdGhpZ2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmly
c3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZp
cnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjR4NCBmaXJz
dGJpdGhpZ2goY2hhcjR4NCB4KSB7CisgICAgY2hhcjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJp
dGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDIgZmlyc3RiaXRoaWdoKHNob3J0MiB4KSB7CisgICAgc2hvcnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
Zmlyc3RiaXRoaWdoKHNob3J0MyB4KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IGZpcnN0Yml0aGlnaChzaG9ydDQgeCkgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7
CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDJ4MiBmaXJzdGJpdGhpZ2goc2hvcnQyeDIgeCkgeworICAgIHNob3J0MngyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsx
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MngzIGZpcnN0Yml0aGlnaChzaG9y
dDJ4MyB4KSB7CisgICAgc2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4NCBmaXJzdGJpdGhpZ2goc2hvcnQy
eDQgeCkgeworICAgIHNob3J0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJp
dGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDN4MiBmaXJzdGJpdGhpZ2goc2hvcnQzeDIgeCkgeworICAgIHNob3J0M3gyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQzeDMgZmlyc3RiaXRoaWdoKHNob3J0M3gzIHgpIHsKKyAgICBzaG9ydDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhp
Z2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRo
aWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0M3g0IGZpcnN0Yml0aGlnaChzaG9ydDN4NCB4KSB7CisgICAgc2hvcnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGln
aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhp
Z2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRo
aWdoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4MiBmaXJzdGJpdGhp
Z2goc2hvcnQ0eDIgeCkgeworICAgIHNob3J0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDR4MyBmaXJzdGJpdGhpZ2goc2hvcnQ0eDMgeCkgeworICAgIHNob3J0NHgz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2go
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGln
aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0eDQgZmlyc3RiaXRoaWdo
KHNob3J0NHg0IHgpIHsKKyAgICBzaG9ydDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZmlyc3RiaXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBmaXJzdGJpdGhpZ2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdo
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBmaXJzdGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZmlyc3RiaXRoaWdoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGln
aCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gZmlyc3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQyIGZpcnN0Yml0aGlnaChpbnQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3Ri
aXRoaWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIGZpcnN0Yml0aGlnaChp
bnQzIHgpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2go
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBmaXJz
dGJpdGhpZ2goaW50NCB4KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmly
c3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3Ri
aXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgZmlyc3RiaXRoaWdo
KGludDJ4MiB4KSB7CisgICAgaW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJz
dGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDJ4MyBmaXJzdGJpdGhpZ2goaW50MngzIHgpIHsKKyAgICBpbnQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmlyc3RiaXRoaWdo
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDQg
Zmlyc3RiaXRoaWdoKGludDJ4NCB4KSB7CisgICAgaW50Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBmaXJzdGJpdGhpZ2goeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmlyc3RiaXRoaWdoKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQzeDIgZmlyc3RiaXRoaWdoKGludDN4MiB4KSB7CisgICAgaW50M3gy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2go
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50M3gzIGZpcnN0Yml0aGlnaChpbnQzeDMgeCkgeworICAgIGludDN4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmaXJzdGJp
dGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmlyc3RiaXRoaWdoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBmaXJzdGJpdGhpZ2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDN4NCBmaXJzdGJpdGhpZ2goaW50M3g0IHgpIHsKKyAgICBpbnQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmaXJzdGJpdGhpZ2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmaXJzdGJpdGhpZ2go
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3RiaXRoaWdoKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBmaXJzdGJpdGhpZ2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZmlyc3RiaXRoaWdo
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDIgZmlyc3RiaXRoaWdoKGlu
dDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmaXJzdGJp
dGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmlyc3RiaXRoaWdoKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmlyc3Ri
aXRoaWdoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZmlyc3RiaXRoaWdoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0eDMgZmlyc3RiaXRoaWdoKGludDR4MyB4KSB7CisgICAgaW50NHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBmaXJzdGJpdGhpZ2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmlyc3RiaXRoaWdoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0aGlnaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmaXJzdGJpdGhpZ2goeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZmlyc3RiaXRoaWdoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGZpcnN0Yml0aGlnaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2go
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBmaXJzdGJpdGhpZ2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmlyc3RiaXRoaWdo
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NHg0IGZpcnN0Yml0aGlnaChpbnQ0eDQgeCkgeworICAg
IGludDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmlyc3RiaXRoaWdoKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBmaXJzdGJpdGhpZ2goeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZmlyc3Ri
aXRoaWdoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0aGlnaCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBmaXJzdGJpdGhpZ2goeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmlyc3RiaXRoaWdoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0aGlnaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmaXJzdGJpdGhpZ2goeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmlyc3RiaXRoaWdoKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZpcnN0Yml0aGlnaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmaXJz
dGJpdGhpZ2goeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmlyc3RiaXRoaWdoKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0aGlnaCh4WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBmaXJzdGJpdGhpZ2goeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmly
c3RiaXRoaWdoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgZmlyc3Ri
aXRsb3codWNoYXIyIHgpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZp
cnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgZmlyc3RiaXRsb3codWNoYXIzIHgpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgZmlyc3RiaXRsb3codWNoYXI0
IHgpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MiBmaXJzdGJpdGxvdyh1Y2hhcjJ4MiB4KSB7
CisgICAgdWNoYXIyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4MyBmaXJz
dGJpdGxvdyh1Y2hhcjJ4MyB4KSB7CisgICAgdWNoYXIyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjJ4NCBmaXJzdGJpdGxvdyh1
Y2hhcjJ4NCB4KSB7CisgICAgdWNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjN4MiBmaXJzdGJpdGxvdyh1Y2hhcjN4MiB4KSB7CisgICAgdWNoYXIzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4MyBmaXJz
dGJpdGxvdyh1Y2hhcjN4MyB4KSB7CisgICAgdWNoYXIzeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjN4NCBm
aXJzdGJpdGxvdyh1Y2hhcjN4NCB4KSB7CisgICAgdWNoYXIzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjR4MiBmaXJzdGJpdGxvdyh1Y2hhcjR4MiB4KSB7CisgICAgdWNoYXI0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0
bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4MyBmaXJzdGJpdGxvdyh1Y2hhcjR4MyB4KSB7
CisgICAgdWNoYXI0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0p
OworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0
bG93KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjR4NCBmaXJzdGJpdGxv
dyh1Y2hhcjR4NCB4KSB7CisgICAgdWNoYXI0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0
bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVsz
XSA9IGZpcnN0Yml0bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQy
IGZpcnN0Yml0bG93KHVzaG9ydDIgeCkgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIGZpcnN0Yml0bG93KHVzaG9ydDMg
eCkgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IGZpcnN0
Yml0bG93KHVzaG9ydDQgeCkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0
Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyeDIgZmlyc3RiaXRs
b3codXNob3J0MngyIHgpIHsKKyAgICB1c2hvcnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQyeDMgZmlyc3RiaXRsb3codXNob3J0MngzIHgpIHsKKyAgICB1c2hvcnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQyeDQgZmlyc3RiaXRsb3codXNob3J0Mng0IHgpIHsKKyAgICB1c2hvcnQyeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0
bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDIgZmlyc3RiaXRsb3codXNob3J0M3gyIHgpIHsK
KyAgICB1c2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQzeDMgZmlyc3RiaXRsb3codXNob3J0M3gzIHgpIHsKKyAgICB1
c2hvcnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzeDQgZmlyc3RiaXRsb3codXNob3J0M3g0IHgpIHsK
KyAgICB1c2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0
bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDIgZmlyc3RiaXRs
b3codXNob3J0NHgyIHgpIHsKKyAgICB1c2hvcnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0eDMgZmlyc3RiaXRsb3codXNob3J0NHgzIHgpIHsKKyAgICB1c2hvcnQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0
Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0
bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0eDQgZmlyc3RiaXRsb3codXNob3J0NHg0IHgpIHsK
KyAgICB1c2hvcnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0
bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGxvdyh1aW50
MiB4KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGxvdyh1aW50MyB4KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0
Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBmaXJzdGJpdGxvdyh1aW50NCB4KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0p
OworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50MngyIGZpcnN0Yml0bG93KHVpbnQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0
bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MngzIGZpcnN0Yml0bG93KHVpbnQyeDMgeCkgewor
ICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50Mng0IGZpcnN0Yml0bG93KHVpbnQyeDQgeCkgeworICAgIHVpbnQyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0
Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gyIGZpcnN0Yml0bG93KHVpbnQzeDIgeCkg
eworICAgIHVpbnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3gzIGZpcnN0Yml0bG93KHVpbnQzeDMgeCkgeworICAgIHVpbnQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZp
cnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50M3g0IGZpcnN0Yml0bG93KHVpbnQzeDQgeCkgeworICAgIHVpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZp
cnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgyIGZpcnN0Yml0bG93KHVpbnQ0eDIgeCkg
eworICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGZpcnN0Yml0
bG93KHVpbnQ0eDMgeCkgeworICAgIHVpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NHg0IGZpcnN0Yml0bG93KHVpbnQ0eDQgeCkgeworICAgIHVpbnQ0eDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsy
XVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0
bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVsw
XSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMiBmaXJzdGJpdGxvdyhjaGFyMiB4KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0
bG93KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBmaXJzdGJpdGxvdyhjaGFy
MyB4KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBmaXJzdGJp
dGxvdyhjaGFyNCB4KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0
Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngyIGZpcnN0Yml0bG93KGNoYXIy
eDIgeCkgeworICAgIGNoYXIyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0
bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMngz
IGZpcnN0Yml0bG93KGNoYXIyeDMgeCkgeworICAgIGNoYXIyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0
bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMng0IGZpcnN0Yml0bG93
KGNoYXIyeDQgeCkgeworICAgIGNoYXIyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
M3gyIGZpcnN0Yml0bG93KGNoYXIzeDIgeCkgeworICAgIGNoYXIzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3gzIGZpcnN0Yml0
bG93KGNoYXIzeDMgeCkgeworICAgIGNoYXIzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZp
cnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0
Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyM3g0IGZpcnN0Yml0
bG93KGNoYXIzeDQgeCkgeworICAgIGNoYXIzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZp
cnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NHgyIGZpcnN0Yml0bG93KGNoYXI0eDIgeCkgeworICAgIGNoYXI0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNHgzIGZpcnN0Yml0bG93KGNoYXI0eDMgeCkgeworICAgIGNoYXI0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNHg0IGZpcnN0Yml0bG93KGNoYXI0eDQgeCkgewor
ICAgIGNoYXI0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0
Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0
bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93
KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9
IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgZmlyc3RiaXRsb3coc2hvcnQy
IHgpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDMgZmlyc3RiaXRsb3coc2hvcnQzIHgpIHsKKyAgICBzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZp
cnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgZmlyc3RiaXRsb3coc2hvcnQ0IHgpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDJ4MiBmaXJzdGJpdGxvdyhzaG9ydDJ4MiB4KSB7CisgICAgc2hvcnQy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhb
MV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4MyBmaXJzdGJpdGxvdyhzaG9y
dDJ4MyB4KSB7CisgICAgc2hvcnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDJ4NCBmaXJzdGJpdGxvdyhzaG9ydDJ4NCB4KSB7
CisgICAgc2hvcnQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZp
cnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0
Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MiBmaXJzdGJp
dGxvdyhzaG9ydDN4MiB4KSB7CisgICAgc2hvcnQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4MyBmaXJzdGJpdGxvdyhzaG9y
dDN4MyB4KSB7CisgICAgc2hvcnQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0
Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0
bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93
KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDN4NCBmaXJzdGJpdGxvdyhz
aG9ydDN4NCB4KSB7CisgICAgc2hvcnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZp
cnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0
bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4
MiBmaXJzdGJpdGxvdyhzaG9ydDR4MiB4KSB7CisgICAgc2hvcnQ0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0
Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDR4MyBmaXJzdGJpdGxvdyhzaG9ydDR4MyB4KSB7CisgICAgc2hvcnQ0
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZp
cnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0
Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDR4NCBmaXJzdGJpdGxvdyhzaG9ydDR4NCB4
KSB7CisgICAgc2hvcnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZp
cnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0
Yml0bG93KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0
bG93KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIGZpcnN0Yml0bG93KGlu
dDIgeCkgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIGZpcnN0Yml0bG93KGludDMgeCkgeworICAgIGludDMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0
bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IGZpcnN0Yml0bG93KGludDQgeCkgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZp
cnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQyeDIgZmlyc3RiaXRsb3coaW50MngyIHgpIHsKKyAgICBpbnQyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQyeDMgZmlyc3RiaXRsb3coaW50MngzIHgpIHsKKyAgICBpbnQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQyeDQgZmlyc3RiaXRsb3coaW50Mng0IHgpIHsKKyAgICBpbnQyeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZp
cnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0
Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzeDIgZmlyc3RiaXRsb3coaW50M3gyIHgpIHsKKyAgICBpbnQzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0
Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
eDMgZmlyc3RiaXRsb3coaW50M3gzIHgpIHsKKyAgICBpbnQzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0
Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0
bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDQg
Zmlyc3RiaXRsb3coaW50M3g0IHgpIHsKKyAgICBpbnQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0
bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJl
c3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0eDIgZmlyc3RiaXRsb3coaW50NHgyIHgpIHsKKyAgICBpbnQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZp
cnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0eDMgZmlyc3RiaXRsb3coaW50NHgzIHgpIHsKKyAgICBpbnQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZp
cnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0
Yml0bG93KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZpcnN0Yml0
bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZpcnN0Yml0bG93KHhbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0eDQgZmlyc3RiaXRsb3coaW50NHg0IHgpIHsKKyAg
ICBpbnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZpcnN0Yml0bG93KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZpcnN0Yml0bG93KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGZpcnN0Yml0bG93KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZpcnN0Yml0
bG93KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZpcnN0Yml0bG93KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZpcnN0Yml0bG93KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZpcnN0Yml0bG93KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZpcnN0Yml0bG93
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZpcnN0Yml0bG93KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGZpcnN0Yml0bG93KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGZpcnN0Yml0bG93KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZpcnN0Yml0bG93KHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZpcnN0Yml0bG93KHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGZpcnN0Yml0bG93KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZp
cnN0Yml0bG93KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZpcnN0Yml0bG93KHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgZGV0ZXJtaW5hbnQoaGFsZiB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CitoYWxmIGRldGVybWluYW50KGhhbGYyeDIgeCkgeworICAgIHJl
dHVybiB4WzBdWzBdICogeFsxXVsxXSAtIHhbMF1bMV0gKiB4WzFdWzBdOworfQoraGFsZiBkZXRl
cm1pbmFudChoYWxmM3gzIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0gKiB4WzJd
WzJdICsKKyAgICAgICAgICAgeFswXVsxXSAqIHhbMV1bMl0gKiB4WzJdWzBdICsKKyAgICAgICAg
ICAgeFswXVsyXSAqIHhbMV1bMF0gKiB4WzJdWzFdIC0KKyAgICAgICAgICAgeFsyXVswXSAqIHhb
MV1bMV0gKiB4WzBdWzJdIC0KKyAgICAgICAgICAgeFsyXVsxXSAqIHhbMV1bMl0gKiB4WzBdWzBd
IC0KKyAgICAgICAgICAgeFsyXVsyXSAqIHhbMV1bMF0gKiB4WzBdWzFdOworfQoraGFsZiBkZXRl
cm1pbmFudChoYWxmNHg0IHgpIHsKKyAgICBoYWxmIHJlc3VsdDsKKyAgICBoYWxmM3gzIG1pbm9y
OworICAgIG1pbm9yWzBdWzBdID0geFsxXVsxXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1bMl07
CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVsxXTsK
KyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzNdOwor
ICAgIG1pbm9yWzJdWzBdID0geFszXVsxXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMl07Cisg
ICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIHhbMF1bMF0g
KiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4WzFdWzBdOworICAgIG1p
bm9yWzBdWzFdID0geFsxXVsyXTsKKyAgICBtaW5vclswXVsyXSA9IHhbMV1bM107CisgICAgbWlu
b3JbMV1bMF0gPSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsyXVsyXTsKKyAgICBtaW5v
clsxXVsyXSA9IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNdWzBdOworICAgIG1pbm9y
WzJdWzFdID0geFszXVsyXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11bM107CisgICAgcmVzdWx0
ID0gcmVzdWx0IC0geFswXVsxXSAqIGRldGVybWluYW50KG1pbm9yKTsKKyAgICBtaW5vclswXVsw
XSA9IHhbMV1bMF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOworICAgIG1pbm9yWzBdWzJd
ID0geFsxXVszXTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07CisgICAgbWlub3JbMV1bMV0g
PSB4WzJdWzFdOworICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAgICBtaW5vclsyXVswXSA9
IHhbM11bMF07CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAgIG1pbm9yWzJdWzJdID0g
eFszXVszXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzJdICogZGV0ZXJtaW5hbnQobWlu
b3IpOworICAgIG1pbm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1b
MV07CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzJdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVsw
XTsKKyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMV07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzJd
OworICAgIG1pbm9yWzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMV07
CisgICAgbWlub3JbMl1bMl0gPSB4WzNdWzJdOworICAgIHJlc3VsdCA9IHJlc3VsdCAtIHhbMF1b
M10gKiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0IGRl
dGVybWluYW50KGZsb2F0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0IGRldGVybWluYW50
KGZsb2F0MngyIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0gLSB4WzBdWzFdICog
eFsxXVswXTsKK30KK2Zsb2F0IGRldGVybWluYW50KGZsb2F0M3gzIHgpIHsKKyAgICByZXR1cm4g
eFswXVswXSAqIHhbMV1bMV0gKiB4WzJdWzJdICsKKyAgICAgICAgICAgeFswXVsxXSAqIHhbMV1b
Ml0gKiB4WzJdWzBdICsKKyAgICAgICAgICAgeFswXVsyXSAqIHhbMV1bMF0gKiB4WzJdWzFdIC0K
KyAgICAgICAgICAgeFsyXVswXSAqIHhbMV1bMV0gKiB4WzBdWzJdIC0KKyAgICAgICAgICAgeFsy
XVsxXSAqIHhbMV1bMl0gKiB4WzBdWzBdIC0KKyAgICAgICAgICAgeFsyXVsyXSAqIHhbMV1bMF0g
KiB4WzBdWzFdOworfQorZmxvYXQgZGV0ZXJtaW5hbnQoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0
IHJlc3VsdDsKKyAgICBmbG9hdDN4MyBtaW5vcjsKKyAgICBtaW5vclswXVswXSA9IHhbMV1bMV07
CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzJdOworICAgIG1pbm9yWzBdWzJdID0geFsxXVszXTsK
KyAgICBtaW5vclsxXVswXSA9IHhbMl1bMV07CisgICAgbWlub3JbMV1bMV0gPSB4WzJdWzJdOwor
ICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAgICBtaW5vclsyXVswXSA9IHhbM11bMV07Cisg
ICAgbWlub3JbMl1bMV0gPSB4WzNdWzJdOworICAgIG1pbm9yWzJdWzJdID0geFszXVszXTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzBdICogZGV0ZXJtaW5hbnQobWlub3IpOworICAgIG1p
bm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5vclswXVsxXSA9IHhbMV1bMl07CisgICAgbWlu
b3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFdWzBdID0geFsyXVswXTsKKyAgICBtaW5v
clsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1bMl0gPSB4WzJdWzNdOworICAgIG1pbm9y
WzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11bMl07CisgICAgbWlub3Jb
Ml1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJlc3VsdCAtIHhbMF1bMV0gKiBkZXRlcm1p
bmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4WzFdWzBdOworICAgIG1pbm9yWzBdWzFd
ID0geFsxXVsxXTsKKyAgICBtaW5vclswXVsyXSA9IHhbMV1bM107CisgICAgbWlub3JbMV1bMF0g
PSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsyXVsxXTsKKyAgICBtaW5vclsxXVsyXSA9
IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNdWzBdOworICAgIG1pbm9yWzJdWzFdID0g
eFszXVsxXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11bM107CisgICAgcmVzdWx0ID0gcmVzdWx0
ICsgeFswXVsyXSAqIGRldGVybWluYW50KG1pbm9yKTsKKyAgICBtaW5vclswXVswXSA9IHhbMV1b
MF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOworICAgIG1pbm9yWzBdWzJdID0geFsxXVsy
XTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07CisgICAgbWlub3JbMV1bMV0gPSB4WzJdWzFd
OworICAgIG1pbm9yWzFdWzJdID0geFsyXVsyXTsKKyAgICBtaW5vclsyXVswXSA9IHhbM11bMF07
CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAgIG1pbm9yWzJdWzJdID0geFszXVsyXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgLSB4WzBdWzNdICogZGV0ZXJtaW5hbnQobWlub3IpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyNCBkc3QodWNoYXI0IHNyYzAsIHVjaGFyNCBzcmMx
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVzdWx0Lnkg
PSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVzdWx0Lncg
PSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgZHN0KHVzaG9ydDQgc3Jj
MCwgdXNob3J0NCBzcmMxKSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSAx
OworICAgIHJlc3VsdC55ID0gc3JjMC55ICogc3JjMS55OworICAgIHJlc3VsdC56ID0gc3JjMC56
OworICAgIHJlc3VsdC53ID0gc3JjMS53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBk
c3QodWludDQgc3JjMCwgdWludDQgc3JjMSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IDE7CisgICAgcmVzdWx0LnkgPSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0Lnog
PSBzcmMwLno7CisgICAgcmVzdWx0LncgPSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IGRzdChjaGFyNCBzcmMwLCBjaGFyNCBzcmMxKSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICBy
ZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IGRzdChzaG9ydDQgc3JjMCwgc2hvcnQ0IHNyYzEpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNy
YzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBkc3QoaW50NCBzcmMwLCBpbnQ0IHNyYzEpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVzdWx0LnkgPSBzcmMwLnkg
KiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVzdWx0LncgPSBzcmMxLnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRzdChoYWxmNCBzcmMwLCBoYWxmNCBzcmMx
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9
IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9
IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGRzdChmbG9hdDQgc3JjMCwg
ZmxvYXQ0IHNyYzEpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAg
ICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAg
ICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxmIGRpc3Rh
bmNlKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitoYWxm
IGRpc3RhbmNlKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTsK
K30KK2hhbGYgZGlzdGFuY2UoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIHJldHVybiBsZW5ndGgo
eCAtIHkpOworfQoraGFsZiBkaXN0YW5jZShoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAgcmV0dXJu
IGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5jZShmbG9hdCB4LCBmbG9hdCB5KSB7Cisg
ICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5jZShmbG9hdDIgeCwgZmxv
YXQyIHkpIHsKKyAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTsKK30KK2Zsb2F0IGRpc3RhbmNlKGZs
b2F0MyB4LCBmbG9hdDMgeSkgeworICAgIHJldHVybiBsZW5ndGgoeCAtIHkpOworfQorZmxvYXQg
ZGlzdGFuY2UoZmxvYXQ0IHgsIGZsb2F0NCB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7
Cit9CisKK2hhbGYzIGNyb3NzKGhhbGYzIHUsIGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB1LnkgKiB2LnogLSB1LnogKiB2Lnk7CisgICAgcmVzdWx0LnkgPSB1
LnogKiB2LnggLSB1LnggKiB2Lno7CisgICAgcmVzdWx0LnogPSB1LnggKiB2LnkgLSB1LnkgKiB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBjcm9zcyhmbG9hdDMgdSwgZmxvYXQz
IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdS55ICogdi56IC0gdS56
ICogdi55OworICAgIHJlc3VsdC55ID0gdS56ICogdi54IC0gdS54ICogdi56OworICAgIHJlc3Vs
dC56ID0gdS54ICogdi55IC0gdS55ICogdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Vj
aGFyIGRvdCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIGEgKiBiOworfQordWNoYXIg
ZG90KHVjaGFyMiBhLCB1Y2hhcjIgYikgeworICAgIHVjaGFyIHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyIGRvdCh1Y2hhcjMgYSwgdWNoYXIz
IGIpIHsKKyAgICB1Y2hhciByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0g
KiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhciBkb3Qo
dWNoYXI0IGEsIHVjaGFyNCBiKSB7CisgICAgdWNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQg
PSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsx
XTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0IGRvdCh1c2hv
cnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9Cit1c2hvcnQgZG90KHVzaG9y
dDIgYSwgdXNob3J0MiBiKSB7CisgICAgdXNob3J0IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydCBkb3QodXNob3J0MyBhLCB1c2hvcnQzIGIp
IHsKKyAgICB1c2hvcnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICog
YlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0IGRvdCh1
c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHVzaG9ydCByZXN1bHQgPSAwOworICAgIHJlc3Vs
dCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBi
WzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IGRvdCh1aW50
IGEsIHVpbnQgYikgeworICAgIHJldHVybiBhICogYjsKK30KK3VpbnQgZG90KHVpbnQyIGEsIHVp
bnQyIGIpIHsKKyAgICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsw
XSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQzIGEsIHVpbnQzIGIpIHsKKyAgICB1aW50IHJlc3Vs
dCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQ0IGEsIHVpbnQ0IGIpIHsKKyAg
ICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVsyXSAqIGJbMl07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVszXSAqIGJbM107CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXIgZG90KGNoYXIgYSwgY2hhciBiKSB7CisgICAgcmV0dXJuIGEg
KiBiOworfQorY2hhciBkb3QoY2hhcjIgYSwgY2hhcjIgYikgeworICAgIGNoYXIgcmVzdWx0ID0g
MDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhciBkb3QoY2hhcjMg
YSwgY2hhcjMgYikgeworICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQg
KyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
ciBkb3QoY2hhcjQgYSwgY2hhcjQgYikgeworICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICog
YlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQgZG90KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9CitzaG9ydCBkb3Qoc2hvcnQy
IGEsIHNob3J0MiBiKSB7CisgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQgZG90KHNob3J0MyBhLCBzaG9ydDMgYikgeworICAg
IHNob3J0IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0IGRvdChzaG9ydDQgYSwg
c2hvcnQ0IGIpIHsKKyAgICBzaG9ydCByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCAr
IGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJl
c3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10g
KiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQgZG90KGludCBhLCBpbnQgYikgewor
ICAgIHJldHVybiBhICogYjsKK30KK2ludCBkb3QoaW50MiBhLCBpbnQyIGIpIHsKKyAgICBpbnQg
cmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50IGRv
dChpbnQzIGEsIGludDMgYikgeworICAgIGludCByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQgZG90KGludDQgYSwgaW50NCBiKSB7CisgICAgaW50IHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVszXSAqIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYgZG90KGhh
bGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGEgKiBiOworfQoraGFsZiBkb3QoaGFsZjIgYSwg
aGFsZjIgYikgeworICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBh
WzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjMgYSwgaGFsZjMgYikgeworICAgIGhhbGYgcmVz
dWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQg
PSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsy
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjQgYSwgaGFsZjQgYikgewor
ICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQg
KyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQgZG90KGZsb2F0IGEsIGZsb2F0IGIpIHsKKyAgICByZXR1
cm4gYSAqIGI7Cit9CitmbG9hdCBkb3QoZmxvYXQyIGEsIGZsb2F0MiBiKSB7CisgICAgZmxvYXQg
cmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQg
ZG90KGZsb2F0MyBhLCBmbG9hdDMgYikgeworICAgIGZsb2F0IHJlc3VsdCA9IDA7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAq
IGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0IGRvdChmbG9hdDQgYSwgZmxvYXQ0IGIpIHsKKyAgICBmbG9hdCByZXN1
bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJd
OworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK2hhbGYgZmFjZWZvcndhcmQoaGFsZiBuLCBoYWxmIGksIGhhbGYgbmcpIHsKKyAgICBy
ZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjIgZmFjZWZvcndhcmQoaGFsZjIg
biwgaGFsZjIgaSwgaGFsZjIgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykp
OworfQoraGFsZjMgZmFjZWZvcndhcmQoaGFsZjMgbiwgaGFsZjMgaSwgaGFsZjMgbmcpIHsKKyAg
ICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjQgZmFjZWZvcndhcmQoaGFs
ZjQgbiwgaGFsZjQgaSwgaGFsZjQgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBu
ZykpOworfQorZmxvYXQgZmFjZWZvcndhcmQoZmxvYXQgbiwgZmxvYXQgaSwgZmxvYXQgbmcpIHsK
KyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQorZmxvYXQyIGZhY2Vmb3J3YXJk
KGZsb2F0MiBuLCBmbG9hdDIgaSwgZmxvYXQyIG5nKSB7CisgICAgcmV0dXJuIC1uICogc2lnbihk
b3QoaSwgbmcpKTsKK30KK2Zsb2F0MyBmYWNlZm9yd2FyZChmbG9hdDMgbiwgZmxvYXQzIGksIGZs
b2F0MyBuZykgeworICAgIHJldHVybiAtbiAqIHNpZ24oZG90KGksIG5nKSk7Cit9CitmbG9hdDQg
ZmFjZWZvcndhcmQoZmxvYXQ0IG4sIGZsb2F0NCBpLCBmbG9hdDQgbmcpIHsKKyAgICByZXR1cm4g
LW4gKiBzaWduKGRvdChpLCBuZykpOworfQorCitoYWxmIGxlbmd0aChoYWxmIHgpIHsKKyAgICBy
ZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQoraGFsZiBsZW5ndGgoaGFsZjIgeCkgeworICAgIHJl
dHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitoYWxmIGxlbmd0aChoYWxmMyB4KSB7CisgICAgcmV0
dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2hhbGYgbGVuZ3RoKGhhbGY0IHgpIHsKKyAgICByZXR1
cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0IHgpIHsKKyAgICByZXR1
cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0MiB4KSB7CisgICAgcmV0
dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2Zsb2F0IGxlbmd0aChmbG9hdDMgeCkgeworICAgIHJl
dHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitmbG9hdCBsZW5ndGgoZmxvYXQ0IHgpIHsKKyAgICBy
ZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQorCitoYWxmNCBsaXQoaGFsZiBuX2RvdF9sLCBoYWxm
IG5fZG90X2gsIGhhbGYgbSkgeworICAgIGhhbGYgYW1iaWVudCA9IDE7CisgICAgaGFsZiBkaWZm
dXNlID0gbWF4KDAsIG5fZG90X2wpOworICAgIGhhbGYgc3BlY3VsYXIgPSBuX2RvdF9sIDwgMCB8
fCBuX2RvdF9oIDwgMCA/IDAgOiBuX2RvdF9oICogbTsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSBhbWJpZW50OworICAgIHJlc3VsdC55ID0gZGlmZnVzZTsKKyAgICByZXN1bHQu
eiA9IHNwZWN1bGFyOworICAgIHJlc3VsdC53ID0gMTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IGxpdChmbG9hdCBuX2RvdF9sLCBmbG9hdCBuX2RvdF9oLCBmbG9hdCBtKSB7CisgICAg
ZmxvYXQgYW1iaWVudCA9IDE7CisgICAgZmxvYXQgZGlmZnVzZSA9IG1heCgwLCBuX2RvdF9sKTsK
KyAgICBmbG9hdCBzcGVjdWxhciA9IG5fZG90X2wgPCAwIHx8IG5fZG90X2ggPCAwID8gMCA6IG5f
ZG90X2ggKiBtOworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSBhbWJpZW50Owor
ICAgIHJlc3VsdC55ID0gZGlmZnVzZTsKKyAgICByZXN1bHQueiA9IHNwZWN1bGFyOworICAgIHJl
c3VsdC53ID0gMTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxmIG5vcm1hbGl6ZShoYWxm
IHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2hhbGYyIG5vcm1hbGl6ZShoYWxm
MiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitoYWxmMyBub3JtYWxpemUoaGFs
ZjMgeCkgeworICAgIHJldHVybiB4IC8gbGVuZ3RoKHgpOworfQoraGFsZjQgbm9ybWFsaXplKGhh
bGY0IHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2Zsb2F0IG5vcm1hbGl6ZShm
bG9hdCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDIgbm9ybWFsaXpl
KGZsb2F0MiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDMgbm9ybWFs
aXplKGZsb2F0MyB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitmbG9hdDQgbm9y
bWFsaXplKGZsb2F0NCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CisKK2hhbGYg
cmVmbGVjdChoYWxmIGksIGhhbGYgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwg
bik7Cit9CitoYWxmMiByZWZsZWN0KGhhbGYyIGksIGhhbGYyIG4pIHsKKyAgICByZXR1cm4gaSAt
IDIgKiBuICogZG90KGksIG4pOworfQoraGFsZjMgcmVmbGVjdChoYWxmMyBpLCBoYWxmMyBuKSB7
CisgICAgcmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2hhbGY0IHJlZmxlY3QoaGFs
ZjQgaSwgaGFsZjQgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwgbik7Cit9Citm
bG9hdCByZWZsZWN0KGZsb2F0IGksIGZsb2F0IG4pIHsKKyAgICByZXR1cm4gaSAtIDIgKiBuICog
ZG90KGksIG4pOworfQorZmxvYXQyIHJlZmxlY3QoZmxvYXQyIGksIGZsb2F0MiBuKSB7CisgICAg
cmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2Zsb2F0MyByZWZsZWN0KGZsb2F0MyBp
LCBmbG9hdDMgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3QoaSwgbik7Cit9CitmbG9h
dDQgcmVmbGVjdChmbG9hdDQgaSwgZmxvYXQ0IG4pIHsKKyAgICByZXR1cm4gaSAtIDIgKiBuICog
ZG90KGksIG4pOworfQorCitoYWxmIHJlZnJhY3QoaGFsZiBpLCBoYWxmIG4sIGhhbGYgZXRhKSB7
CisgICAgaGFsZiByZXN1bHQ7CisgICAgaGFsZiBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90
KG4sIGkpICogZG90KG4sIGkpKTsKKyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgcmV0dXJuIGV0YSAqIGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBu
OworfQoraGFsZjIgcmVmcmFjdChoYWxmMiBpLCBoYWxmMiBuLCBoYWxmIGV0YSkgeworICAgIGhh
bGYyIHJlc3VsdDsKKyAgICBoYWxmIGsgPSAxIC0gZXRhICogZXRhICogKDEgLSBkb3QobiwgaSkg
KiBkb3QobiwgaSkpOworICAgIGlmIChrIDwgMCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAg
ICByZXR1cm4gZXRhICogaSAtIChldGEgKiBkb3QobiwgaSkgKyBzcXJ0KGspKSAqIG47Cit9Cito
YWxmMyByZWZyYWN0KGhhbGYzIGksIGhhbGYzIG4sIGhhbGYgZXRhKSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIGhhbGYgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChu
LCBpKSk7CisgICAgaWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biBldGEgKiBpIC0gKGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KK2hhbGY0IHJl
ZnJhY3QoaGFsZjQgaSwgaGFsZjQgbiwgaGFsZiBldGEpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgaGFsZiBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90KG4sIGkpKTsK
KyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGV0YSAq
IGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQorZmxvYXQgcmVmcmFjdChm
bG9hdCBpLCBmbG9hdCBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdCByZXN1bHQ7CisgICAgZmxv
YXQgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChuLCBpKSk7CisgICAg
aWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBldGEgKiBpIC0g
KGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KK2Zsb2F0MiByZWZyYWN0KGZsb2F0
MiBpLCBmbG9hdDIgbiwgZmxvYXQgZXRhKSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICBmbG9h
dCBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90KG4sIGkpKTsKKyAgICBp
ZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGV0YSAqIGkgLSAo
ZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQorZmxvYXQzIHJlZnJhY3QoZmxvYXQz
IGksIGZsb2F0MyBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIGZsb2F0
IGsgPSAxIC0gZXRhICogZXRhICogKDEgLSBkb3QobiwgaSkgKiBkb3QobiwgaSkpOworICAgIGlm
IChrIDwgMCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZXRhICogaSAtIChl
dGEgKiBkb3QobiwgaSkgKyBzcXJ0KGspKSAqIG47Cit9CitmbG9hdDQgcmVmcmFjdChmbG9hdDQg
aSwgZmxvYXQ0IG4sIGZsb2F0IGV0YSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgZmxvYXQg
ayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChuLCBpKSk7CisgICAgaWYg
KGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBldGEgKiBpIC0gKGV0
YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KKworaGFsZiB0cmFuc3Bvc2UoaGFsZiB4
KSB7CisgICAgcmV0dXJuIHg7Cit9CitoYWxmMngyIHRyYW5zcG9zZShoYWxmMngyIHgpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1
bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHRyYW5z
cG9zZShoYWxmM3gyIHgpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzBdWzJd
ID0geFsyXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsx
XSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjJ4NCB0cmFuc3Bvc2UoaGFsZjR4MiB4KSB7CisgICAgaGFsZjJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFd
WzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0geFsz
XVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhb
MV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSB4
WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHRyYW5zcG9zZShoYWxmMngz
IHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOwor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsK
KyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07
CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyB0cmFuc3Bvc2UoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJl
c3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAg
cmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzFdWzJdOworICAg
IHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQg
dHJhbnNwb3NlKGhhbGY0eDMgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRb
MF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IHhbM11bMF07CisgICAgcmVzdWx0
WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0geFszXVsxXTsKKyAgICByZXN1
bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmVz
dWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSB4WzNdWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHRyYW5zcG9zZShoYWxmMng0IHgpIHsKKyAgICBoYWxm
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsx
XSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1b
MV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJd
WzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAgIHJlc3VsdFsz
XVsxXSA9IHhbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgdHJhbnNwb3Nl
KGhhbGYzeDQgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4
WzJdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0g
eFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsyXVswXSA9
IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0g
PSB4WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHhbMF1bM107CisgICAgcmVzdWx0WzNdWzFd
ID0geFsxXVszXTsKKyAgICByZXN1bHRbM11bMl0gPSB4WzJdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHg0IHRyYW5zcG9zZShoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSB4WzNd
WzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsx
XVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IHhb
M11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4
WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0g
eFszXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAgIHJlc3VsdFszXVsxXSA9
IHhbMV1bM107CisgICAgcmVzdWx0WzNdWzJdID0geFsyXVszXTsKKyAgICByZXN1bHRbM11bM10g
PSB4WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdCB0cmFuc3Bvc2UoZmxvYXQg
eCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQyeDIgdHJhbnNwb3NlKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAg
cmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMg
dHJhbnNwb3NlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3Vs
dFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1
bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IHRyYW5zcG9zZShmbG9hdDR4MiB4KSB7CisgICAgZmxv
YXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBd
WzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFsw
XVszXSA9IHhbM11bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmVzdWx0
WzFdWzNdID0geFszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgdHJhbnNw
b3NlKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVsw
XSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMl1b
MF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIHRyYW5zcG9zZShmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
eFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFsxXVswXSA9
IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
PSB4WzJdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFd
ID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4WzJdWzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4NCB0cmFuc3Bvc2UoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0M3g0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhb
MV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSB4
WzNdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0g
eFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IHhbM11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0g
PSB4WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0geFszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgdHJhbnNwb3NlKGZs
b2F0Mng0IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhb
MF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4
WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmVzdWx0WzNdWzBdID0g
eFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyB0cmFuc3Bvc2UoZmxvYXQzeDQgeCkgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBd
WzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsy
XVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhb
MV1bMl07CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4
WzBdWzNdOworICAgIHJlc3VsdFszXVsxXSA9IHhbMV1bM107CisgICAgcmVzdWx0WzNdWzJdID0g
eFsyXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgdHJhbnNwb3NlKGZsb2F0
NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVsw
XTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1b
MF07CisgICAgcmVzdWx0WzBdWzNdID0geFszXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBd
WzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsy
XVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSB4WzNdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhb
MF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4
WzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IHhbM11bMl07CisgICAgcmVzdWx0WzNdWzBdID0g
eFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAgIHJlc3VsdFszXVsyXSA9
IHhbMl1bM107CisgICAgcmVzdWx0WzNdWzNdID0geFszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitpbnQgYXNpbnQoaW50IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDIgYXNpbnQo
aW50MiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQzIGFzaW50KGludDMgeCkgeworICAgIHJl
dHVybiB4OworfQoraW50NCBhc2ludChpbnQ0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDJ4
MiBhc2ludChpbnQyeDIgeCkgeworICAgIHJldHVybiB4OworfQoraW50MngzIGFzaW50KGludDJ4
MyB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQyeDQgYXNpbnQoaW50Mng0IHgpIHsKKyAgICBy
ZXR1cm4geDsKK30KK2ludDN4MiBhc2ludChpbnQzeDIgeCkgeworICAgIHJldHVybiB4OworfQor
aW50M3gzIGFzaW50KGludDN4MyB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQzeDQgYXNpbnQo
aW50M3g0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2ludDR4MiBhc2ludChpbnQ0eDIgeCkgewor
ICAgIHJldHVybiB4OworfQoraW50NHgzIGFzaW50KGludDR4MyB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitpbnQ0eDQgYXNpbnQoaW50NHg0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBp
bnQgYXNpbnQodWludCk7CitpbnQyIGFzaW50KHVpbnQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhc2ludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2ludCh4WzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBhc2ludCh1aW50MyB4KSB7CisgICAgaW50
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
YXNpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXNpbnQoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgYXNpbnQodWludDQgeCkgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW50KHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzaW50KHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyeDIgYXNpbnQodWludDJ4MiB4KSB7CisgICAgaW50
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50MngzIGFzaW50KHVpbnQyeDMgeCkgeworICAgIGludDJ4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNp
bnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDJ4NCBhc2ludCh1aW50Mng0IHgpIHsKKyAgICBpbnQyeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFz
aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW50KHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzeDIgYXNpbnQodWludDN4MiB4KSB7CisgICAg
aW50M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc2ludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50M3gzIGFzaW50KHVpbnQzeDMgeCkgeworICAg
IGludDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDN4NCBhc2ludCh1aW50M3g0IHgpIHsKKyAgICBpbnQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFz
aW50KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzaW50KHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0eDIgYXNpbnQodWludDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2ludCh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBhc2ludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2ludCh4WzNdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIGFzaW50KHVpbnQ0eDMgeCkgeworICAg
IGludDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNp
bnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNpbnQoeFszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDR4NCBhc2ludCh1aW50NHg0IHgpIHsKKyAgICBpbnQ0eDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGFzaW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFz
aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzaW50KHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGFzaW50KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9
IGFzaW50KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW50KHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGFzaW50KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGFzaW50
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CituYXRpdmUgaW50IGFzaW50KGZsb2F0
KTsKK2ludDIgYXNpbnQoZmxvYXQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhc2ludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2ludCh4WzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50MyBhc2ludChmbG9hdDMgeCkgeworICAgIGludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW50KHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IGFzaW50KGZsb2F0NCB4KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
YXNpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXNpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gYXNpbnQoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gYXNpbnQoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDJ4MiBhc2ludChmbG9hdDJ4MiB4KSB7CisgICAgaW50MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MngzIGFzaW50KGZsb2F0MngzIHgpIHsKKyAgICBpbnQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW50KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW50KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQyeDQgYXNpbnQoZmxvYXQyeDQgeCkgeworICAgIGludDJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbnQoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbnQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQoeFsxXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDN4MiBhc2ludChmbG9hdDN4MiB4KSB7CisgICAgaW50M3gy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhc2ludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2ludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50M3gzIGFzaW50KGZsb2F0M3gzIHgpIHsKKyAgICBpbnQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFz
aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzeDQgYXNpbnQoZmxvYXQzeDQgeCkgeworICAgIGludDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YXNpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbnQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDR4MiBhc2ludChmbG9hdDR4MiB4KSB7CisgICAgaW50NHgyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhc2ludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2lu
dCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2ludCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2ludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2ludCh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc2ludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBhc2ludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc2ludCh4WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NHgzIGFzaW50KGZsb2F0NHgzIHgpIHsKKyAgICBp
bnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW50KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGFzaW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW50KHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFzaW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW50KHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGFzaW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGFzaW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW50KHhbMl1bMl0pOworICAg
IHJlc3VsdFszXVswXSA9IGFzaW50KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW50
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzaW50KHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0eDQgYXNpbnQoZmxvYXQ0eDQgeCkgeworICAgIGludDR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYXNpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbnQoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gYXNpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNp
bnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbnQoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXNpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbnQoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXNpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNpbnQoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbnQoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
YXNpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNpbnQoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gYXNpbnQoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXNpbnQo
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK25hdGl2ZSB1aW50IGFzdWludChpbnQp
OwordWludDIgYXN1aW50KGludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhc3VpbnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXN1aW50KHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBhc3VpbnQoaW50MyB4KSB7CisgICAgdWludDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBhc3VpbnQoaW50NCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQoeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzdWludCh4WzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MiBhc3VpbnQoaW50MngyIHgpIHsKKyAgICB1
aW50MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWlu
dCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQyeDMgYXN1aW50KGludDJ4MyB4KSB7CisgICAgdWludDJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc3VpbnQoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyeDQgYXN1aW50KGludDJ4NCB4KSB7CisgICAg
dWludDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc3Vp
bnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXN1aW50KHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGFzdWludCh4WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDN4
MiBhc3VpbnQoaW50M3gyIHgpIHsKKyAgICB1aW50M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDN4MyBhc3VpbnQoaW50M3gzIHgpIHsKKyAgICB1aW50M3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXN1aW50KHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXN1aW50KHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzdWludCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDN4NCBhc3VpbnQoaW50M3g0IHgpIHsKKyAgICB1aW50M3g0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBhc3VpbnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1
aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXN1aW50
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzdWludCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXN1aW50KHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzdWludCh4WzJdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDR4MiBhc3VpbnQoaW50NHgyIHgpIHsKKyAgICB1aW50NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
YXN1aW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc3VpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXN1
aW50KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHgzIGFzdWludChpbnQ0
eDMgeCkgeworICAgIHVpbnQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzdWludCh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gYXN1aW50KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXN1aW50KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NHg0IGFzdWludChp
bnQ0eDQgeCkgeworICAgIHVpbnQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWlu
dCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzdWludCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYXN1aW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc3VpbnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gYXN1aW50KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc3VpbnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gYXN1aW50KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
YXN1aW50KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGFzdWludCh4WzNdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludCBhc3VpbnQodWludCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9Cit1aW50MiBhc3VpbnQodWludDIgeCkgeworICAgIHJldHVybiB4OworfQordWludDMgYXN1
aW50KHVpbnQzIHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VpbnQ0IGFzdWludCh1aW50NCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9Cit1aW50MngyIGFzdWludCh1aW50MngyIHgpIHsKKyAgICByZXR1
cm4geDsKK30KK3VpbnQyeDMgYXN1aW50KHVpbnQyeDMgeCkgeworICAgIHJldHVybiB4OworfQor
dWludDJ4NCBhc3VpbnQodWludDJ4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9Cit1aW50M3gyIGFz
dWludCh1aW50M3gyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VpbnQzeDMgYXN1aW50KHVpbnQz
eDMgeCkgeworICAgIHJldHVybiB4OworfQordWludDN4NCBhc3VpbnQodWludDN4NCB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9Cit1aW50NHgyIGFzdWludCh1aW50NHgyIHgpIHsKKyAgICByZXR1cm4g
eDsKK30KK3VpbnQ0eDMgYXN1aW50KHVpbnQ0eDMgeCkgeworICAgIHJldHVybiB4OworfQordWlu
dDR4NCBhc3VpbnQodWludDR4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgdWludCBh
c3VpbnQoZmxvYXQpOwordWludDIgYXN1aW50KGZsb2F0MiB4KSB7CisgICAgdWludDIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3VpbnQo
eFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGFzdWludChmbG9hdDMgeCkgewor
ICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc3VpbnQoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gYXN1aW50KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzdWludCh4WzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgYXN1aW50KGZsb2F0NCB4KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBh
c3VpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGFzdWludCh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MiBhc3VpbnQo
ZmxvYXQyeDIgeCkgeworICAgIHVpbnQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
dWludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWlu
dCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDJ4MyBhc3VpbnQoZmxvYXQy
eDMgeCkgeworICAgIHVpbnQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXN1aW50KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYXN1aW50KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50Mng0IGFz
dWludChmbG9hdDJ4NCB4KSB7CisgICAgdWludDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXN1aW50KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhc3VpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXN1aW50KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzdWludCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhc3VpbnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXN1
aW50KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzdWludCh4WzFdWzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDN4MiBhc3VpbnQoZmxvYXQzeDIgeCkgeworICAgIHVpbnQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXN1aW50KHhbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50M3gzIGFzdWludChmbG9hdDN4MyB4KSB7
CisgICAgdWludDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXN1aW50KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFzdWludCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhc3VpbnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
c3VpbnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc3Vp
bnQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzeDQgYXN1aW50KGZsb2F0
M3g0IHgpIHsKKyAgICB1aW50M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGFzdWludCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc3VpbnQoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGFzdWludCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc3VpbnQoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXN1aW50KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGFzdWludCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhc3VpbnQoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYXN1aW50KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IGFzdWludCh4WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDR4MiBhc3VpbnQo
ZmxvYXQ0eDIgeCkgeworICAgIHVpbnQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
dWludCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gYXN1aW50KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzdWlu
dCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYXN1aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhc3VpbnQoeFszXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0eDMgYXN1aW50KGZsb2F0NHgzIHgpIHsKKyAgICB1aW50NHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc3VpbnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXN1aW50KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzdWludCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXN1aW50KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBhc3VpbnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YXN1aW50KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzdWludCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhc3VpbnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXN1
aW50KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzdWludCh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDR4NCBhc3VpbnQoZmxvYXQ0eDQgeCkgeworICAgIHVpbnQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzdWludCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc3VpbnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXN1aW50KHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzdWludCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhc3VpbnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXN1aW50KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzdWludCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBhc3VpbnQoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXN1aW50KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGFzdWludCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBhc3VpbnQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXN1aW50KHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IGFzdWludCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
c3VpbnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXN1aW50KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFzdWludCh4WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
bmF0aXZlIGZsb2F0IGFzZmxvYXQoaW50KTsKK2Zsb2F0MiBhc2Zsb2F0KGludDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNm
bG9hdChpbnQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxv
YXQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBhc2Zsb2F0KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgYXNmbG9hdChp
bnQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxvYXQoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2Zs
b2F0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFzZmxvYXQoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIGFzZmxvYXQoaW50MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDMgYXNmbG9hdChpbnQyeDMgeCkgeworICAgIGZsb2F0MngzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFzZmxvYXQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGFzZmxvYXQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgYXNmbG9hdChpbnQyeDQgeCkgewor
ICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2Zsb2F0KHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGFzZmxvYXQoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gyIGFzZmxvYXQoaW50M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzZmxvYXQoaW50M3gzIHgpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGFzZmxvYXQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGFzZmxvYXQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNmbG9hdCh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhc2Zsb2F0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGFzZmxvYXQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGFzZmxv
YXQoaW50M3g0IHgpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXNmbG9hdCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2Zsb2F0KHhbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGFzZmxvYXQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NHgyIGFzZmxvYXQoaW50NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
c2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBh
c2Zsb2F0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhc2Zsb2F0
KGludDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFz
ZmxvYXQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFz
ZmxvYXQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFz
ZmxvYXQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGFz
ZmxvYXQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNmbG9hdCh4WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBhc2Zsb2F0KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4NCBhc2Zsb2F0KGludDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFzZmxvYXQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNm
bG9hdCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGFzZmxvYXQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNm
bG9hdCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNm
bG9hdCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNm
bG9hdCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2Zsb2F0KHhbMl1bM10pOworICAg
IHJlc3VsdFszXVswXSA9IGFzZmxvYXQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXNm
bG9hdCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhc2Zsb2F0KHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFzZmxvYXQoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K25hdGl2ZSBmbG9hdCBhc2Zsb2F0KHVpbnQpOworZmxvYXQyIGFzZmxvYXQodWludDIgeCkgewor
ICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMg
YXNmbG9hdCh1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBh
c2Zsb2F0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzZmxvYXQoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gYXNmbG9hdCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGFzZmxv
YXQodWludDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9h
dCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGFzZmxvYXQoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gYXNmbG9hdCh4WzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDIgYXNmbG9hdCh1aW50MngyIHgpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYXNmbG9hdCh1aW50MngzIHgpIHsKKyAgICBmbG9hdDJ4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQo
eFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IGFzZmxvYXQodWludDJ4
NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzZmxvYXQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzZmxvYXQo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNmbG9hdCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhc2Zsb2F0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzZmxvYXQo
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNmbG9hdCh4WzFdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDIgYXNmbG9hdCh1aW50M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFzZmxvYXQodWludDN4
MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzZmxvYXQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNmbG9hdCh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhc2Zsb2F0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBhc2Zsb2F0KHVpbnQzeDQgeCkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhc2Zsb2F0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhc2Zsb2F0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFzZmxvYXQo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNmbG9hdCh4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhc2Zsb2F0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzZmxvYXQo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNmbG9hdCh4WzJdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgYXNmbG9hdCh1aW50NHgyIHgpIHsKKyAgICBmbG9hdDR4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzZmxvYXQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNmbG9hdCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhc2Zsb2F0KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBhc2Zsb2F0KHVpbnQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhc2Zsb2F0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzZmxvYXQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNmbG9hdCh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBhc2Zsb2F0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzZmxvYXQo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXNmbG9hdCh4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBhc2Zsb2F0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzZmxvYXQo
eFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXNmbG9hdCh4WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgYXNmbG9hdCh1aW50NHg0IHgpIHsKKyAgICBmbG9hdDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNmbG9hdCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhc2Zsb2F0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzZmxvYXQo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXNmbG9hdCh4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc2Zsb2F0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzZmxvYXQo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNmbG9hdCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBhc2Zsb2F0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzZmxvYXQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXNmbG9hdCh4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhc2Zsb2F0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFzZmxvYXQo
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNmbG9hdCh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhc2Zsb2F0KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzZmxvYXQo
eFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXNmbG9hdCh4WzNdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQgYXNmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7Cit9
CitmbG9hdDIgYXNmbG9hdChmbG9hdDIgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzIGFz
ZmxvYXQoZmxvYXQzIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NCBhc2Zsb2F0KGZsb2F0
NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDJ4MiBhc2Zsb2F0KGZsb2F0MngyIHgpIHsK
KyAgICByZXR1cm4geDsKK30KK2Zsb2F0MngzIGFzZmxvYXQoZmxvYXQyeDMgeCkgeworICAgIHJl
dHVybiB4OworfQorZmxvYXQyeDQgYXNmbG9hdChmbG9hdDJ4NCB4KSB7CisgICAgcmV0dXJuIHg7
Cit9CitmbG9hdDN4MiBhc2Zsb2F0KGZsb2F0M3gyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zs
b2F0M3gzIGFzZmxvYXQoZmxvYXQzeDMgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzeDQg
YXNmbG9hdChmbG9hdDN4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDR4MiBhc2Zsb2F0
KGZsb2F0NHgyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NHgzIGFzZmxvYXQoZmxvYXQ0
eDMgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQ0eDQgYXNmbG9hdChmbG9hdDR4NCB4KSB7
CisgICAgcmV0dXJuIHg7Cit9CisKK25hdGl2ZSBmbG9hdCBmMTZ0b2YzMih1aW50KTsKK25hdGl2
ZSB1aW50IGYzMnRvZjE2KGZsb2F0KTsKK2Zsb2F0MiBmMTZ0b2YzMih1aW50MiB4KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBmMTZ0b2YzMih4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgZjMy
dG9mMTYoZmxvYXQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMy
dG9mMTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBmMTZ0b2YzMih1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0
b2YzMih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDMgZjMydG9mMTYoZmxvYXQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gZjMydG9mMTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9m
MTYoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZjMydG9mMTYoeFsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBmMTZ0b2YzMih1aW50NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0b2Yz
Mih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXN1bHRbM10g
PSBmMTZ0b2YzMih4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZjMydG9mMTYo
ZmxvYXQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMydG9mMTYo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
ZjMydG9mMTYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZjMydG9mMTYoeFszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKworbmF0aXZlIHZvaWQgQWxsTWVtb3J5QmFycmllcldpdGhHcm91cFN5
bmMoKTsKK25hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7Citu
YXRpdmUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7CisKK3VjaGFyIG11
bCh1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQordXNob3J0IG11bCh1
c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Cit1aW50IG11bCh1aW50
IHgsIHVpbnQgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK2NoYXIgbXVsKGNoYXIgeCwgY2hh
ciB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorc2hvcnQgbXVsKHNob3J0IHgsIHNob3J0IHkp
IHsKKyAgICByZXR1cm4geCAqIHk7Cit9CitpbnQgbXVsKGludCB4LCBpbnQgeSkgeworICAgIHJl
dHVybiB4ICogeTsKK30KK2hhbGYgbXVsKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIHgg
KiB5OworfQorZmxvYXQgbXVsKGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7
Cit9Cit1Y2hhcjIgbXVsKHVjaGFyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyIG11bCh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAg
IHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFd
ID0geFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBtdWwodWNoYXIgeCwg
dWNoYXIzIHkpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBd
OworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgbXVsKHVjaGFyMyB4LCB1Y2hhciB5KSB7Cisg
ICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRb
MV0gPSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG11bCh1Y2hhciB4LCB1Y2hhcjQgeSkgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBtdWwodWNoYXI0IHgsIHVjaGFyIHkpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsx
XSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9
IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG11bCh1c2hvcnQgeCwg
dXNob3J0MiB5KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlb
MF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDIgbXVsKHVzaG9ydDIgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBtdWwodXNob3J0IHgsIHVzaG9ydDMgeSkgeworICAg
IHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsx
XSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQzIG11bCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAq
IHk7CisgICAgcmVzdWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgbXVsKHVzaG9ydCB4LCB1c2hvcnQ0IHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICBy
ZXN1bHRbMl0gPSB4ICogeVsyXTsKKyAgICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBtdWwodXNob3J0NCB4LCB1c2hvcnQgeSkgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9
IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhb
M10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWludCB4LCB1aW50MiB5
KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJl
c3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWlu
dDIgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0g
KiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50MyBtdWwodWludCB4LCB1aW50MyB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsy
XSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBtdWwodWludDMgeCwg
dWludCB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5Owor
ICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludCB4LCB1aW50NCB5KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHgg
KiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9IHggKiB5
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludDQgeCwgdWludCB5KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3Vs
dFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFsz
XSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBtdWwoY2hhciB4LCBj
aGFyMiB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOwor
ICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBt
dWwoY2hhcjIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBtdWwoY2hhciB4LCBjaGFyMyB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJl
c3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtdWwoY2hh
cjMgeCwgY2hhciB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0g
KiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhciB4LCBjaGFyNCB5KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsx
XSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9
IHggKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhcjQgeCwgY2hh
ciB5KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAg
IHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJl
c3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgbXVsKHNo
b3J0IHgsIHNob3J0MiB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4
ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQyIG11bChzaG9ydDIgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBtdWwoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDMgbXVsKHNob3J0MyB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAg
ICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG11
bChzaG9ydCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmVzdWx0WzJdID0g
eCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBtdWwoc2hvcnQ0IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAg
IHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyIG11bChpbnQgeCwgaW50MiB5KSB7CisgICAgaW50MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgbXVsKGludDIgeCwgaW50IHkpIHsKKyAgICBp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4
WzFdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBtdWwoaW50IHgsIGludDMgeSkg
eworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3Vs
dFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzIG11bChpbnQzIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAg
cmVzdWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbXVsKGlu
dCB4LCBpbnQ0IHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4ICogeVsw
XTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSB4ICogeVsyXTsK
KyAgICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBt
dWwoaW50NCB4LCBpbnQgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhb
MF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0g
KiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMiBtdWwoaGFsZiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZiB4LCBoYWxmMyB5KSB7CisgICAg
aGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBtdWwoaGFsZjMgeCwgaGFsZiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJl
c3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFs
ZiB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5
WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJd
OworICAgIHJlc3VsdFszXSA9IHggKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBtdWwoaGFsZjQgeCwgaGFsZiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9
IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgbXVsKGZsb2F0IHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG11bChmbG9hdDIgeCwgZmxvYXQgeSkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFd
ID0geFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQgeCwg
ZmxvYXQzIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBd
OworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdCB5KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRb
MV0gPSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG11bChmbG9hdCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07
CisgICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwoZmxvYXQ0IHgsIGZsb2F0IHkpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsx
XSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9
IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmIHgsIGhh
bGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsw
XSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMngyIHgsIGhhbGYgeSkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5Owor
ICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngzIG11bChoYWxmIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBd
WzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9
IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG11
bChoYWxmMngzIHgsIGhhbGYgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAg
IHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0g
KiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9
IHhbMV1bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmIHgs
IGhhbGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHgg
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAg
IHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9
IHggKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMng0
IHgsIGhhbGYgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhb
MF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsw
XVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAg
IHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0g
KiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9
IHhbMV1bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmIHgs
IGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHgg
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJd
WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gyIHgsIGhhbGYg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5
OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsy
XVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmIHgsIGhhbGYzeDMgeSkgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJd
OworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHgg
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsy
XVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAg
IHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gzIG11bChoYWxmM3gzIHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5
OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsx
XVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAg
IHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmIHgsIGhhbGYzeDQg
eSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHgg
KiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IHggKiB5WzFd
WzNdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9
IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJlc3Vs
dFsyXVszXSA9IHggKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11
bChoYWxmM3g0IHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAg
IHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10g
KiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9
IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3Vs
dFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5Owor
ICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1b
Ml0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9
IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5
WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHgyIHgsIGhhbGYgeSkgeworICAgIGhhbGY0eDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9
IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3Vs
dFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5Owor
ICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11b
MF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmIHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGY0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9
IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5
WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsy
XSA9IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5WzNdWzBdOworICAgIHJl
c3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IHggKiB5WzNdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHgzIHgsIGhhbGYgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5Owor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1b
Ml0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsx
XSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJl
c3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5
OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhb
M11bMF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFsz
XVsyXSA9IHhbM11bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bCho
YWxmIHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJl
c3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNd
OworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHgg
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsx
XVszXSA9IHggKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAg
IHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJd
WzJdOworICAgIHJlc3VsdFsyXVszXSA9IHggKiB5WzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9
IHggKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3Vs
dFszXVsyXSA9IHggKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IHggKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxmNHg0IHgsIGhhbGYgeSkgewor
ICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAg
IHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0g
KiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9
IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3Vs
dFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5Owor
ICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1b
MV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVsz
XSA9IHhbMl1bM10gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAgIHJl
c3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0gKiB5
OworICAgIHJlc3VsdFszXVszXSA9IHhbM11bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBtdWwoZmxvYXQgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbXVs
KGZsb2F0MngyIHgsIGZsb2F0IHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0geFswXVswXSAqIHk7CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7Cisg
ICAgcmVzdWx0WzFdWzBdID0geFsxXVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsx
XSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG11bChmbG9hdCB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtdWwoZmxvYXQyeDMgeCwgZmxvYXQg
eSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICog
eTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFdICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4
WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRb
MV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbXVsKGZsb2F0IHgsIGZsb2F0Mng0IHkpIHsK
KyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geCAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0geCAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzBd
ID0geCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0geCAqIHlbMV1bM107
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG11bChmbG9hdDJ4NCB4LCBmbG9hdCB5
KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5
OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhb
MF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsx
XVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAg
IHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQgeCwgZmxvYXQz
eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0g
PSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXN1
bHRbMl1bMF0gPSB4ICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4ICogeVsyXVsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbXVsKGZsb2F0M3gyIHgsIGZsb2F0IHkp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAqIHk7
CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0geFsx
XVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0WzJd
WzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG11bChmbG9hdCB4LCBmbG9hdDN4MyB5KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9
IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4MyBtdWwoZmxvYXQzeDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBd
WzFdICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1b
MF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICog
eTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzJdWzFdICogeTsKKyAgICByZXN1bHRbMl1bMl0gPSB4
WzJdWzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbXVsKGZsb2F0IHgs
IGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
eCAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzBdWzJdID0geCAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107Cisg
ICAgcmVzdWx0WzFdWzBdID0geCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0geCAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzJdWzFdID0geCAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzJdWzNdID0geCAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3g0IG11bChmbG9hdDN4NCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhb
MF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsw
XVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAg
IHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0g
KiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9
IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3Vs
dFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQgeCwgZmxvYXQ0eDIgeSkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVswXVswXTsK
KyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1b
MF0gPSB4ICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSB4ICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbM11bMF0gPSB4ICogeVszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSB4ICogeVszXVsx
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbXVsKGZsb2F0NHgyIHgsIGZsb2F0
IHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAq
IHk7CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0g
eFsxXVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0
WzJdWzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7Cisg
ICAgcmVzdWx0WzNdWzBdID0geFszXVswXSAqIHk7CisgICAgcmVzdWx0WzNdWzFdID0geFszXVsx
XSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG11bChmbG9hdCB4LCBmbG9h
dDR4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJd
OworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHgg
KiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFsz
XVswXSA9IHggKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAg
IHJlc3VsdFszXVsyXSA9IHggKiB5WzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MyBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFd
ICogeTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzBdWzJdICogeTsKKyAgICByZXN1bHRbMV1bMF0g
PSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsKKyAgICByZXN1
bHRbMV1bMl0gPSB4WzFdWzJdICogeTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICogeTsK
KyAgICByZXN1bHRbMl1bMV0gPSB4WzJdWzFdICogeTsKKyAgICByZXN1bHRbMl1bMl0gPSB4WzJd
WzJdICogeTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzNdWzBdICogeTsKKyAgICByZXN1bHRbM11b
MV0gPSB4WzNdWzFdICogeTsKKyAgICByZXN1bHRbM11bMl0gPSB4WzNdWzJdICogeTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbXVsKGZsb2F0IHgsIGZsb2F0NHg0IHkpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geCAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0geCAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzNdID0geCAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
eCAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzFdWzJdID0geCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0geCAqIHlbMV1bM107Cisg
ICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0geCAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0geCAqIHlbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0geCAqIHlbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0geCAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0geCAqIHlbM11bMl07
CisgICAgcmVzdWx0WzNdWzNdID0geCAqIHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IG11bChmbG9hdDR4NCB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhb
MF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsw
XVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAg
IHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0g
KiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9
IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3Vs
dFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5Owor
ICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11b
MV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0gKiB5OworICAgIHJlc3VsdFszXVsz
XSA9IHhbM11bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjIgbXVsKHVjaGFy
MiB4LCB1Y2hhcjIgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1Y2hhcjMgbXVsKHVj
aGFyMyB4LCB1Y2hhcjMgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1Y2hhcjQgbXVs
KHVjaGFyNCB4LCB1Y2hhcjQgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1c2hvcnQy
IG11bCh1c2hvcnQyIHgsIHVzaG9ydDIgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7Cit9Cit1
c2hvcnQzIG11bCh1c2hvcnQzIHgsIHVzaG9ydDMgeSkgeworICAgIHJldHVybiBkb3QoeCwgeSk7
Cit9Cit1c2hvcnQ0IG11bCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50MiBtdWwodWludDIgeCwgdWludDIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50MyBtdWwodWludDMgeCwgdWludDMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9Cit1aW50NCBtdWwodWludDQgeCwgdWludDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyMiBtdWwoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyMyBtdWwoY2hhcjMgeCwgY2hhcjMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitjaGFyNCBtdWwoY2hhcjQgeCwgY2hhcjQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitzaG9ydDIgbXVsKHNob3J0MiB4LCBzaG9ydDIgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitzaG9ydDMgbXVsKHNob3J0MyB4LCBzaG9ydDMgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitzaG9ydDQgbXVsKHNob3J0NCB4LCBzaG9ydDQgeSkgeworICAgIHJl
dHVybiBkb3QoeCwgeSk7Cit9CitpbnQyIG11bChpbnQyIHgsIGludDIgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitpbnQzIG11bChpbnQzIHgsIGludDMgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitpbnQ0IG11bChpbnQ0IHgsIGludDQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmMyBtdWwoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitoYWxmNCBtdWwoaGFsZjQgeCwgaGFsZjQgeSkgeworICAgIHJldHVybiBkb3Qo
eCwgeSk7Cit9CitmbG9hdDIgbXVsKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIHJldHVybiBk
b3QoeCwgeSk7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIHJldHVy
biBkb3QoeCwgeSk7Cit9CitmbG9hdDQgbXVsKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIHJl
dHVybiBkb3QoeCwgeSk7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZjJ4MiB5KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0g
Kz0geFsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG11bChoYWxm
MngyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsK
KyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1b
MV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0g
KiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjMgbXVsKGhhbGYyIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAg
ICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjIgbXVsKGhhbGYyeDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAg
ICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMl0g
KiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5
WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0g
eFsxXVsyXSAqIHlbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG11bChoYWxmMiB4
LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAg
ICByZXN1bHRbMF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl0gPSAw
OworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFswXSAq
IHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0gKiB5WzFdWzNdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjJ4NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFsw
XVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3Vs
dFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsx
XSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMiBtdWwoaGFsZjMgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07
CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICog
eVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzeDIgeCwgaGFs
ZjIgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3Vs
dFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07
CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAg
cmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICog
eVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzIHgsIGhhbGYzeDMg
eSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFsw
XSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAg
cmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0g
MDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhb
MV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsyXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGYzeDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICog
eVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9
IHhbMF1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgbXVsKGhhbGYzIHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSAr
PSB4WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4
WzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM10gKz0geFsxXSAqIHlbMV1bM107CisgICAgcmVz
dWx0WzNdICs9IHhbMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBt
dWwoaGFsZjN4NCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjQgeCwgaGFsZjR4MiB5KSB7Cisg
ICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhb
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBd
OworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbM10gKiB5WzNdWzFdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjR4MiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsx
XSAqIHlbMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFsyXVswXSAq
IHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAgIHJlc3VsdFszXSA9
IDA7CisgICAgcmVzdWx0WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAgIHJlc3VsdFszXSArPSB4
WzNdWzFdICogeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgbXVsKGhhbGY0IHgs
IGhhbGY0eDMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAg
IHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzNdICogeVszXVsx
XTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl0g
KiB5WzJdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzNdICogeVszXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgbXVsKGhhbGY0eDMgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVsw
XTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhb
MF1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
MV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0g
Kz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAg
IHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJl
c3VsdFszXSArPSB4WzNdWzBdICogeVswXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsxXSAqIHlb
MV07CisgICAgcmVzdWx0WzNdICs9IHhbM11bMl0gKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBtdWwoaGFsZjQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXSA9
IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzFdICs9IHhbM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0
WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMl0gKz0geFsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbM10g
KiB5WzNdWzJdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9IHhbMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM10g
Kz0geFsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzNdICs9IHhbM10gKiB5WzNdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjR4NCB4LCBoYWxmNCB5KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
MF0gKz0geFswXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOwor
ICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAg
IHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAq
IHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9
IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4
WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVz
dWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0
WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAgIHJlc3VsdFszXSArPSB4WzNdWzFdICogeVsxXTsK
KyAgICByZXN1bHRbM10gKz0geFszXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzNdICs9IHhbM11b
M10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0MiB4LCBm
bG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAg
IHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDIgbXVsKGZsb2F0MngyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsK
KyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzFdID0gMDsKKyAg
ICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0g
KiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MiB4LCBmbG9h
dDJ4MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJl
c3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7Cisg
ICAgcmVzdWx0WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICog
eVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG11bChmbG9hdDJ4MyB4LCBm
bG9hdDMgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICBy
ZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5
WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAw
OworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsx
XVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgbXVsKGZsb2F0MiB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFd
ID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9
IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhb
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4WzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
M10gKz0geFsxXSAqIHlbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBtdWwo
ZmxvYXQyeDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0MyB4
LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOwor
ICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSAr
PSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQzeDIgeCwgZmxvYXQyIHkpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhb
MF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1
bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRb
MV0gKz0geFsxXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0g
Kz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdDN4MyB5KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0
WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAg
ICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIG11bChmbG9hdDN4MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlb
MF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4
WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFd
WzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsxXSAqIHlbMV07CisgICAgcmVzdWx0
WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJd
ICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAg
ICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBtdWwoZmxvYXQzIHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICog
eVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJd
ICs9IHhbMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9
IHhbMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVszXTsKKyAgICBy
ZXN1bHRbM10gKz0geFsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MyBtdWwoZmxvYXQzeDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3Vs
dFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07
CisgICAgcmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFd
ICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFd
ICs9IHhbMV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9
IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICBy
ZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZsb2F0NCB4LCBmbG9hdDR4
MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3Vs
dFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzNd
ICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
ICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzNdICogeVszXVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDR4MiB4LCBmbG9hdDIgeSkgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0g
eFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJl
c3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3Vs
dFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsy
XSArPSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsxXSAqIHlbMV07Cisg
ICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgbXVsKGZsb2F0NCB4LCBmbG9hdDR4MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF0gKz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFswXSArPSB4WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAq
IHlbMV1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsx
XSArPSB4WzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSAr
PSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzJdICs9IHhbMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzNdICogeVsz
XVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDR4MyB4LCBmbG9h
dDMgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1
bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFd
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gPSAwOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsx
XSAqIHlbMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsy
XSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSAr
PSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAgcmVz
dWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJlc3VsdFszXSArPSB4WzNdWzJdICogeVsy
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG11bChmbG9hdDQgeCwgZmxvYXQ0eDQg
eSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRb
MF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFswXSArPSB4WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSAr
PSB4WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzJdICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbMl0gKz0geFszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdID0gMDsK
KyAgICByZXN1bHRbM10gKz0geFswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0g
KiB5WzFdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzJdICogeVsyXVszXTsKKyAgICByZXN1bHRb
M10gKz0geFszXSAqIHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwo
ZmxvYXQ0eDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bM10gKiB5WzNdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bM10gKiB5WzNdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMl1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bM10gKiB5WzNdOwor
ICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAg
IHJlc3VsdFszXSArPSB4WzNdWzFdICogeVsxXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsyXSAq
IHlbMl07CisgICAgcmVzdWx0WzNdICs9IHhbM11bM10gKiB5WzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
WzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSAr
PSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtdWwo
aGFsZjJ4MiB4LCBoYWxmMngzIHkpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4NCBtdWwoaGFsZjJ4MiB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIG11bChoYWxmMngzIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
Ml0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbXVsKGhhbGYyeDMgeCwgaGFsZjN4MyB5KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICBy
ZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAg
cmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAg
IHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
bXVsKGhhbGYyeDMgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAq
IHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMng0IHgsIGhhbGY0eDIgeSkgewor
ICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsx
XVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG11bChoYWxmMng0IHgs
IGhhbGY0eDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFd
OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
M10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMng0IHgsIGhhbGY0eDQgeSkgeworICAg
IGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRd
ICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0
XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFd
WzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSAr
PSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gyIHgsIGhhbGYyeDIgeSkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1
bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MV0gKiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmM3gy
IHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9
IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsw
XVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJl
c3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzNd
ID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsw
XSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmM3gyIHgsIGhhbGYyeDQgeSkgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsw
XVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVsw
XVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gzIHgsIGhhbGYzeDIg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICBy
ZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gzIG11bChoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IG11bChoYWxmM3gzIHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3g0IHgsIGhhbGY0eDIg
eSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9
IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJl
c3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNd
WzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhb
MV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmM3g0IHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGYzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSAr
PSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsx
XVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNd
ICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVszXSA9IDA7
CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmM3g0IHgsIGhhbGY0eDQg
eSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNd
WzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0g
KiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0
XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAg
IHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNd
OworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1b
NF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5
WzNdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsy
XVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsy
XVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHgyIHgsIGhhbGYyeDIgeSkg
eworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1
bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9
IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlbMV1bMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbXVsKGhhbGY0eDIgeCwgaGFsZjJ4MyB5KSB7CisgICAg
aGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlb
MV1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1b
M10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAg
ICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9
IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNd
WzNdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbXVsKGhhbGY0eDIgeCwgaGFsZjJ4NCB5KSB7
CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
M107CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAq
IHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJl
c3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0g
PSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxm
NHgzIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsy
XSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0g
eFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFd
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJd
WzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJd
WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSAr
PSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFsz
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0g
Kz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjR4MyBtdWwoaGFsZjR4MyB4LCBoYWxmM3gzIHkpIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsz
XSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFd
WzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSAr
PSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsy
XVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
M11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICBy
ZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhb
M11bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNd
ICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0
WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAg
cmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4
WzNdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBtdWwoaGFs
ZjR4MyB4LCBoYWxmM3g0IHkpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
NF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBd
WzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1b
M107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRb
MV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3Vs
dFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5
WzFdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1
bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNd
WzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07Cisg
ICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSAr
PSB4WzNdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFsz
XVs0XSArPSB4WzNdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAq
IHlbMV1bM107CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzNdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG11bChoYWxmNHg0IHgsIGhhbGY0eDIgeSkgeworICAg
IGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJd
ICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAg
cmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVsy
XSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAg
IHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5
WzNdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9
IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJd
WzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVz
dWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSAr
PSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsz
XVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFsz
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHg0IHgsIGhhbGY0eDMgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bM10gKiB5WzNdWzJd
OworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
M10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVszXSA9
IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAq
IHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJl
c3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bM10gKiB5WzNd
WzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNd
ICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAg
cmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4
WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsz
XSA9IDA7CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFszXVszXSArPSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsy
XSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bM10gKiB5WzNdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxmNHg0IHgsIGhhbGY0eDQgeSkgewor
ICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsw
XVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBd
WzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10g
KiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlb
Ml1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3Vs
dFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNd
OworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
M10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVs0XSA9
IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsy
XVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAq
IHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOworICAgIHJl
c3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bNF0g
Kz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNd
WzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRd
ICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0
WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAg
cmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4
WzNdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bM107
CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBtdWwoZmxvYXQyeDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAw
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IG11bChmbG9hdDJ4MiB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBtdWwoZmxvYXQyeDIgeCwgZmxvYXQyeDQgeSkgeworICAgIGZs
b2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0g
PSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBd
ICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBtdWwoZmxvYXQyeDMgeCwgZmxvYXQzeDIgeSkgeworICAgIGZsb2F0
MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsy
XSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0g
eFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1b
Ml0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
Ml0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtdWwoZmxvYXQy
eDMgeCwgZmxvYXQzeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
Ml0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBd
WzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDQgbXVsKGZsb2F0MngzIHgsIGZsb2F0M3g0IHkpIHsKKyAgICBm
bG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRb
MF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRd
ICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1b
NF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBtdWwo
ZmxvYXQyeDQgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVsw
XTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSAr
PSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgbXVsKGZsb2F0Mng0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDJ4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsy
XVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0
WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMF07
CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsz
XSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0
IG11bChmbG9hdDJ4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1b
M107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFd
ICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBtdWwoZmxvYXQzeDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0M3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsy
XSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0g
eFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbXVsKGZsb2F0M3gyIHgsIGZsb2F0MngzIHkp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICog
eVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3g0IG11bChmbG9hdDN4MiB4LCBmbG9hdDJ4NCB5KSB7CisgICAgZmxvYXQz
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0
XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
Ml07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAq
IHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQzeDMgeCwgZmxvYXQzeDIgeSkgewor
ICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJl
c3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0g
Kz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsy
XSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMg
bXVsKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAg
ICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsx
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IG11bChmbG9hdDN4MyB4LCBmbG9hdDN4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4
WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107
CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsz
XTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAq
IHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJl
c3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOwor
ICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0g
Kz0geFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJd
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQzeDQgeCwgZmxv
YXQ0eDIgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOwor
ICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0g
Kz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJd
WzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRb
MF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhb
MF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzNdICogeVszXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNd
ICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4
WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsy
XSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3Vs
dFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVszXVsxXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbXVsKGZsb2F0M3g0IHgsIGZsb2F0NHgzIHkpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBd
WzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0
WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMV07
CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsz
XSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG11bChmbG9hdDN4
NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0
XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5
WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSAr
PSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10g
KiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3Vs
dFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJd
OworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
M10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQ0
eDIgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
Ml0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAg
ICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsy
XVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOwor
ICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0g
Kz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRb
M11bMl0gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0g
KiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtdWwoZmxvYXQ0eDIg
eCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10g
PSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhb
MF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsz
XSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAg
IHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0g
eFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1b
M10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNd
WzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVszXSA9IDA7Cisg
ICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVszXSAr
PSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbXVs
KGZsb2F0NHgyIHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFd
WzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1b
NF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNd
WzRdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1b
M107CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzNdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQzeDIgeSkgeworICAgIGZs
b2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsw
XVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJl
c3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFsw
XVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRb
MV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhb
MV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsy
XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFszXVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0g
eFszXVsyXSAqIHlbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG11bChm
bG9hdDR4MyB4LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAq
IHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOworICAgIHJl
c3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVsz
XSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3Vs
dFszXVszXSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBtdWwoZmxvYXQ0eDMgeCwgZmxvYXQzeDQgeSkg
eworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3Vs
dFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAg
ICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsz
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAg
IHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0g
eFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5
WzBdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1
bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICog
eVswXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bM107CisgICAgcmVz
dWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBtdWwoZmxvYXQ0eDQgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZsb2F0NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bMl0g
PSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0g
KiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzNdICogeVsz
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4
WzJdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJlc3VsdFszXVsy
XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFszXVsyXSArPSB4WzNdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAg
IHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0g
eFszXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzNdICogeVszXVsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDMgbXVsKGZsb2F0NHg0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9h
dDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzNdID0g
MDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICog
eVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11b
MF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzNd
ID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlb
M11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bM10gKz0g
eFszXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11b
M10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAg
ICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9
IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NHg0IG11bChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxv
YXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNdWzJdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bM10gKiB5WzNd
WzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsxXVs0
XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsy
XSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bM10gKiB5WzNdWzNdOworICAg
IHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5
WzNdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICog
eVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1b
M107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bM10gKiB5WzNdWzNdOworICAgIHJlc3VsdFsz
XVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFsz
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdWzRd
ICs9IHhbM11bM10gKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0
WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFd
ICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bM107CisgICAg
cmVzdWx0WzNdWzRdICs9IHhbM11bM10gKiB5WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitgOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50
Q2xvbmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhdGVtZW50Q2xvbmVy
LmpzCmluZGV4IGM5NDc5YTI4NWJhMGUxMzUzNWRlYTM3ZjdmYzFhNjNiYzcxY2YzMTYuLjNiODQ4
ODhhNzA1NTc2MGQ2MGVhNjgzMjFjNTQzODFkNmJmNDQ3NjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YXRlbWVudENsb25lci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKQEAgLTI3LDExICsyNyw5IEBA
CiBjbGFzcyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXRGdW5j
RGVmKG5vZGUpCiAgICAgewotICAgICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBub2RlLnR5cGVQ
YXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykp
OwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEZ1bmNEZWYoCiAgICAgICAgICAgICBub2RlLm9y
aWdpbiwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMp
LAotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMsCiAgICAgICAgICAgICBub2RlLnBhcmFtZXRl
cnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAg
bm9kZS5ib2R5LnZpc2l0KHRoaXMpLAogICAgICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hh
ZGVyVHlwZSk7CkBAIC00NCw3ICs0Miw2IEBAIGNsYXNzIFN0YXRlbWVudENsb25lciBleHRlbmRz
IFJld3JpdGVyIHsKICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBOYXRpdmVGdW5jKAogICAgICAg
ICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlw
ZS52aXNpdCh0aGlzKSwKLSAgICAgICAgICAgIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQ
YXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2Rl
LnBhcmFtZXRlcnMubWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAg
ICAgICAgICAgbm9kZS5pc0Nhc3QsIG5vZGUuc2hhZGVyVHlwZSk7CiAgICAgICAgIHJlc3VsdC5p
c1Jlc3RyaWN0ZWQgPSBub2RlLmlzUmVzdHJpY3RlZDsKQEAgLTU0LDUyICs1MSwyNCBAQCBjbGFz
cyBTdGF0ZW1lbnRDbG9uZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXROYXRpdmVUeXBl
KG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUoCi0gICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFy
YW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpKTsKKyAgICAgICAgICAgIG5vZGUu
b3JpZ2luLCBub2RlLmJhc2VOYW1lLCBub2RlLnR5cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVu
dCA9PiB0eXBlQXJndW1lbnQudmlzaXQodGhpcykpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRU
eXBlRGVmKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IFR5cGVEZWYoCiAgICAgICAg
ICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1l
dGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAg
ICAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7CiAgICAgfQogICAgIAogICAgIHZpc2l0
U3RydWN0VHlwZShub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RU
eXBlKAotICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUubmFtZSwKLSAgICAgICAgICAgIG5v
ZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNp
dCh0aGlzKSkpOworICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUobm9kZS5vcmln
aW4sIG5vZGUubmFtZSk7CiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIG5vZGUuZmllbGRzKQog
ICAgICAgICAgICAgcmVzdWx0LmFkZChmaWVsZC52aXNpdCh0aGlzKSk7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihu
b2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5v
ZGUub3JpZ2luLCBub2RlLm5hbWUsIG5vZGUudHlwZS52aXNpdCh0aGlzKSk7Ci0gICAgfQotICAg
IAotICAgIHZpc2l0UHJvdG9jb2xEZWNsKG5vZGUpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0
ID0gbmV3IFByb3RvY29sRGVjbChub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICAgICAgZm9y
IChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcmVzdWx0LmFkZEV4
dGVuZHMocHJvdG9jb2wudmlzaXQodGhpcykpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUg
b2Ygbm9kZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgcmVzdWx0LmFkZChzaWduYXR1cmUudmlz
aXQodGhpcykpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLQotICAgIHZpc2l0VHlw
ZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShu
b2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBOb2RlLnZpc2l0KG5vZGUucHJvdG9jb2wsIHRoaXMpKTsK
LSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90b2NvbFJlZihub2RlKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG5ldyBQcm90b2NvbFJlZihub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRCb29sTGl0ZXJhbChub2RlKQogICAgIHsKICAgICAgICAgcmV0dXJuIG5l
dyBCb29sTGl0ZXJhbChub2RlLm9yaWdpbiwgbm9kZS52YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0TGF5b3V0QnVpbGRlci5qcwppbmRleCA0Zjk4
YzU3M2ExYTM4MjM3ZTE2NDUwYWUxMGI4NmNiMmU2MWQxMjMwLi43NDQxZGVlZWQ0M2QwNjJkYjEz
MDM2NzY0OTBmMzY4Y2ViNmQ4M2Q4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMKQEAgLTM5LDggKzM5LDYgQEAgY2xhc3Mg
U3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgaWYg
KG5vZGUuc2l6ZSAhPSBudWxsKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobm9k
ZS50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNh
bm5vdCBkbyBsYXlvdXQgZm9yIGdlbmVyaWMgdHlwZTogIiArIG5vZGUpOwogICAgICAgICBsZXQg
b2xkT2Zmc2V0ID0gdGhpcy5fb2Zmc2V0OwogICAgICAgICB0aGlzLl9vZmZzZXQgPSAwOwogICAg
ICAgICBzdXBlci52aXNpdFN0cnVjdFR5cGUobm9kZSk7CkBAIC02MCwxMiArNTgsNiBAQCBjbGFz
cyBTdHJ1Y3RMYXlvdXRCdWlsZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIHRoaXMuX29m
ZnNldCArPSBzaXplOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShu
b2RlKQotICAgIHsKLSAgICAgICAgc3VwZXIudmlzaXROYXRpdmVGdW5jSW5zdGFuY2Uobm9kZSk7
Ci0gICAgICAgIG5vZGUuZnVuYy5kaWRMYXlvdXRTdHJ1Y3RzSW5JbXBsZW1lbnRhdGlvbkRhdGEo
bm9kZS5pbXBsZW1lbnRhdGlvbkRhdGEpOwotICAgIH0KLSAgICAKICAgICB2aXNpdFR5cGVSZWYo
bm9kZSkKICAgICB7CiAgICAgICAgIHN1cGVyLnZpc2l0VHlwZVJlZihub2RlKTsKQEAgLTc2LDEz
ICs2OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1aWxkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAg
ICB7CiAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50IG9mIG5vZGUuYXJndW1lbnRMaXN0KQogICAg
ICAgICAgICAgTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcyk7Ci0gICAgICAgIGxldCBoYW5kbGVU
eXBlQXJndW1lbnRzID0gYWN0dWFsVHlwZUFyZ3VtZW50cyA9PiB7Ci0gICAgICAgICAgICBpZiAo
YWN0dWFsVHlwZUFyZ3VtZW50cykgewotICAgICAgICAgICAgICAgIGZvciAobGV0IGFyZ3VtZW50
IG9mIGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50LnZp
c2l0KHRoaXMpOwotICAgICAgICAgICAgfQotICAgICAgICB9OwotICAgICAgICBoYW5kbGVUeXBl
QXJndW1lbnRzKG5vZGUuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyk7CiAgICAgICAg
IE5vZGUudmlzaXQobm9kZS5uYXRpdmVGdW5jSW5zdGFuY2UsIHRoaXMpOwogICAgICAgICBOb2Rl
LnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKaW5kZXggZjlkOGM3ZGE0ODU4MzIxNjFlNTVkMjJh
NDM4NzYyOTkzMzdjYjkzNi4uMzk0N2ZkYmFjMDcwMDBkZTgwZmZmNjVmZDY2YzZlMDA1OGEyN2Vj
MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0VHlwZS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCkBAIC0y
NSwxMiArMjUsMTEgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgU3RydWN0VHlwZSBleHRlbmRz
IFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZVBhcmFtZXRlcnMpCisg
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
LSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAg
dGhpcy5fZmllbGRzID0gbmV3IE1hcCgpOwogICAgIH0KICAgICAKQEAgLTQ0LDcgKzQzLDYgQEAg
Y2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgIAogICAgIGdldCBuYW1lKCkgeyBy
ZXR1cm4gdGhpcy5fbmFtZTsgfQogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KLSAgICBnZXQgdHlwZVBhcmFtZXRlcnMoKSB7IHJldHVybiB0aGlzLl90eXBlUGFyYW1l
dGVyczsgfQogICAgIAogICAgIGdldCBmaWVsZE5hbWVzKCkgeyByZXR1cm4gdGhpcy5fZmllbGRz
LmtleXMoKTsgfQogICAgIGZpZWxkQnlOYW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX2ZpZWxkcy5n
ZXQobmFtZSk7IH0KQEAgLTU4LDMyICs1Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBU
eXBlIHsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCi0gICAgaW5zdGFudGlh
dGUodHlwZUFyZ3VtZW50cyA9IG51bGwpCi0gICAgewotICAgICAgICBsZXQgc3Vic3RpdHV0aW9u
ID0gbnVsbDsKLSAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy50eXBlUGFyYW1ldGVy
czsKLSAgICAgICAgCi0gICAgICAgIGlmICh0eXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICBp
ZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0g
ICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3Ry
aW5nLCAiV3JvbmcgbnVtYmVyIG9mIHR5cGUgYXJndW1lbnRzIHRvIGluc3RhbnRpYXRpb24iKTsK
LSAgICAgICAgICAgIAotICAgICAgICAgICAgc3Vic3RpdHV0aW9uID0gbmV3IFN1YnN0aXR1dGlv
bih0aGlzLnR5cGVQYXJhbWV0ZXJzLCB0eXBlQXJndW1lbnRzKTsKLSAgICAgICAgICAgIHR5cGVQ
YXJhbWV0ZXJzID0gW107Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCBpbnN0YW50
aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGVJbW1lZGlhdGVzKCk7Ci0gICAgICAgIGxl
dCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZSh0aGlzLm9yaWdpbiwgdGhpcy5uYW1lLCB0eXBlUGFy
YW1ldGVycyk7Ci0gICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHRoaXMuZmllbGRzKSB7Ci0gICAg
ICAgICAgICBsZXQgbmV3RmllbGQgPSBmaWVsZDsKLSAgICAgICAgICAgIGlmIChzdWJzdGl0dXRp
b24pCi0gICAgICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChzdWJzdGl0dXRp
b24pOwotICAgICAgICAgICAgbmV3RmllbGQgPSBuZXdGaWVsZC52aXNpdChpbnN0YW50aWF0ZUlt
bWVkaWF0ZXMpOwotICAgICAgICAgICAgcmVzdWx0LmFkZChuZXdGaWVsZCk7Ci0gICAgICAgIH0K
LSAgICAgICAgCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIAogICAgIHBvcHVs
YXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKICAgICAgICAgaWYgKHRoaXMu
c2l6ZSA9PSBudWxsKQpAQCAtOTQsNiArNjYsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMg
VHlwZSB7CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJzdHJ1
Y3QgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiB7ICIgKyBB
cnJheS5mcm9tKHRoaXMuZmllbGRzKS5qb2luKCI7ICIpICsgIjsgfSI7CisgICAgICAgIHJldHVy
biAic3RydWN0ICIgKyB0aGlzLm5hbWUgKyAiIHsgIiArIEFycmF5LmZyb20odGhpcy5maWVsZHMp
LmpvaW4oIjsgIikgKyAiOyB9IjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdWJzdGl0dXRpb24uanMKaW5kZXggNmEyMjNmNjc5NGE4NTZjNjQzMDhkZjQwYWI5
MThhY2EyMDg2ZmIyOS4uNGFjZGZmY2VjYzU2MWEyMzM0MjAzM2UxYjhkZDMxYmFlMzM1NjZiOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0aXR1dGlvbi5qcwpAQCAt
NDAsMTIgKzQwLDggQEAgY2xhc3MgU3Vic3RpdHV0aW9uIGV4dGVuZHMgUmV3cml0ZXIgewogICAg
IHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgbGV0IHJlcGxhY2VtZW50ID0gdGhp
cy5fbWFwLmdldChub2RlLnR5cGUpOwotICAgICAgICBpZiAocmVwbGFjZW1lbnQpIHsKLSAgICAg
ICAgICAgIGlmIChub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGFyZ3VtZW50cyBvbiB0eXBlIHZhcmlhYmxl
Iik7Ci0gICAgICAgICAgICBsZXQgcmVzdWx0ID0gcmVwbGFjZW1lbnQudmlzaXQobmV3IEF1dG9X
cmFwcGVyKCkpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQorICAgICAg
ICBpZiAocmVwbGFjZW1lbnQpCisgICAgICAgICAgICByZXR1cm4gcmVwbGFjZW1lbnQudmlzaXQo
bmV3IEF1dG9XcmFwcGVyKCkpOwogICAgICAgICAKICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVy
LnZpc2l0VHlwZVJlZihub2RlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpz
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMu
anMKaW5kZXggNWFmMmJkZjkzYTgwNWZjMDhjMjlmMWVhMDUxMGNlMjllMjgwYTU2Zi4uMTdiNjE4
NDhhYjVkOGJjOTJhNzQ1OWRlOGQ2NDAzMTQ0MDAxNzliMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMKQEAg
LTM1LDMxICszNSwzMSBAQCBmdW5jdGlvbiBzeW50aGVzaXplRW51bUZ1bmN0aW9ucyhwcm9ncmFt
KQogICAgICAgICBsZXQgc2hhZGVyVHlwZTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMg
PSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3I9PSIs
IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIsIFtdKSwgW10sCisgICAgICAgICAgICB0
eXBlLm9yaWdpbiwgIm9wZXJhdG9yPT0iLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgImJvb2wi
KSwKICAgICAgICAgICAgIFsKLSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBl
Lm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKSwK
LSAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pKQorICAgICAgICAgICAgICAgIG5l
dyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdp
biwgdHlwZS5uYW1lKSksCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5v
cmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKQogICAgICAg
ICAgICAgXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2
ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4gRVB0ci5ib3gobGVmdC5s
b2FkVmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CiAgICAgICAgIHByb2dyYW0uYWRkKG5h
dGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5j
KAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvci52YWx1ZSIsIHR5cGUuYmFzZVR5
cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFt
ZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFt
ZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlw
ZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSksCisgICAgICAgICAgICBbbmV3IEZ1bmNQ
YXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBl
Lm5hbWUpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICBuYXRp
dmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IHZhbHVlOwogICAgICAgICBwcm9n
cmFtLmFkZChuYXRpdmVGdW5jKTsKICAgICAgICAgCiAgICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcg
TmF0aXZlRnVuYygKLSAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5
cGUuYmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLCBbXSwKLSAgICAgICAgICAgIFtuZXcg
RnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4s
IHR5cGUubmFtZSwgW10pKV0sCisgICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNh
c3QiLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtu
ZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmln
aW4sIHR5cGUubmFtZSkpXSwKICAgICAgICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAg
ICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAg
ICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVu
YyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBj
YXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSwgW10pLCBbXSwKKyAgICAg
ICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIG5ldyBUeXBlUmVmKHR5cGUub3Jp
Z2luLCB0eXBlLm5hbWUpLAogICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3Jp
Z2luLCBudWxsLCB0eXBlLmJhc2VUeXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSldLAogICAgICAg
ICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCmluZGV4IGY3ODE2
ZjJiMjUyZTliYTRkYTllYzg0ZGVmNjExYzU1ZTRiZmUzYTkuLjBhYTc1NjBlYTUzZmVhYmM5Nzc5
ZDIwOGJjNGFkZTY5YjE5Yzg4NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcwpAQCAtMzEsMjggKzMx
LDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIAogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiB0eXBl
LmZpZWxkcykgewotICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKQot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLnR5cGVQYXJhbWV0ZXJz
Lm1hcCgKLSAgICAgICAgICAgICAgICAgICAgdHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVy
LnZpc2l0KG5ldyBUeXBlUGFyYW1ldGVyUmV3cml0ZXIoKSkpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlQXJndW1lbnRzKCkKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZVBhcmFtZXRlcnMubWFwKHR5
cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSkpOwot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cElt
cGxlbWVudGF0aW9uRGF0YShuYXRpdmVGdW5jLCBpbXBsZW1lbnRhdGlvbikKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBuYXRpdmVGdW5jLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24g
PSBzdWJzdGl0dXRpb24gPT4gewotICAgICAgICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IHR5
cGUuaW5zdGFudGlhdGUobmF0aXZlRnVuYy50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRl
ciA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3Vic3RpdHV0ZSA9IHN1YnN0aXR1
dGlvbi5tYXAuZ2V0KHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFzdWJzdGl0dXRlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJv
cigiTnVsbCBzdWJzdGl0dXRlIGZvciB0eXBlIHBhcmFtZXRlciAiICsgdHlwZVBhcmFtZXRlcik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3Vic3RpdHV0ZTsKLSAgICAgICAgICAg
ICAgICAgICAgfSkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4ge3R5cGU6IG5ld1R5cGUs
IGZpZWxkTmFtZTogZmllbGQubmFtZX07Ci0gICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAg
ICAgICBuYXRpdmVGdW5jLnZpc2l0SW1wbGVtZW50YXRpb25EYXRhID0gKGltcGxlbWVudGF0aW9u
RGF0YSwgdmlzaXRvcikgPT4gewogICAgICAgICAgICAgICAgICAgICAvLyBWaXNpdGluZyB0aGUg
dHlwZSBmaXJzdCBlbnN1cmVzIHRoYXQgdGhlIHN0cnVjdCBsYXlvdXQgYnVpbGRlciBmaWd1cmVz
IG91dCB0aGUgZmllbGQncwogICAgICAgICAgICAgICAgICAgICAvLyBvZmZzZXQuCkBAIC04OSwy
MyArNjksMjEgQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVGaWVsZFR5cGUoKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZC50eXBlLnZpc2l0KG5ldyBT
dWJzdGl0dXRpb24odHlwZS50eXBlUGFyYW1ldGVycywgdHlwZVBhcmFtZXRlcnMpKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZmllbGQudHlwZS52aXNpdChuZXcgUmV3cml0ZXIoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVS
ZWYoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHJldHVybiBUeXBlUmVmLmluc3Rh
bnRpYXRlKHR5cGUsIGNyZWF0ZVR5cGVBcmd1bWVudHMoKSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAKICAgICAgICAgICAgIGxldCBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAgICAgIGxldCBzaGFk
ZXJUeXBlOwotICAgICAgICAgICAgbGV0IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICAgICAgbGV0
IG5hdGl2ZUZ1bmM7CiAKICAgICAgICAgICAgIC8vIFRoZSBnZXR0ZXI6IG9wZXJhdG9yLmZpZWxk
Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVycyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAg
ICAgICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICAgICAg
ZmllbGQub3JpZ2luLCAib3BlcmF0b3IuIiArIGZpZWxkLm5hbWUsIGNyZWF0ZUZpZWxkVHlwZSgp
LCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksCiAgICAgICAgICAgICAgICAgW25l
dyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdpbiwgbnVsbCwgY3JlYXRlVHlwZVJlZigpKV0sIGlz
Q2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgICAgICBzZXR1cEltcGxlbWVudGF0aW9uRGF0YShu
YXRpdmVGdW5jLCAoW2Jhc2VdLCBvZmZzZXQsIHN0cnVjdFNpemUsIGZpZWxkU2l6ZSkgPT4gewog
ICAgICAgICAgICAgICAgIGxldCByZXN1bHQgPSBuZXcgRVB0cihuZXcgRUJ1ZmZlcihmaWVsZFNp
emUpLCAwKTsKQEAgLTExNSw5ICs5Myw4IEBAIGZ1bmN0aW9uIHN5bnRoZXNpemVTdHJ1Y3RBY2Nl
c3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1bmMpOwogICAg
ICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgc2V0dGVyOiBvcGVyYXRvci5maWVsZD0KLSAg
ICAgICAgICAgIHR5cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAg
ICAgICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgICAgICBmaWVs
ZC5vcmlnaW4sICJvcGVyYXRvci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigp
LCB0eXBlUGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVyYXRv
ci4iICsgZmllbGQubmFtZSArICI9IiwgY3JlYXRlVHlwZVJlZigpLAogICAgICAgICAgICAgICAg
IFsKICAgICAgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoZmllbGQub3JpZ2luLCBu
dWxsLCBjcmVhdGVUeXBlUmVmKCkpLAogICAgICAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFt
ZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZUZpZWxkVHlwZSgpKQpAQCAtMTM0LDEwICsx
MTEsOCBAQCBmdW5jdGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAg
ICAgICAgICAvLyBUaGUgYW5kZXI6IG9wZXJhdG9yJi5maWVsZAogICAgICAgICAgICAgZnVuY3Rp
b24gc2V0dXBBbmRlcihhZGRyZXNzU3BhY2UpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdHlwZVBhcmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAg
ICAgIG5hdGl2ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKICAgICAgICAgICAgICAgICAgICAgZmll
bGQub3JpZ2luLCAib3BlcmF0b3ImLiIgKyBmaWVsZC5uYW1lLCBuZXcgUHRyVHlwZShmaWVsZC5v
cmlnaW4sIGFkZHJlc3NTcGFjZSwgY3JlYXRlRmllbGRUeXBlKCkpLAotICAgICAgICAgICAgICAg
ICAgICB0eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAg
ICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmllbGQub3JpZ2luLCBudWxsLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCmluZGV4IGE2NDFkMzA0NjQ5M2RhYmMyZDc0NWU3ZDBlYzk2ZDBiZGQ0NDFiYmMuLjdhZDRh
ZDdiNDUwNTY1ZTRjNTZkYjU5MGE2MjA5ZjhlNzEyZTJkMGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJDbG9u
ZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJy
YXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5q
cyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmln
aW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0
ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0
cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2Ny
aXB0PgpAQCAtNjMsNyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNEZWYu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmll
RmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZl
clR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJ
bnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2LDcg
QEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJO
YW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0
eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5
Nyw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhV
bm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3Rv
Y29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEz
MSwxMCArMTIxLDcgQEAKIDxzY3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVP
clZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3
cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlw
ZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNj
cmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVGVzdC5qcwppbmRleCAzMjJhMGE3MTc4NTBkNzMyOTA4NDhlOTNiZjk1YmQzYTI0
MjQxYzY2Li4xMjQ5MDZjZTJjNWE2ZDUwNjA2MmNhNGI0OWIwNmU0YWE5MzMzMmFkIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4Nyw3ICsxODcsNyBAQCB0ZXN0cy5j
b21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBydW5zIG92ZXIgbXVsdGlwbGUg
bGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVybiB0cnVlOyB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVw
KGAKQEAgLTIwMCw5MiArMjAwLDkyIEBAIHRlc3RzLmNvbW1lbnRQYXJzaW5nID0gZnVuY3Rpb24o
KSB7CiAKIHRlc3RzLmxpdGVyYWxCb29sID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoImJvb2wgZm9vKCkgeyByZXR1cm4gdHJ1ZTsgfSIpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1
ZSk7CiB9CiAKIHRlc3RzLmlkZW50aXR5Qm9vbCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9n
cmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgpIHsgcmV0dXJuIHg7IH0iKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmludFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHgg
KyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3Jh
bSwgNyldKSwgLTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5
KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dy
YW0sIDUpXSksIDM1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCAtNSld
KSwgLTM1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDM1KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOwogICAgIHByb2dyYW0g
PSBkb1ByZXAoImludCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4IC8geTsgfSIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC0yKV0pLCAtMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFr
ZUludChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IC0yKV0pLCAtMyk7CiB9CiAKIHRlc3RzLnVpbnRTaW1wbGVNYXRoID0gZnVuY3Rpb24oKSB7CiAg
ICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVy
biB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEyKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4g
eCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCA0Mjk0
OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNDI5NDk2NzI5NCk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHgg
KiB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
MzUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMzUpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC8g
eTsgfSIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CiB9CiAKIHRl
c3RzLnVpbnQ4U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAg
Y2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggLSB5OyB9
Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgMik7
Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsK
KyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDIpOworICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDUpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgMjU0KTsKICAgICBwcm9ncmFt
ID0gZG9QcmVwKCJ1aW50OCBmb28odWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAqIHk7IH0i
KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAg
cHJvZ3JhbSA9IGRvUHJlcCgidWludDggZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHgg
LyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgMild
KSwgMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsK
IH0KIAogdGVzdHMuZXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50KHByb2dyYW0sIDcpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJv
Z3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwg
NyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIHRydWUpOwogICAgIHByb2dyYW0gPSBkb1ByZXAo
ImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChw
cm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRv
UHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4ID09IHk7IH0iKTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgdHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28o
Ym9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7
CiB9CiAKIHRlc3RzLmxvZ2ljYWxOZWdhdGlvbiA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZh
bHNlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubm90RXF1YWxpdHkgPSBmdW5jdGlvbigpIHsKICAg
ICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJu
IHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDcpXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIHRydWUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwogICAg
IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKHVpbnQ4IHgsIHVpbnQ4IHkpIHsgcmV0dXJuIHgg
IT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3JhbSwgNSld
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oaW50IHgsIGludCB5KSB7IHJldHVybiB4
ICE9IHk7IH0iKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9
IGRvUHJlcCgiYm9vbCBmb28oYm9vbCB4LCBib29sIHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwg
dHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNl
KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwg
ZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFt
LCB0cnVlKV0pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5j
dGlvbigpCkBAIC0yOTgsMTMgKzI5OCwxMyBAQCB0ZXN0cy5lcXVhbGl0eVR5cGVGYWlsdXJlID0g
ZnVuY3Rpb24oKQogdGVzdHMuZ2VuZXJhbE5lZ2F0aW9uID0gZnVuY3Rpb24oKQogewogICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCkgeyByZXR1cm4gIXg7IH0iKTsKLSAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgdHJ1ZSk7
CiB9CiAKIHRlc3RzLmFkZDEgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJl
cCgiaW50IGZvbyhpbnQgeCkgeyByZXR1cm4geCArIDE7IH0iKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0
MildKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMuc2ltcGxlR2Vu
ZXJpYyA9IGZ1bmN0aW9uKCkgewpAQCAtMzEyLDcgKzMxMiw3IEBAIHRlc3RzLnNpbXBsZUdlbmVy
aWMgPSBmdW5jdGlvbigpIHsKICAgICAgICAgVCBpZDxUPihUIHgpIHsgcmV0dXJuIHg7IH0KICAg
ICAgICAgaW50IGZvbyhpbnQgeCkgeyByZXR1cm4gaWQoeCkgKyAxOyB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNDIpXSksIDQzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CiB9CiAKIHRl
c3RzLm5hbWVSZXNvbHV0aW9uRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTMzMSw3ICszMzEsNyBA
QCB0ZXN0cy5zaW1wbGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQXNzaWdubWVudCA9IGZ1
bmN0aW9uKCkKQEAgLTM0NCw3ICszNDQsNyBAQCB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwogfQog
CiB0ZXN0cy5zaW1wbGVEZWZhdWx0ID0gZnVuY3Rpb24oKQpAQCAtMzU2LDcgKzM1Niw3IEBAIHRl
c3RzLnNpbXBsZURlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7CiB9CiAKIHRlc3RzLnNpbXBsZURlcmVm
ZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMzY5LDcgKzM2OSw3IEBAIHRlc3RzLnNpbXBsZURlcmVm
ZXJlbmNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxP
cmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZm
ZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLmRlcmVmZXJlbmNlU3RvcmUgPSBmdW5jdGlvbigp
CkBAIC0zODIsNyArMzgyLDcgQEAgdGVzdHMuZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNl
dCgwLCAxMyk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFs
dWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKKyAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdp
biwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwg
MCkpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNTIpCiAgICAgICAgIHRocm93IG5ldyBF
cnJvcigiRXhwZWN0ZWQgYnVmZmVyIHRvIGNvbnRhaW4gNTIgYnV0IGl0IGNvbnRhaW5zOiAiICsg
YnVmZmVyLmdldCgwKSk7CiB9CkBAIC0zOTYsNyArMzk2LDcgQEAgdGVzdHMuc2ltcGxlTWFrZVB0
ciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAmeDsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7
CisgICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAg
IGlmICghcmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJu
IHR5cGUgaXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3Vs
dC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAt
NDE4LDcgKzQxOCw3IEBAIHRlc3RzLnRocmVhZEFycmF5TG9hZCA9IGZ1bmN0aW9uKCkKICAgICBg
KTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA4
OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtU
eXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIs
IDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVh
ZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVm
ZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgcmVzdWx0LCA4OSk7CiB9CiAK
QEAgLTQzMiw3ICs0MzIsNyBAQCB0ZXN0cy50aHJlYWRBcnJheUxvYWRJbnRMaXRlcmFsID0gZnVu
Y3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBi
dWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmln
aW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5l
dyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFs
T3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1
bHQsIDg5KTsKIH0KIApAQCAtNDQ2LDcgKzQ0Niw3IEBAIHRlc3RzLmRldmljZUFycmF5TG9hZCA9
IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAg
ICAgYnVmZmVyLnNldCgwLCA4OSk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFs
T3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IEFycmF5UmVmVHlwZShleHRl
cm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFQXJy
YXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwg
cmVzdWx0LCA4OSk7CiB9CiAKQEAgLTQ2MywxMCArNDYzLDEwIEBAIHRlc3RzLnRocmVhZEFycmF5
U3RvcmUgPSBmdW5jdGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAg
ICAgICAgIG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFt
LmludHJpbnNpY3MuaW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZl
ciwgMCksIDEpKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlS
ZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5n
ZXQoMCkgIT0gNjUpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBp
bnRvIGJ1ZmZlciAoZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0x
MTEpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgLTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVj
dGVkIC0xMTEpOiAiICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC00ODQsMTAgKzQ4NCwxMCBAQCB0
ZXN0cy5kZXZpY2VBcnJheVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGxldCBhcnJheVJlZiA9IFR5
cGVkVmFsdWUuYm94KAogICAgICAgICBuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwKICAgICAgICAgbmV3IEVBcnJheVJl
ZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOworICAgIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIDY1KV0pOwog
ICAgIGlmIChidWZmZXIuZ2V0KDApICE9IDY1KQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkJh
ZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIDY1KTogIiArIGJ1ZmZlci5nZXQo
MCkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFr
ZUludChwcm9ncmFtLCAtMTExKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQo
MCkgIT0gLTExMSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGlu
dG8gYnVmZmVyIChleHBlY3RlZCAtMTExKTogIiArIGJ1ZmZlci5nZXQoMCkpOwogfQpAQCAtNTA1
LDMyICs1MDUsMTQgQEAgdGVzdHMuZGV2aWNlQXJyYXlTdG9yZUludExpdGVyYWwgPSBmdW5jdGlv
bigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBBcnJh
eVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsKLSAg
ICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJv
Z3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYs
IG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUpCiAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhw
ZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTEx
MSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAiICsg
YnVmZmVyLmdldCgwKSk7CiB9CiAKLXRlc3RzLnNpbXBsZVByb3RvY29sID0gZnVuY3Rpb24oKQot
ewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgTXlBZGRhYmxl
IHsKLSAgICAgICAgICAgIE15QWRkYWJsZSBvcGVyYXRvcisoTXlBZGRhYmxlLCBNeUFkZGFibGUp
OwotICAgICAgICB9Ci0gICAgICAgIFQgYWRkPFQ6TXlBZGRhYmxlPihUIGEsIFQgYikKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGEgKyBiOwotICAgICAgICB9Ci0gICAgICAgIGludCBm
b28oaW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZGQoeCwgNzMpOwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDUpXSksIDQ1ICsgNzMpOwotfQotCiB0
ZXN0cy50eXBlTWlzbWF0Y2hSZXR1cm4gPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApA
QCAtNjY2LDcgKzY0OCw3IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICBs
ZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7CiAgICAgYnVmZmVyLnNldCgwLCA2Mik7CiAgICAg
YnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIs
IDApKV0pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtu
ZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBuZXcgRVB0cihidWZmZXIsIDApKV0pOwogICAgIGlm
ICghcmVzdWx0LnR5cGUuZXF1YWxzKHN0cnVjdFR5cGUpKQogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIldyb25nIHJlc3VsdCB0eXBlOiAiICsgcmVzdWx0LnR5cGUpOwogICAgIGxldCB4ID0gcmVz
dWx0LmVQdHIuZ2V0KDApOwpAQCAtNjc3LDM0ICs2NTksNiBAQCB0ZXN0cy5zaW1wbGVTdHJ1Y3Qg
PSBmdW5jdGlvbigpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5
OiAiICsgeSArICIgKHggKyAiICsgeCArICIpIik7CiB9CiAKLXRlc3RzLmdlbmVyaWNTdHJ1Y3RJ
bnN0YW5jZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHN0cnVjdCBGb288VD4gewotICAgICAgICAgICAgVCB4OwotICAgICAgICAgICAgVCB5Owot
ICAgICAgICB9Ci0gICAgICAgIEZvbzxpbnQ+IGZvbyhGb288aW50PiBmb28pCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEZvbzxpbnQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC54ID0gZm9v
Lnk7Ci0gICAgICAgICAgICByZXN1bHQueSA9IGZvby54OwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGxldCBzdHJ1Y3RUeXBlID0gVHlwZVJlZi5p
bnN0YW50aWF0ZShwcm9ncmFtLnR5cGVzLmdldCgiRm9vIiksIFtwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzJdKTsKLSAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMik7Ci0gICAgYnVmZmVyLnNl
dCgwLCA2Mik7Ci0gICAgYnVmZmVyLnNldCgxLCAyNCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtuZXcgVHlwZWRWYWx1ZShzdHJ1Y3RUeXBlLCBu
ZXcgRVB0cihidWZmZXIsIDApKV0pOwotICAgIGxldCB4ID0gcmVzdWx0LmVQdHIuZ2V0KDApOwot
ICAgIGxldCB5ID0gcmVzdWx0LmVQdHIuZ2V0KDEpOwotICAgIGlmICh4ICE9IDI0KQotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIHJlc3VsdCBmb3IgeDogIiArIHggKyAiICh5ID0gIiAr
IHkgKyAiKSIpOwotICAgIGlmICh5ICE9IDYyKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldy
b25nIHJlc3VsdCBmb3IgeTogIiArIHkgKyAiICh4ICsgIiArIHggKyAiKSIpOwotfQotCiB0ZXN0
cy5kb3VibGVHZW5lcmljQ2FsbHNEb3VibGVHZW5lcmljID0gZnVuY3Rpb24oKQogewogICAgIGRv
UHJlcChgCkBAIC03NDcsNyArNzAxLDcgQEAgdGVzdHMucmV0dXJuTnVsbCA9IGZ1bmN0aW9uKCkK
ICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIHRocmVhZCBpbnQqIGZvbygpIHsg
cmV0dXJuIG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzUHRyKQogICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlzIG5vdCBhIHBvaW50ZXI6ICIgKyByZXN1bHQu
dHlwZSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5p
bnRyaW5zaWNzLmludDMyKSkKQEAgLTc2Niw3ICs3MjAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURl
ZmF1bHROdWxsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisg
ICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03ODAsNyArNzM0LDcgQEAg
dGVzdHMuZGVmYXVsdEluaXRpYWxpemVkTnVsbCA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAg
IGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApA
QCAtNzk3LDcgKzc1MSw3IEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJNb25vbW9ycGhpYyA9IGZ1bmN0
aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2Vv
ZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtODU3LDcgKzgxMSw3IEBAIHRlc3RzLnJldHVybk51bGxB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IHRocmVhZCBpbnRbXSBmb28oKSB7IHJldHVybiBudWxsOyB9CiAgICAgYCk7Ci0gICAgbGV0IHJl
c3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVz
dWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQu
dHlwZS5pc0FycmF5UmVmKQogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlJldHVybiB0eXBlIGlz
IG5vdCBhbiBhcnJheSByZWZlcmVuY2U6ICIgKyByZXN1bHQudHlwZSk7CiAgICAgaWYgKCFyZXN1
bHQudHlwZS5lbGVtZW50VHlwZS5lcXVhbHMocHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSkKQEAg
LTg3Niw3ICs4MzAsNyBAQCB0ZXN0cy5kZXJlZmVyZW5jZURlZmF1bHROdWxsQXJyYXlSZWYgPSBm
dW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3Rh
bmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTg5MCw3ICs4NDQsNyBAQCB0ZXN0cy5kZWZhdWx0
SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsK
ICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9CiAKQEAgLTkw
NCw3ICs4NTgsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRl
cmFsID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAg
ICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC05MjEsNyArODc1LDcgQEAgdGVzdHMu
cGFzc051bGxUb1B0ck1vbm9tb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgIH0K
ICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9
CiAKQEAgLTk0NCwxMyArODk4LDEzIEBAIHRlc3RzLnBhc3NOdWxsVG9QdHJQb2x5bW9ycGhpY0Fy
cmF5UmVmID0gZnVuY3Rpb24oKQogdGVzdHMucmV0dXJuSW50TGl0ZXJhbFVpbnQgPSBmdW5jdGlv
bigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQgZm9vKCkgeyByZXR1cm4gNDI7
IH0iKTsKLSAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQyKTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIpOwogfQogCiB0ZXN0cy5yZXR1cm5JbnRMaXRlcmFsRmxv
YXQgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImZsb2F0IGZvbygp
IHsgcmV0dXJuIDQyOyB9Iik7Ci0gICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tOdW1iZXIocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuYmFkSW50
TGl0ZXJhbEZvckludCA9IGZ1bmN0aW9uKCkKQEAgLTk4OCw3ICs5NDIsNyBAQCB0ZXN0cy5wYXNz
TnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5l
dyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcg
UHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQz
MiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShl
eHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBF
UHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVs
bFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1LDcgKzk1OSw3IEBAIHRlc3RzLnBhc3NOdWxsQW5k
Tm90TnVsbEZ1bGxQb2x5ID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3
IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50
MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3RzLnBhc3NOdWxsQW5kTm90TnVsbEZ1
bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKQEAgLTEwMjIsNjUgKzk3Niw3IEBAIHRlc3RzLnBh
c3NOdWxsQW5kTm90TnVsbEZ1bGxQb2x5UmV2ZXJzZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAg
ICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCAxMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5
cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwotfQotCi10
ZXN0cy5udWxsVHlwZVZhcmlhYmxlVW5pZnkgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IGxlZnQg
PSBuZXcgTnVsbFR5cGUoZXh0ZXJuYWxPcmlnaW4pOwotICAgIGxldCByaWdodCA9IG5ldyBUeXBl
VmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7Ci0gICAgaWYgKGxlZnQuZXF1YWxz
KHJpZ2h0KSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTaG91bGQgbm90IGJlIGVxdWFsIGJ1
dCBhcmU6ICIgKyBsZWZ0ICsgIiBhbmQgIiArIHJpZ2h0KTsKLSAgICBpZiAocmlnaHQuZXF1YWxz
KGxlZnQpKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0
IGFyZTogIiArIGxlZnQgKyAiIGFuZCAiICsgcmlnaHQpOwotICAgIAotICAgIGZ1bmN0aW9uIGV2
ZXJ5T3JkZXIoYXJyYXksIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gcmVjdXJz
ZShhcnJheSwgY2FsbGJhY2ssIG9yZGVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWFy
cmF5Lmxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2suY2FsbChudWxsLCBv
cmRlcik7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJy
YXkubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBsZXQgbmV4dEFycmF5ID0gYXJyYXku
Y29uY2F0KCk7Ci0gICAgICAgICAgICAgICAgbmV4dEFycmF5LnNwbGljZShpLCAxKTsKLSAgICAg
ICAgICAgICAgICByZWN1cnNlKG5leHRBcnJheSwgY2FsbGJhY2ssIG9yZGVyLmNvbmNhdChbYXJy
YXlbaV1dKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJl
Y3Vyc2UoYXJyYXksIGNhbGxiYWNrLCBbXSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIGV2
ZXJ5UGFpcih0aGluZ3MpCi0gICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gW107Ci0gICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgdGhpbmdzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBm
b3IgKGxldCBqID0gMDsgaiA8IHRoaW5ncy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAg
IGlmIChpICE9IGopCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKFt0aGluZ3NbaV0s
IHRoaW5nc1tqXV0pOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGV2ZXJ5T3JkZXIoCi0gICAgICAgIGV2ZXJ5UGFpcihb
Im51bGxUeXBlIiwgInZhcmlhYmxlVHlwZSIsICJwdHJUeXBlIl0pLAotICAgICAgICBvcmRlciA9
PiB7Ci0gICAgICAgICAgICBsZXQgdHlwZXMgPSB7fTsKLSAgICAgICAgICAgIHR5cGVzLm51bGxU
eXBlID0gbmV3IE51bGxUeXBlKGV4dGVybmFsT3JpZ2luKTsKLSAgICAgICAgICAgIHR5cGVzLnZh
cmlhYmxlVHlwZSA9IG5ldyBUeXBlVmFyaWFibGUoZXh0ZXJuYWxPcmlnaW4sICJUIiwgbnVsbCk7
Ci0gICAgICAgICAgICB0eXBlcy5wdHJUeXBlID0gbmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4s
ICJjb25zdGFudCIsIG5ldyBOYXRpdmVUeXBlKGV4dGVybmFsT3JpZ2luLCAiZm9vX3QiLCBbXSkp
OwotICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNv
bnRleHQoW3R5cGVzLnZhcmlhYmxlVHlwZV0pOwotICAgICAgICAgICAgZm9yIChsZXQgW2xlZnRO
YW1lLCByaWdodE5hbWVdIG9mIG9yZGVyKSB7Ci0gICAgICAgICAgICAgICAgbGV0IGxlZnQgPSB0
eXBlc1tsZWZ0TmFtZV07Ci0gICAgICAgICAgICAgICAgbGV0IHJpZ2h0ID0gdHlwZXNbcmlnaHRO
YW1lXTsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbGVmdC51bmlmeSh1bmlmaWNhdGlv
bkNvbnRleHQsIHJpZ2h0KTsKLSAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJJbiBvcmRlciAiICsgb3JkZXIgKyAiIGNhbm5v
dCB1bmlmeSAiICsgbGVmdCArICIgd2l0aCAiICsgcmlnaHQpOwotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKCF1bmlmaWNhdGlvbkNvbnRleHQudmVyaWZ5KCkucmVzdWx0KQotICAgICAg
ICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiSW4gb3JkZXIgIiArIG9yZGVyLm1hcCh2YWx1ZSA9
PiAiKCIgKyB2YWx1ZSArICIpIikgKyAiIGNhbm5vdCB2ZXJpZnkiKTsKLSAgICAgICAgfSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbVHlwZWRW
YWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCAxMyk7CiB9CiAKIHRlc3Rz
LmRvdWJsZU5vdCA9IGZ1bmN0aW9uKCkKQEAgLTEwOTEsOCArOTg3LDggQEAgdGVzdHMuZG91Ymxl
Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuICEheDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wo
cHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaW9uID0g
ZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQgKzEwMDMsNiBAQCB0ZXN0cy5zaW1wbGVSZWN1cnNpb24g
PSBmdW5jdGlvbigpCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9
CiAKLXRlc3RzLnByb3RvY29sTW9ub1NpZ1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAg
ICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAg
IEludEFuZDxUPiBpbnRBbmQ8VD4oaW50IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAg
ICAgICAgICAgSW50QW5kPFQ+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZp
cnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0g
ICAgICAgICAgICBJbnRBbmQ8aW50PiBpbnRBbmQoSW50QW5kYWJsZSwgaW50KTsKLSAgICAgICAg
fQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAg
ICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBz
ZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7
Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3Jh
bSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbFBvbHlTaWdQb2x5RGVmID0g
ZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0
IEludEFuZDxUPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29u
ZDsKLSAgICAgICAgfQotICAgICAgICBJbnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBz
ZWNvbmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAg
ICAgICByZXN1bHQuZmlyc3QgPSBmaXJzdDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBz
ZWNvbmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHBy
b3RvY29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihJbnRB
bmRhYmxlLCBUKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBm
aXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVz
dWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5m
aXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90
b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAg
ICAgICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhp
cmQ7Ci0gICAgICAgIH0KLSAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmly
c3QsIFQgc2Vjb25kLCBVIHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwg
VT4gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAg
ICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhp
cmQ7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3Rv
Y29sIEludEFuZGFibGUgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJ
bnRBbmRhYmxlLCBULCBVKTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJs
ZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3VsdCA9IGludEFuZChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7
Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3Vs
dC50aGlyZDsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUlu
dChwcm9ncmFtLCAxMiksIG1ha2VJbnQocHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19
Ci0KLXRlc3RzLnByb3RvY29sRG91YmxlUG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJ
bnRBbmQ8VCwgVT4gewotICAgICAgICAgICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNv
bmQ7Ci0gICAgICAgICAgICBVIHRoaXJkOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBV
PiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewot
ICAgICAgICAgICAgSW50QW5kPFQsIFU+IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJz
dCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAg
ICAgIHJlc3VsdC50aGlyZCA9IHRoaXJkOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBwcm90b2NvbCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFu
ZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IGZvbzxUOkludEFuZGFibGU+KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkK
LSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8
aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQsIHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1
bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChw
cm9ncmFtLCAzOSldKSwgNTQgKyAxMiArIDM5KTsKLX0KLQogdGVzdHMudmFyaWFibGVTaGFkb3dp
bmcgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtMTIyOSw3
ICsxMDE3LDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgOCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDgpOwogICAgIHByb2dy
YW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgewpAQCAtMTI0Miw3ICsx
MDMwLDcgQEAgdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogfQogCiB0ZXN0cy5p
ZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyNTcsMTMgKzEwNDUsMTMgQEAgdGVzdHMuaWZT
dGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkK
QEAgLTEyODAsMTMgKzEwNjgsMTMgQEAgdGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3
KV0pLCA4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0p
LCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA1KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogfQog
CiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMDMsMTMgKzEwOTEs
MTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDgpXSksIDkpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDgpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZUlm
RWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEzMjgsMTMgKzExMTYsMTMgQEAgdGVzdHMu
aWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA4KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKIH0KIAogdGVzdHMucmV0dXJu
SWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3LDEzICsxMTc1LDEzIEBAIHRlc3RzLnJldHVybklmID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA5KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAx
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEwKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkp
XSksIDEwKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAg
ICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQxOSwxMyArMTIwNywxMyBAQCB0ZXN0cy5yZXR1cm5J
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgOSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5
KV0pLCA5KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAg
ICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTQ0OSw3ICsxMjM3LDcgQEAgdGVzdHMucmV0dXJuSWYg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CiB9CiAKIHRl
c3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQpAQCAtMTQ2MiwzOSArMTI1MCw3IEBAIHRlc3Rz
LnNpbXBsZVdoaWxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxNik7Ci19Ci0KLXRlc3RzLnByb3Rv
Y29sTW9ub1BvbHlTaWdEb3VibGVQb2x5RGVmRXhwbGljaXQgPSBmdW5jdGlvbigpCi17Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgICAgICAgICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAg
ICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAgICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAg
ICAgICAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGly
ZCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBy
ZXN1bHQ7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAg
ICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25kOwotICAgICAgICAgICAgICAgICAg
ICByZXN1bHQudGhpcmQgPSB0aGlyZDsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJs
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBpbnQ+IGludEFuZDxUPihJbnRBbmRh
YmxlLCBULCBpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbnQgZm9v
PFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICAg
ICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBp
bnRBbmQ8aW50PihmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGApOwotICAgICAgICAgICAgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0s
IDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKTsKLSAgICAgICAgfSwKLSAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAog
dGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRTaW1wbGUgPSBmdW5jdGlvbigpCkBAIC0xNTM3LDcgKzEy
OTMsNyBAQCB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb24gPSBmdW5jdGlvbigpCiAgICAgICAg
IGludCBmb28oZmxvYXQpIHsgcmV0dXJuIDM7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJu
IGZvbyg0Mik7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImJhciIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3ZlcmxvYWRS
ZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQpAQCAtMTU0OCw3ICsxMzA0LDcgQEAg
dGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQogICAg
ICAgICBpbnQgZm9vKGludCkgeyByZXR1cm4gMTsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1
cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9h
ZFJlc29sdXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU1OCw3ICsxMzE0LDcgQEAgdGVz
dHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50
IGZvbzxUPihUKSB7IHJldHVybiAyOyB9CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28o
NDIpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJiYXIiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImJhciIsIFtdKSwgMSk7CiB9CiAKIHRlc3RzLmludExpdGVyYWxHZW5lcmlj
ID0gZnVuY3Rpb24oKQpAQCAtMTU2NywxOSArMTMyMyw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5l
cmljID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsg
fQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3
OCk7Ci19Ci0KLXRlc3RzLmludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29u
dmVydGlibGVUb0ludCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBpbnQoTXlDb252ZXJ0aWJsZVRv
SW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvSW50PihU
IHgpIHsgcmV0dXJuIGludCh4KTsgfQotICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQy
KTsgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMudWludExpdGVyYWxHZW5l
cmljID0gZnVuY3Rpb24oKQpAQCAtMTU4OCwxOSArMTMzMiw3IEBAIHRlc3RzLnVpbnRMaXRlcmFs
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0
Nzg7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10p
LCAzNDc4KTsKLX0KLQotdGVzdHMudWludExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29s
IE15Q29udmVydGlibGVUb1VpbnQgewotICAgICAgICAgICAgb3BlcmF0b3IgdWludChNeUNvbnZl
cnRpYmxlVG9VaW50KTsKLSAgICAgICAgfQotICAgICAgICB1aW50IGZvbzxUOk15Q29udmVydGli
bGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4gdWludCh4KTsgfQotICAgICAgICB1aW50IGJhcigpIHsg
cmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMu
aW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZpYyA9IGZ1bmN0aW9uKCkKQEAgLTE2MDksNyArMTM0MSw3
IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCiAgICAgICAg
IFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4g
Zm9vKGludCg0MikpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxl
Q29uc3RleHByID0gZnVuY3Rpb24oKQpAQCAtMTYyNCw3ICsxMzU2LDcgQEAgdGVzdHMuc2ltcGxl
Q29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvbzw0Mj4oYik7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJhciIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChw
cm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQpA
QCAtMTY0MCw4ICsxMzcyLDggQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGlu
dCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE2NTgsOCArMTM5MCw4IEBAIHRlc3RzLmJyZWFr
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgCiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOwogICAgIGNoZWNrRmFpbCgKICAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNjk1
LDcgKzE0MjcsNyBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4geDsKICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgICAgIHsKQEAgLTE3MDUsNyArMTQzNyw3IEBA
IHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAg
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgMSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9v
KCkKICAgICAgICAgICAgIHsKQEAgLTE3MTQsNyArMTQ0Niw3IEBAIHRlc3RzLmJyZWFrID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAg
ICBpbnQgZm9vKGludCB4KQpAQCAtMTc0Myw3ICsxNDc1LDcgQEAgdGVzdHMuY29udGludWUgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIDE4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsKICAgICBjaGVj
a0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4
KQpAQCAtMTc2OSw4ICsxNTAxLDggQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSld
KSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCAxMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAg
IGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3ODIsNyArMTUxNCw3IEBAIHRlc3RzLmRv
V2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsK
QEAgLTE3OTgsNyArMTUzMCw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwogfQogCiB0ZXN0cy5mb3JMb29wID0gZnVu
Y3Rpb24oKQpAQCAtMTgxNCw5ICsxNTQ2LDkgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAg
ICBpbnQgZm9vKGludCB4KQogICAgICAgICB7CkBAIC0xODI3LDkgKzE1NTksOSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NDEs
OSArMTU3Myw5IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1
cm4gc3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkK
ICAgICAgICAgewpAQCAtMTg1NiwxMCArMTU4OCwxMCBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDExKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg3MiwxMSArMTYwNCwxMSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAx
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg4OSwxMSArMTYyMSwx
MSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9n
cmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkw
NywxMSArMTYzOSwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIx
KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAg
ICAgewpAQCAtMTkyNiwxMSArMTY1OCwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
NyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDIxKTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAg
ICAgICAgICAgICB2b2lkIGZvbyhpbnQgeCkKQEAgLTE5NTAsMTEgKzE2ODIsMTEgQEAgdGVzdHMu
Zm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJl
cChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTk3MywxMSArMTcwNSwxMSBAQCB0
ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogfQogCiB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1
bmN0aW9uKCkKQEAgLTE5OTYsNyArMTcyOCw3IEBAIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGJhcjw0Mj4oYik7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwg
NTggKyA0Mik7CiB9CiAKIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTIwMTUs
NyArMTc0Nyw3IEBAIHRlc3RzLmNoYWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiBiYXIoJngpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzcp
XSksIDM3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
eiIsIFttYWtlSW50KHByb2dyYW0sIDM3KV0pLCAzNyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0
ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3ICsxNzcwLDcgQEAgdGVzdHMuY2hhaW5TdHJ1Y3QgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vKCZ4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQ2NTcpXSksIDQ2NTcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgNDY1NyldKSwg
NDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKQEAg
LTIwNjMsNyArMTc5NSw3IEBAIHRlc3RzLmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9u
KCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVy
LnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2lu
LCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAw
KSldKSwgNzg0NTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2
aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwg
Nzg0NTMpOwogfQogCiB0ZXN0cy5jaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIw
ODgsNyArMTgyMCw3IEBAIHRlc3RzLmNoYWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAg
IGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAs
IDc5MjAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
ciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZp
Y2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3
OTIwMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBw
cm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7
CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5TdHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0yMTEz
LDg5ICsxODQ1LDcgQEAgdGVzdHMucGFyYW1DaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNl
dCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgNzkyMDEpOwotfQotCi10ZXN0cy5zaW1wbGVQcm90b2NvbEV4dGVuZHMgPSBmdW5jdGlvbigp
Ci17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewot
ICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHBy
b3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBmdXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgZm9vKHApOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJh
cj4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAg
ICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkK
LSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAg
ICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpw
ICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewot
ICAgICAgICAgICAgYnV6eigmYSk7Ci0gICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhp
bmd5IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEpOwotfQot
Ci10ZXN0cy5wcm90b2NvbEV4dGVuZHNUd28gPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBm
b28odGhyZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhciB7Ci0gICAg
ICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9j
b2wgQmF6IDogRm9vLCBCYXIgewotICAgICAgICAgICAgdm9pZCBiYXoodGhyZWFkIEJheiopOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvbyhwKTsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpC
YXI+KHRocmVhZCBUKiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAg
IH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6QmF6Pih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgZnV6eihwKTsKLSAgICAgICAgICAgIGJ1enoocCk7Ci0gICAgICAgICAgICBiYXoo
cCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAg
ewotICAgICAgICAgICAgKnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJh
cih0aHJlYWQgaW50KiBwKQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0g
ICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXoodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAg
ICAgICAgICAgKnAgPSAqcCArIDM5OwotICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50
IGEpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHh1enooJmEpOwotICAgICAgICAgICAgcmV0dXJu
IGE7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRoaW5neSIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiAr
IDc0MyArIDkxICsgMzkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgNzkyMDEpOwogfQogCiB0ZXN0cy5wcmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIy
MDcsNyArMTg1Nyw3IEBAIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCld
KSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1Bs
dXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjE4LDcgKzE4NjgsNyBAQCB0ZXN0cy5wcmVmaXhQ
bHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiArK3g7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAt
MjIzMCw3ICsxODgwLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBs
dXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQpAQCAtMjI0MSw3ICsxODkxLDcgQEAgdGVzdHMucG9z
dGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgrKzsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2NCldKSwgNjQpOwogfQogCiB0ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24o
KQpAQCAtMjI1Myw3ICsxOTAzLDcgQEAgdGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNjQpXSksIDYzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnBy
ZWZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjY0LDcgKzE5MTQsNyBAQCB0
ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIC0teDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA2NCldKSwgNjMpOwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9
IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyArMTkyNiw3IEBAIHRlc3RzLnBvc3RmaXhNaW51c01pbnVz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0K
IAogdGVzdHMucG9zdGZpeE1pbnVzTWludXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjg3LDcg
KzE5MzcsNyBAQCB0ZXN0cy5wb3N0Zml4TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB4LS07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NCldKSwgNjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucGx1c0Vx
dWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIyOTksNyArMTk0OSw3IEBAIHRlc3RzLnBsdXNFcXVhbHMg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAz
ODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0y
MzEwLDcgKzE5NjAsNyBAQCB0ZXN0cy5wbHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHggKz0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAzODUpXSksIDM4NSArIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwog
fQogCiB0ZXN0cy5taW51c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzMjIsNyArMTk3Miw3IEBA
IHRlc3RzLm1pbnVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFsc1Jlc3Vs
dCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMsNyArMTk4Myw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzUmVz
dWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggLT0gNDI7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDM4NSldKSwgMzg1IC0gNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkK
QEAgLTIzNDUsNyArMTk5NSw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAz
ODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0
ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNTYsNyArMjAwNiw3IEBA
IHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHggKj0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4
NSAqIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy5kaXZp
ZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzY4LDcgKzIwMTgsNyBAQCB0ZXN0cy5kaXZpZGVF
cXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3Vs
dCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzksNyArMjAyOSw3IEBAIHRlc3RzLmRpdmlkZUVxdWFsc1Jl
c3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4IC89IDQyOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzODUpXSksICgzODUgLyA0MikgfCAwKTsKIH0KIAogdGVzdHMudHdvSW50TGl0ZXJh
bHMgPSBmdW5jdGlvbigpCkBAIC0yMzkwLDcgKzIwNDAsNyBAQCB0ZXN0cy50d29JbnRMaXRlcmFs
cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0MiA9PSA0MjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLnVuaWZ5RGlmZmVyZW50TGl0
ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yNDc5LDcgKzIxMjksNyBAQCB0ZXN0cy5idWlsZEFycmF5
VGhlblN1bUl0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQx
IC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxkQXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNl
ID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3ICsyMTUwLDcgQEAgdGVzdHMuYnVpbGRBcnJheVRoZW5T
dW1JdFVzaW5nQXJyYXlSZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YmFyKEBhcnJheSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAy
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
KSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0
cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1MjYsNyArMjE3Niw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vi
c2NyaXB0U3RydWN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZv
b1sxXSAqIDM7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5ICogMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5
ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBm
dW5jdGlvbigpCkBAIC0yNTUyLDcgKzIyMDIsNyBAQCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0
cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54ICsg
Zm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQog
CiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24o
KQpAQCAtMjU4Miw3ICsyMjMyLDcgQEAgdGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRV
c2VQb2ludGVycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJmZvbyk7CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5v
dmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzSW5jb3JyZWN0bHkgPSBmdW5jdGlv
bigpCkBAIC0yNjI5LDcgKzIyNzksNyBAQCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tTG9jYWwgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKICAgICAgICAgfQogICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVu
Y3Rpb24oKQpAQCAtMjY0OSw3ICsyMjk5LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbVBvaW50
ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmF6KCZ4KTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21BcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIsNyArMjMzMiw3IEBAIHRlc3RzLnNpbXBsZUxlbmd0aCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQGFycmF5KS5sZW5ndGg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJh
eUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlvbigpCkBAIC0yNjk0LDcgKzIzNDQsNyBAQCB0ZXN0cy5u
b25BcnJheVJlZkFycmF5TGVuZ3RoU3VjY2VlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJl
dHVybiBhcnJheS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsK
IH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aEZhaWwgPSBmdW5jdGlvbigpCkBAIC0y
NzkzLDcgKzI0NDMsNyBAQCB0ZXN0cy5zaW1wbGVHZXR0ZXIgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gZm9vLnk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDc4MDQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3ODA0KTsK
IH0KIAogdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtMjgxOCw3ICsyNDY4LDcg
QEAgdGVzdHMuc2ltcGxlU2V0dGVyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZv
by54OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3ODA0KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzgwNCk7CiB9CiAKIHRlc3RzLmdl
bmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlvbigpCkBAIC0yOTAzLDM1NCArMjU1MywxMDMgQEAgdGVz
dHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28u
c3VtOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdLCBbXSksIDEgKyAyICsgMyArIDQpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXJE
aWRTZXRZIiwgW10sIFtdKSwgOTMyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RaU2V0dGVyIiwgW10sIFtdKSwgNTMgKyA5MzIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSwgW10p
LCAxICsgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10sIFtdKSwgMSArIDIgKyAzICogNSArIDQpOwotfQotCi10
ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3NvciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Qml0bWFza2FibGUgOiBFcXVhdGFibGUg
ewotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvciYoTXlCaXRtYXNrYWJsZSwgTXlC
aXRtYXNrYWJsZSk7Ci0gICAgICAgICAgICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yfChNeUJpdG1h
c2thYmxlLCBNeUJpdG1hc2thYmxlKTsKLSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0
b3J+KE15Qml0bWFza2FibGUpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcjw8
KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRv
cj4+KE15Qml0bWFza2FibGUsIHVpbnQpOwotICAgICAgICAgICAgb3BlcmF0b3IgTXlCaXRtYXNr
YWJsZShpbnQpOwotICAgICAgICB9Ci0gICAgICAgIFQgbWFza0ZvckJpdEluZGV4PFQ6TXlCaXRt
YXNrYWJsZT4odWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFQoMSkg
PDwgaW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgYm9vbCBvcGVyYXRvcltdPFQ6TXlCaXRtYXNr
YWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGJvb2wodmFsdWUgJiBtYXNrRm9yQml0SW5kZXg8VD4oaW5kZXgpKTsKLSAgICAgICAgfQotICAg
ICAgICBUIG9wZXJhdG9yW109PFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCwg
Ym9vbCBiaXQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFQgbWFzayA9IG1hc2tGb3JCaXRJbmRl
eDxUPihpbmRleCk7Ci0gICAgICAgICAgICBpZiAoYml0KQotICAgICAgICAgICAgICAgIHZhbHVl
IHw9IG1hc2s7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdmFsdWUgJj0gfm1h
c2s7Ci0gICAgICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgoaW50KQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7Ci0g
ICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgodWludCkKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIDMyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0SW50U2V0
Qml0MygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb287Ci0gICAgICAgICAgICBmb29b
M10gPSB0cnVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBi
b29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbzsK
LSAgICAgICAgICAgIGZvb1s1XSA9IHRydWU7Ci0gICAgICAgICAgICByZXR1cm4gZm9vWzVdOwot
ICAgICAgICB9Ci0gICAgICAgIGJvb2wgdGVzdEludEdldEJpdDEoKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBpbnQgZm9vOwotICAgICAgICAgICAgcmV0dXJuIGZvb1sxXTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgdGVzdFVpbnRTdW1CaXRzKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50
IGZvbyA9IDQyOwotICAgICAgICAgICAgaW50IHJlc3VsdDsKLSAgICAgICAgICAgIGZvciAodWlu
dCBpID0gMDsgaSA8IGZvby5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChmb29b
aV0pCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCsrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTd2Fw
Qml0cygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBmb28gPSA0MjsKLSAgICAgICAgICAg
IGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGggLyAyOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICBib29sIHRtcCA9IGZvb1tpXTsKLSAgICAgICAgICAgICAgICBmb29baV0gPSBmb29bZm9v
Lmxlbmd0aCAtIGkgLSAxXTsKLSAgICAgICAgICAgICAgICBmb29bZm9vLmxlbmd0aCAtIGkgLSAx
XSA9IHRtcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAg
IH0KLSAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICB1aW50IGY7Ci0gICAgICAgICAg
ICB1aW50IGc7Ci0gICAgICAgIH0KLSAgICAgICAgb3BlcmF0b3IgRm9vKHVpbnQgZiwgdWludCBn
KQotICAgICAgICB7Ci0gICAgICAgICAgICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0
LmYgPSBmOwotICAgICAgICAgICAgcmVzdWx0LmcgPSBnOwotICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgb3BlcmF0b3IuaChGb28gZm9vKQotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gaW50KChmb28uZiAmIDB4ZmZmZikgfCAoKGZvby5nICYg
MHhmZmZmKSA8PCAxNikpOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5oPShGb28g
Zm9vLCBpbnQgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvby5mICY9IH4weGZmZmZ1
OwotICAgICAgICAgICAgZm9vLmYgfD0gdWludCh2YWx1ZSkgJiAweGZmZmY7Ci0gICAgICAgICAg
ICBmb28uZyAmPSB+MHhmZmZmdTsKLSAgICAgICAgICAgIGZvby5nIHw9ICh1aW50KHZhbHVlKSA+
PiAxNikgJiAweGZmZmY7Ci0gICAgICAgICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAg
ICAgIGludCB0ZXN0TFZhbHVlRW11bGF0aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9v
IGZvbzsKLSAgICAgICAgICAgIGZvby5mID0gNDI7Ci0gICAgICAgICAgICBmb28uZyA9IDM3Owot
ICAgICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgZm9vLmgubGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICAgICAgZm9vLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoZm9v
LmYgKyBmb28uZyk7Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAg
ICBGb28gYTsKLSAgICAgICAgICAgIEZvbyBiOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVy
YXRvci5jKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBGb28odWludChi
YXIuYS5oKSwgdWludChiYXIuYi5oKSk7Ci0gICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9y
LmM9KEJhciBiYXIsIEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hLmggPSBp
bnQoZm9vLmYpOwotICAgICAgICAgICAgYmFyLmIuaCA9IGludChmb28uZyk7Ci0gICAgICAgICAg
ICByZXR1cm4gYmFyOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0Q3JhenlMVmFsdWVFbXVs
YXRpb24oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXIgYmFyOwotICAgICAgICAgICAgYmFy
LmEuZiA9IDE7Ci0gICAgICAgICAgICBiYXIuYS5nID0gMjsKLSAgICAgICAgICAgIGJhci5iLmYg
PSAzOwotICAgICAgICAgICAgYmFyLmIuZyA9IDQ7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9
IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAgICAgICAgIGJhci5jLmhb
aV0gXj0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoYmFyLmEuZiArIGJhci5hLmcgKyBi
YXIuYi5mICsgYmFyLmIuZyk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RJbnRTZXRCaXQzIiwgW10sIFtdKSwgOCk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEludFNl
dEdldEJpdDUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50R2V0Qml0MSIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RVaW50U3VtQml0cyIs
IFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdFVpbnRTd2FwQml0cyIsIFtdLCBbXSksIDE0MDkyODYxNDQpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtd
LCBbXSksIDEzMDk5MSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24iLCBbXSwgW10pLCA0MzY5Nik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtd
KSwgMSArIDIgKyAzICsgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0WlNldHRlckRpZFNldFkiLCBbXSksIDkzMik7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlciIsIFtdKSwgNTMgKyA5MzIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0
ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RMVmFsdWVFbXVsYXRpb24iLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKIH0K
IAogdGVzdHMubmVzdGVkU3Vic2NyaXB0TFZhbHVlRW11bGF0aW9uU2ltcGxlID0gZnVuY3Rpb24o
KQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgc3RydWN0IEZvbyB7Ci0g
ICAgICAgICAgICBpbnRbN10gYXJyYXk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9y
W10oRm9vIGZvbywgdWludCBpbmRleCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZv
by5hcnJheVtpbmRleF07Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBm
b28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vLmFy
cmF5W2luZGV4XSA9IHZhbHVlOwotICAgICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQot
ICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3Vt
KEZvbyBmb28pCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAg
ICAgICAgZm9yICh1aW50IGkgPSBmb28ubGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJl
c3VsdCArPSBmb29baV07Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0g
ICAgICAgIHN0cnVjdCBCYXIgewotICAgICAgICAgICAgRm9vWzZdIGFycmF5OwotICAgICAgICB9
Ci0gICAgICAgIHVpbnQgb3BlcmF0b3IubGVuZ3RoKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBiYXIuYXJyYXkubGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBv
cGVyYXRvcltdKEJhciBiYXIsIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJl
dHVybiBiYXIuYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltd
PShCYXIgYmFyLCB1aW50IGluZGV4LCBGb28gdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAg
IGJhci5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAg
ICAgIH0KLSAgICAgICAgaW50IHN1bShCYXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmFyLmxlbmd0aDsgaS0t
OykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJhcltpXSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXogewotICAgICAgICAg
ICAgQmFyWzVdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBi
YXosIHVpbnQgaW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlb
aW5kZXhdOwotICAgICAgICB9Ci0gICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50
IGluZGV4LCBCYXIgdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhei5hcnJheVtpbmRl
eF0gPSB2YWx1ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXo7Ci0gICAgICAgIH0KLSAgICAgICAg
dWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXogYmF6
KQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZv
ciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0g
c3VtKGJheltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAg
ICAgIHZvaWQgc2V0VmFsdWVzKHRocmVhZCBCYXoqIGJheikKLSAgICAgICAgewotICAgICAgICAg
ICAgZm9yICh1aW50IGkgPSBiYXotPmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZv
ciAodWludCBqID0gKCpiYXopW2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAg
ICBmb3IgKHVpbnQgayA9ICgqYmF6KVtpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAg
ICAgICAgICAgICAoKmJheilbaV1bal1ba10gPSBpbnQoaSArIGogKyBrKTsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRWYWx1
ZXNBbmRTdW0oKQotICAgICAgICB7Ci0gICAgICAgICAgICBCYXogYmF6OwotICAgICAgICAgICAg
c2V0VmFsdWVzKCZiYXopOwotICAgICAgICAgICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9
Ci0gICAgICAgIGludCB0ZXN0U2V0VmFsdWVzTXV0YXRlVmFsdWVzQW5kU3VtKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgQmF6IGJhejsKLSAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKLSAg
ICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAg
ICAgIGZvciAodWludCBqID0gYmF6W2ldLmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgayA9IGJheltpXVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAg
ICAgICAgICAgICBiYXpbaV1bal1ba10gKj0gaW50KGspOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNl
dFZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtd
LCBbXSksIDU1NjUpOwotfQotCi10ZXN0cy5uZXN0ZWRTdWJzY3JpcHRMVmFsdWVFbXVsYXRpb25H
ZW5lcmljID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAgICAgICBUWzddIGFycmF5OworICAgICAgICAgICAg
aW50WzddIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIFQgb3BlcmF0b3JbXTxUPihGb288VD4g
Zm9vLCB1aW50IGluZGV4KQorICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGlu
ZGV4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKICAg
ICAgICAgfQotICAgICAgICBGb288VD4gb3BlcmF0b3JbXT08VD4oRm9vPFQ+IGZvbywgdWludCBp
bmRleCwgVCB2YWx1ZSkKKyAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5k
ZXgsIGludCB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9
IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGZvbzsKICAgICAgICAgfQotICAgICAgICB1aW50
IG9wZXJhdG9yLmxlbmd0aDxUPihGb288VD4gZm9vKQorICAgICAgICB1aW50IG9wZXJhdG9yLmxl
bmd0aChGb28gZm9vKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxl
bmd0aDsKICAgICAgICAgfQotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAg
ICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0K
LSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEZvbzxUPiBmb28pCisgICAgICAgIGludCBzdW0o
Rm9vIGZvbykKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBp
bnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0t
OykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gZm9vW2ldOwogICAgICAgICAgICAgcmV0dXJu
IHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyPFQ+IHsKLSAgICAgICAgICAg
IEZvbzxUPls2XSBhcnJheTsKKyAgICAgICAgc3RydWN0IEJhciB7CisgICAgICAgICAgICBGb29b
Nl0gYXJyYXk7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmFy
PFQ+IGJhcikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmFyIGJhcikKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAg
ICAgRm9vPFQ+IG9wZXJhdG9yW108VD4oQmFyPFQ+IGJhciwgdWludCBpbmRleCkKKyAgICAgICAg
Rm9vIG9wZXJhdG9yW10oQmFyIGJhciwgdWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAg
ICAgcmV0dXJuIGJhci5hcnJheVtpbmRleF07CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9w
ZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIsIHVpbnQgaW5kZXgsIEZvbzxUPiB2YWx1ZSkKKyAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciBiYXIsIHVpbnQgaW5kZXgsIEZvbyB2YWx1ZSkKICAgICAg
ICAgewogICAgICAgICAgICAgYmFyLmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAg
cmV0dXJuIGJhcjsKICAgICAgICAgfQotICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4oQmFyPFQ+
IGJhcikKKyAgICAgICAgaW50IHN1bShCYXIgYmFyKQogICAgICAgICB7Ci0gICAgICAgICAgICBU
IHJlc3VsdDsKKyAgICAgICAgICAgIGludCByZXN1bHQgPSAwOwogICAgICAgICAgICAgZm9yICh1
aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07KQogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0o
YmFyW2ldKTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAg
c3RydWN0IEJhejxUPiB7Ci0gICAgICAgICAgICBCYXI8VD5bNV0gYXJyYXk7CisgICAgICAgIHN0
cnVjdCBCYXogeworICAgICAgICAgICAgQmFyWzVdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAg
IEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJhejxUPiBiYXosIHVpbnQgaW5kZXgpCisgICAgICAgIEJh
ciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwogICAgICAgICB9Ci0gICAgICAgIEJhejxUPiBvcGVy
YXRvcltdPTxUPihCYXo8VD4gYmF6LCB1aW50IGluZGV4LCBCYXI8VD4gdmFsdWUpCisgICAgICAg
IEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCiAgICAgICAg
IHsKICAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIHJl
dHVybiBiYXo7CiAgICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmF6
PFQ+IGJheikKKyAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6IGJheikKICAgICAgICAg
ewogICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAg
ICAgVCBzdW08VDpNeUFkZGFibGU+KEJhejxUPiBiYXopCisgICAgICAgIGludCBzdW0oQmF6IGJh
eikKICAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVz
dWx0ID0gMDsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKICAg
ICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7CiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVGcm9tVWlu
dCB7Ci0gICAgICAgICAgICBvcGVyYXRvciBNeUNvbnZlcnRpYmxlRnJvbVVpbnQodWludCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgU2V0VmFsdWFibGUgOiBNeUFkZGFibGUsIE15Q29u
dmVydGlibGVGcm9tVWludCB7IH0KLSAgICAgICAgdm9pZCBzZXRWYWx1ZXM8VDpTZXRWYWx1YWJs
ZT4odGhyZWFkIEJhejxUPiogYmF6KQorICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6
KiBiYXopCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7
IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7
IGotLTspIHsKICAgICAgICAgICAgICAgICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0u
bGVuZ3RoOyBrLS07KQotICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0g
VChpICsgaiArIGspOworICAgICAgICAgICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0g
aW50KGkgKyBqICsgayk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGludCB0ZXN0U2V0VmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAg
ICAgICAgQmF6PGludD4gYmF6OworICAgICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNl
dFZhbHVlcygmYmF6KTsKICAgICAgICAgICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQog
ICAgICAgICBpbnQgdGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIEJhejxpbnQ+IGJhejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAg
ICAgICBzZXRWYWx1ZXMoJmJheik7CiAgICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5n
dGg7IGktLTspIHsKICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7
IGotLTspIHsKQEAgLTMyNjEsOCArMjY2MCw4IEBAIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1
ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtKGJh
eik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRh
dGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10pLCA1NTY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSksIDE1NzUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVl
c011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdKSwgNTU2NSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQg
PSBmdW5jdGlvbigpCkBAIC0zMjczLDEwICsyNjcyLDEwIEBAIHRlc3RzLmJvb2xCaXRBbmQgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSld
KSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0
cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dy
YW0sIGZhbHNlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkK
QEAgLTMyODcsMTAgKzI2ODYsMTAgQEAgdGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsK
LSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFs
c2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRy
dWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1
ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzAxLDEwICsyNzAw
LDEwIEBAIHRlc3RzLmJvb2xCaXRYb3IgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YSBeIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFr
ZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBm
YWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9n
cmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0
cy5ib29sQml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzMxNSw4ICsyNzE0LDggQEAgdGVzdHMuYm9v
bEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW50Qml0QW5kID0gZnVu
Y3Rpb24oKQpAQCAtMzMyNywxMCArMjcyNiwxMCBAQCB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA2NTUzNSksIG1ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAt
MSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIC03KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFr
ZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9n
cmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0Mild
KSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3Rz
LmludEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzM0MSwxMCArMjc0MCwxMCBAQCB0ZXN0cy5pbnRC
aXRPciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgLTEpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDApLCBtYWtlSW50KHByb2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwg
bWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50
KHByb2dyYW0sIC03KV0pLCAtMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0z
MzU1LDEwICsyNzU0LDEwIEBAIHRlc3RzLmludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
LCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFr
ZUludChwcm9ncmFtLCA0MildKSwgNjU0OTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUlu
dChwcm9ncmFtLCAtNyldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgODU3MzIpXSksIDg1NzMyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcp
XSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMu
aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzM2OSwxMCArMjc2OCwxMCBAQCB0ZXN0cy5pbnRC
aXROb3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAtMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUp
XSksIC02NTUzNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDApXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KV0p
LCAtNjU1MzYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEp
OwogfQogCiB0ZXN0cy5pbnRMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzgzLDEwICsyNzgyLDEw
IEBAIHRlc3RzLmludExTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8
IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dy
YW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAtMzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0p
LCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5j
dGlvbigpCkBAIC0zMzk3LDEwICsyNzk2LDEwIEBAIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBhID4+IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCks
IG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAy
KV0pLCAxNjM4Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0x
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVz
dHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKQEAgLTM0MTEsMTAgKzI4MTAsMTAgQEAgdGVzdHMu
dWludEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcp
XSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0Mild
KSwgNDIpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwg
NDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3
MzIpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRl
c3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTM0MjUsMTAgKzI4MjQsMTAgQEAgdGVzdHMu
dWludEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgNyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0p
LCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0p
LCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4
NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyld
KSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1
NTM1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2
NzI5NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3
MzIpOwogfQogCiB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzQzOSwxMCArMjgz
OCwxMCBAQCB0ZXN0cy51aW50Qml0WG9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IGEgXiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNyldKSwgNik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIC03KV0pLCA2KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9n
cmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIp
XSksIDY1NDkzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwg
Nik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIp
OwogfQogCiB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzQ1MywxMCArMjg1Miwx
MCBAQCB0ZXN0cy51aW50Qml0Tm90ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5h
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KV0pLCA0Mjk0OTAxNzYwKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHBy
b2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpXSks
IDQyOTQ5MDE3NjApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDAp
XSksIDQyOTQ5NjcyOTUpOwogfQogCiB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAt
MzQ2NywxMCArMjg2NiwxMCBAQCB0ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJv
Z3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwg
bWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtl
VWludChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50
KHByb2dyYW0sIDUpXSksIDQyOTQ5NjcyNjQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBA
IC0zNDgxLDEwICsyODgwLDEwIEBAIHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gYSA+PiBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTM0MjE3NzI3KTsKLSAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dy
YW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1h
a2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50
KHByb2dyYW0sIDIpXSksIDE2MzgzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9n
cmFtLCA1KV0pLCAxMzQyMTc3MjcpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgMyldKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzQ5
NSwxMCArMjg5NCwxMCBAQCB0ZXN0cy51aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2
NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludDgocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjQ5KTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMCk7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
MSksIG1ha2VVaW50OChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSks
IG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNDkpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWlu
dDgocHJvZ3JhbSwgODU3MzIpXSksIDApOwogfQogCiB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rp
b24oKQpAQCAtMzUwOSwxMCArMjkwOCwxMCBAQCB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOwotICAgIGNo
ZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKLSAgICBj
aGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
VWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAyNTUpOworICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dy
YW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVp
bnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpAQCAtMzUyMywxMCArMjkyMiwxMCBAQCB0ZXN0cy51aW50
OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcp
XSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0
MildKSwgMjEzKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwg
LTcpXSksIDYpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1
NzMyKV0pLCAyMjgpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyld
KSwgNik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSks
IDIxMyk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYp
OworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7
CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90ID0gZnVuY3Rpb24oKQpAQCAtMzUzNywxMCArMjkzNiwx
MCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+
YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOwot
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0x
KV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCAxKV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KV0pLCAwKTsKKyAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9n
cmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCldKSwgMjU1KTsKIH0KIAogdGVzdHMu
dWludDhMU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTUxLDEwICsyOTUwLDEwIEBAIHRlc3RzLnVp
bnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMTI4KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFt
LCAyKV0pLCAyNTIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDIyNCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAz
KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4
KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7
CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyMjQpOworICAg
IGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQ4KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMu
dWludDhSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNTY1LDEwICsyOTY0LDEwIEBAIHRlc3RzLnVp
bnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NyldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwg
MildKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1
KV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyld
KSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOwor
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKKyAg
ICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDI1NSk7CisgICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5mbG9h
dE1hdGggPSBmdW5jdGlvbigpCkBAIC0zNjI0LDE3ICszMDIzLDE3IEBAIHRlc3RzLmZsb2F0TWF0
aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmbG9hdCh4KTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBb
XSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNiIsIFtdLCBbXSksIDcuNSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW10sIFtdKSwgNy41KTsKLSAg
ICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSwg
W10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMiIsIFtdLCBbXSksIDcpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMyIsIFtdLCBbXSksIDcuNSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCB0cnVlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdKSwgNy41KTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSksIDcu
NSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEy
IiwgW10pLCA3KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTMiLCBbXSksIDcuNSk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAogICAgICAgICAgICAgaW50IGJhcihpbnQgeCkKQEAgLTM3MjksNyArMzEyOCw3IEBAIHRl
c3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5y
ZWFsICsgeC5pbWFnOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CiB9CiAKIHRlc3Rz
LmJvb2xlYW5NYXRoID0gZnVuY3Rpb24oKQpAQCAtMzc2OCwxNCArMzE2NywxNCBAQCB0ZXN0cy5i
b29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCBmYWxz
ZTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIGZh
bHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280
IiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFtdLCBbXSksIHRydWUp
OwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBb
XSwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0
cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282
IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xlYW5TaG9y
dGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCkBAIC0zODE2LDEwICszMjE1LDEwIEBAIHRlc3RzLmJv
b2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKIAot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtd
LCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YW5kRmFsc2UiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdLCBbXSksIDIpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdKSwgMik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvclRy
dWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAib3JGYWxzZSIsIFtdKSwgMik7CiB9CiAKIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9u
KCkKQEAgLTM4MzIsNyArMzIzMSw3IEBAIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBhcnJheVR5cGVkZWZbMF07CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCAwKTsKIH0KIAogdGVzdHMuc2hhZGVyVHlwZXMgPSBmdW5jdGlvbigpCkBAIC00MDg0
LDI0ICszNDgzLDI0IEBAIHRlc3RzLmJ1aWx0aW5WZWN0b3JzID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIGIgPT0gYzsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgNCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10s
IFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW10sIFtdKSwgNSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdLCBbXSksIDMpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UyIiwgW10s
IFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vdTMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb291NCIsIFtdLCBbXSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTYiLCBbXSwgW10pLCBmYWxz
ZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Yi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vZjMiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSwgW10pLCA1KTsKLSAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b2Y2IiwgW10sIFtdKSwgZmFsc2UpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCBmYWxz
ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIs
IFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vdTIiLCBbXSksIDQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb3UzIiwgW10pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3U2IiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSksIDMp
OworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIs
IFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvb2YzIiwgW10pLCAzKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvb2Y1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mNiIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0
cy5pbnN0YW50aWF0ZVN0cnVjdEluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtNDEyMSw3ICszNTIw
LDcgQEAgdGVzdHMuaW5zdGFudGlhdGVTdHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9
CiAKIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkK
QEAgLTQxMzgsNyArMzUzNyw3IEBAIHRlc3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRo
SW50MiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigp
CkBAIC00MjYzLDMyICszNjYyLDMyIEBAIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gRm9vKGludERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtd
KSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFt
aW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10s
IFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidGVzdEFub3RoZXJFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2lt
cGxlTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90
Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwg
W10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWUiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImRlYXRoVmFsdWUiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRl
cmFsIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtd
LCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImludFdhckJhY2t3YXJkcyIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVu
Y2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNo
ZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10p
LCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0
aWxlbmNlIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVx
dWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5j
ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1
ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVy
YWwiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRz
IiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9
CiAKIHRlc3RzLmVudW1XaXRoTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQpAQCAtNDMxNywxMCAr
MzcxNiwxMCBAQCB0ZXN0cy5lbnVtV2l0aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBGb28uRGVhdGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0g
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10s
IFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
cGVzdGlsZW5jZSIsIFtdLCBbXSksIDIzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIC00Mik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAwKTsKKyAg
ICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwg
W10pLCAyMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGgiLCBbXSksIC00Mik7CiB9CiAKIHRlc3RzLmVudW1XaXRob3V0WmVybyA9IGZ1bmN0aW9u
KCkKQEAgLTQzNzcsMTAgKzM3NzYsMTAgQEAgdGVzdHMuZW51bVdpdGhTb21lTWFudWFsVmFsdWVz
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvby5EZWF0aDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
ciIsIFtdLCBbXSksIDcyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCA3Myk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMSk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10p
LCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFt
aW5lIiwgW10pLCA3Myk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDEpOwogfQogCiB0ZXN0cy5lbnVtQ29uc3Rl
eHByR2VuZXJpY0Z1bmN0aW9uID0gZnVuY3Rpb24oKQpAQCAtNDM5MSw4ICszNzkwLDggQEAgdGVz
dHMuZW51bUNvbnN0ZXhwckdlbmVyaWNGdW5jdGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50
IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4aXMuWD4oKTsgfQogICAgICAgICBpbnQgdGVzdFkoKSB7
IHJldHVybiBmb288QXhpcy5ZPigpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwg
W10pLCAxKTsKIH0KIAogdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlv
bigpCkBAIC00NDEyLDggKzM4MTEsOCBAQCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY1N0cnVj
dCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28oZik7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RY
IiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdFgiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy50cmFwID0g
ZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCArMzgzOCwxNCBAQCB0ZXN0cy50cmFwID0gZnVuY3Rpb24o
KQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJh
cEVycm9yKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
NCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwKICAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAo
KSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSwgW10pLAorICAgICAgICAoKSA9
PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksCiAgICAgICAgIGUgPT4gZSBpbnN0
YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC00NDcwLDkgKzM4NjksOSBAQCB0ZXN0cy5zd2l6
emxlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHF1aXguejsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMiIsIFtdLCBbXSksIDYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tG
bG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYpOworICAg
IGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCA0
KTsKIH0KIAogdGVzdHMuZW51bVdpdGhFeHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00
NTk3LDMyICszOTk2LDMyIEBAIHRlc3RzLmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVh
bCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNpbXBsZU5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10p
LCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdE5vdEVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGls
ZW5jZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSks
IDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZh
bHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVy
YWwiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10p
LCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQ
ZXN0aWxlbmNlQmFja3dhcmRzIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsK
KyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSks
IDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVh
bCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3Ro
ZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10p
LCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBl
c3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwg
W10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRl
YXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAid2FyVmFsdWVMaXRlcmFsIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRlcmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOwor
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJh
Y2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50UGVzdGlsZW5jZUJhY2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSks
IDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDc0Nywz
MiArNDE0NiwzMiBAQCB0ZXN0cy5lbnVtV2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIEZvbyh1aW50RGVhdGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAw
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUi
LCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJwZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVO
b3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RF
cXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInVpbnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2Ui
LCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ1aW50RGVhdGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwg
MSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGls
ZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSks
IDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWlu
ZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
TGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInVpbnRXYXJCYWNrd2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RmFtaW5lQmFja3dhcmRzIiwg
W10sIFtdKSwgMSk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwg
W10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3
YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFu
b3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIsIFtd
KSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dEZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVl
IiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7
CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFs
dWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtd
KSwgMyk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWlu
dFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAidWludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2Fy
ZHMiLCBbXSksIDIpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInVpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1GbG9hdEJh
c2UgPSBmdW5jdGlvbigpCkBAIC00ODE4LDcgKzQyMTcsNyBAQCB0ZXN0cy5lbXB0eVN0cnVjdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiA0NjsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtd
KSwgNDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10pLCA0Nik7CiB9CiAKIHRlc3RzLmVudW1TdHJ1Y3RCYXNlID0gZnVuY3Rpb24oKQpAQCAt
NDg1Nyw5ICs0MjU2LDkgQEAgdGVzdHMuc2ltcGxlU3dpdGNoID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDc2NyldKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMCldKSwgNDkpOwogfQogCiB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2gg
PSBmdW5jdGlvbigpCkBAIC00ODcwLDcgKzQyNjksNyBAQCB0ZXN0cy5leGhhdXN0aXZlVWludDhT
d2l0Y2ggPSBmdW5jdGlvbigpCiAgICAgdGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcCh0ZXh0KTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAg
ICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZVVpbnQ4KHByb2dyYW0sIGkpXSksIGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBp
KV0pLCBpICogMS41KTsKIH0KIAogdGVzdHMubm90UXVpdGVFeGhhdXN0aXZlVWludDhTd2l0Y2gg
PSBmdW5jdGlvbigpCkBAIC00ODkxLDcgKzQyOTAsNyBAQCB0ZXN0cy5ub3RRdWl0ZUV4aGF1c3Rp
dmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0ID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7
CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkg
PCAweGZmOyArK2kpCi0gICAgICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAg
ICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludDgocHJvZ3JhbSwgaSldKSwgaSAqIDEuNSk7CiB9CiAKIHRlc3RzLnN3aXRjaEZhbGxU
aHJvdWdoID0gZnVuY3Rpb24oKQpAQCAtNDkxMyw5ICs0MzEyLDkgQEAgdGVzdHMuc3dpdGNoRmFs
bFRocm91Z2ggPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwg
NDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
OSldKSwgNzYyNCArIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuc3dp
dGNoQnJlYWsgPSBmdW5jdGlvbigpCkBAIC00OTM4LDkgKzQzMzcsOSBAQCB0ZXN0cy5zd2l0Y2hC
cmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2
OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3
KV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0
OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBA
IC00OTY2LDkgKzQzNjUsOSBAQCB0ZXN0cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJG
b28iLCAiQiIpXSksIDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJBIildKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAi
QiIpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKIH0KIAogdGVz
dHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpAQCAtNTAy
MSw5ICs0NDIwLDkgQEAgdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlV2l0
aERlZmF1bHQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVu
dW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28i
LCAiQyIpXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJv
Z3JhbSwgIkZvbyIsICJCIildKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwg
NDkpOwogfQogCiB0ZXN0cy5zaW1wbGVSZWN1cnNpdmVTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC01
MDcyLDcgKzQ0NzEsNyBAQCB0ZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVy
c0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAtNTExKSwKKyAgICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIC01MTEpLAogICAgICAgICBlID0+IGUgaW5z
dGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtNTA5OCw3ICs0NDk3LDcgQEAgdGVzdHMubXV0
dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4gZm9vLmJhci0+YmFyIC0gYmFyLmZvby0+Zm9vOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCAtNTExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAKIHRlc3RzLmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCkBA
IC01MTE5LDcgKzQ1MTgsNyBAQCB0ZXN0cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHgubmV4dC0+bmV4dC0+dmFsdWU7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAzKTsKIH0KIAogdGVzdHMucG9pbnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKQEAgLTUx
NDIsNyArNDU0MSw3IEBAIHRlc3RzLnBvaW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsg
ODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5j
dGlvbigpCkBAIC01MTY1LDcgKzQ1NjQsNyBAQCB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQogCiB0ZXN0cy5wb2ludGVyR2V0
dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0Niw5NCArNDY0NSw2IEBAIHRlc3RzLnNldHRlcldpdGhN
YXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKIH0KIAotdGVzdHMub3BlcmF0b3JXaXRo
VW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxlID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgK
LSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAg
ICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgRm9vIG9wZXJhdG9y
KzxUPihGb28gYSwgRm9vIGIpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJl
c3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yV2l0aG91
dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJsZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0g
ICAgICAgIH0KLSAgICAgICAgRm9vIG9wZXJhdG9yKyhGb28gYSwgRm9vIGIpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEZvbyByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIu
eDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZv
bygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyBhOwotICAgICAgICAgICAgYS54ID0gNjQ1
OwotICAgICAgICAgICAgRm9vIGI7Ci0gICAgICAgICAgICBiLnggPSAtMzU7Ci0gICAgICAgICAg
ICByZXR1cm4gKGEgKyBiKS54OwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA2NDUgLSAzNSk7Ci19
Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdpdGhVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5j
dGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAg
ICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBvcGVyYXRvcjxUPiBGb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICByZXN1bHQueCA9IHg7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCks
Ci0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVy
YXRvckNhc3RXaXRoVHlwZVZhcmlhYmxlSW5mZXJyZWRGcm9tUmV0dXJuVHlwZSA9IGZ1bmN0aW9u
KCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewot
ICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyYWJsZSB7
Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyYWJsZSosIGludCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdm9pZCBiYXIodGhyZWFkIGZsb2F0KiByZXN1bHQsIGludCB2YWx1ZSkKLSAgICAg
ICAgewotICAgICAgICAgICAgKnJlc3VsdCA9IGZsb2F0KHZhbHVlKTsKLSAgICAgICAgfQotICAg
ICAgICBvcGVyYXRvcjxUOkJhcmFibGU+IFQoRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAg
ICAgVCByZXN1bHQ7Ci0gICAgICAgICAgICBiYXIoJnJlc3VsdCwgZm9vLngpOwotICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby54ID0gNzU7Ci0gICAgICAg
ICAgICBmbG9hdCB4ID0gZmxvYXQoZm9vKTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCAqIDEu
NSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDExMik7Ci19Ci0KIHRlc3RzLmluY1dyb25nQXJn
dW1lbnRMZW5ndGggPSBmdW5jdGlvbigpCiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNTgyMyw3ICs1
MTM0LDcgQEAgdGVzdHMuYW5kZXJXaXRoTm90aGluZ1dyb25nID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHguZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0K
IAogdGVzdHMuYW5kZXJXaXRoV3JvbmdOdW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAg
LTU4OTcsNyArNTIwOCw3IEBAIHRlc3RzLmFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIChAeCkuZm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IDEzKTsKIH0KIAogdGVzdHMucG9pbnRlckluZGV4R2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNjA4
Myw3ICs1Mzk0LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlv
bigpCiAgICAgICAgICAgICByZXR1cm4geFs2NjZdOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAx
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDEzKTsKIH0KIAogdGVzdHMuaW5kZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRz
ID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3ICs1NDc5LDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhB
cnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAoQHgpW2Zsb2F0KC0xKV07
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCiB0ZXN0cy5kZXZpY2VQdHJQ
dHIgPSBmdW5jdGlvbigpCkBAIC02MjA3LDMwNiArNTUxOCw2IEBAIHRlc3RzLmNvbnN0YW50UHRy
UHRyID0gZnVuY3Rpb24oKQogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYm
IGUubWVzc2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBl
OiBpbnQzMiogY29uc3RhbnQqIGNvbnN0YW50IikgIT0gLTEpOwogfQogCi10ZXN0cy5wb2ludGVy
SW5kZXhHZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGZvciAobGV0IGFkZHJl
c3NTcGFjZSBvZiBhZGRyZXNzU3BhY2VzKSB7Ci0gICAgICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
ICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oJHthZGRyZXNzU3BhY2V9IEZvbyosIHVpbnQp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAg
ICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAg
ICAgICAgICAgIGApLAotICAgICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAm
JiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgZ2V0dGVyIGZvciBwb2ludGVyIHR5cGUi
KSAhPSAtMSk7Ci0gICAgfQotfQotCi10ZXN0cy5sb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109
KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIg
eyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9
Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJh
cigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
ICYmIGUubWVzc2FnZS5pbmRleE9mKCJFdmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcg
Z2V0dGVyIikgIT0gLTEpOwotfQotCi10ZXN0cy5ub3RMb25lSW5kZXhTZXR0ZXJJblByb3RvY29s
ID0gZnVuY3Rpb24oKQotewotICAgIGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0g
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9w
ZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0g
ICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0K
LSAgICBgKTsKLX0KLQotdGVzdHMuaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGVJblByb3Rv
Y29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgb3Bl
cmF0b3JbXShGb28sIHVpbnQpOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28s
IHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAg
ICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVyIGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0
eXBlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0
aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7
IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0K
LSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5t
ZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlv
bmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+
IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGlu
dCBvcGVyYXRvcltdKEZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFy
IHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0Mjsg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEp
OwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCBpbnQsIGlu
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwK
LSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhP
ZigiSW5jb3JyZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotfQotCi10ZXN0cy5p
bmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlv
bigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQg
b3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3Bl
cmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAot
ICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9m
KCJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1
cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAg
ICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0o
Rm9vKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAg
ICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAg
ICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2Fn
ZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAg
Y2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wg
Rm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRv
cltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAg
ICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIklu
Y29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0g
ICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAg
ICAgICAgICAgIGludCBvcGVyYXRvcltdPShGb28sIGludCwgaW50LCBpbnQpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRv
cltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltd
PShCYXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAg
IGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29y
cmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyIpICE9IC0xKTsKLX0KLQotdGVzdHMubG9uZUluZGV4
U2V0dGVyUG9pbnRlckluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvcltdPSh0aHJlYWQgRm9vKiBwdHIsIHVpbnQs
IGludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAg
ICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAg
ICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3Nh
Z2UuaW5kZXhPZigiQ2Fubm90IGhhdmUgc2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7
Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAg
ICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10o
aW50LCBGb28pOwotICAgICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGlu
dCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAg
ICAgaW50IG9wZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAg
QmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAg
ICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2Uu
aW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1bmN0aW9uIG5hbWVkIG9wZXJhdG9yW109IHdpdGggYXJn
dW1lbnRzIEZvbyx1aW50MzIiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5v
R2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgZG9QcmVw
KGAKLSAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZv
bywgdWludCk7Ci0gICAgICAgICAgICBGb28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwot
ICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVyYXRvcltd
KEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwg
dWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgIGApOwotfQotCi10ZXN0cy5pbmRleEFu
ZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdGhy
ZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgYmFyPFQ6Rm9vPihUIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biB4WzQyXTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICB0aHJl
YWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgewotICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJu
IGJhcihCYXIoKSk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDEyMzQpOwotfQotCi10ZXN0cy5p
bmRleEFuZGVyV2l0aFdyb25nTnVtYmVyT2ZBcmd1bWVudHNJblByb3RvY29sID0gZnVuY3Rpb24o
KQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAg
IHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10o
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAg
ICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3Mg
dHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsK
LSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90
b2NvbCBGb28gewotICAgICAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVh
ZCBGb28qIGZvbyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQot
ICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJ
bmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZm9yIG9wZXJhdG9yJltdIikgIT0gLTEpOwot
ICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3Rv
Y29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFk
IEZvbyogZm9vLCB1aW50LCB1aW50KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVj
dCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFy
KiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIz
NDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdl
LmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVycyBmb3Igb3BlcmF0b3ImW10i
KSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4QW5kZXJEb2VzbnRSZXR1cm5Qb2ludGVySW5Qcm90
b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJl
cChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVy
YXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRo
cmVhZCBCYXIqLCB1aW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1
bHQgPSAxMjM0OwotICAgICAgICAgICAgICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAg
fQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBl
Lm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJuIHR5cGUgb2YgYW5kZXIgaXMgbm90IGEgcG9pbnRlciIp
ICE9IC0xKTsKLX0KLQotdGVzdHMuaW5kZXhBbmRlckRvZXNudFRha2VSZWZlcmVuY2VJblByb3Rv
Y29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVw
KGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGlu
dCogb3BlcmF0b3ImW10oRm9vIGZvbywgdWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhy
ZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3Vs
dCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUu
bWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0ZXIgdG8gYW5kZXIgaXMgbm90IGEgcmVmZXJlbmNlIikg
IT0gLTEpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aEFycmF5UmVmSW5Qcm90b2NvbCA9IGZ1
bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vW10g
YXJyYXksIGZsb2F0IGluZGV4KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPih0
aHJlYWQgVFtdIHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzEuNV07Ci0gICAg
ICAgIH0KLSAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0
b3ImW10odGhyZWFkIEJhcltdLCBmbG9hdCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJl
c3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAg
ICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmFyIHg7Ci0gICAgICAgICAg
ICByZXR1cm4gYmFyKEB4KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KIHRl
c3RzLmFuZFJldHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0g
PSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1NTMzLDcgQEAgdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJl
ZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiAqcHRyOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW10pLCAzNTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCAzNTQpOwogfQogCiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVHlwZS5qcwppbmRleCA3YzI4NzkxODk1M2E1YjFkNWUzNWU4NTBlMzMwZjM4
OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0YmQ5OTU4MDNiZGE4MWZjY2NjMWVmYjQ0YzZkIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCisrKyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanMKQEAgLTI1LDcgKzI1LDYgQEAKICJ1c2Ug
c3RyaWN0IjsKIAogY2xhc3MgVHlwZSBleHRlbmRzIE5vZGUgewotICAgIGdldCB0eXBlUGFyYW1l
dGVycygpIHsgcmV0dXJuIFtdOyB9CiAgICAgZ2V0IGtpbmQoKSB7IHJldHVybiBUeXBlOyB9CiAg
ICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBnZXQgaXNBcnJheSgpIHsgcmV0
dXJuIGZhbHNlOyB9CkBAIC0zNywxNSArMzYsNiBAQCBjbGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7
CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzUHJpbWl0aXZl
KCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICBpbmhlcml0cyhwcm90b2NvbCkKLSAgICB7
Ci0gICAgICAgIGlmICghcHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1
ZX07Ci0gICAgICAgIHJldHVybiBwcm90b2NvbC5oYXNIZWlyKHRoaXMpOwotICAgIH0KLSAgICAK
LSAgICBnZXQgaW5zdGFudGlhdGVkVHlwZSgpIHsgcmV0dXJuIHRoaXMudmlzaXQobmV3IEluc3Rh
bnRpYXRlSW1tZWRpYXRlcygpKTsgfQotICAgIAogICAgIC8vIEhhdmUgdG8gY2FsbCB0aGVzZSBv
biB0aGUgdW5pZnlOb2RlLgogICAgIGFyZ3VtZW50Rm9yQW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1
ZSkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
RGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwppbmRleCA2
YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAyY2FiNGMzYWFiMjdjMTQzLi5kN2IwMGNkMmM3M2ViM2E1
YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanMKQEAgLTI1LDIzICsyNSwyMSBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBU
eXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBl
UGFyYW1ldGVycywgdHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCiAg
ICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9
IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB9CiAgICAg
CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0
dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlz
Ll90eXBlOyB9CiAgICAgCiAgICAgdG9TdHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJ0
eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAiPCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gPSAi
ICsgdGhpcy50eXBlOworICAgICAgICByZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSArICIg
PSAiICsgdGhpcy50eXBlOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzCmluZGV4IGE4MWVhYjQyZDk0OGZjYTNlOTMwYzY4
NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4NDM1NDJhY2E1OTFkZmYyMmQwYTY1YTM1NDliOGNjZTAx
ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNv
bHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2
ZXIuanMKQEAgLTM0LDIxICszNCw5IEBAIGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZp
c2l0b3IgewogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fdmlz
aXRpbmcuZG9WaXNpdChub2RlLCAoKSA9PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJn
dW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVu
dC52aXNpdCh0aGlzKTsKICAgICAgICAgICAgIGlmIChub2RlLnR5cGUgaW5zdGFuY2VvZiBUeXBl
RGVmKSB7Ci0gICAgICAgICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlm
aWNhdGlvbkNvbnRleHQobm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAg
ICBpZiAobm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCAhPSBub2RlLnR5cGUudHlwZVBhcmFtZXRl
cnMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFyZ3VtZW50
L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hvdWxkIGhhdmUgYmVlbiBjYXVnaHQgZWFybGllcikiKTsK
LSAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUudHlwZUFyZ3VtZW50cy5s
ZW5ndGg7ICsraSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzW2ldLnVu
aWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgbm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzW2ldKTsKLSAg
ICAgICAgICAgICAgICBsZXQgdmVyaWZpY2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0
LnZlcmlmeSgpOwotICAgICAgICAgICAgICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0LnJlc3Vs
dCkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4u
b3JpZ2luU3RyaW5nLCAiVHlwZSByZWZlcmVuY2UgdG8gYSB0eXBlIGRlZmluaXRpb24gdmlvbGF0
ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6ICIgKyB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBsZXQgbmV3VHlwZSA9IG5vZGUudHlw
ZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywg
dW5pZmljYXRpb25Db250ZXh0KTsKLSAgICAgICAgICAgICAgICBuZXdUeXBlLnZpc2l0KHRoaXMp
OwotICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZUFuZEFyZ3VtZW50cyhuZXdUeXBlLCBbXSk7
CisgICAgICAgICAgICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpOworICAgICAgICAgICAgICAg
IG5vZGUuc2V0VHlwZShub2RlLnR5cGUudHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0p
OwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQ
YXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQ
YXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JkMDM3
YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5MTc3NzExNmJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
eXBlUGFyYW1ldGVyUmV3cml0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7
Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJSZXdyaXRlciB7Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBl
UGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQ
YXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KG5ldyBSZXdy
aXRlcigpKSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAg
ewotICAgICAgICByZXR1cm4gbmV3IFR5cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5uYW1l
LCBub2RlLnByb3RvY29sKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9UeXBlUmVmLmpzCmluZGV4IGYyYjMyMmYzYWY2YTczMDg2MTQxZTU2ZDY5M2VmY2UxYzM1MWRh
ZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2ViNGE4MTMzY2VmN2JiOGYwOWIwNWIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYuanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVJlZi5qcwpAQCAtMjUsNjkgKzI1LDU4IEBACiAidXNl
IHN0cmljdCI7CiAKIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1bWVudHMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lKQogICAgIHsKICAgICAgICAgc3VwZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3Jp
Z2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKICAgICAgICAgdGhpcy50eXBlID0gbnVs
bDsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQog
ICAgIAogICAgIHN0YXRpYyB3cmFwKHR5cGUpCiAgICAgewotICAgICAgICBpZiAodHlwZSBpbnN0
YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgaWYgKHR5cGUg
aW5zdGFuY2VvZiBUeXBlUmVmKQogICAgICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgIGxl
dCBuYW1lID0gdHlwZS5uYW1lOwotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlw
ZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5
cGUub3JpZ2luLCBuYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSwg
dHlwZUFyZ3VtZW50cykKKyAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSkKICAgICB7Ci0gICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCB0eXBl
QXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2lu
LCB0eXBlLm5hbWUpOwogICAgICAgICByZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVy
biByZXN1bHQ7CiAgICAgfQogIAogICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KICAgICBnZXQgbmFtZSgpIHsgcmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlw
ZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRoaXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICAKICAgICBn
ZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxl
bmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudW5pZnlOb2RlOwotICAgICAgICBy
ZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIHRoaXMudHlwZS51bmlmeU5vZGU7CiAgICAgfQog
ICAgIAogICAgIHBvcHVsYXRlRGVmYXVsdFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKLSAg
ICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJu
IHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7Ci0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBkZWZhdWx0IHZhbHVlIG9mIGEgdHlwZSBpbnN0
YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFs
dWUoYnVmZmVyLCBvZmZzZXQpOwogICAgIH0KICAgICAKICAgICBnZXQgc2l6ZSgpCiAgICAgewot
ICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1
cm4gdGhpcy50eXBlLnNpemU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBz
aXplIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUu
c2l6ZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkKICAgICB7Ci0gICAgICAg
IGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlz
LnR5cGUuaXNQcmltaXRpdmU7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRldGVy
bWluZSBpZiBhbiB1bmluc3RhbnRpYXRlZCB0eXBlIGlzIHByaW1pdGl2ZTogIiArIHRoaXMpOwor
ICAgICAgICByZXR1cm4gdGhpcy50eXBlLmlzUHJpbWl0aXZlOwogICAgIH0KICAgICAKLSAgICBz
ZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUsIHR5cGVBcmd1bWVudHMpCisgICAgc2V0VHlwZSh0eXBl
KQogICAgIHsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMudHlwZSA9
IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAg
IH0KICAgICAKICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKQEAgLTk2
LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVSZWYgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgaWYgKCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25Db250
ZXh0LCBvdGhlci50eXBlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYg
KHRoaXMudHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gb3RoZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwg
dGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMu
dHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGVBcmd1
bWVudHNbaV0pKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBAIC0xMDksOSArOTIsNyBAQCBjbGFzcyBU
eXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAgICAgewogICAgICAgICBpZiAoIXRoaXMubmFtZSkKICAg
ICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUudG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKCF0aGlz
LnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAg
ICAgICAgcmV0dXJuIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsK
KyAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5ZDA1MTRiOTUwZGVjOTY3MmZhMGI3ZS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJp
Y3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3Rv
cihvcmlnaW4sIG5hbWUsIHByb3RvY29sKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAg
ICAgICAgdGhpcy5fcHJvdG9jb2wgPSBwcm90b2NvbDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9y
aWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4g
dGhpcy5fbmFtZTsgfQotICAgIGdldCBwcm90b2NvbCgpIHsgcmV0dXJuIHRoaXMuX3Byb3RvY29s
OyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJpbWl0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9wcm90b2NvbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IGlzVW5pZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIGluaGVy
aXRzKHByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFwcm90b2NvbCkKLSAgICAgICAgICAg
IHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKQotICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlICIg
KyB0aGlzICsgIiBkb2VzIG5vdCBoYXZlIGEgcHJvdG9jb2wifTsKLSAgICAgICAgcmV0dXJuIHRo
aXMucHJvdG9jb2wuaW5oZXJpdHMocHJvdG9jb2wpOwotICAgIH0KLSAgICAKLSAgICB0eXBlVmFy
aWFibGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYg
KCEob3RoZXIgaW5zdGFuY2VvZiBUeXBlKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiB0aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmlj
YXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNh
dGlvbkNvbnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlh
YmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZl
cmlmeUFzQXJndW1lbnQodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IHJl
YWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIAotICAgICAg
ICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVuaWZpZWQgd2l0aCBtdXN0IGJlIGEgdHlwZSB2YXJpYWJs
ZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVyIHNldCBvZgotICAgICAgICAvLyB0aGluZ3MgdGhhbiB3
ZSBkby4KLSAgICAgICAgaWYgKCEocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUpKQot
ICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxl
IGFyZ3VtZW50ICIgKyB0aGlzICsgIiBjYW5ub3QgYmUgcGFzc2VkIHRvIG5vbi10eXBlLXZhcmlh
YmxlIHBhcmFtZXRlciB0eXBlICIgKyByZWFsVGhpc307Ci0gICAgICAgIAotICAgICAgICBpZiAo
IXRoaXMucHJvdG9jb2wpIHsKLSAgICAgICAgICAgIGlmIChyZWFsVGhpcy5wcm90b2NvbCkKLSAg
ICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFi
bGUgd2l0aG91dCBwcm90b2NvbCAiICsgdGhpcyArICIgY2Fubm90IGJlIHBhc3NlZCB0byBwYXJh
bWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRoIHByb3RvY29sICIgKyByZWFsVGhpcy5wcm90b2NvbH07
Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLnByb3RvY29sLmluaGVyaXRzKHJlYWxUaGlzLnBy
b3RvY29sKTsKLSAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJu
IHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5wcm90b2NvbCArICIg
ZG9lcyBub3Qgc3Vic3VtZSBwcm90b2NvbCAiICsgcmVhbFRoaXMucHJvdG9jb2wgKyAiIChwYXNz
aW5nIHR5cGUgIiArIHRoaXMgKyAiIHRvIHR5cGUgIiArIHJlYWxUaGlzICsgIik6ICIgKyByZXN1
bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAK
LSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMucHJvdG9jb2wpCi0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgICAgIGxldCByZWFsVGhpcyA9IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwot
ICAgICAgICBsZXQgcmVzdWx0ID0gcmVhbFRoaXMuaW5oZXJpdHModGhpcy5wcm90b2NvbCk7Ci0g
ICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBm
YWxzZSwgcmVhc29uOiAiVHlwZSAiICsgcmVhbFRoaXMgKyAiIGRvZXMgbm90IGluaGVyaXQgcHJv
dG9jb2wgIiArIHRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHJlYWxUaGlzICsg
IiB0byB0eXBlICIgKyB0aGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5uYW1lICsgKHRoaXMucHJvdG9jb2wgPyAiOiIgKyB0aGlzLnBy
b3RvY29sLm5hbWUgOiAiIik7Ci0gICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlVHJhY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1NDkyN2NkMGQ1MTM5YzA4NTIzOTFmODM1ZjdjNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGVUcmFja2VyLmpzCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFibGVUcmFja2VyIGV4dGVuZHMgVmlz
aXRvciB7Ci0gICAgY29uc3RydWN0b3IoKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAg
ICAgdGhpcy5fc2V0ID0gbmV3IFNldCgpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2V0KCkgeyBy
ZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAgCi0gICAgX2NvbnNpZGVyKHRoaW5nKQotICAgIHsKLSAg
ICAgICAgaWYgKHRoaW5nLmlzVW5pZmlhYmxlKQotICAgICAgICAgICAgdGhpcy5fc2V0LmFkZCh0
aGluZyk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAg
ICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgdHlw
ZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudHlwZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0
VmFyaWFibGVSZWYobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudmFy
aWFibGUpOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvVW5pZmljYXRpb25Db250ZXh0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVW5pZmljYXRpb25Db250ZXh0LmpzCmluZGV4IDBhMTNkZTQzZDUzMjZlMTM1N2M4N2Y4ODU5
ZDlkNjAxNWUwY2FkNDcuLjBiNWZjNGQwODZiNjQ2MWZmZjk5ODhjMDk3Y2U3MGM3NDgxZjE0ZDYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29u
dGV4dC5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNv
bnRleHQuanMKQEAgLTI1LDkgKzI1LDggQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVW5pZmlj
YXRpb25Db250ZXh0IHsKLSAgICBjb25zdHJ1Y3Rvcih0eXBlUGFyYW1ldGVycykKKyAgICBjb25z
dHJ1Y3RvcigpCiAgICAgewotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IG5ldyBTZXQo
dHlwZVBhcmFtZXRlcnMpOwogICAgICAgICB0aGlzLl9uZXh0TWFwID0gbmV3IE1hcCgpOwogICAg
ICAgICB0aGlzLl9leHRyYU5vZGVzID0gbmV3IFNldCgpOwogICAgIH0KQEAgLTQ1LDEwICs0NCw2
IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9uLXVuaWZpYWJsZSB0aGluZ3MgIiArIGEgKyAiIGFuZCAi
ICsgYik7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHR5
cGUgcGFyYW1ldGVycyBkb24ndCBlbmQgdXAgYmVpbmcgcm9vdHMuCi0gICAgICAgIGlmIChhLmlz
VW5pZmlhYmxlICYmIGIuaXNVbmlmaWFibGUgJiYgdGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKGIp
KQotICAgICAgICAgICAgW2EsIGJdID0gW2IsIGFdOwotICAgICAgICAKICAgICAgICAgdGhpcy5f
bmV4dE1hcC5zZXQoYSwgYik7CiAgICAgfQogICAgIApAQCAtODQsMTUgKzc5LDEyIEBAIGNsYXNz
IFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICByZXN1bHQuYWRkKG5vZGUpOwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSAgICAKLSAgICB0eXBlUGFyYW1ldGVycygpIHsg
cmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CisKICAgICAqdHlwZUFyZ3VtZW50cygpCiAg
ICAgewogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy5ub2RlcykgewogICAg
ICAgICAgICAgaWYgKCF0eXBlQXJndW1lbnQuaXNVbmlmaWFibGUpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKHR5cGVB
cmd1bWVudCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB5aWVsZCB0
eXBlQXJndW1lbnQ7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMTEsMjggKzEwMyw5IEBAIGNsYXNz
IFVuaWZpY2F0aW9uQ29udGV4dCB7CiAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiB0aGlzLl90eXBlUGFyYW1ldGVycykgewotICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVQYXJhbWV0ZXIudmVyaWZ5QXNQYXJhbWV0ZXIodGhp
cyk7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBsZXQgbnVtVHlwZVZhcmlhYmxlQXJndW1l
bnRzID0gMDsKLSAgICAgICAgbGV0IGFyZ3VtZW50U2V0ID0gbmV3IFNldCgpOwotICAgICAgICBm
b3IgKGxldCB0eXBlQXJndW1lbnQgb2YgdGhpcy50eXBlQXJndW1lbnRzKCkpIHsKLSAgICAgICAg
ICAgIGxldCByZXN1bHQgPSB0eXBlQXJndW1lbnQudmVyaWZ5QXNBcmd1bWVudCh0aGlzKTsKLSAg
ICAgICAgICAgIGlmICghcmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVz
dWx0OwotICAgICAgICAgICAgaWYgKHR5cGVBcmd1bWVudC5pc0xpdGVyYWwpCi0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBhcmd1bWVudFNldC5hZGQodGhpcy5maW5kKHR5
cGVBcmd1bWVudCkpOwotICAgICAgICAgICAgbnVtVHlwZVZhcmlhYmxlQXJndW1lbnRzKys7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKGFyZ3VtZW50U2V0LnNpemUgPT0gbnVtVHlwZVZhcmlhYmxl
QXJndW1lbnRzKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICBy
ZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGVzIHVzZWQgYXMgYXJn
dW1lbnRzIGdvdCB1bmlmaWVkIHdpdGggZWFjaCBvdGhlciJ9OworICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07CiAgICAgfQotICAgIAorCiAgICAgZ2V0IGNvbnZlcnNpb25Db3N0KCkKICAg
ICB7CiAgICAgICAgIGxldCByZXN1bHQgPSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Zpc2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBkZWY1MzM2
ZC4uNDY2ZWU3NzA1NWRkZGJlYjEyNzY3NTAwODcwZmEzNmI3NDQyODM5NiAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAgY2xhc3Mg
VmlzaXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnJldHVy
blR5cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9k
ZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7
CiAgICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAg
ICAgICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9j
b2xGdW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAg
bm9kZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAgY2xhc3MgVmlzaXRvciB7
CiAgICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5h
dGl2ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9k
ZSk7Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxl
bWVudGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkK
ICAgICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMpCkBA
IC03OSw2MiArNjYsMjcgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICBleHByZXNzaW9u
LnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0g
ICAgewotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcHJv
dG9jb2wudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNp
Z25hdHVyZXMpCi0gICAgICAgICAgICBzaWduYXR1cmUudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAg
ewotICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMp
Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdE5hdGl2ZVR5cGVJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBl
LnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBl
QXJndW1lbnRzKQogICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0K
ICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5
cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJh
bWV0ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKICAgICB9
CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxl
dCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZp
ZWxkcykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2
aXNpdFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnBy
b3RvY29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1l
dGVyKG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQot
ICAgIAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNp
dCh0aGlzKTsKQEAgLTMzNiwxOCArMjg4LDggQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgCiAgICAg
dmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFy
Z3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52
aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExp
c3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0
IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAg
ICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQg
YXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgYXJn
dW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhh
bmRsZVR5cGVBcmd1bWVudHMobm9kZS5hY3R1YWxUeXBlQXJndW1lbnRzKTsKLSAgICAgICAgaGFu
ZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFjdHVhbFR5cGVBcmd1bWVudHMpOwog
ICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0luc3RhbmNlLCB0aGlzKTsKICAgICAg
ICAgTm9kZS52aXNpdChub2RlLnJldHVyblR5cGUsIHRoaXMpOwogICAgICAgICBOb2RlLnZpc2l0
KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XU0wubWQgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjY2NTY3ODI2YTUxZGQ2Yzc1NGQ0ZTli
MjRkNzU3ODk3MmJiM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvV1NMLm1kCisrKyAvZGV2L251bGwK
QEAgLTEsNDc5ICswLDAgQEAKLSMgV2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2UKLQotV2ViR1BVIFNo
YWRpbmcgTGFuZ3VhZ2UsIG9yIFdTTCBmb3Igc2hvcnQsIGlzIGEgdHlwZS1zYWZlIGxvdy1vdmVy
aGVhZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBmb3IgR1BVcyAoZ3JhcGhpY3MgcHJvY2Vzc2luZyB1
bml0cykuIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93IFdTTCB3b3Jrcy4KLQotIyBHb2Fscwot
Ci1XU0wgaXMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgZm9sbG93aW5nIGdvYWxzOgotCi0tIFdT
TCBzaG91bGQgZmVlbCAqZmFtaWxpYXIqIHRvIEMrKyBwcm9ncmFtbWVycy4KLS0gV1NMIHNob3Vs
ZCBiZSBoYXZlIGEgKnNvdW5kKiBhbmQgKmRlY2lkYWJsZSogdHlwZSBzeXN0ZW0uCi0tIFdTTCBz
aG91bGQgbm90IHBlcm1pdCAqb3V0LW9mLWJvdW5kcyogbWVtb3J5IGFjY2Vzc2VzLgotLSBXU0wg
c2hvdWxkIGJlIGhhdmUgKmxvdyBvdmVyaGVhZCouCi0KLVRoZSBjb21iaW5hdGlvbiBvZiBhIHNv
dW5kIHR5cGUgc3lzdGVtIGFuZCBib3VuZHMgY2hlY2tpbmcgbWFrZXMgV1NMIGEgc2VjdXJlIHNo
YWRlciBsYW5ndWFnZTogdGhlIGxhbmd1YWdlIGl0c2VsZiBpcyByZXNwb25zaWJsZSBmb3IgaXNv
bGF0aW5nIHRoZSBzaGFkZXIgZnJvbSB0aGUgcmVzdCBvZiB0aGUgR1BVLgotCi0jIEZhbWlsaWFy
IFN5bnRheAotCi1XU0wgaXMgYmFzZWQgb24gQyBzeW50YXgsIGJ1dCBleGNsdWRlcyBmZWF0dXJl
cyB0aGF0IGFyZSBlaXRoZXIgdW5uZWNlc3NhcnksIGluc2VjdXJlLCBvciByZXBsYWNlZCBieSBv
dGhlciBXU0wgZmVhdHVyZXM6Ci0KLS0gTm8gc3RyaW5ncy4KLS0gTm8gYHJlZ2lzdGVyYCwgYHZv
bGF0aWxlYCwgYGNvbnN0YCwgYHJlc3RyaWN0YCwgb3IgYGV4dGVybmAga2V5d29yZHMuCi0tIE5v
IHVuaW9ucy4gYHVuaW9uYCBpcyBub3QgYSBrZXl3b3JkLgotLSBObyBnb3RvIG9yIGxhYmVscy4g
YGdvdG9gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGAqYCBwb2ludGVycy4KLS0gRWZmZWN0bGVz
cyBleHByZXNzaW9ucyBhcmUgbm90IHN0YXRlbWVudHMgKGBhICsgYjtgIGlzIGEgcGFyc2UgZXJy
b3IpLgotLSBObyB1bmRlZmluZWQgdmFsdWVzIChgaW50IHg7YCBpbml0aWFsaXplcyB4IHRvIDAp
LgotLSBObyBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9ucyAoYGludCB4OyB1aW50IHkgPSB4O2Ag
aXMgYSB0eXBlIGVycm9yKS4KLS0gTm8gcmVjdXJzaW9uLgotLSBObyBkeW5hbWljIG1lbW9yeSBh
bGxvY2F0aW9uLgotLSBObyBtb2R1bGFyaXR5LiBUaGUgd2hvbGUgcHJvZ3JhbSBpcyBvbmUgZmls
ZS4KLQotT24gdG9wIG9mIHRoaXMgYmFyZSBDLWxpa2UgZm91bmRhdGlvbiwgV1NMIGFkZHMgc2Vj
dXJlIHZlcnNpb25zIG9mIGZhbWlsaWFyIEMrKyBmZWF0dXJlczoKLQotLSBUeXBlLXNhZmUgcG9p
bnRlcnMgKGBeYCkgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGBbXWApLgotLSBHZW5lcmljcyB0byBy
ZXBsYWNlIHRlbXBsYXRlcy4KLS0gT3BlcmF0b3Igb3ZlcmxvYWRpbmcuIEJ1aWx0LWluIG9wZXJh
dGlvbnMgbGlrZSBgaW50IG9wZXJhdG9yKyhpbnQsIGludClgIGFyZSBqdXN0IG5hdGl2ZSBmdW5j
dGlvbnMuCi0tIENhc3Qgb3ZlcmxvYWRpbmcuIEJ1aWx0LWluIGNhc3RzIGxpa2UgYG9wZXJhdG9y
IGludChkb3VibGUpYCBhcmUganVzdCBuYXRpdmUgZnVuY3Rpb25zLgotLSBHZXR0ZXJzIGFuZCBz
ZXR0ZXJzLiBQcm9wZXJ0eSBhY2Nlc3NlcyBsaWtlIGB2ZWMueGAgcmVzb2x2ZSB0byBvdmVybG9h
ZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3IuZmllbGQoZmxvYXQ0KWAuCi0tIEFycmF5IGFjY2VzcyBv
dmVybG9hZGluZy4gQXJyYXkgYWNjZXNzZXMgbGlrZSBgdmVjWzBdYCByZXNvbHZlIHRvIHZlcmxv
YWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yW10oZmxvYXQ0LCB1aW50KWAuCi0KLUluIHRoZSBmb2xs
b3dpbmcgc2VjdGlvbnMsIFdTTCBpcyBzaG93biBieSBleGFtcGxlIHN0YXJ0aW5nIHdpdGggaXRz
IEMtbGlrZSBmb3VuZGF0aW9uIGFuZCB0aGVuIGJ1aWxkaW5nIHVwIHRvIGluY2x1ZGUgbW9yZSBz
b3BoaXN0aWNhdGVkIGZlYXR1cmVzIGxpa2UgZ2VuZXJpY3MuCi0KLSMjIENvbW1vbiBzdWJzZXQg
b2YgQyBhbmQgV1NMCi0KLVRoZSBmb2xsb3dpbmcgaXMgYSB2YWxpZCBXU0wgZnVuY3Rpb24gZGVm
aW5pdGlvbjoKLQotICAgIGludCBmb28oaW50IHgsIGludCB5LCBib29sIHApCi0gICAgewotICAg
ICAgICBpZiAocCkKLSAgICAgICAgICAgIHJldHVybiB4IC0geTsKLSAgICAgICAgcmV0dXJuIHgg
KyB5OwotICAgIH0KLQotV1NMIHNvdXJjZSBmaWxlcyBiZWhhdmUgc2ltaWxhcmx5IHRvIEMgc291
cmNlIGZpbGVzOgotCi0tIFRvcC1sZXZlbCBzdGF0ZW1lbnRzIG11c3QgYmUgdHlwZSBvciBmdW5j
dGlvbiBkZWZpbml0aW9ucy4KLS0gV1NMIHVzZXMgc3RydWN0dXJlZCBDIGNvbnRyb2wgZmxvdyBj
b25zdHJ1Y3RzLCBsaWtlIGBpZmAsIGB3aGlsZWAsIGBmb3JgLCBgZG9gLCBgYnJlYWtgLCBhbmQg
YGNvbnRpbnVlYC4KLS0gV1NMIHVzZXMgQy1saWtlIGBzd2l0Y2hgIHN0YXRlbWVudHMsIGJ1dCBk
b2VzIG5vdCBhbGxvdyB0aGVtIHRvIG92ZXJsYXAgb3RoZXIgY29udHJvbCBmbG93IChpLmUuIG5v
IFtEdWZmJ3MgZGV2aWNlXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9EdWZmJTI3c19k
ZXZpY2UpKS4KLS0gV1NMIGFsbG93cyB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgYW55d2hlcmUgQysr
IHdvdWxkLgotCi1XU0wgdHlwZXMgZGlmZmVyIGZyb20gQyB0eXBlcy4gRm9yIGV4YW1wbGUsIHRo
aXMgaXMgYW4gYXJyYXkgb2YgNDIgaW50ZWdlcnMgaW4gV1NMOgotCi0gICAgaW50WzQyXSBhcnJh
eTsKLQotVGhlIHR5cGUgbmV2ZXIgc3Vycm91bmRzIHRoZSB2YXJpYWJsZSwgbGlrZSBpdCB3b3Vs
ZCBpbiBDIChgaW50IGFycmF5WzQyXWApLgotCi0jIyBUeXBlLXNhZmUgcG9pbnRlcnMKLQotV1NM
IGluY2x1ZGVzIGEgc2VjdXJlIHBvaW50ZXIgdHlwZS4gVG8gZW1waGFzaXplIHRoYXQgaXQgaXMg
bm90IGxpa2UgdGhlIEMgcG9pbnRlciwgV1NMIHVzZXMgYF5gIGZvciB0aGUgcG9pbnRlciB0eXBl
IGFuZCBmb3IgZGVyZWZlcmVuY2UuIExpa2UgaW4gQywgYCZgIGlzIHVzZWQgdG8gdGFrZSB0aGUg
YWRkcmVzcyBvZiBhIHZhbHVlLiAgQmVjYXVzZSBHUFVzIGhhdmUgZGlmZmVyZW50IGtpbmRzIG9m
IG1lbW9yaWVzLCBwb2ludGVycyBtdXN0IGJlIGFubm90YXRlZCB3aXRoIGFuIGFkZHJlc3Mgc3Bh
Y2UgKG9uZSBvZiBgdGhyZWFkYCwgYHRocmVhZGdyb3VwYCwgYGRldmljZWAsIG9yIGBjb25zdGFu
dGApLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgYmFyKHRocmVhZCBpbnReIHApCi0gICAgewot
ICAgICAgICBecCArPSA0MjsKLSAgICB9Ci0gICAgaW50IGZvbygpCi0gICAgewotICAgICAgICBp
bnQgeCA9IDI0OwotICAgICAgICBiYXIoJngpOwotICAgICAgICByZXR1cm4geDsgLy8gUmV0dXJu
cyA2Ni4KLSAgICB9Ci0KLVBvaW50ZXJzIGNhbiBiZSBgbnVsbGAuIEVhY2ggcG9pbnRlciBhY2Nl
c3MgaXMgbnVsbC1jaGVja2VkLCB0aG91Z2ggbW9zdCBwb2ludGVyIGFjY2Vzc2VzIChsaWtlIHRo
aXMgb25lKSB3aWxsIG5vdCBoYXZlIGEgbnVsbCBjaGVjay4gV1NMIHBsYWNlcyBlbm91Z2ggY29u
c3RyYWludHMgb24gdGhlIHByb2dyYW1tZXIgdGhhdCBwcm9ncmFtcyBhcmUgZWFzeSBmb3IgdGhl
IGNvbXBpbGVyIHRvIGFuYWx5emUuIFRoZSBjb21waWxlciB3aWxsIGFsd2F5cyBrbm93IHRoYXQg
YF5wICs9IDQyYCBhZGRzIGA0MmAgdG8gYHhgIGluIHRoaXMgY2FzZS4KLQotV1NMIHBvaW50ZXJz
IGRvIG5vdCBzdXBwb3J0IGNhc3Rpbmcgb3IgcG9pbnRlciBhcml0aG1ldGljLiBBbGwgbWVtb3J5
IGFjY2Vzc2libGUgdG8gYSBzaGFkZXIgb3V0bGl2ZXMgdGhlIHNoYWRlci4gVGhpcyBpcyBldmVu
IHRydWUgb2YgbG9jYWwgdmFyaWFibGVzLiBUaGlzIGlzIHBvc3NpYmxlIGJlY2F1c2UgV1NMIGRv
ZXMgbm90IHN1cHBvcnQgcmVjdXJzaW9uLiBUaGVyZWZvcmUsIGxvY2FsIHZhcmlhYmxlcyBzaW1w
bHkgZ2V0IGdsb2JhbCBzdG9yYWdlLiBMb2NhbCB2YXJpYWJsZXMgYXJlIGluaXRpYWxpemVkIGF0
IHRoZSBwb2ludCBvZiB0aGVpciBkZWNsYXJhdGlvbi4gSGVuY2UsIHRoZSBmb2xsb3dpbmcgaXMg
YSB2YWxpZCBwcm9ncmFtLCB3aGljaCB3aWxsIGV4aGliaXQgdGhlIHNhbWUgYmVoYXZpb3Igb24g
ZXZlcnkgV1NMIGltcGxlbWVudGF0aW9uOgotCi0gICAgdGhyZWFkIGludF4gZm9vKCkKLSAgICB7
Ci0gICAgICAgIGludCB4ID0gNDI7Ci0gICAgICAgIHJldHVybiAmeDsKLSAgICB9Ci0gICAgaW50
IGJhcigpCi0gICAgewotICAgICAgICB0aHJlYWQgaW50XiBwID0gZm9vKCk7Ci0gICAgICAgIHRo
cmVhZCBpbnReIHEgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgcmV0dXJuIF5x
OyAvLyBSZXR1cm5zIDUzLgotICAgIH0KLSAgICBpbnQgYmF6KCkKLSAgICB7Ci0gICAgICAgIHRo
cmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1MzsKLSAgICAgICAgZm9vKCk7Ci0g
ICAgICAgIHJldHVybiBecDsgLy8gUmV0dXJucyA0Mi4KLSAgICB9Ci0KLUl0J3MgcG9zc2libGUg
dG8gcG9pbnQgdG8gYW55IGtpbmQgb2YgZGF0YSB0eXBlLiBGb3IgZXhhbXBsZSwgYHRocmVhZCBk
b3VibGVbNDJdXmAgaXMgYSBwb2ludGVyIHRvIGFuIGFycmF5IG9mIDQyIGRvdWJsZXMuCi0KLSMj
IFR5cGUtc2FmZSBhcnJheSByZWZlcmVuY2VzCi0KLVdTTCBzdXBwb3J0cyBhcnJheSByZWZlcmVu
Y2VzIHRoYXQgY2FycnkgYSBwb2ludGVyIHRvIHRoZSBiYXNlIG9mIHRoZSBhcnJheSBhbmQgdGhl
IGFycmF5J3MgbGVuZ3RoLiBUaGlzIGFsbG93cyBhY2Nlc3NlcyB0byB0aGUgYXJyYXkgdG8gYmUg
Ym91bmRzLWNoZWNrZWQuCi0KLUFuIGFycmF5IHJlZmVyZW5jZSBjYW4gYmUgY3JlYXRlZCB1c2lu
ZyB0aGUgYEBgIG9wZXJhdG9yOgotCi0gICAgaW50WzQyXSBhcnJheTsKLSAgICB0aHJlYWQgaW50
W10gYXJyYXlSZWYgPSBAYXJyYXk7Ci0KLUJvdGggYXJyYXlzIGFuZCBhcnJheSByZWZlcmVuY2Vz
IGNhbiBiZSBsb2FkZWQgZnJvbSBhbmQgc3RvcmVkIHRvIHVzaW5nIGBvcGVyYXRvcltdYDoKLQot
ICAgIGludCB4ID0gYXJyYXlbaV07Ci0gICAgaW50IHkgPSBhcnJheVJlZltpXTsKLQotQm90aCBh
cnJheXMgYW5kIGFycmF5IHJlZmVyZW5jZXMga25vdyB0aGVpciBsZW5ndGg6Ci0KLSAgICB1aW50
IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoOwotICAgIHVpbnQgYXJyYXlSZWZMZW5ndGggPSBh
cnJheVJlZi5sZW5ndGg7Ci0KLUdpdmVuIGFuIGFycmF5IG9yIGFycmF5IHJlZmVyZW5jZSwgaXQn
cyBwb3NzaWJsZSB0byBnZXQgYSBwb2ludGVyIHRvIG9uZSBvZiBpdHMgZWxlbWVudHM6Ci0KLSAg
ICB0aHJlYWQgaW50XiBwdHIxID0gJmFycmF5W2ldOwotICAgIHRocmVhZCBpbnReIHB0cjIgPSAm
YXJyYXlSZWZbaV07Ci0KLUEgcG9pbnRlciBpcyBsaWtlIGFuIGFycmF5IHJlZmVyZW5jZSB3aXRo
IG9uZSBlbGVtZW50LiBJdCdzIHBvc3NpYmxlIHRvIHBlcmZvcm0gdGhpcyBjb252ZXJzaW9uOgot
Ci0gICAgdGhyZWFkIGludFtdIHJlZiA9IEBwdHIxOwotICAgIHJlZlswXSAvLyBFcXVpdmFsZW50
IHRvIF5wdHIxLgotICAgIHJlZi5sZW5ndGggLy8gMCBpZiBwdHIxIHdhcyBudWxsLCAxIGlmIHB0
cjEgd2FzIG5vdCBudWxsLgotCi1TaW1pbGFybHksIHVzaW5nIGBAYCBvbiBhIG5vbi1wb2ludGVy
IHZhbHVlIHJlc3VsdHMgaW4gYSByZWZlcmVuY2Ugb2YgbGVuZ3RoIDE6Ci0KLSAgICBpbnQgeDsK
LSAgICB0aHJlYWQgaW50W10gcmVmID0gQHg7Ci0gICAgcmVmWzBdIC8vIEFsaWFzZXMgeC4KLSAg
ICByZWYubGVuZ3RoIC8vIFJldHVybnMgMS4KLQotSXQncyBub3QgbGVnYWwgdG8gdXNlIGBAYCBv
biBhbiBhcnJheSByZWZlcmVuY2U6Ci0KLSAgICB0aHJlYWQgaW50W10gcmVmOwotICAgIHRocmVh
ZCBpbnRbXVtdIHJlZmVyZWYgPSBAcmVmOyAvLyBFcnJvciEKLQotIyMgR2VuZXJpY3MKLQotV1NM
IHN1cHBvcnRzIGdlbmVyaWMgdHlwZXMgdXNpbmcgYSBzaW1wbGUgc3ludGF4LiBXU0wncyBnZW5l
cmljIGFyZSBkZXNpZ25lZCB0byBpbnRlZ3JhdGUgY2xlYW5seSBpbnRvIHRoZSBjb21waWxlciBw
aXBlbGluZToKLQotLSBHZW5lcmljcyBoYXZlIHVuYW1iaWd1b3VzIHN5bnRheC4KLS0gR2VuZXJp
YyBmdW5jdGlvbnMgY2FuIGJlIHR5cGUgY2hlY2tlZCBiZWZvcmUgdGhleSBhcmUgaW5zdGFudGlh
dGVkLgotCi1TZW1hbnRpYyBlcnJvcnMgaW5zaWRlIGdlbmVyaWMgZnVuY3Rpb25zIHNob3cgdXAg
b25jZSByZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgdGltZXMgdGhlIGdlbmVyaWMgZnVuY3Rp
b24gaXMgaW5zdGFudGlhdGVkLgotCi1UaGlzIGlzIGEgc2ltcGxlIGdlbmVyaWMgZnVuY3Rpb246
Ci0KLSAgICBUIGlkZW50aXR5PFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICBUIHRtcCA9IHZh
bHVlOwotICAgICAgICByZXR1cm4gdG1wOwotICAgIH0KLQotV1NMIGFsc28gc3VwcG9ydHMgc3Ry
dWN0cywgd2hpY2ggYXJlIGFsc28gYWxsb3dlZCB0byBiZSBnZW5lcmljOgotCi0gICAgLy8gTm90
IGdlbmVyaWMuCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB4OwotICAgICAgICBkb3Vi
bGUgeTsKLSAgICB9Ci0gICAgLy8gR2VuZXJpYy4KLSAgICBzdHJ1Y3QgQmFyPFQsIFU+IHsKLSAg
ICAgICAgVCB4OwotICAgICAgICBVIHk7Ci0gICAgfQotCi1UeXBlIHBhcmFtZXRlcnMgY2FuIGFs
c28gYmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuIEZvciBleGFtcGxlOgotCi0gICAgdm9pZCBpbml0
aWFsaXplQXJyYXk8VCwgdWludCBsZW5ndGg+KHRocmVhZCBUW2xlbmd0aF1eIGFycmF5LCBUIHZh
bHVlKQotICAgIHsKLSAgICAgICAgZm9yICh1aW50IGkgPSBsZW5ndGg7IGktLTspCi0gICAgICAg
ICAgICAoXmFycmF5KVtpXSA9IHZhbHVlOwotICAgIH0KLQotQ29uc3RhbnQgZXhwcmVzc2lvbnMg
cGFzc2VkIGFzIHR5cGUgYXJndW1lbnRzIG11c3Qgb2JleSBhIHZlcnkgbmFycm93IGRlZmluaXRp
b24gb2YgY29uc3RhbnRuZXNzLiBPbmx5IGxpdGVyYWxzIGFuZCByZWZlcmVuY2VzIHRvIG90aGVy
IGNvbnN0YW50IHBhcmFtZXRlcnMgcXVhbGlmeS4KLQotV1NMIGlzIGd1YXJhbnRlZWQgdG8gY29t
cGlsZSBnZW5lcmljcyBieSBpbnN0YW50aWF0aW9uLiBUaGlzIGlzIG9ic2VydmFibGUsIHNpbmNl
IGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHBvaW50ZXJzIHRvIHRoZWlyIGxvY2Fscy4gSGVyZSBpcyBh
biBleGFtcGxlIG9mIHRoaXMgcGhlbm9tZW5vbjoKLQotICAgIHRocmVhZCBpbnReIGFsbG9jYXRl
PHVpbnQ+KCkKLSAgICB7Ci0gICAgICAgIGludCB4OwotICAgICAgICByZXR1cm4gJng7Ci0gICAg
fQotCi1UaGUgYGFsbG9jYXRlYCBmdW5jdGlvbiB3aWxsIHJldHVybiBhIGRpZmZlcmVudCBwb2lu
dGVyIGZvciBlYWNoIHVuc2lnbmVkIGludGVnZXIgY29uc3RhbnQgcGFzc2VkIGFzIGEgdHlwZSBw
YXJhbWV0ZXIuIFRoaXMgYWxsb2NhdGlvbiBpcyBjb21wbGV0ZWx5IHN0YXRpYywgc2luY2UgdGhl
IGB1aW50YCBwYXJhbWV0ZXIgbXVzdCBiZSBnaXZlbiBhIGNvbXBpbGUtdGltZSBjb25zdGFudC4K
LQotV1NMJ3MgYHR5cGVkZWZgIHVzZXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgc3ludGF4IHRoYW4g
Qy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAgIFQgcmVh
bDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICB0eXBlZGVmIEZDb21wbGV4ID0gQ29tcGxl
eDxmbG9hdD47Ci0KLWB0eXBlZGVmYCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgZ2VuZXJpYyB0eXBl
czoKLQotICAgIHN0cnVjdCBGb288VCwgVT4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFUgeTsK
LSAgICB9Ci0gICAgdHlwZWRlZiBCYXI8VD4gPSBGb288VCwgVD47Ci0KLSMjIFByb3RvY29scwot
Ci1Qcm90b2NvbHMgZW5hYmxlIGdlbmVyaWMgZnVuY3Rpb25zIHRvIHdvcmsgd2l0aCBkYXRhIG9m
IGdlbmVyaWMgdHlwZS4gQmVjYXVzZSBhIGZ1bmN0aW9uIG11c3QgYmUgdHlwZS1jaGVja2FibGUg
YmVmb3JlIGluc3RhbnRpYXRpb24sIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IGJlIGxlZ2FsOgot
Ci0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAgICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4g
fQotICAgIAotICAgIFQgZm9vPFQ+KFQgdmFsdWUpCi0gICAgewotICAgICAgICByZXR1cm4gYmFy
KHZhbHVlKTsgLy8gRXJyb3IhCi0gICAgfQotCi1UaGUgY2FsbCB0byBgYmFyYCBkb2Vzbid0IHR5
cGUgY2hlY2sgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2Fubm90IGtub3cgdGhhdCBgZm9vPFQ+YCB3
aWxsIGJlIGluc3RhbnRpYXRlZCB3aXRoIGBUID0gaW50YCBvciBgVCA9IGRvdWJsZWAuIFByb3Rv
Y29scyBlbmFibGUgdGhlIHByb2dyYW1tZXIgdG8gdGVsbCB0aGUgY29tcGlsZXIgd2hhdCB0byBl
eHBlY3Qgb2YgYSB0eXBlIHZhcmlhYmxlOgotCi0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAg
ICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4gfQotICAgIAotICAgIHByb3RvY29sIFN1cHBvcnRz
QmFyIHsKLSAgICAgICAgU3VwcG9ydHNCYXIgYmFyKFN1cHBvcnRzQmFyKTsKLSAgICB9Ci0gICAg
Ci0gICAgVCBmb288VDpTdXBwb3J0c0Jhcj4oVCB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBiYXIodmFsdWUpOwotICAgIH0KLSAgICAKLSAgICBpbnQgeCA9IGZvbyg0Mik7Ci0gICAgZG91
YmxlIHkgPSBmb28oNC4yKTsKLQotUHJvdG9jb2xzIGhhdmUgYXV0b21hdGljIHJlbGF0aW9uc2hp
cHMgdG8gb25lIGFub3RoZXIgYmFzZWQgb24gd2hhdCBmdW5jdGlvbnMgdGhleSBjb250YWluOgot
Ci0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBmb28oRm9vKTsKLSAgICB9Ci0gICAg
cHJvdG9jb2wgQmFyIHsKLSAgICAgICAgdm9pZCBmb28oQmFyKTsKLSAgICAgICAgdm9pZCBiYXIo
QmFyKTsKLSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihUIHgpIHsgLi4uIH0KLSAgICB2b2lk
IGJ1eno8VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1enooeCk7IC8vIE9LLCBiZWNhdXNl
IEJhciBpcyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAKLSAgICB9Ci0KLVByb3RvY29scyBj
YW4gYWxzbyBtaXggb3RoZXIgcHJvdG9jb2xzIGluIGV4cGxpY2l0bHkuIExpa2UgaW4gdGhlIGV4
YW1wbGUgYWJvdmUsIHRoZSBleGFtcGxlIGJlbG93IHJlbGllcyBvbiB0aGUgZmFjdCB0aGF0IGBC
YXJgIGlzIGEgbW9yZSBzcGVjaWZpYyBwcm90b2NvbCB0aGFuIGBGb29gLiBIb3dldmVyLCB0aGlz
IGV4YW1wbGUgZGVjbGFyZXMgdGhpcyBleHBsaWNpdGx5IChgcHJvdG9jb2wgQmFyIDogRm9vYCkg
aW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBsYW5ndWFnZSB0byBpbmZlciBpdDoKLQotICAgIHBy
b3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7Ci0gICAgfQotICAgIHByb3RvY29s
IEJhciA6IEZvbyB7Ci0gICAgICAgIHZvaWQgYmFyKEJhcik7Ci0gICAgfQotICAgIHZvaWQgZnV6
ejxUOkZvbz4oVCB4KSB7IC4uLiB9Ci0gICAgdm9pZCBidXp6PFQ6QmFyPihUIHgpCi0gICAgewot
ICAgICAgICBmdXp6KHgpOyAvLyBPSywgYmVjYXVzZSBCYXIgaXMgbW9yZSBzcGVjaWZpYyB0aGFu
IEZvby4gICAgCi0gICAgfQotCi0jIyBPdmVybG9hZGluZwotCi1XU0wgc3VwcG9ydHMgb3Zlcmxv
YWRpbmcgdmVyeSBzaW1pbGFybHkgdG8gaG93IEMrKyBkb2VzIGl0LiBGb3IgZXhhbXBsZToKLQot
ICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lkIGZvbyhkb3VibGUpOyAvLyAyCi0g
ICAgCi0gICAgaW50IHg7Ci0gICAgZm9vKHgpOyAvLyBjYWxscyAxCi0gICAgCi0gICAgZG91Ymxl
IHk7Ci0gICAgZm9vKHkpOyAvLyBjYWxscyAyCi0KLVdTTCBhdXRvbWF0aWNhbGx5IHNlbGVjdHMg
dGhlIG1vc3Qgc3BlY2lmaWMgb3ZlcmxvYWQgaWYgZ2l2ZW4gbXVsdGlwbGUgY2hvaWNlcy4gRm9y
IGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAvLyAxCi0gICAgdm9pZCBmb28oZG91
YmxlKTsgLy8gMgotICAgIHZvaWQgZm9vPFQ+KFQpOyAgIC8vIDMKLQotICAgIGZvbygxKTsgLy8g
Y2FsbHMgMQotICAgIGZvbygxLik7IC8vIGNhbGxzIDIKLSAgICBmb28oMXUpOyAvLyBjYWxscyAz
Ci0KLUdlbmVyaWMgZnVuY3Rpb25zIGxpa2UgYGZvbzxUPmAgY2FuIGJlIGNhbGxlZCB3aXRoIG9y
IHdpdGhvdXQgYWxsIG9mIHRoZWlyIHR5cGUgYXJndW1lbnRzIHN1cHBsaWVkLiBJZiB0aGV5IGFy
ZSBub3Qgc3VwcGxpZWQsIHRoZSBmdW5jdGlvbiBwYXJ0aWNpcGF0ZXMgaW4gb3ZlcmxvYWQgcmVz
b2x1dGlvbiBsaWtlIGFueSBvdGhlciBmdW5jdGlvbiB3b3VsZC4gRnVuY3Rpb25zIGFyZSByYW5r
ZWQgYnkgaG93IHNwZWNpZmljIHRoZXkgYXJlOyBmdW5jdGlvbiBBIGlzIG1vcmUgc3BlY2lmaWMg
dGhhbiBmdW5jdGlvbiBCIGlmIEEncyBwYXJhbWV0ZXIgdHlwZXMgY2FuIGJlIHVzZWQgYXMgYXJn
dW1lbnQgdHlwZXMgZm9yIGEgY2FsbCB0byBCIGJ1dCBub3QgdmljZS12ZXJzYS4gSWYgb25lIGZ1
bmN0aW9ucyBtb3JlIHNwZWNpZmljIHRoYW4gYWxsIG90aGVycyB0aGVuIHRoaXMgZnVuY3Rpb24g
aXMgc2VsZWN0ZWQsIG90aGVyd2lzZSBhIHR5cGUgZXJyb3IgaXMgaXNzdWVkLgotCi0jIyBPcGVy
YXRvciBPdmVybG9hZGluZwotCi1NYW55IFdTTCBvcGVyYXRpb25zIGRlc3VnYXIgdG8gY2FsbHMg
dG8gZnVuY3Rpb25zLiBUaG9zZSBmdW5jdGlvbnMgYXJlIGNhbGxlZCAqb3BlcmF0b3Igb3Zlcmxv
YWRzKiBhbmQgYXJlIGRlY2xhcmVkIHVzaW5nIHN5bnRheCB0aGF0IGludm9sdmVzIHRoZSBrZXl3
b3JkIGBvcGVyYXRvcmAuIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyByZXN1bHQgaW4gY2FsbHMg
dG8gb3BlcmF0b3Igb3ZlcmxvYWRzOgotCi0tIE51bWVyaWNhbCBvcGVyYXRvcnMgKGArYCwgYC1g
LCBgKmAsIGAvYCwgZXRjLikuCi0tIEluY3JlbWVudCBhbmQgZGVjcmVtZW50IChgKytgLCBgLS1g
KS4KLS0gQ2FzdGluZyAoYHR5cGUodmFsdWUpYCkuCi0tIEFjY2Vzc2luZyB2YWx1ZXMgaW4gYXJy
YXlzIChgW11gLCBgW109YCwgYCZbXWApLgotLSBBY2Nlc3NpbmcgZmllbGRzIChgLmZpZWxkYCwg
YC5maWVsZD1gLCBgJi5maWVsZGApLgotCi1XU0wncyBvcGVyYXRvciBvdmVybG9hZGluZyBpcyBk
ZXNpZ25lZCB0byBzeW50aGVzaXplIG1hbnkgb3BlcmF0b3JzIGZvciB5b3U6Ci0KLS0gUmVhZC1t
b2RpZnktd3JpdGUgb3BlcmF0b3JzIGxpa2UgYCs9YCBhcmUgZGVzdWdhcmVkIHRvIGEgbG9hZCBv
ZiB0aGUgbG9hZCB2YWx1ZSwgdGhlIHVuZGVybHlpbmcgb3BlcmF0b3IgKGxpa2UgYCtgKSwgYW5k
IGEgc3RvcmUgb2YgdGhlIG5ldyB2YWx1ZS4gSXQncyBub3QgcG9zc2libGUgdG8gb3ZlcnJpZGUg
YCs9YCwgYC09YCwgZXRjLgotLSBgeCsrYCBhbmQgYCsreGAgYm90aCBjYWxsIHRoZSBzYW1lIG9w
ZXJhdG9yIG92ZXJsb2FkLiBgb3BlcmF0b3IrK2AgdGFrZXMgdGhlIG9sZCB2YWx1ZSBhbmQgcmV0
dXJucyBhIG5ldyBvbmU7IGZvciBleGFtcGxlIHRoZSBidWlsdC1pbiBgKytgIGZvciBgaW50YCBj
b3VsZCBiZSB3cml0dGVuIGFzOiBgaW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7IHJldHVybiB2
YWx1ZSArIDE7IH1gLgotLSBgb3BlcmF0b3I9PWAgY2FuIGJlIG92ZXJsb2FkZWQsIGJ1dCBgIT1g
IGlzIGF1dG9tYXRpY2FsbHkgc3ludGhlc2l6ZWQgYW5kIGNhbm5vdCBiZSBvdmVybG9hZGVkLgot
Ci1Tb21lIG9wZXJhdG9ycyBhbmQgb3ZlcmxvYWRzIGFyZSByZXN0cmljdGVkOgotCi0tIGAhYCwg
YCYmYCwgYW5kIGB8fGAgYXJlIGJ1aWx0LWluIG9wZXJhdGlvbnMgb24gdGhlIGBib29sYCB0eXBl
LgotLSBTZWxmLWNhc3RzIChgVChUKWApIGFyZSBhbHdheXMgdGhlIGlkZW50aXR5IGZ1bmN0aW9u
LgotLSBDYXN0cyB3aXRoIG5vIGFyZ3VtZW50cyAoYFQoKWApIGFsd2F5cyByZXR1cm4gdGhlIGRl
ZmF1bHQgdmFsdWUgZm9yIHRoYXQgdHlwZS4gRXZlcnkgdHlwZSBoYXMgYSBkZWZhdWx0IHZhbHVl
IChgMGAsIGBudWxsYCwgb3IgdGhlIGVxdWl2YWxlbnQgZm9yIGVhY2ggZmllbGQpLgotCi1DYXN0
IG92ZXJsb2FkaW5nIGFsbG93cyBmb3Igc3VwcG9ydGluZyBjb252ZXJzaW9ucyBiZXR3ZWVuIHR5
cGVzIGFuZCBmb3IgY3JlYXRpbmcgY29uc3RydWN0b3JzIGZvciBjdXN0b20gdHlwZXMuIEhlcmUg
aXMgYW4gZXhhbXBsZSBvZiBjYXN0IG92ZXJsb2FkaW5nIGJlaW5nIHVzZWQgdG8gY3JlYXRlIGEg
Y29uc3RydWN0b3I6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxUPiB7Ci0gICAgICAgIFQgcmVhbDsK
LSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICBvcGVyYXRvcjxUPiBDb21wbGV4PFQ+KFQgcmVh
bCwgVCBpbWFnKQotICAgIHsKLSAgICAgICAgQ29tcGxleDxUPiByZXN1bHQ7Ci0gICAgICAgIHJl
c3VsdC5yZWFsID0gcmVhbDsKLSAgICAgICAgcmVzdWx0LmltYWcgPSBpbWFnOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBDb21wbGV4PGZsb2F0PiBpID0gQ29tcGxl
eDxmbG9hdD4oMCwgMSk7Ci0KLVdTTCBzdXBwb3J0cyBhY2Nlc3NvciBvdmVybG9hZGluZyBhcyBw
YXJ0IG9mIHRoZSBvcGVyYXRvciBvdmVybG9hZGluZyBzeW50YXguIFRoaXMgZ2l2ZXMgdGhlIHBy
b2dyYW1tZXIgYnJvYWQgcG93ZXJzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBGb28gewot
ICAgICAgICBpbnQgeDsKLSAgICAgICAgaW50IHk7Ci0gICAgfQotICAgIGludCBvcGVyYXRvci5z
dW0oRm9vIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiBmb28ueCArIGZvby55OwotICAgIH0K
LQotSXQncyBwb3NzaWJsZSB0byBzYXkgYGZvby5zdW1gIHRvIGNhbGwgdGhlIGBvcGVyYXRvci5z
dW1gIGZ1bmN0aW9uLiBCb3RoIGdldHRlcnMgYW5kIHNldHRlcnMgY2FuIGJlIHByb3ZpZGVkOgot
Ci0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB2YWx1ZTsKLSAgICB9Ci0gICAgZG91Ymxl
IG9wZXJhdG9yLmRvdWJsZVZhbHVlKEZvbyB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBk
b3VibGUodmFsdWUudmFsdWUpOwotICAgIH0KLSAgICBGb28gb3BlcmF0b3IuZG91YmxlVmFsdWU9
KEZvbyB2YWx1ZSwgZG91YmxlIGRvdWJsZVZhbHVlKQotICAgIHsKLSAgICAgICAgdmFsdWUudmFs
dWUgPSBpbnQoZG91YmxlVmFsdWUpOwotICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgfQotCi1Q
cm92aWRpbmcgYm90aCBnZXR0ZXIgYW5kIHNldHRlciBvdmVybG9hZHMgbWFrZXMgYGRvdWJsZVZh
bHVlYCBiZWhhdmUgYWxtb3N0IGFzIGlmIGl0IHdhcyBhIGZpZWxkIG9mIGBGb29gLiBGb3IgZXhh
bXBsZSwgaXQncyBwb3NzaWJsZSB0byBzYXk6Ci0KLSAgICBGb28gZm9vOwotICAgIGZvby52YWx1
ZSA9IDQyOwotICAgIGZvby5kb3VibGVWYWx1ZSAqPSAyOyAvLyBOb3cgZm9vLnZhbHVlIGlzIDg0
Ci0KLUl0J3MgYWxzbyBwb3NzaWJsZSB0byBwcm92aWRlIGFuIGFkZHJlc3MtZ2V0dGluZyBvdmVy
bG9hZCBjYWxsZWQgYW4gKmFuZGVyKjoKLQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQg
dmFsdWU7Ci0gICAgfQotICAgIHRocmVhZCBpbnReIG9wZXJhdG9yJi52YWx1ZUFsaWFzKHRocmVh
ZCBGb29eIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiAmZm9vLT52YWx1ZTsKLSAgICB9Ci0K
LVByb3ZpZGluZyBqdXN0IHRoaXMgb3ZlcmxvYWQgZm9yIGEgcG9pbnRlciB0eXBlIGluIGV2ZXJ5
IGFkZHJlc3Mgc3BhY2UgZ2l2ZXMgdGhlIHNhbWUgcG93ZXIgYXMgb3ZlcmxvYWRpbmcgZ2V0dGVy
cyBhbmQgc2V0dGVycy4gQWRkaXRpb25hbGx5LCBpdCBtYWtlcyBpdCBwb3NzaWJsZSB0byBgJmZv
by52YWx1ZUFsaWFzYC4KLQotVGhlIHNhbWUgb3ZlcmxvYWRpbmcgcG93ZXIgaXMgcHJvdmlkZWQg
Zm9yIGFycmF5IGFjY2Vzc2VzLiBGb3IgZXhhbXBsZToKLQotICAgIHN0cnVjdCBWZWN0b3I8VD4g
ewotICAgICAgICBUIHg7Ci0gICAgICAgIFQgeTsKLSAgICB9Ci0gICAgdGhyZWFkIFReIG9wZXJh
dG9yJltdKHRocmVhZCBUXiBwdHIsIHVpbnQgaW5kZXgpCi0gICAgewotICAgICAgICByZXR1cm4g
aW5kZXggPyAmcHRyLT55IDogJnB0ci0+eDsKLSAgICB9Ci0KLUFsdGVybmF0aXZlbHksIGl0J3Mg
cG9zc2libGUgdG8gb3ZlcmxvYWQgZ2V0dGVycyBhbmQgc2V0dGVycyAoYG9wZXJhdG9yW11gIGFu
ZCBgb3BlcmF0b3JbXT1gKS4KLQotIyBNYXBwaW5nIG9mIEFQSSBjb25jZXB0cwotCi1XU0wgaXMg
ZGVzaWduZWQgdG8gYmUgdXNlZnVsIGFzIGJvdGggYSBncmFwaGljcyBzaGFkaW5nIGxhbmd1YWdl
IGFuZCBhcyBhIGNvbXB1dGF0aW9uIGxhbmd1YWdlLiBIb3dldmVyLCB0aGVzZSB0d28gZW52aXJv
bm1lbnRzIGhhdmUKLXNsaWdodGx5IGRpZmZlcmVudCBzZW1hbnRpY3MuCi0KLVdoZW4gdXNpbmcg
V1NMIGFzIGEgZ3JhcGhpY3Mgc2hhZGluZyBsYW5ndWFnZSwgdGhlcmUgaXMgYSBkaXN0aW5jdGlv
biBiZXR3ZWVuICplbnRyeS1wb2ludHMqIGFuZCAqbm9uLWVudHJ5LXBvaW50cyouIEVudHJ5IHBv
aW50cyBhcmUgdG9wLWxldmVsIGZ1bmN0aW9ucyB3aGljaCBoYXZlIGVpdGhlciB0aGUgYHZlcnRl
eGAgb3IgYGZyYWdtZW50YCBrZXl3b3JkIGluIGZyb250IG9mIHRoZWlyIGRlY2xhcmF0aW9uLiBF
bnRyeSBwb2ludHMgbWF5IG5vdCBiZSBmb3J3YXJkIGRlY2xhcmVkLiBBbiBlbnRyeSBwb2ludCBh
bm5vdGF0ZWQgd2l0aCB0aGUgYHZlcnRleGAga2V5d29yZCBtYXkgbm90IGJlIHVzZWQgYXMgYSBm
cmFnbWVudCBzaGFkZXIsIGFuZCBhbiBlbnRyeSBwb2ludCBhbm5vdGF0ZWQgd2l0aCB0aGUgYGZy
YWdtZW50YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBhcyBhIHZlcnRleCBzaGFkZXIuIE5vIGFy
Z3VtZW50IG5vciByZXR1cm4gdmFsdWUgb2YgYW4gZW50cnkgcG9pbnQgbWF5IGJlIGEgcG9pbnRl
ci4gRW50cnkgcG9pbnRzIG11c3Qgbm90IGFjY2VwdCB0eXBlIGFyZ3VtZW50cyAoYWxzbyBrbm93
biBhcyAiZ2VuZXJpY3MiKS4KLQotIyMgVmVydGV4IGVudHJ5IHBvaW50cwotCi1XZWJHUFUncyBB
UEkgcGFzc2VzIGRhdGEgdG8gYSBXU0wgdmVydGV4IHNoYWRlciBpbiBmb3VyIHdheXM6Ci0KLS0g
QXR0cmlidXRlcwotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1cmUgZGF0YQotLSBTYW1wbGVycwot
Ci1FYWNoIG9mIHRoZXNlIEFQSSBvYmplY3RzIGlzIHJlZmVycmVkIHRvIGJ5IG5hbWUgZnJvbSB0
aGUgQVBJLiBWYXJpYWJsZXMgaW4gV1NMIGFyZSBub3QgYW5ub3RhdGVkIHdpdGggZXh0cmEgQVBJ
LXZpc2libGUgbmFtZXMgKGxpa2UgdGhleSBhcmUgaW4gc29tZSBvdGhlciBncmFwaGljcyBBUElz
KS4KLQotVmFyaWFibGVzIGFyZSBwYXNzZWQgdG8gdmVydGV4IHNoYWRlcnMgYXMgYXJndW1lbnRz
IHRvIGEgdmVydGV4IGVudHJ5IHBvaW50LiBFYWNoIGJ1ZmZlciBpcyByZXByZXNlbnRlZCBhcyBh
biBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0eXBlICh1c2luZyB0aGUgYFtdYCBz
eW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJlcHJlc2VudGVkIGJ5IGFyZ3VtZW50
cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0eXBlcywgcmVzcGVjdGl2ZWx5LiBB
bGwgb3RoZXIgbm9uLWJ1aWx0aW4gYXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IGFy
ZSBpbXBsaWVkIHRvIGJlIGF0dHJpYnV0ZXMuCi0KLVNvbWUgYXJndW1lbnRzIGFyZSByZWNvZ25p
emVkIGJ5IHRoZSBjb21waWxlciBmcm9tIHRoZWlyIG5hbWUgYW5kIHR5cGUuIFRoZXNlIGFyZ3Vt
ZW50cyBwcm92aWRlIGJ1aWx0LWluIGZ1bmN0aW9uYWxpdHkgaW5oZXJlbnQgaW4gdGhlIGdyYXBo
aWNzIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgYW4gYXJndW1lbnQgb2YgdGhlIGZvcm0gYGludCB3
c2xfdmVydGV4SURgIHJlZmVycyB0byB0aGUgSUQgb2YgdGhlIGN1cnJlbnQgdmVydGV4LCBhbmQg
aXMgbm90IHJlY29nbml6ZWQgYXMgYW4gYXR0cmlidXRlLiBBbGwgbm9uLWJ1aWx0aW4gYXJndW1l
bnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IG11c3QgYmUgYXNzb2NpYXRlZCB3aXRoIGFuIEFQ
SSBvYmplY3Qgd2hlbmV2ZXIgYW55IGRyYXcgY2FsbCB1c2luZyB0aGUgdmVydGV4IGVudHJ5IHBv
aW50IGlzIGludm9rZWQuIE90aGVyd2lzZSwgdGhlIGRyYXcgY2FsbCB3aWxsIGZhaWwuCi0KLVRo
ZSBvbmx5IHdheSB0byBwYXNzIGRhdGEgYmV0d2VlbiBzdWNjZXNzaXZlIHNoYWRlciBzdGFnZXMg
d2l0aGluIGEgc2luZ2xlIGRyYXcgY2FsbCBpcyBieSByZXR1cm4gdmFsdWUuIEFuIGVudHJ5IHBv
aW50IG11c3QgaW5kaWNhdGUgdGhhdCBpdCByZXR1cm5zIGEgY29sbGVjdGlvbiBvZiB2YWx1ZXMg
Y29udGFpbmVkIHdpdGhpbiBhIHN0cnVjdHVyZS4gRXZlcnkgdmFyaWFibGUgaW5zaWRlIHRoaXMg
c3RydWN0dXJlLCByZWN1cnNpdmVseSwgaXMgcGFzc2VkIHRvIHRoZSBuZXh0IHN0YWdlIGluIHRo
ZSBncmFwaGljcyBwaXBlbGluZS4gTWVtYmVycyBvZiB0aGlzIHN0cnVjdCBtYXkgYWxzbyBiZSBv
dXRwdXQgYnVpbHQtaW4gdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwgYSB2ZXJ0ZXggZW50cnkgcG9p
bnQgbWF5IHJldHVybiBhIHN0cnVjdCB3aGljaCBjb250YWlucyBhIG1lbWJlciBgZmxvYXQ0IHdz
bF9Qb3NpdGlvbmAsIGFuZCB0aGlzIHZhcmlhYmxlIHdpbGwgcmVwcmVzZW50IHRoZSByYXN0ZXJp
emVkIHBvc2l0aW9uIG9mIHRoZSB2ZXJ0ZXguIEJ1ZmZlcnMgKGFzIGRlc2NyaWJlZCBieSBXU0wg
YXJyYXkgcmVmZXJlbmNlcyksIHRleHR1cmVzLCBhbmQgc2FtcGxlcnMgbXVzdCBub3QgYmUgcHJl
c2VudCBpbiB0aGlzIHJldHVybmVkIHN0cnVjdC4gQnVpbHQtaW4gdmFyaWFibGVzIG11c3QgbmV2
ZXIgYXBwZWFyIHR3aWNlIGluc2lkZSB0aGUgcmV0dXJuZWQgc3RydWN0dXJlLgotCi0jIyBGcmFn
bWVudCBlbnRyeSBwb2ludHMKLQotRnJhZ21lbnQgZW50cnkgcG9pbnRzIG1heSBhY2NlcHQgb25l
IGFyZ3VtZW50IHdpdGggdGhlIHR5cGUgdGhhdCB0aGUgcHJldmlvdXMgc2hhZGVyIHN0YWdlIHJl
dHVybmVkLiBUaGUgYXJndW1lbnQgbmFtZSBmb3IgdGhpcyBhcmd1bWVudCBtdXN0IGJlIGBzdGFn
ZUluYC4gSW4gYWRkaXRpb24gdG8gdGhpcyBhcmd1bWVudCwgZnJhZ21lbnQgZW50cnkgcG9pbnRz
IG1heSBhY2NlcHQgYnVmZmVycywgdGV4dHVyZXMsIGFuZCBzYW1wbGVycyBhcyBhcmd1bWVudHMg
aW4gdGhlIHNhbWUgd2F5IHRoYXQgdmVydGV4IGVudHJ5IHBvaW50cyBhY2NlcHQgdGhlbS4gRnJh
Z21lbnQgZW50cnkgcG9pbnRzIGFsc28gbXVzdCByZXR1cm4gYSBzdHJ1Y3QsIGFuZCBhbGwgbWVt
YmVycyBvZiB0aGlzIHN0cnVjdCBtdXN0IGJlIGJ1aWx0LWluIHZhcmlhYmxlcy4gVGhlIHNldCBv
ZiByZWNvZ25pemVkIGJ1aWx0LWluIHZhcmlhYmxlcyB3aGljaCBtYXkgYmUgYWNjZXB0ZWQgb3Ig
cmV0dXJuZWQgZnJvbSBhbiBlbnRyeSBwb2ludCBpcyBkaWZmZXJlbnQgYmV0d2VlbiBhbGwgdHlw
ZXMgb2YgZW50cnkgcG9pbnRzLgotCi1Gb3IgZXhhbXBsZSwgdGhpcyB3b3VsZCBiZSBhIHZhbGlk
IGdyYXBoaWNzIHByb2dyYW06Ci0KLSAgICBzdHJ1Y3QgVmVydGV4SW5wdXQgewotICAgICAgICBm
bG9hdDIgcG9zaXRpb247Ci0gICAgICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAg
c3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAgICAgIGZsb2F0NCB3c2xfUG9zaXRpb247Ci0gICAg
ICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAgc3RydWN0IEZyYWdtZW50T3V0cHV0
IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Db2xvcjsKLSAgICB9Ci0gICAgCi0gICAgdmVydGV4IFZl
cnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQgdmVydGV4SW5wdXQpIHsKLSAgICAg
ICAgVmVydGV4T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LndzbF9Qb3NpdGlvbiA9IGZs
b2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsKLSAgICAgICAgcmVzdWx0LmNvbG9y
ID0gdmVydGV4SW5wdXQuY29sb3I7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAg
IAotICAgIGZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdtZW50U2hhZGVyKFZlcnRleE91dHB1
dCBzdGFnZUluKSB7Ci0gICAgICAgIEZyYWdtZW50T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVz
dWx0LndzbF9Db2xvciA9IGZsb2F0NChzdGFnZUluLmNvbG9yLCAxLik7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotCi0jIyBDb21wdXRlIGVudHJ5IHBvaW50cwotCi1XZWJHUFUncyBB
UEkgcGFzc2VzIGRhdGEgdG8gYSBjb21wdXRlIHNoYWRlciBpbiB0aHJlZSB3YXlzOgotCi0tIEJ1
ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBsZXJzCi0KLUNvbXB1dGUgZW50cnkg
cG9pbnRzIHN0YXJ0IHdpdGggdGhlIGtleXdvcmQgYGNvbXB1dGVgLiBUaGUgcmV0dXJuIHR5cGUg
Zm9yIGEgY29tcHV0ZSBlbnRyeSBwb2ludCBtdXN0IGJlIGB2b2lkYC4gRWFjaCBidWZmZXIgaXMg
cmVwcmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBhcnJheSByZWZlcmVuY2UgdHlwZSAo
dXNpbmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5kIHNhbXBsZXJzIGFyZSByZXByZXNl
bnRlZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVgIGFuZCBgc2FtcGxlcmAgdHlwZXMs
IHJlc3BlY3RpdmVseS4gQ29tcHV0ZSBlbnRyeSBwb2ludHMgbWF5IGFsc28gYWNjZXB0IGJ1aWx0
LWluIHZhcmlhYmxlcyBhcyBhcmd1bWVudHMuIEFyZ3VtZW50cyBvZiBhbnkgb3RoZXIgdHlwZSBh
cmUgZGlzYWxsb3dlZC4gQXJndW1lbnRzIG1heSBub3QgdXNlIHRoZSBgdGhyZWFkZ3JvdXBgIG1l
bW9yeSBzcGFjZS4KLQotIyBFcnJvciBoYW5kbGluZwotCi1FcnJvcnMgbWF5IG9jY3VyIGR1cmlu
ZyBzaGFkZXIgcHJvY2Vzc2luZy4gRm9yIGV4YW1wbGUsIHRoZSBzaGFkZXIgbWF5IGF0dGVtcHQg
dG8gZGVyZWZlcmVuY2UgYSBgbnVsbGAgYXJyYXkgcmVmZXJlbmNlLiBJZiB0aGlzIG9jY3Vycywg
dGhlIHNoYWRlciBzdGFnZSBpbW1lZGlhdGVseSBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LiBUaGUg
ZW50cnkgcG9pbnQgaW1tZWRpYXRlbHkgcmV0dXJucyBhIHN0cnVjdCB3aXRoIGFsbCBmaWVsZHMg
c2V0IHRvIDAuIEFmdGVyIHRoaXMgZXZlbnQsIHN1YnNlcXVlbnQgc2hhZGVyIHN0YWdlcyB3aWxs
IHByb2NlZWQgYXMgaWYgdGhlcmUgd2FzIG5vIHByb2JsZW0uCi0KLUJ1ZmZlciBhbmQgdGV4dHVy
ZSByZWFkcyBhbmQgd3JpdGVzIGJlZm9yZSB0aGUgZXJyb3IgYWxsIGNvbXBsZXRlLCBhbmQgaGF2
ZSB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgaWYgbm8gZXJyb3IgaGFkIG9jY3VycmVkLiBCdWZmZXIg
YW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBhZnRlciB0aGUgZXJyb3IgZG8gbm90IG9jY3Vy
LgotCi0jIFN1bW1hcnkKLQotV1NMIGlzIGEgdHlwZS1zYWZlIGxhbmd1YWdlIGJhc2VkIG9uIEMg
c3ludGF4LiBJdCBlbGltaW5hdGVzIHNvbWUgQyBmZWF0dXJlcywgbGlrZSB1bmlvbnMgYW5kIHBv
aW50ZXIgY2FzdHMsIGJ1dCBhZGRzIG90aGVyIG1vZGVybiBmZWF0dXJlcyBpbiB0aGVpciBwbGFj
ZSwgbGlrZSBnZW5lcmljcyBhbmQgb3ZlcmxvYWRpbmcuCi0KLSMgQWRkaXRpb25hbCBMaW1pdGF0
aW9ucwotCi1UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbGltaXRhdGlvbnMgbWF5IGJlIHBsYWNl
ZCBvbiBhIFdTTCBwcm9ncmFtOgotCi0tIGBkZXZpY2VgLCBgY29uc3RhbnRgLCBhbmQgYHRocmVh
ZGdyb3VwYCBwb2ludGVycyBjYW5ub3QgcG9pbnQgdG8gZGF0YSB0aGF0IG1heSBoYXZlIHBvaW50
ZXJzIGluIGl0LiBUaGlzIHNhZmV0eSBjaGVjayBpcyBub3QgZG9uZSBhcyBwYXJ0IG9mIHRoZSBu
b3JtYWwgdHlwZSBzeXN0ZW0gY2hlY2tzLiBJdCdzIHBlcmZvcm1lZCBvbmx5IGFmdGVyIGluc3Rh
bnRpYXRpb24uCi0tIFBvaW50ZXJzIGFuZCBhcnJheSByZWZlcmVuY2VzIChjb2xsZWN0aXZlbHks
ICpyZWZlcmVuY2VzKikgbWF5IGJlIHJlc3RyaWN0ZWQgdG8gc3VwcG9ydCBjb21waWxpbmcgdG8g
U1BJUi1WICpsb2dpY2FsIG1vZGUqLiBJbiB0aGlzIG1vZGUsIGFycmF5cyBtdXN0IG5vdCB0cmFu
c2l0aXZlbHkgaG9sZCByZWZlcmVuY2VzLiBSZWZlcmVuY2VzIG11c3QgYmUgaW5pdGlhbGl6ZWQg
dXBvbiBkZWNsYXJhdGlvbiBhbmQgbmV2ZXIgcmVhc3NpZ25lZC4gRnVuY3Rpb25zIHRoYXQgcmV0
dXJuIHJlZmVyZW5jZXMgbXVzdCBoYXZlIG9uZSByZXR1cm4gcG9pbnQuIFRlcm5hcnkgZXhwcmVz
c2lvbnMgbWF5IG5vdCByZXR1cm4gcmVmZXJlbmNlcy4KLS0gR3JhcGhpY3MgZW50cnkgcG9pbnRz
IG11c3QgdHJhbnNpdGl2ZWx5IG5ldmVyIHJlZmVyIHRvIHRoZSBgdGhyZWFkZ3JvdXBgIG1lbW9y
eSBzcGFjZS4KLQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9X
cmFwQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2Vy
LmpzCmluZGV4IDRjYWRjN2QwZDllNmE2ZGZkYTU1NWRhYjg5ZDAyNzE3NzBkYmQ5YTcuLjBlYjRl
ODFlYzJmYzM2Mzk5NzBkOWM2M2EzZmJjY2U5OTZjYjQxMGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCkBAIC01MiwxMSArNTIsNiBAQCBjbGFzcyBX
cmFwQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkZv
dW5kIHVud3JhcHBlZCAiICsgbm9kZS5jb25zdHJ1Y3Rvci5uYW1lICsgIiBhdCAiICsgb3JpZ2lu
U3RyaW5nKG5vZGUpICsgIjogIiArIG5vZGUgKyAiXG5XaGlsZSB2aXNpdGluZyAiICsgdGhpcy5f
c3RhcnROb2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIgKyBvcmlnaW5TdHJpbmcodGhpcy5f
c3RhcnROb2RlLm9yaWdpbikgKyAiOiAiICsgdGhpcy5fc3RhcnROb2RlKTsKICAgICB9CiAgICAg
Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAgICAgICB0
aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRGdW5jUGFy
YW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsK
QEAgLTc2LDE0ICs3MSw0IEBAIGNsYXNzIFdyYXBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAg
ICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKICAgICB9Ci0gICAgCi0g
ICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2ZvdW5kVW53
cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICAvLyBOT1RFOiBUaGlzIGRvZXMgbm90IGtu
b3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2UsIGJlY2F1c2UgdGhpcyBpcyBuZXZl
ciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCi0gICAgLy8gY29kZS4gT25jZSBjb2RlIGlzIGluc3Rh
bnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBmdXJ0aGVyLgotICAgIAotICAgIC8v
IE5PVEU6IFRoaXMgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jIHdpdGggQXV0b1dyYXBwZXIuCiB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCA4MDk0YjE5Mzc4
MWI0YWE5YjBjMzkwOWU5YTkxZDI4MTVmMmIyYWJhLi4wZGQwNGVmMmQxNDEwMThjZGU0ZDMwOTVk
YzhiNzBmMTlmMDE3MzIxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0
bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJDbG9uZVByb2dyYW0uanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJDb25zdGV4
cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb250aW51ZS5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9vcC5qcyI+PC9zY3JpcHQ+CkBAIC01
NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxPcmlnaW4uanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaW5kSGlnaFpv
bWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5lZFN0cnVjdE9mZnNldEdhdGhlcmVy
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtNjMsNyArNjEs
NiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1
bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1
bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2Nr
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3Njcmlw
dD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJbmZlclR5cGVzRm9yQ2FsbC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJJbnN0YW50aWF0ZUltbWVkaWF0
ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJ
bnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2LDcgQEAKIDxzY3JpcHQgc3JjPSJO
YW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYW1lUmVzb2x2ZXIuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTmF0aXZl
VHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUluc3RhbmNlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEwICs5Nyw2IEBACiA8c2NyaXB0IHNy
Yz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1Jl
bW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlBy
b3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sUmVmLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAgLTEzMSwxMCArMTIxLDcgQEAKIDxz
Y3JpcHQgc3JjPSJUeXBlRGVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVW
YXJpYWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRl
cmFsVHlwZS5qcyI+PC9zY3JpcHQ+CkBAIC0zNDQsNyArMzMxLDcgQEAgZnVuY3Rpb24gc2VsZWN0
ZWRTaGFkZXJzQ2hhbmdlZChmcm9tQ29tcGlsYXRpb24gPSBmYWxzZSkgewogICAgIGN1cnJlbnRW
ZXJ0ZXhTaGFkZXIgPSBhdmFpbGFibGVWZXJ0ZXhTaGFkZXJzW3ZlcnRleFNoYWRlclNlbGVjdC5z
ZWxlY3RlZEluZGV4XTsKICAgICBjdXJyZW50RnJhZ21lbnRTaGFkZXIgPSBhdmFpbGFibGVGcmFn
bWVudFNoYWRlcnNbZnJhZ21lbnRTaGFkZXJTZWxlY3Quc2VsZWN0ZWRJbmRleF07CiAKLSAgICBp
bmxpbmVkVmVydGV4U2hhZGVyID0gcHJvZ3JhbS5mdW5jSW5zdGFudGlhdG9yLmdldFVuaXF1ZShj
dXJyZW50VmVydGV4U2hhZGVyLCBbXSk7CisgICAgaW5saW5lZFZlcnRleFNoYWRlciA9IGN1cnJl
bnRWZXJ0ZXhTaGFkZXI7CiAgICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGlubGluZWRWZXJ0
ZXhTaGFkZXIsIG5ldyBWaXNpdGluZ1NldChjdXJyZW50VmVydGV4U2hhZGVyKSk7CiAKICAgICBh
bGxBcmd1bWVudEluZm9zID0gW107CkBAIC00MjYsNyArNDEzLDcgQEAgZnVuY3Rpb24gcnVuU2hh
ZGVycygpIHsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29weUZyb20oYXJndW1l
bnRFUHRyc1tpXS5lUHRyLCBhcmd1bWVudEVQdHJzW2ldLnNpemUpOwogICAgIGxldCByZXN1bHQg
PSBuZXcgRXZhbHVhdG9yKHByb2dyYW0pLnJ1bkZ1bmMoZnVuYyk7CiAKLSAgICBpbmxpbmVkRnJh
Z21lbnRTaGFkZXIgPSBwcm9ncmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRG
cmFnbWVudFNoYWRlciwgW10pOworICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IGN1cnJlbnRG
cmFnbWVudFNoYWRlcjsKICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZEZyYWdt
ZW50U2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoY3VycmVudEZyYWdtZW50U2hhZGVyKSk7CiAgICAg
ZnVuYyA9IGlubGluZWRGcmFnbWVudFNoYWRlcjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346998</attachid>
            <date>2018-08-13 00:21:25 -0700</date>
            <delta_ts>2018-08-13 00:21:25 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-188400-20180813002120.patch</filename>
            <type>text/plain</type>
            <size>1976140</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0Nzc3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2YyYTRhNTdlMjVjY2FjNDYzODZkODg3Zjk2OTZlMThj
ZTkzMDc2NS4uM2FjYTg2MzcxOTBlNTI5MDdlYzM3MGQwMTUzNmE4YWFlNjkyYzQxNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQy
MCBAQAorMjAxOC0wOC0xMSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgorCisgICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUg
c3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4
NDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUu
dmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFw
cGVyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhw
cmVzc2lvbik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgor
ICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2Fs
bEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxF
eHByZXNzaW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9u
LnByb3RvdHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIu
cHJvdG90eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hl
Y2tPcGVyYXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlw
ZVJlZik6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERl
bGV0ZWQuCisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBl
UGFyYW1ldGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NyZWF0ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJp
Y0xpdGVyYWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFs
VHlwZS5wcm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRl
ci5wcm90b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAg
ICAgIChGdW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAg
ICAgICAgKEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5
cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVm
KToKKyAgICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAg
IChpbmZlclR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
SW5saW5lLmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVu
Y3Rpb24pOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6Cisg
ICAgICAgIChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAg
KElubGluZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRl
SW1tZWRpYXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9JbnRyaW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5w
cm90b3R5cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9OYW1lUmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNv
bHZlVHlwZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0
VHlwZVJlZik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVG
dW5jLmpzOgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAo
TmF0aXZlVHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5h
dGl2ZVR5cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToK
KyAgICAgICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwp
OgorICAgICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJl
Zml4KToKKyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAg
ICAocGFyc2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVu
dCk6CisgICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAg
KHBhcnNlRG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNE
ZWYpOgorICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVu
Yyk6CisgICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAg
ICAgICAgKHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAg
ICAgICAocGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3Rv
Y29sRnVuY0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxl
dGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAg
ICAgIChsZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJv
Z3JhbS5qczoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUu
Z2V0IHR5cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQ
cm9ncmFtLnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dy
YW0ucHJvdG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6Cisg
ICAgICAgIChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJl
c29sdmVPdmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jl
c29sdmVUeXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoK
KyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAo
UmV3cml0ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90
b3R5cGUucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnBy
b3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdy
aXRlci5wcm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUu
Ym9vbCk6IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIu
anM6CisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAg
ICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRl
cik6IERlbGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJv
dG9jb2xEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
dHJ1Y3RMYXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90
b3R5cGUudmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVy
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAg
ICAgICAoU3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3Jp
Z2luKToKKyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFN0cnVjdFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAg
ICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6Cisg
ICAgICAgIChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAo
c3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRo
ZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3Ry
dWN0QWNjZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRl
VHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vz
c29ycy4pOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
aHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAg
ICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3Rv
dHlwZS5nZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5
cGUuaW5oZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3Rh
bnRpYXRlZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVEZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90
eXBlLmdldCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAg
ICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAg
ICAgICAoVHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBl
UGFyYW1ldGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJl
Zi53cmFwKToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJl
Zi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVu
aWZ5Tm9kZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBl
UmVmLnByb3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5
cGUuc2V0VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAg
ICAgICAoVHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuc2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0
b3IucHJvdG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90
b3R5cGUudmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3Iu
cHJvdG90eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAg
ICAgKFdyYXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERl
bGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKwor
MjAxOC0wOC0wNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtXSExTTF0gU3RhcnQgbWFraW5nIHRoZSBjb21waWxlciBtYXRjaCB0aGUgc3BlYwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4NDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQXV0b1dyYXBwZXIuanM6CisgICAgICAgIChBdXRvV3JhcHBlci5wcm90b3R5cGUudmlzaXRD
b25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKEF1dG9XcmFwcGVyLnBy
b3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6CisgICAgICAgIChDYWxsRXhwcmVzc2lv
bik6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IG5hbWUpOgorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLnJlc29sdmUpOgorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLnJlc29sdmVUb092ZXJsb2FkKToKKyAgICAgICAgKENhbGxFeHByZXNz
aW9uLnByb3RvdHlwZS5iZWNvbWVDYXN0KToKKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3Rv
dHlwZS50b1N0cmluZyk6CisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuZ2V0IHR5
cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0NhbGxGdW5jdGlvbi5qczoKKyAgICAgICAgKGNhbGxGdW5jdGlvbik6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qczoKKyAgICAgICAgKENoZWNrZXIucHJvdG90
eXBlLnZpc2l0UHJvZ3JhbSk6CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tPcGVy
YXRvck92ZXJsb2FkKToKKyAgICAgICAgKENoZWNrZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQu
CisgICAgICAgIChDaGVja2VyLnByb3RvdHlwZS5fY2hlY2tUeXBlQXJndW1lbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4cHJUeXBlUGFyYW1l
dGVyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NyZWF0
ZUxpdGVyYWxUeXBlLmpzOgorICAgICAgICAoY3JlYXRlTGl0ZXJhbFR5cGUuR2VuZXJpY0xpdGVy
YWxUeXBlKToKKyAgICAgICAgKGNyZWF0ZUxpdGVyYWxUeXBlLkdlbmVyaWNMaXRlcmFsVHlwZS5w
cm90b3R5cGUucHJlcGFyZVRvVmVyaWZ5KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FeHByZXNzaW9uRmluZGVyLmpzOgorICAgICAgICAoRXhwcmVzc2lvbkZpbmRlci5wcm90
b3R5cGUudmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzOiBSZW1vdmVk
LgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanM6CisgICAgICAgIChG
dW5jKToKKyAgICAgICAgKEZ1bmMucHJvdG90eXBlLmdldCByZXR1cm5UeXBlKToKKyAgICAgICAg
KEZ1bmMucHJvdG90eXBlLnRvRGVjbFN0cmluZyk6CisgICAgICAgIChGdW5jLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoRnVuYy5wcm90b3R5cGUuZ2V0
IHR5cGVQYXJhbWV0ZXJzRm9yQ2FsbFJlc29sdXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNEZWYuanM6CisgICAgICAgIChGdW5jRGVmKToKKyAg
ICAgICAgKEZ1bmNEZWYucHJvdG90eXBlLnJld3JpdGUpOgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0ZvckNhbGwuanM6CisgICAgICAgIChpbmZl
clR5cGVzRm9yQ2FsbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5l
LmpzOgorICAgICAgICAoaW5saW5lKToKKyAgICAgICAgKHJlc29sdmVJbmxpbmVkRnVuY3Rpb24p
OgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lubGluZXIuanM6CisgICAgICAg
IChJbmxpbmVyLnByb3RvdHlwZS52aXNpdENhbGxFeHByZXNzaW9uKToKKyAgICAgICAgKElubGlu
ZXIpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0luc3RhbnRpYXRlSW1tZWRp
YXRlcy5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzOgorICAgICAgICAoSW50cmluc2ljcyk6CisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmFtZUNvbnRleHQuanM6CisgICAgICAgIChOYW1lQ29udGV4dC5wcm90b3R5
cGUucmVzb2x2ZUZ1bmNPdmVybG9hZCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmFtZUZpbmRlci5qczoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1l
UmVzb2x2ZXIuanM6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLl9yZXNvbHZlVHlw
ZUFyZ3VtZW50cyk6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJl
Zik6CisgICAgICAgIChOYW1lUmVzb2x2ZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xEZWNsKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
OgorICAgICAgICAoTmF0aXZlRnVuYyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvTmF0aXZlVHlwZS5qczoKKyAgICAgICAgKE5hdGl2ZVR5cGUpOgorICAgICAgICAoTmF0aXZl
VHlwZS5wcm90b3R5cGUuZ2V0IHR5cGVBcmd1bWVudHMpOgorICAgICAgICAoTmF0aXZlVHlwZS5w
cm90b3R5cGUuZ2V0IHR5cGVQYXJhbWV0ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKE5hdGl2ZVR5
cGUucHJvdG90eXBlLmluc3RhbnRpYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlQ29uc3RleHByKToKKyAgICAg
ICAgKHBhcnNlVHlwZURlZik6CisgICAgICAgIChwYXJzZUxlZnRPcGVyYXRvckNhbGwpOgorICAg
ICAgICAoaXNDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChwYXJzZVBvc3NpYmxlUHJlZml4KToK
KyAgICAgICAgKHBhcnNlUG9zc2libGVSZWxhdGlvbmFsRXF1YWxpdHkpOgorICAgICAgICAocGFy
c2VMZWZ0TG9naWNhbEV4cHJlc3Npb24pOgorICAgICAgICAocGFyc2VJZlN0YXRlbWVudCk6Cisg
ICAgICAgIChwYXJzZVdoaWxlKToKKyAgICAgICAgKHBhcnNlRm9yKToKKyAgICAgICAgKHBhcnNl
RG8pOgorICAgICAgICAocGFyc2VGdW5jRGVjbCk6CisgICAgICAgIChwYXJzZUZ1bmNEZWYpOgor
ICAgICAgICAocGFyc2VTdHJ1Y3RUeXBlKToKKyAgICAgICAgKHBhcnNlTmF0aXZlRnVuYyk6Cisg
ICAgICAgIChwYXJzZU5hdGl2ZSk6CisgICAgICAgIChwYXJzZUVudW1UeXBlKToKKyAgICAgICAg
KHBhcnNlKToKKyAgICAgICAgKHBhcnNlUHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAo
cGFyc2VUeXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChwYXJzZVByb3RvY29sRnVu
Y0RlY2wpOiBEZWxldGVkLgorICAgICAgICAocGFyc2VQcm90b2NvbERlY2wpOiBEZWxldGVkLgor
ICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanM6CisgICAgICAgIChs
ZXQucHJlcGFyZSk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5q
czoKKyAgICAgICAgKFByb2dyYW0pOgorICAgICAgICAoUHJvZ3JhbS5wcm90b3R5cGUuZ2V0IHR5
cGVzKToKKyAgICAgICAgKFByb2dyYW0ucHJvdG90eXBlLmFkZCk6CisgICAgICAgIChQcm9ncmFt
LnByb3RvdHlwZS5nZXQgcHJvdG9jb2xzKTogRGVsZXRlZC4KKyAgICAgICAgKFByb2dyYW0ucHJv
dG90eXBlLmdldCBmdW5jSW5zdGFudGlhdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbC5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wuanM6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qczogUmVtb3ZlZC4KKyAgICAg
ICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qczogUmVtb3ZlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlTmFtZXMuanM6CisgICAgICAg
IChyZXNvbHZlTmFtZXNJblByb3RvY29scyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5qczoKKyAgICAgICAgKHJlc29sdmVP
dmVybG9hZEltcGwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVU
eXBlRGVmcy5qczoKKyAgICAgICAgKHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAg
ICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNpdFN0cnVjdFR5cGUpOgorICAgICAgICAoUmV3cml0
ZXIucHJvdG90eXBlLnZpc2l0VHlwZVJlZik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUu
cHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YSk6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlz
aXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChSZXdyaXRlci5wcm90b3R5cGUudmlzaXRDb25z
dGV4cHJUeXBlUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlw
ZS52aXNpdFByb3RvY29sRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5wcm90b3R5
cGUudmlzaXRUeXBlVmFyaWFibGUpOiBEZWxldGVkLgorICAgICAgICAoUmV3cml0ZXIucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xGdW5jRGVjbCk6IERlbGV0ZWQuCisgICAgICAgIChSZXdyaXRlci5w
cm90b3R5cGUudmlzaXRQcm90b2NvbFJlZik6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TUElSVkNvZGVnZW4uanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
U3RhbmRhcmRMaWJyYXJ5LmpzOgorICAgICAgICAob3BlcmF0b3IuVC5FcXVhdGFibGUuYm9vbCk6
IERlbGV0ZWQuCisgICAgICAgIChib29sLm9wZXJhdG9yLlQuRXF1YXRhYmxlKTogRGVsZXRlZC4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanM6Cisg
ICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0RnVuY0RlZik6CisgICAgICAg
IChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0TmF0aXZlRnVuYyk6CisgICAgICAgIChT
dGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERl
bGV0ZWQuCisgICAgICAgIChTdGF0ZW1lbnRDbG9uZXIucHJvdG90eXBlLnZpc2l0UHJvdG9jb2xE
ZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RM
YXlvdXRCdWlsZGVyLmpzOgorICAgICAgICAoU3RydWN0TGF5b3V0QnVpbGRlci5wcm90b3R5cGUu
dmlzaXRDYWxsRXhwcmVzc2lvbik6CisgICAgICAgIChTdHJ1Y3RMYXlvdXRCdWlsZGVyKToKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzOgorICAgICAgICAo
U3RydWN0VHlwZSk6CisgICAgICAgIChTdHJ1Y3RUeXBlLnByb3RvdHlwZS5nZXQgb3JpZ2luKToK
KyAgICAgICAgKFN0cnVjdFR5cGUucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAgKFN0cnVj
dFR5cGUucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAgIChT
dHJ1Y3RUeXBlLnByb3RvdHlwZS5pbnN0YW50aWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanM6CisgICAgICAg
IChzeW50aGVzaXplRW51bUZ1bmN0aW9ucyk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qczoKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBJbXBsZW1lbnRhdGlvbkRhdGEpOgorICAgICAgICAoc3ludGhl
c2l6ZVN0cnVjdEFjY2Vzc29ycy5jcmVhdGVUeXBlUmVmKToKKyAgICAgICAgKHN5bnRoZXNpemVT
dHJ1Y3RBY2Nlc3NvcnMuc2V0dXBBbmRlcik6CisgICAgICAgIChzeW50aGVzaXplU3RydWN0QWNj
ZXNzb3JzKToKKyAgICAgICAgKHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuY3JlYXRlVHlwZVBh
cmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy4p
OiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGUuanM6CisgICAgICAgIChUeXBlLnByb3RvdHlwZS5n
ZXQgdHlwZVBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuaW5o
ZXJpdHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZS5wcm90b3R5cGUuZ2V0IGluc3RhbnRpYXRl
ZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVE
ZWYuanM6CisgICAgICAgIChUeXBlRGVmKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLmdl
dCBuYW1lKToKKyAgICAgICAgKFR5cGVEZWYucHJvdG90eXBlLnRvU3RyaW5nKToKKyAgICAgICAg
KFR5cGVEZWYucHJvdG90eXBlLmdldCB0eXBlUGFyYW1ldGVycyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVyLmpzOgorICAgICAgICAo
VHlwZURlZlJlc29sdmVyLnByb3RvdHlwZS52aXNpdFR5cGVSZWYpOgorICAgICAgICAoVHlwZURl
ZlJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1l
dGVyUmV3cml0ZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvVHlwZVJlZi5qczoKKyAgICAgICAgKFR5cGVSZWYpOgorICAgICAgICAoVHlwZVJlZi53cmFw
KToKKyAgICAgICAgKFR5cGVSZWYuaW5zdGFudGlhdGUpOgorICAgICAgICAoVHlwZVJlZi5wcm90
b3R5cGUuZ2V0IG5hbWUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuZ2V0IHVuaWZ5Tm9k
ZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSk6Cisg
ICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS5nZXQgc2l6ZSk6CisgICAgICAgIChUeXBlUmVmLnBy
b3RvdHlwZS5nZXQgaXNQcmltaXRpdmUpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUuc2V0
VHlwZSk6CisgICAgICAgIChUeXBlUmVmLnByb3RvdHlwZS51bmlmeUltcGwpOgorICAgICAgICAo
VHlwZVJlZi5wcm90b3R5cGUudG9TdHJpbmcpOgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
Z2V0IHR5cGVBcmd1bWVudHMpOiBEZWxldGVkLgorICAgICAgICAoVHlwZVJlZi5wcm90b3R5cGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvVHlwZVZhcmlhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIFdlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1R5cGVWYXJpYWJsZVRyYWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qczoKKyAgICAgICAgKFZpc2l0b3IucHJv
dG90eXBlLnZpc2l0Q2FsbEV4cHJlc3Npb24pOgorICAgICAgICAoVmlzaXRvci5wcm90b3R5cGUu
dmlzaXRQcm90b2NvbEZ1bmNEZWNsKTogRGVsZXRlZC4KKyAgICAgICAgKFZpc2l0b3IucHJvdG90
eXBlLnZpc2l0UHJvdG9jb2xSZWYpOiBEZWxldGVkLgorICAgICAgICAoVmlzaXRvci5wcm90b3R5
cGUudmlzaXRQcm90b2NvbERlY2wpOiBEZWxldGVkLgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dTTC5tZDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9XcmFwQ2hlY2tlci5qczoKKyAgICAgICAgKFdyYXBDaGVja2VyKToKKyAgICAgICAgKFdy
YXBDaGVja2VyLnZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcik6IERlbGV0ZWQuCisgICAgICAg
IChXcmFwQ2hlY2tlci5wcm90b3R5cGUudmlzaXRGdW5jUGFyYW1ldGVyKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdyYXBDaGVja2VyLnByb3RvdHlwZS52aXNpdFR5cGVWYXJpYWJsZSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbDoKKworMjAxOC0w
OC0xMCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAg
IFtXU0xdIFRlcm5hcnkgZXhwcmVzc2lvbnMgYXBwZWFyIHRvIGJlIHVuaW1wbGVtZW50ZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODk4MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCB0
ZXJuYXJ5IHN0YXRlbWVudHMuIFRoZXNlIGNhbiBiZSBib3RoIGx2YWx1ZXMgYW5kIHJ2YWx1ZXMu
IChhID8gYiA6IGMgPyBkIDogZSkKKyAgICAgICAgaXMgcGFyc2VkIGFzIChhID8gYiA6IChjID8g
ZCA6IGUpKS4KKworICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qczoKKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzOgorICAgICAgICAoQ2hl
Y2tlci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6CisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvRXZhbHVhdG9yLmpzOgorICAgICAgICAoRXZhbHVhdG9yLnByb3Rv
dHlwZS52aXNpdFRlcm5hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Ob3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzOgorICAgICAgICAoTm9ybWFsVXNl
UHJvcGVydHlSZXNvbHZlci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lvbik6CisgICAg
ICAgIChOb3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9QYXJzZS5qczoKKyAgICAgICAgKHBhcnNlUG9zc2libGVUZXJuYXJ5Q29uZGl0
aW9uYWwpOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3BlcnR5UmVzb2x2
ZXIuanM6CisgICAgICAgIChQcm9wZXJ0eVJlc29sdmVyLnByb3RvdHlwZS5fdmlzaXRSVmFsdWVz
V2l0aGluTFZhbHVlLlJWYWx1ZUZpbmRlci5wcm90b3R5cGUudmlzaXRUZXJuYXJ5RXhwcmVzc2lv
bik6CisgICAgICAgIChQcm9wZXJ0eVJlc29sdmVyLnByb3RvdHlwZS5fdmlzaXRSVmFsdWVzV2l0
aGluTFZhbHVlLlJWYWx1ZUZpbmRlcik6CisgICAgICAgIChQcm9wZXJ0eVJlc29sdmVyLnByb3Rv
dHlwZS5fdmlzaXRSVmFsdWVzV2l0aGluTFZhbHVlKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9SZXdyaXRlci5qczoKKyAgICAgICAgKFJld3JpdGVyLnByb3RvdHlwZS52aXNp
dFRlcm5hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
UElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAqIFdl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zpc2l0b3IuanM6CisgICAgICAgIChWaXNpdG9yLnByb3Rv
dHlwZS52aXNpdFByb3RvY29sRGVjbCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvaW5kZXguaHRtbDoKKwogMjAxOC0wOC0xMCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgd2Via2l0LXBhdGNoIHNldHVwLWdpdC1jbG9uZSBzaG91bGQgc2V0
IEdpdCBjb3JlIGVkaXRvciB0byBjb21taXQtbG9nLWVkaXRvcgpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvQWxsLmpzCmluZGV4IDE1ZGQ3Y2NhYjk0NjkyYTMyYWNkMjdiOWRhYzk2YzhhOGY1NWQ2
NTguLmNmZDcxY2JhMzc4N2FlMjhiMmE3YmEwNjZkZjMxNGQ4ZmJhZjJjZjUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMKQEAgLTU4LDcgKzU4LDYgQEAgbG9hZCgiQ2hlY2tlci5q
cyIpOwogbG9hZCgiQ2xvbmVQcm9ncmFtLmpzIik7CiBsb2FkKCJDb21tYUV4cHJlc3Npb24uanMi
KTsKIGxvYWQoIkNvbnN0ZXhwckZvbGRlci5qcyIpOwotbG9hZCgiQ29uc3RleHByVHlwZVBhcmFt
ZXRlci5qcyIpOwogbG9hZCgiQ29udGludWUuanMiKTsKIGxvYWQoIkNvbnZlcnRQdHJUb0FycmF5
UmVmRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgiRGVyZWZlcmVuY2VFeHByZXNzaW9uLmpzIik7CkBA
IC03Nyw3ICs3Niw2IEBAIGxvYWQoIkV4cHJlc3Npb25GaW5kZXIuanMiKTsKIGxvYWQoIkV4dGVy
bmFsT3JpZ2luLmpzIik7CiBsb2FkKCJGaWVsZC5qcyIpOwogbG9hZCgiRmluZEhpZ2hab21iaWVz
LmpzIik7Ci1sb2FkKCJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIik7CiBsb2FkKCJGbGF0dGVu
ZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyIpOwogbG9hZCgiRmxvYXRMaXRlcmFsLmpzIik7CiBs
b2FkKCJGbG9hdExpdGVyYWxUeXBlLmpzIik7CkBAIC04NSw3ICs4Myw2IEBAIGxvYWQoIkZvbGRD
b25zdGV4cHJzLmpzIik7CiBsb2FkKCJGb3JMb29wLmpzIik7CiBsb2FkKCJGdW5jLmpzIik7CiBs
b2FkKCJGdW5jRGVmLmpzIik7Ci1sb2FkKCJGdW5jSW5zdGFudGlhdG9yLmpzIik7CiBsb2FkKCJG
dW5jUGFyYW1ldGVyLmpzIik7CiBsb2FkKCJGdW5jdGlvbkxpa2VCbG9jay5qcyIpOwogbG9hZCgi
SGlnaFpvbWJpZUZpbmRlci5qcyIpOwpAQCAtOTUsNyArOTIsNiBAQCBsb2FkKCJJbmRleEV4cHJl
c3Npb24uanMiKTsKIGxvYWQoIkluZmVyVHlwZXNGb3JDYWxsLmpzIik7CiBsb2FkKCJJbmxpbmUu
anMiKTsKIGxvYWQoIklubGluZXIuanMiKTsKLWxvYWQoIkluc3RhbnRpYXRlSW1tZWRpYXRlcy5q
cyIpOwogbG9hZCgiSW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsK
IGxvYWQoIkludHJpbnNpY3MuanMiKTsKQEAgLTExMiw5ICsxMDgsNyBAQCBsb2FkKCJOYW1lQ29u
dGV4dC5qcyIpOwogbG9hZCgiTmFtZUZpbmRlci5qcyIpOwogbG9hZCgiTmFtZVJlc29sdmVyLmpz
Iik7CiBsb2FkKCJOYXRpdmVGdW5jLmpzIik7Ci1sb2FkKCJOYXRpdmVGdW5jSW5zdGFuY2UuanMi
KTsKIGxvYWQoIk5hdGl2ZVR5cGUuanMiKTsKLWxvYWQoIk5hdGl2ZVR5cGVJbnN0YW5jZS5qcyIp
OwogbG9hZCgiTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcyIpOwogbG9hZCgiTnVsbExpdGVy
YWwuanMiKTsKIGxvYWQoIk51bGxUeXBlLmpzIik7CkBAIC0xMjUsMTAgKzExOSw2IEBAIGxvYWQo
IlByZXBhcmUuanMiKTsKIGxvYWQoIlByb2dyYW0uanMiKTsKIGxvYWQoIlByb2dyYW1XaXRoVW5u
ZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIik7CiBsb2FkKCJQcm9wZXJ0eVJlc29sdmVyLmpzIik7
Ci1sb2FkKCJQcm90b2NvbC5qcyIpOwotbG9hZCgiUHJvdG9jb2xEZWNsLmpzIik7Ci1sb2FkKCJQ
cm90b2NvbEZ1bmNEZWNsLmpzIik7Ci1sb2FkKCJQcm90b2NvbFJlZi5qcyIpOwogbG9hZCgiUHRy
VHlwZS5qcyIpOwogbG9hZCgiUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lvbi5qcyIpOwogbG9hZCgi
UmVjdXJzaW9uQ2hlY2tlci5qcyIpOwpAQCAtMTQ5LDE0ICsxMzksMTIgQEAgbG9hZCgiU3dpdGNo
Q2FzZS5qcyIpOwogbG9hZCgiU3dpdGNoU3RhdGVtZW50LmpzIik7CiBsb2FkKCJTeW50aGVzaXpl
RW51bUZ1bmN0aW9ucy5qcyIpOwogbG9hZCgiU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyIp
OworbG9hZCgiVGVybmFyeUV4cHJlc3Npb24uanMiKTsKIGxvYWQoIlRyYXBTdGF0ZW1lbnQuanMi
KTsKIGxvYWQoIlR5cGVEZWYuanMiKTsKIGxvYWQoIlR5cGVEZWZSZXNvbHZlci5qcyIpOwogbG9h
ZCgiVHlwZU9yVmFyaWFibGVSZWYuanMiKTsKLWxvYWQoIlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5q
cyIpOwogbG9hZCgiVHlwZVJlZi5qcyIpOwotbG9hZCgiVHlwZVZhcmlhYmxlLmpzIik7Ci1sb2Fk
KCJUeXBlVmFyaWFibGVUcmFja2VyLmpzIik7CiBsb2FkKCJUeXBlZFZhbHVlLmpzIik7CiBsb2Fk
KCJVaW50TGl0ZXJhbC5qcyIpOwogbG9hZCgiVWludExpdGVyYWxUeXBlLmpzIik7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BdXRvV3JhcHBlci5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9XcmFwcGVyLmpzCmluZGV4IDgwYWU3ZDkyYTRm
YTYyNjY2ZGIyYTJmZjUyMjBkMTQ5YTdmMzhlOWMuLjIxNmE3ZTJlMzNkZTk5MWIwNmFiNjM2ZGI1
Y2ZjYWI0MDVkOGVlMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0F1dG9XcmFwcGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0F1dG9X
cmFwcGVyLmpzCkBAIC0zNSwxMSArMzUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJl
d3JpdGVyIHsKICAgICAgICAgcmV0dXJuIG5vZGU7CiAgICAgfQogICAgIAotICAgIHZpc2l0Q29u
c3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFZhcmlhYmxl
UmVmLndyYXAobm9kZSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2Rl
KQogICAgIHsKICAgICAgICAgcmV0dXJuIFZhcmlhYmxlUmVmLndyYXAobm9kZSk7CkBAIC02MCwx
MSArNTUsNiBAQCBjbGFzcyBBdXRvV3JhcHBlciBleHRlbmRzIFJld3JpdGVyIHsKICAgICAgICAg
cmV0dXJuIFR5cGVSZWYud3JhcChub2RlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRUeXBlVmFy
aWFibGUobm9kZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBUeXBlUmVmLndyYXAobm9kZSk7Ci0g
ICAgfQotICAgIAogICAgIHZpc2l0R2VuZXJpY0xpdGVyYWxUeXBlKG5vZGUpCiAgICAgewogICAg
ICAgICByZXR1cm4gbm9kZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NhbGxFeHByZXNzaW9uLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2Fs
bEV4cHJlc3Npb24uanMKaW5kZXggYjVhZTBmZTQ5ZmNlZGM4ZmE3NmE2Njc5M2NmZTBjYjFmMDhi
NDU3MS4uZjA2NmFjMzIwYTlkY2U0MjFkNGY4ZWZkMzYzMzNhMjRlYTc2MmZiZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKKysrIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanMKQEAgLTI1LDEx
ICsyNSwxMCBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRz
IEV4cHJlc3Npb24gewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgdHlwZUFyZ3VtZW50
cywgYXJndW1lbnRMaXN0KQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgYXJndW1lbnRM
aXN0KQogICAgIHsKICAgICAgICAgc3VwZXIob3JpZ2luKTsKICAgICAgICAgdGhpcy5fbmFtZSA9
IG5hbWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAg
ICAgICB0aGlzLl9hcmd1bWVudExpc3QgPSBhcmd1bWVudExpc3Q7CiAgICAgICAgIHRoaXMuZnVu
YyA9IG51bGw7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGZhbHNlOwpAQCAtMzcsNzEgKzM2LDQx
IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAgfQogICAg
IAogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCB0eXBlQXJn
dW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAgIGdldCBhcmd1bWVu
dExpc3QoKSB7IHJldHVybiB0aGlzLl9hcmd1bWVudExpc3Q7IH0KICAgICBnZXQgaXNDYXN0KCkg
eyByZXR1cm4gdGhpcy5faXNDYXN0OyB9CiAgICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0
aGlzLl9yZXR1cm5UeXBlOyB9CiAgICAgCi0gICAgc3RhdGljIHJlc29sdmUob3JpZ2luLCBwb3Nz
aWJsZU92ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCBuYW1lLCB0eXBlQXJndW1lbnRz
LCBhcmd1bWVudExpc3QsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCisgICAgc3RhdGljIHJl
c29sdmUob3JpZ2luLCBwb3NzaWJsZU92ZXJsb2FkcywgbmFtZSwgYXJndW1lbnRMaXN0LCBhcmd1
bWVudFR5cGVzLCByZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgbGV0IGNhbGwgPSBuZXcgQ2Fs
bEV4cHJlc3Npb24ob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOwor
ICAgICAgICBsZXQgY2FsbCA9IG5ldyBDYWxsRXhwcmVzc2lvbihvcmlnaW4sIG5hbWUsIGFyZ3Vt
ZW50TGlzdCk7CiAgICAgICAgIGNhbGwuYXJndW1lbnRUeXBlcyA9IGFyZ3VtZW50VHlwZXMubWFw
KGFyZ3VtZW50ID0+IGFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7CiAgICAgICAg
IGNhbGwucG9zc2libGVPdmVybG9hZHMgPSBwb3NzaWJsZU92ZXJsb2FkczsKICAgICAgICAgaWYg
KHJldHVyblR5cGUpCiAgICAgICAgICAgICBjYWxsLnNldENhc3REYXRhKHJldHVyblR5cGUpOwot
ICAgICAgICByZXR1cm4ge2NhbGwsIHJlc3VsdFR5cGU6IGNhbGwucmVzb2x2ZShwb3NzaWJsZU92
ZXJsb2FkcywgdHlwZVBhcmFtZXRlcnNJblNjb3BlLCB0eXBlQXJndW1lbnRzKX07CisgICAgICAg
IHJldHVybiB7Y2FsbCwgcmVzdWx0VHlwZTogY2FsbC5yZXNvbHZlKHBvc3NpYmxlT3ZlcmxvYWRz
KX07CiAgICAgfQogICAgIAotICAgIHJlc29sdmUocG9zc2libGVPdmVybG9hZHMsIHR5cGVQYXJh
bWV0ZXJzSW5TY29wZSwgdHlwZUFyZ3VtZW50cykKKyAgICByZXNvbHZlKHBvc3NpYmxlT3Zlcmxv
YWRzKQogICAgIHsKICAgICAgICAgaWYgKCFwb3NzaWJsZU92ZXJsb2FkcykKICAgICAgICAgICAg
IHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3Qg
ZmluZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyB0aGlzLm5hbWUpOwogICAgICAgICAKLSAgICAg
ICAgbGV0IG92ZXJsb2FkID0gbnVsbDsKICAgICAgICAgbGV0IGZhaWx1cmVzID0gW107Ci0gICAg
ICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgdHlwZVBhcmFtZXRlcnNJblNjb3BlKSB7Ci0g
ICAgICAgICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgVHlwZVZhcmlhYmxlKSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGlmICghdHlwZVBhcmFtZXRl
ci5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxldCBz
aWduYXR1cmVzID0KLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnByb3RvY29sLnByb3Rv
Y29sRGVjbC5zaWduYXR1cmVzQnlOYW1lV2l0aFR5cGVWYXJpYWJsZSh0aGlzLm5hbWUsIHR5cGVQ
YXJhbWV0ZXIpOwotICAgICAgICAgICAgaWYgKCFzaWduYXR1cmVzKQotICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgb3ZlcmxvYWQgPSByZXNvbHZlT3ZlcmxvYWRJbXBsKHNp
Z25hdHVyZXMsIHRoaXMudHlwZUFyZ3VtZW50cywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJl
dHVyblR5cGUpOwotICAgICAgICAgICAgaWYgKG92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoCisg
ICAgICAgICAgICBwb3NzaWJsZU92ZXJsb2FkcywgdGhpcy5hcmd1bWVudFR5cGVzLCB0aGlzLnJl
dHVyblR5cGUpOworICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKICAgICAgICAgICAgIGZh
aWx1cmVzLnB1c2goLi4ub3ZlcmxvYWQuZmFpbHVyZXMpOwotICAgICAgICAgICAgb3ZlcmxvYWQg
PSBudWxsOwotICAgICAgICB9Ci0gICAgICAgIGlmICghb3ZlcmxvYWQpIHsKLSAgICAgICAgICAg
IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAgICAgICAgICBwb3NzaWJs
ZU92ZXJsb2FkcywgdGhpcy50eXBlQXJndW1lbnRzLCB0aGlzLmFyZ3VtZW50VHlwZXMsIHRoaXMu
cmV0dXJuVHlwZSk7Ci0gICAgICAgICAgICBpZiAoIW92ZXJsb2FkLmZ1bmMpIHsKLSAgICAgICAg
ICAgICAgICBmYWlsdXJlcy5wdXNoKC4uLm92ZXJsb2FkLmZhaWx1cmVzKTsKLSAgICAgICAgICAg
ICAgICBsZXQgbWVzc2FnZSA9ICJEaWQgbm90IGZpbmQgZnVuY3Rpb24gbmFtZWQgIiArIHRoaXMu
bmFtZSArICIgZm9yIGNhbGwgd2l0aCAiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnR5cGVB
cmd1bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJ0eXBlIGFy
Z3VtZW50cyA8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IGFuZCAiOwotICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgKz0gImFyZ3VtZW50IHR5cGVzICgiICsgdGhpcy5hcmd1bWVudFR5cGVzICsg
IikiOwotICAgICAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCi0gICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0iIGFuZCByZXR1cm4gdHlwZSAiICsgdGhpcy5yZXR1cm5UeXBlOwot
ICAgICAgICAgICAgICAgIGlmIChmYWlsdXJlcy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2UgKz0gIiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQot
ICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHRoaXMub3JpZ2luLm9yaWdpblN0
cmluZywgbWVzc2FnZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZm9yIChs
ZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBs
ZXQgdHlwZUFyZ3VtZW50VHlwZSA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAgICAgICAgICBsZXQg
dHlwZVBhcmFtZXRlciA9IG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnNbaV07Ci0gICAgICAg
ICAgICBpZiAoISh0eXBlUGFyYW1ldGVyIGluc3RhbmNlb2YgQ29uc3RleHByVHlwZVBhcmFtZXRl
cikpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBpZiAoIXR5cGVQYXJh
bWV0ZXIudHlwZS5lcXVhbHNXaXRoQ29tbWl0KHR5cGVBcmd1bWVudFR5cGUpKQotICAgICAgICAg
ICAgICAgIHRocm93IG5ldyBFcnJvcigiQXQgIiArIHRoaXMub3JpZ2luLm9yaWdpblN0cmluZyAr
ICIgY29uc3RleHByIHR5cGUgYXJndW1lbnQgYW5kIHBhcmFtZXRlciB0eXBlcyBub3QgZXF1YWw6
IGFyZ3VtZW50ID0gIiArIHR5cGVBcmd1bWVudFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgdHlw
ZVBhcmFtZXRlci50eXBlKTsKKyAgICAgICAgICAgIGxldCBtZXNzYWdlID0gIkRpZCBub3QgZmlu
ZCBmdW5jdGlvbiBuYW1lZCAiICsgdGhpcy5uYW1lICsgIiBmb3IgY2FsbCB3aXRoICI7CisgICAg
ICAgICAgICBtZXNzYWdlICs9ICJhcmd1bWVudCB0eXBlcyAoIiArIHRoaXMuYXJndW1lbnRUeXBl
cyArICIpIjsKKyAgICAgICAgICAgIGlmICh0aGlzLnJldHVyblR5cGUpCisgICAgICAgICAgICAg
ICAgbWVzc2FnZSArPSIgYW5kIHJldHVybiB0eXBlICIgKyB0aGlzLnJldHVyblR5cGU7CisgICAg
ICAgICAgICBpZiAoZmFpbHVyZXMubGVuZ3RoKQorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0g
IiwgYnV0IGNvbnNpZGVyZWQ6XG4iICsgZmFpbHVyZXMuam9pbigiXG4iKQorICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBtZXNzYWdlKTsK
ICAgICAgICAgfQogICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXJndW1lbnRUeXBl
cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZSA9IHRoaXMuYXJn
dW1lbnRUeXBlc1tpXTsKLSAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQu
ZnVuYy5wYXJhbWV0ZXJzW2ldLnR5cGUuc3Vic3RpdHV0ZVRvVW5pZmljYXRpb24oCi0gICAgICAg
ICAgICAgICAgb3ZlcmxvYWQuZnVuYy50eXBlUGFyYW1ldGVycywgb3ZlcmxvYWQudW5pZmljYXRp
b25Db250ZXh0KTsKKyAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJUeXBlID0gb3ZlcmxvYWQuZnVu
Yy5wYXJhbWV0ZXJzW2ldLnR5cGU7CiAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXJndW1lbnRU
eXBlLmVxdWFsc1dpdGhDb21taXQocGFyYW1ldGVyVHlwZSk7CiAgICAgICAgICAgICBpZiAoIXJl
c3VsdCkKICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0ICIgKyB0aGlzLm9yaWdp
bi5vcmlnaW5TdHJpbmcgKyAiIGFyZ3VtZW50IGFuZCBwYXJhbWV0ZXIgdHlwZXMgbm90IGVxdWFs
IGFmdGVyIHR5cGUgYXJndW1lbnQgc3Vic3RpdHV0aW9uOiBhcmd1bWVudCA9ICIgKyBhcmd1bWVu
dFR5cGUgKyAiLCBwYXJhbWV0ZXIgPSAiICsgcGFyYW1ldGVyVHlwZSk7CkBAIC0xMTIsMTAgKzgx
LDcgQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICByZXNv
bHZlVG9PdmVybG9hZChvdmVybG9hZCkKICAgICB7CiAgICAgICAgIHRoaXMuZnVuYyA9IG92ZXJs
b2FkLmZ1bmM7Ci0gICAgICAgIHRoaXMuYWN0dWFsVHlwZUFyZ3VtZW50cyA9IG92ZXJsb2FkLnR5
cGVBcmd1bWVudHMubWFwKHR5cGVBcmd1bWVudCA9PiB0eXBlQXJndW1lbnQgaW5zdGFuY2VvZiBU
eXBlID8gdHlwZUFyZ3VtZW50LnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSA6IHR5cGVBcmd1bWVu
dCk7Ci0gICAgICAgIHRoaXMuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IHRoaXMu
YWN0dWFsVHlwZUFyZ3VtZW50czsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG92ZXJsb2FkLmZ1bmMu
cmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgIG92ZXJsb2Fk
LmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9uQ29udGV4dCk7CisgICAg
ICAgIGxldCByZXN1bHQgPSBvdmVybG9hZC5mdW5jLnJldHVyblR5cGU7CiAgICAgICAgIGlmICgh
cmVzdWx0KQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHJldHVybiB0eXBlIik7
CiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7CkBAIC0x
MjUsMTEgKzkxLDEwIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7
CiAgICAgCiAgICAgYmVjb21lQ2FzdChyZXR1cm5UeXBlKQogICAgIHsKLSAgICAgICAgdGhpcy5f
cmV0dXJuVHlwZSA9IG5ldyBUeXBlUmVmKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHRoaXMuX3R5
cGVBcmd1bWVudHMpOworICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gbmV3IFR5cGVSZWYodGhp
cy5vcmlnaW4sIHRoaXMubmFtZSk7CiAgICAgICAgIHRoaXMuX3JldHVyblR5cGUudHlwZSA9IHJl
dHVyblR5cGU7CiAgICAgICAgIHRoaXMuX25hbWUgPSAib3BlcmF0b3IgY2FzdCI7CiAgICAgICAg
IHRoaXMuX2lzQ2FzdCA9IHRydWU7Ci0gICAgICAgIHRoaXMuX3R5cGVBcmd1bWVudHMgPSBbXTsK
ICAgICB9CiAgICAgCiAgICAgc2V0Q2FzdERhdGEocmV0dXJuVHlwZSkKQEAgLTE0MSw4ICsxMDYs
NiBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIHRvU3Ry
aW5nKCkKICAgICB7CiAgICAgICAgIHJldHVybiAodGhpcy5pc0Nhc3QgPyAib3BlcmF0b3IgIiAr
IHRoaXMucmV0dXJuVHlwZSA6IHRoaXMubmFtZSkgKwotICAgICAgICAgICAgIjwiICsgdGhpcy50
eXBlQXJndW1lbnRzICsgIj4iICsKLSAgICAgICAgICAgICh0aGlzLmFjdHVhbFR5cGVBcmd1bWVu
dHMgPyAiPDwiICsgdGhpcy5hY3R1YWxUeXBlQXJndW1lbnRzICsgIj4+IiA6ICIiKSArCiAgICAg
ICAgICAgICAiKCIgKyB0aGlzLmFyZ3VtZW50TGlzdCArICIpIjsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRnVuY3Rpb24uanMKaW5kZXggZjBmMDM5ZjU0
NjJkMDc4MWQ4MmIzNDY0Yzg3NDc4NzE0YzBhMTczNy4uNzQ5NTc2MGYyYzVkODFkODM5NDU2Y2Rl
NGM0NTk3NzBiY2MzMzBmYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQ2FsbEZ1bmN0aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Nh
bGxGdW5jdGlvbi5qcwpAQCAtMjUsMTcgKzI1LDE3IEBACiAidXNlIHN0cmljdCI7CiAKIC8vIFRo
aXMgYWxsb3dzIHlvdSB0byBwYXNzIHN0cnVjdHMgYW5kIGFycmF5cyBpbi1wbGFjZSwgYnV0IGl0
J3MgYSBtb3JlIGFubm95aW5nIEFQSS4KLWZ1bmN0aW9uIGNhbGxGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpCitmdW5jdGlvbiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRMaXN0KQogewogICAgIGxldCBhcmd1bWVudFR5cGVzID0g
YXJndW1lbnRMaXN0Lm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC50eXBlKTsKLSAgICBsZXQgZnVu
Y09yRmFpbHVyZXMgPSByZXNvbHZlSW5saW5lZEZ1bmN0aW9uKHByb2dyYW0sIG5hbWUsIHR5cGVB
cmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHRydWUpOworICAgIGxldCBmdW5jT3JGYWlsdXJlcyA9
IHJlc29sdmVJbmxpbmVkRnVuY3Rpb24ocHJvZ3JhbSwgbmFtZSwgYXJndW1lbnRUeXBlcywgdHJ1
ZSk7CiAgICAgaWYgKCEoZnVuY09yRmFpbHVyZXMgaW5zdGFuY2VvZiBGdW5jKSkgewogICAgICAg
ICBsZXQgZmFpbHVyZXMgPSBmdW5jT3JGYWlsdXJlczsKLSAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNhbm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiAr
IG5hbWUgKyAiPCIgKyB0eXBlQXJndW1lbnRzICsgIj4oIiArIGFyZ3VtZW50TGlzdCArICIpIiAr
IChmYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBmYWlsdXJlcy5qb2luKCJcbiIpIDog
IiIpKTsKKyAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IoIjxjYWxsRnVuY3Rpb24+IiwgIkNh
bm5vdCByZXNvbHZlIGZ1bmN0aW9uIGNhbGwgIiArIG5hbWUgKyAiKCIgKyBhcmd1bWVudExpc3Qg
KyAiKSIgKyAoZmFpbHVyZXMubGVuZ3RoID8gIjsgdHJpZWQ6XG4iICsgZmFpbHVyZXMuam9pbigi
XG4iKSA6ICIiKSk7CiAgICAgfQogICAgIGxldCBmdW5jID0gZnVuY09yRmFpbHVyZXM7CiAgICAg
Zm9yIChsZXQgaSA9IDA7IGkgPCBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgbGV0IHR5cGUgPSBhcmd1bWVudFR5cGVzW2ldLmluc3RhbnRpYXRlZFR5cGU7CisgICAgICAg
IGxldCB0eXBlID0gYXJndW1lbnRUeXBlc1tpXTsKICAgICAgICAgdHlwZS52aXNpdChuZXcgU3Ry
dWN0TGF5b3V0QnVpbGRlcigpKTsKICAgICAgICAgZnVuYy5wYXJhbWV0ZXJzW2ldLmVQdHIuY29w
eUZyb20oYXJndW1lbnRMaXN0W2ldLmVQdHIsIHR5cGUuc2l6ZSk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NoZWNrZXIuanMKaW5kZXggOGQ1NWM1MGQ4MzZjMTU0ODZmZDI1
ODBjNThlOTYwNmNhZDU5NmVjYi4uMzcyZDg2YzZlNzYxMTcwNGNmZjE2ODNmMDRlMTY3YTA2ZmZl
NzNiYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ2hlY2tlci5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DaGVja2VyLmpzCkBAIC00Myw4
ICs0Myw2IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAg
ICAgIGZvciAobGV0IHR5cGUgb2Ygbm9kZS50eXBlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIGRv
U3RhdGVtZW50KHR5cGUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBvZiBub2RlLnByb3Rv
Y29scy52YWx1ZXMoKSkKLSAgICAgICAgICAgIGRvU3RhdGVtZW50KHByb3RvY29sKTsKICAgICAg
ICAgZm9yIChsZXQgZnVuY3Mgb2Ygbm9kZS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAg
ICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY3MpIHsKICAgICAgICAgICAgICAgICB0aGlzLnZpc2l0
RnVuYyhmdW5jKTsKQEAgLTU5LDggKzU3LDYgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0
b3IgewogICAgIF9jaGVja1NoYWRlclR5cGUobm9kZSkKICAgICB7CiAgICAgICAgIC8vIEZJWE1F
OiBSZWxheCB0aGVzZSBjaGVja3Mgb25jZSB3ZSBoYXZlIGltcGxlbWVudGVkIHN1cHBvcnQgZm9y
IHRleHR1cmVzIGFuZCBzYW1wbGVycy4KLSAgICAgICAgaWYgKG5vZGUudHlwZVBhcmFtZXRlcnMu
bGVuZ3RoICE9IDApCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdp
bi5vcmlnaW5TdHJpbmcsICJFbnRyeSBwb2ludCAiICsgbm9kZS5uYW1lICsgIiBtdXN0IG5vdCBo
YXZlIHR5cGUgYXJndW1lbnRzLiIpOwogICAgICAgICBsZXQgc2hhZGVyRnVuYyA9IG5vZGU7CiAg
ICAgICAgIHN3aXRjaCAobm9kZS5zaGFkZXJUeXBlKSB7CiAgICAgICAgIGNhc2UgInZlcnRleCI6
CkBAIC04NCwxNSArODAsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
ICAgIGlmICghZnVuYy5uYW1lLnN0YXJ0c1dpdGgoIm9wZXJhdG9yIikpCiAgICAgICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkJhZCBvcGVyYXRvciBvdmVybG9hZCBuYW1lOiAiICsgZnVuYy5uYW1l
KTsKICAgICAgICAgCi0gICAgICAgIGxldCB0eXBlVmFyaWFibGVUcmFja2VyID0gbmV3IFR5cGVW
YXJpYWJsZVRyYWNrZXIoKTsKLSAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBmdW5j
LnBhcmFtZXRlclR5cGVzKQotICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0eXBlVmFy
aWFibGVUcmFja2VyKTsKLSAgICAgICAgTm9kZS52aXNpdChmdW5jLnJldHVyblR5cGVGb3JPdmVy
bG9hZFJlc29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAgICAgICBmb3IgKGxldCB0
eXBlUGFyYW1ldGVyIG9mIGZ1bmMudHlwZVBhcmFtZXRlcnMpIHsKLSAgICAgICAgICAgIGlmICgh
dHlwZVZhcmlhYmxlVHJhY2tlci5zZXQuaGFzKHR5cGVQYXJhbWV0ZXIpKQotICAgICAgICAgICAg
ICAgIHRocm93IG5ldyBXVHlwZUVycm9yKHR5cGVQYXJhbWV0ZXIub3JpZ2luLm9yaWdpblN0cmlu
ZywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsgIiB0byBvcGVyYXRvciAiICsg
ZnVuYy50b0RlY2xTdHJpbmcoKSArICIgaXMgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJh
bWV0ZXJzIik7Ci0gICAgICAgIH0KLSAgICAgICAgCiAgICAgICAgIGxldCBjaGVja0dldHRlciA9
IChraW5kKSA9PiB7CiAgICAgICAgICAgICBsZXQgbnVtRXhwZWN0ZWRQYXJhbWV0ZXJzID0ga2lu
ZCA9PSAiaW5kZXgiID8gMiA6IDE7CiAgICAgICAgICAgICBpZiAoZnVuYy5wYXJhbWV0ZXJzLmxl
bmd0aCAhPSBudW1FeHBlY3RlZFBhcmFtZXRlcnMpCkBAIC0xMTUsMTEgKzEwMiwxMCBAQCBjbGFz
cyBDaGVja2VyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICBpZiAoIWdldHRlckZ1bmNz
KQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdp
blN0cmluZywgIkV2ZXJ5IHNldHRlciBtdXN0IGhhdmUgYSBtYXRjaGluZyBnZXR0ZXIsIGJ1dCBk
aWQgbm90IGZpbmQgYW55IGZ1bmN0aW9uIG5hbWVkICIgKyBnZXR0ZXJOYW1lICsgIiB0byBtYXRj
aCAiICsgZnVuYy5uYW1lKTsKICAgICAgICAgICAgIGxldCBhcmd1bWVudFR5cGVzID0gZnVuYy5w
YXJhbWV0ZXJUeXBlcy5zbGljZSgwLCBudW1FeHBlY3RlZFBhcmFtZXRlcnMgLSAxKTsKLSAgICAg
ICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29sdmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIFtd
LCBhcmd1bWVudFR5cGVzLCBudWxsKTsKKyAgICAgICAgICAgIGxldCBvdmVybG9hZCA9IHJlc29s
dmVPdmVybG9hZEltcGwoZ2V0dGVyRnVuY3MsIGFyZ3VtZW50VHlwZXMsIG51bGwpOwogICAgICAg
ICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKGZ1bmMub3JpZ2luLm9yaWdpblN0cmluZywgIkRpZCBub3QgZmluZCBmdW5jdGlvbiBu
YW1lZCAiICsgZnVuYy5uYW1lICsgIiB3aXRoIGFyZ3VtZW50cyAiICsgYXJndW1lbnRUeXBlcyAr
IChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiOyB0cmllZDpcbiIgKyBvdmVybG9hZC5mYWls
dXJlcy5qb2luKCJcbiIpIDogIiIpKTsKLSAgICAgICAgICAgIGxldCByZXN1bHRUeXBlID0gb3Zl
cmxvYWQuZnVuYy5yZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAg
ICAgICAgIG92ZXJsb2FkLmZ1bmMudHlwZVBhcmFtZXRlcnMsIG92ZXJsb2FkLnVuaWZpY2F0aW9u
Q29udGV4dCk7CisgICAgICAgICAgICBsZXQgcmVzdWx0VHlwZSA9IG92ZXJsb2FkLmZ1bmMucmV0
dXJuVHlwZTsKICAgICAgICAgICAgIGlmICghcmVzdWx0VHlwZS5lcXVhbHModmFsdWVUeXBlKSkK
ICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihmdW5jLm9yaWdpbi5vcmlnaW5T
dHJpbmcsICJTZXR0ZXIgYW5kIGdldHRlciBtdXN0IGFncmVlIG9uIHZhbHVlIHR5cGUgKGdldHRl
ciBhdCAiICsgb3ZlcmxvYWQuZnVuYy5vcmlnaW4ub3JpZ2luU3RyaW5nICsgIiBzYXlzICIgKyBy
ZXN1bHRUeXBlICsgIiB3aGlsZSB0aGlzIHNldHRlciBzYXlzICIgKyB2YWx1ZVR5cGUgKyAiKSIp
OwogICAgICAgICB9OwpAQCAtMjExLDIzICsxOTcsNiBAQCBjbGFzcyBDaGVja2VyIGV4dGVuZHMg
VmlzaXRvciB7CiAgICAgewogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2Rl
KQotICAgIHsKLSAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIG5vZGUuc2lnbmF0dXJlcykg
ewotICAgICAgICAgICAgbGV0IHR5cGVWYXJpYWJsZVRyYWNrZXIgPSBuZXcgVHlwZVZhcmlhYmxl
VHJhY2tlcigpOwotICAgICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyVHlwZSBvZiBzaWduYXR1
cmUucGFyYW1ldGVyVHlwZXMpCi0gICAgICAgICAgICAgICAgcGFyYW1ldGVyVHlwZS52aXNpdCh0
eXBlVmFyaWFibGVUcmFja2VyKTsKLSAgICAgICAgICAgIE5vZGUudmlzaXQoc2lnbmF0dXJlLnJl
dHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24sIHR5cGVWYXJpYWJsZVRyYWNrZXIpOwotICAg
ICAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBzaWduYXR1cmUudHlwZVBhcmFtZXRl
cnMpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyh0
eXBlUGFyYW1ldGVyKSkKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgV1R5cGVFcnJvcih0eXBl
UGFyYW1ldGVyLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJUeXBlIHBhcmFtZXRlciB0byBwcm90b2Nv
bCBzaWduYXR1cmUgbm90IGluZmVycmFibGUgZnJvbSB2YWx1ZSBwYXJhbWV0ZXJzIik7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXR5cGVWYXJpYWJsZVRyYWNrZXIuc2V0Lmhhcyhu
b2RlLnR5cGVWYXJpYWJsZSkpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
c2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJQcm90b2NvbCdzIHR5cGUgdmFyaWFibGUg
KCIgKyBub2RlLm5hbWUgKyAiKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZTogIiArIHNpZ25h
dHVyZSk7Ci0gICAgICAgICAgICB0aGlzLl9jaGVja09wZXJhdG9yT3ZlcmxvYWQoc2lnbmF0dXJl
LCBuYW1lID0+IG5vZGUuc2lnbmF0dXJlc0J5TmFtZShuYW1lKSk7Ci0gICAgICAgIH0KLSAgICB9
Ci0gICAgCiAgICAgdmlzaXRFbnVtVHlwZShub2RlKQogICAgIHsKICAgICAgICAgbm9kZS5iYXNl
VHlwZS52aXNpdCh0aGlzKTsKQEAgLTI3OCwyOSArMjQ3LDEyIEBAIGNsYXNzIENoZWNrZXIgZXh0
ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3Jp
Z2luLm9yaWdpblN0cmluZywgIkVudW0gZG9lcyBub3QgaGF2ZSBhIG1lbWJlciB3aXRoIHRoZSB2
YWx1ZSB6ZXJvIik7CiAgICAgfQogICAgIAotICAgIF9jaGVja1R5cGVBcmd1bWVudHMob3JpZ2lu
LCB0eXBlUGFyYW1ldGVycywgdHlwZUFyZ3VtZW50cykKLSAgICB7Ci0gICAgICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgdHlwZVBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGxl
dCBhcmd1bWVudElzVHlwZSA9IHR5cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAg
ICAgICAgICAgbGV0IHJlc3VsdCA9IHR5cGVBcmd1bWVudHNbaV0udmlzaXQodGhpcyk7Ci0gICAg
ICAgICAgICBpZiAoYXJndW1lbnRJc1R5cGUpIHsKLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0
ID0gdHlwZUFyZ3VtZW50c1tpXS5pbmhlcml0cyh0eXBlUGFyYW1ldGVyc1tpXS5wcm90b2NvbCk7
Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgICAgICAg
ICB0aHJvdyBuZXcgV1R5cGVFcnJvcihvcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSBhcmd1bWVu
dCBkb2VzIG5vdCBpbmhlcml0IHByb3RvY29sOiAiICsgcmVzdWx0LnJlYXNvbik7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmVxdWFsc1dpdGhDb21t
aXQodHlwZVBhcmFtZXRlcnNbaV0udHlwZSkpCi0gICAgICAgICAgICAgICAgICAgIHRocm93IG5l
dyBXVHlwZUVycm9yKG9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyB0eXBlIGZvciBjb25zdGV4
cHIiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICAKICAgICB2aXNpdFR5
cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIGlmICghbm9kZS50eXBlKQogICAgICAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJUeXBlIHJlZmVyZW5jZSB3aXRob3V0IGEgdHlwZSBpbiBjaGVja2Vy
OiAiICsgbm9kZSArICIgYXQgIiArIG5vZGUub3JpZ2luKTsKICAgICAgICAgaWYgKCEobm9kZS50
eXBlIGluc3RhbmNlb2YgU3RydWN0VHlwZSkpCiAgICAgICAgICAgICBub2RlLnR5cGUudmlzaXQo
dGhpcyk7Ci0gICAgICAgIHRoaXMuX2NoZWNrVHlwZUFyZ3VtZW50cyhub2RlLm9yaWdpbiwgbm9k
ZS50eXBlLnR5cGVQYXJhbWV0ZXJzLCBub2RlLnR5cGVBcmd1bWVudHMpOwogICAgIH0KICAgICAK
ICAgICB2aXNpdEFycmF5VHlwZShub2RlKQpAQCAtNDI2LDggKzM3OCw4IEBAIGNsYXNzIENoZWNr
ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgICAg
ICBsZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBu
b2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUdldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRl
bWVudC50eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmdldEZ1bmNOYW1lLCBb
XSwgW25vZGUuYmFzZSwgLi4uZXh0cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVz
XSwgbnVsbCk7CisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2libGVHZXRP
dmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5nZXRGdW5jTmFtZSwgW25vZGUuYmFzZSwg
Li4uZXh0cmFBcmdzXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzXSwgbnVsbCk7CiAgICAg
ICAgICAgICBub2RlLmNhbGxGb3JHZXQgPSByZXN1bHQuY2FsbDsKICAgICAgICAgICAgIG5vZGUu
cmVzdWx0VHlwZUZvckdldCA9IHJlc3VsdC5yZXN1bHRUeXBlOwogICAgICAgICB9IGNhdGNoIChl
KSB7CkBAIC00NDAsOCArMzkyLDggQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3Igewog
ICAgICAgICAgICAgbGV0IGJhc2VGb3JBbmQgPSBiYXNlVHlwZS5hcmd1bWVudEZvckFuZE92ZXJs
b2FkKG5vZGUub3JpZ2luLCBub2RlLmJhc2UpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBs
ZXQgcmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2Rl
Lm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVu
dC50eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbXSwg
W2Jhc2VGb3JBbmQsIC4uLmV4dHJhQXJnc10sIFt0eXBlRm9yQW5kLCAuLi5leHRyYUFyZ1R5cGVz
XSwKKyAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5wb3NzaWJsZUFuZE92ZXJsb2Fk
cywKKyAgICAgICAgICAgICAgICBub2RlLmFuZEZ1bmNOYW1lLCBbYmFzZUZvckFuZCwgLi4uZXh0
cmFBcmdzXSwgW3R5cGVGb3JBbmQsIC4uLmV4dHJhQXJnVHlwZXNdLAogICAgICAgICAgICAgICAg
IG51bGwpOwogICAgICAgICAgICAgbm9kZS5jYWxsRm9yQW5kID0gcmVzdWx0LmNhbGw7CiAgICAg
ICAgICAgICBub2RlLnJlc3VsdFR5cGVGb3JBbmQgPSByZXN1bHQucmVzdWx0VHlwZS51bmlmeU5v
ZGUucmV0dXJuVHlwZUZyb21BbmRPdmVybG9hZChub2RlLm9yaWdpbik7CkBAIC00NjUsOSArNDE3
LDkgQEAgY2xhc3MgQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICAgICAgdGhyb3cg
bmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiUmVzdWx0IHR5cGUgcmVz
b2x2ZWQgYnktdmFsdWUgKCIgKyBub2RlLnJlc3VsdFR5cGVGb3JHZXQgKyAiKSBkb2VzIG5vdCBt
YXRjaCByZXN1bHQgdHlwZSByZXNvbHZlZCBieS1wb2ludGVyICgiICsgbm9kZS5yZXN1bHRUeXBl
Rm9yQW5kICsgIikiKTsKICAgICAgICAgCiAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICBsZXQg
cmVzdWx0ID0gQ2FsbEV4cHJlc3Npb24ucmVzb2x2ZSgKLSAgICAgICAgICAgICAgICBub2RlLm9y
aWdpbiwgbm9kZS5wb3NzaWJsZVNldE92ZXJsb2FkcywgdGhpcy5fY3VycmVudFN0YXRlbWVudC50
eXBlUGFyYW1ldGVycywKLSAgICAgICAgICAgICAgICBub2RlLnNldEZ1bmNOYW1lLCBbXSwgW25v
ZGUuYmFzZSwgLi4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVz
LCBub2RlLnJlc3VsdFR5cGVdLCBudWxsKTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IENhbGxFeHBy
ZXNzaW9uLnJlc29sdmUoCisgICAgICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUucG9zc2li
bGVTZXRPdmVybG9hZHMsCisgICAgICAgICAgICAgICAgbm9kZS5zZXRGdW5jTmFtZSwgW25vZGUu
YmFzZSwgLi4uZXh0cmFBcmdzLCBudWxsXSwgW2Jhc2VUeXBlLCAuLi5leHRyYUFyZ1R5cGVzLCBu
b2RlLnJlc3VsdFR5cGVdLCBudWxsKTsKICAgICAgICAgICAgIG5vZGUuY2FsbEZvclNldCA9IHJl
c3VsdC5jYWxsOwogICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0VHlwZS5lcXVhbHMoYmFz
ZVR5cGUpKQogICAgICAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUub3JpZ2lu
Lm9yaWdpblN0cmluZywgIlJlc3VsdCB0eXBlIG9mIHNldHRlciAiICsgcmVzdWx0LmNhbGwuZnVu
YyArICIgaXMgbm90IHRoZSBiYXNlIHR5cGUgIiArIGJhc2VUeXBlKTsKQEAgLTY3MiwxMCArNjI0
LDI0IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgICAgIHJlc3Vs
dCA9IGV4cHJlc3Npb24udmlzaXQodGhpcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQorCisgICAgdmlzaXRUZXJuYXJ5RXhwcmVzc2lvbihub2RlKQorICAgIHsKKyAgICAgICAgdGhp
cy5fcmVxdWlyZUJvb2wobm9kZS5wcmVkaWNhdGUpOworICAgICAgICBsZXQgYm9keVR5cGUgPSBu
b2RlLmJvZHlFeHByZXNzaW9uLnZpc2l0KHRoaXMpOworICAgICAgICBsZXQgZWxzZVR5cGUgPSBu
b2RlLmVsc2VFeHByZXNzaW9uLnZpc2l0KHRoaXMpOworICAgICAgICBpZiAoIWJvZHlUeXBlKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUZXJuYXJ5IGV4cHJlc3Npb24gYm9keSBoYXMg
bm8gdHlwZTogIiArIG5vZGUuYm9keUV4cHJlc3Npb24pOworICAgICAgICBpZiAoIWVsc2VUeXBl
KQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUZXJuYXJ5IGV4cHJlc3Npb24gZWxzZSBo
YXMgbm8gdHlwZTogIiArIG5vZGUuZWxzZUV4cHJlc3Npb24pOworICAgICAgICBpZiAoIWJvZHlU
eXBlLmVxdWFsc1dpdGhDb21taXQoZWxzZVR5cGUpKQorICAgICAgICAgICAgdGhyb3cgbmV3IFdU
eXBlRXJyb3IoIkJvZHkgYW5kIGVsc2UgY2xhdXNlIG9mIHRlcm5hcnkgc3RhdGVtZW50IGRvbid0
IGhhdmUgdGhlIHNhbWUgdHlwZTogIiArIG5vZGUpOworICAgICAgICBub2RlLmlzTFZhbHVlID0g
bm9kZS5ib2R5RXhwcmVzc2lvbi5pc0xWYWx1ZSAmJiBub2RlLmVsc2VFeHByZXNzaW9uLmlzTFZh
bHVlOworICAgICAgICByZXR1cm4gYm9keVR5cGU7CisgICAgfQogICAgIAogICAgIHZpc2l0Q2Fs
bEV4cHJlc3Npb24obm9kZSkKICAgICB7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gbm9k
ZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50LnZpc2l0KHRo
aXMpKTsKICAgICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50TGlzdC5tYXAo
YXJndW1lbnQgPT4gewogICAgICAgICAgICAgbGV0IG5ld0FyZ3VtZW50ID0gYXJndW1lbnQudmlz
aXQodGhpcyk7CiAgICAgICAgICAgICBpZiAoIW5ld0FyZ3VtZW50KQpAQCAtNjg3LDcgKzY1Myw3
IEBAIGNsYXNzIENoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgaWYgKG5vZGUucmV0
dXJuVHlwZSkKICAgICAgICAgICAgIG5vZGUucmV0dXJuVHlwZS52aXNpdCh0aGlzKTsKIAotICAg
ICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVybG9hZHMsIHRo
aXMuX2N1cnJlbnRTdGF0ZW1lbnQudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOworICAg
ICAgICBsZXQgcmVzdWx0ID0gbm9kZS5yZXNvbHZlKG5vZGUucG9zc2libGVPdmVybG9hZHMpOwog
ICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL0NvbnN0ZXhwckZvbGRlci5qcwppbmRleCAxZTVhZDY2MTViMzkyNDNjMDZh
MGM0NWFlZjc2MzRmNjM3NjUzNzUwLi44MmUyM2Y2MWI4YWQzYjk2YTdlNWYzZmNmZmI1YzgwMTM1
MzhlYjA2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Db25zdGV4
cHJGb2xkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ29uc3RleHBy
Rm9sZGVyLmpzCkBAIC0zNCwxMCArMzQsOSBAQCBjbGFzcyBDb25zdGV4cHJGb2xkZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgc3VwZXIudmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKTsKICAg
ICAgICAgCiAgICAgICAgIGlmIChub2RlLm5hbWUgPT0gIm9wZXJhdG9yLSIKLSAgICAgICAgICAg
ICYmICFub2RlLnR5cGVBcmd1bWVudHMubGVuZ3RoCiAgICAgICAgICAgICAmJiBub2RlLmFyZ3Vt
ZW50TGlzdC5sZW5ndGggPT0gMQotICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0u
dW5pZnlOb2RlLmlzQ29uc3RleHByCi0gICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50TGlzdFsw
XS51bmlmeU5vZGUubmVnQ29uc3RleHByKSB7CisgICAgICAgICAgICAmJiBub2RlLmFyZ3VtZW50
TGlzdFswXS5pc0NvbnN0ZXhwcgorICAgICAgICAgICAgJiYgbm9kZS5hcmd1bWVudExpc3RbMF0u
bmVnQ29uc3RleHByKSB7CiAgICAgICAgICAgICBub2RlLmJlY29tZShub2RlLmFyZ3VtZW50TGlz
dFswXS51bmlmeU5vZGUubmVnQ29uc3RleHByKG5vZGUub3JpZ2luKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9Db25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlM2MxODI2ZWQ1NWYzZmU1NmY3ZTBlZDJhMDNkZmRhMDI4ZGE1YjM5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NvbnN0ZXhwclR5cGVQYXJhbWV0ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIgZXh0ZW5kcyBWYWx1
ZSB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlKQotICAgIHsKLSAgICAgICAg
c3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9u
YW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fdHlwZSA9IHR5cGU7Ci0gICAgfQotICAgIAotICAg
IGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KLSAgICBnZXQgbmFtZSgpIHsg
cmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGU7
IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgZ2V0IGlzVW5p
ZmlhYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIGdldCB2YXJJc0xWYWx1ZSgpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgCi0gICAgdHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250ZXh0
LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIGlmICghKG90aGVyIGluc3RhbmNlb2YgVmFsdWUpKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgICAgIGlmICghdGhpcy50eXBlLnVuaWZ5
KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIudHlwZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gdGhpcy5fdHlwZVZhcmlhYmxlVW5pZnlJbXBs
KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAgICAKLSAgICB1bmlmeUltcGwo
dW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5
cGVWYXJpYWJsZVVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgb3RoZXIpOwotICAgIH0KLSAgICAK
LSAgICB2ZXJpZnlBc0FyZ3VtZW50KHVuaWZpY2F0aW9uQ29udGV4dCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgdmVyaWZ5QXNQYXJhbWV0
ZXIodW5pZmljYXRpb25Db250ZXh0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRy
dWV9OwotICAgIH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4g
dGhpcy50eXBlICsgIiAiICsgdGhpcy5uYW1lOwotICAgIH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQ3JlYXRlTGl0ZXJhbFR5cGUuanMgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwppbmRleCAxMjkxNGRh
MzEzN2ZkNmI5MGZlZGE3MjU4NjI3ZWZmZmZiZDRlNTQxLi5kYmUyMTY4ZjQ0MTc4ZTFiNmExYzkx
OTFhM2Y1ZjI2MmFjNDUwM2I4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9DcmVhdGVMaXRlcmFsVHlwZS5qcwpAQCAtMzIsNyArMzIsNyBAQCBmdW5jdGlvbiBjcmVh
dGVMaXRlcmFsVHlwZShjb25maWcpCiAgICAgICAgICAgICBzdXBlcigpOwogICAgICAgICAgICAg
dGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTsK
LSAgICAgICAgICAgIHRoaXMucHJlZmVycmVkVHlwZSA9IG5ldyBUeXBlUmVmKG9yaWdpbiwgY29u
ZmlnLnByZWZlcnJlZFR5cGVOYW1lLCBbXSk7CisgICAgICAgICAgICB0aGlzLnByZWZlcnJlZFR5
cGUgPSBuZXcgVHlwZVJlZihvcmlnaW4sIGNvbmZpZy5wcmVmZXJyZWRUeXBlTmFtZSk7CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmln
aW47IH0KQEAgLTUyLDEzICs1MiwxNSBAQCBmdW5jdGlvbiBjcmVhdGVMaXRlcmFsVHlwZShjb25m
aWcpCiAgICAgICAgIAogICAgICAgICB1bmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhl
cikKICAgICAgICAgeworICAgICAgICAgICAgaWYgKCFvdGhlci5pc051bWJlcikKKyAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlVmFyaWFi
bGVVbmlmeSh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKTsKICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgcHJlcGFyZVRvVmVyaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCkKICAgICAgICAgewog
ICAgICAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250ZXh0LmZpbmQodGhpcyk7
Ci0gICAgICAgICAgICBpZiAocmVhbFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUgfHwgcmVh
bFRoaXMuaXNMaXRlcmFsKSB7CisgICAgICAgICAgICBpZiAocmVhbFRoaXMuaXNMaXRlcmFsKSB7
CiAgICAgICAgICAgICAgICAgcmV0dXJuICgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlYWxUaGlzLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgdGhpcy5wcmVmZXJyZWRUeXBlKSkK
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKQEAgLTc2LDcg
Kzc4LDcgQEAgZnVuY3Rpb24gY3JlYXRlTGl0ZXJhbFR5cGUoY29uZmlnKQogICAgICAgICB7CiAg
ICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkdlbmVyaWNMaXRlcmFsVHlwZSBzaG91bGQgbmV2
ZXIgYmUgdXNlZCBhcyBhIHR5cGUgcGFyYW1ldGVyIik7CiAgICAgICAgIH0KLSAgICAgICAgCisK
ICAgICAgICAgY29udmVyc2lvbkNvc3QodW5pZmljYXRpb25Db250ZXh0KQogICAgICAgICB7CiAg
ICAgICAgICAgICBsZXQgcmVhbFRoaXMgPSB1bmlmaWNhdGlvbkNvbnRleHQuZmluZCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0V2YWx1YXRvci5qcwppbmRleCA1OGNlZDg5
YjdlNDc3NzAwMjNjN2Q4ZTFlODE5Mjg3NTEyNjJlYjM4Li5kMDg5OTczNmZhNjliYTVlNDQ2Nzdi
N2I4OTZjY2FmZjVlNzM1NTFiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9FdmFsdWF0b3IuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXZh
bHVhdG9yLmpzCkBAIC0xNDIsNiArMTQyLDE0IEBAIGNsYXNzIEV2YWx1YXRvciBleHRlbmRzIFZp
c2l0b3IgewogICAgICAgICAvLyBUaGlzIHNob3VsZCBhbG1vc3Qgc25hcHNob3QsIGV4Y2VwdCB0
aGF0IHRhaWwtcmV0dXJuaW5nIGEgcG9pbnRlciBpcyB0b3RhbGx5IE9LLgogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KKworICAgIHZpc2l0VGVybmFyeUV4cHJlc3Npb24obm9kZSkKKyAg
ICB7CisgICAgICAgIGlmIChub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKS5sb2FkVmFsdWUoKSkK
KyAgICAgICAgICAgIHJldHVybiBub2RlLmJvZHlFeHByZXNzaW9uLnZpc2l0KHRoaXMpOworICAg
ICAgICByZXR1cm4gbm9kZS5lbHNlRXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKKyAgICAgICAgCisg
ICAgfQogICAgIAogICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKICAgICB7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRXhwcmVzc2lvbkZpbmRlci5qcwppbmRleCAzMGU2
YjAzMWE2ZGQ2NjU5NzQwN2YzZjZiN2ZlNzEzZWQ4ZmRjYzRhLi4wMjk0NzgyYzBlNzkzYWEzNzk1
NzNmNTI4OGM2ZWU5ZThmOTAwNjljIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9FeHByZXNzaW9uRmluZGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0V4cHJlc3Npb25GaW5kZXIuanMKQEAgLTM1LDggKzM1LDYgQEAgY2xhc3MgRXhwcmVz
c2lvbkZpbmRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0RnVuYyhub2RlKQogICAgIHsK
ICAgICAgICAgdGhpcy5fY2FsbGJhY2sobm9kZS5yZXR1cm5UeXBlKTsKLSAgICAgICAgZm9yIChs
ZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5cGVQYXJhbWV0ZXJzKQotICAgICAgICAgICAgdHlw
ZVBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgcGFyYW1ldGVyIG9mIG5v
ZGUucGFyYW1ldGVycykKICAgICAgICAgICAgIHBhcmFtZXRlci52aXNpdCh0aGlzKTsKICAgICB9
CkBAIC00NiwxMSArNDQsNiBAQCBjbGFzcyBFeHByZXNzaW9uRmluZGVyIGV4dGVuZHMgVmlzaXRv
ciB7CiAgICAgICAgIHRoaXMuX2NhbGxiYWNrKG5vZGUudHlwZSk7CiAgICAgfQogICAgIAotICAg
IHZpc2l0Q29uc3RleHByVHlwZVBhcmFtZXRlcihub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy5f
Y2FsbGJhY2sobm9kZS50eXBlKTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRBc3NpZ25tZW50KG5v
ZGUpCiAgICAgewogICAgICAgICB0aGlzLl9jYWxsYmFjayhub2RlKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMgYi9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjE3MmQ5OGQxZTJjMDA4ZWRiNWQ4MTgzZjVl
ZWZkNjc4ZGM4ZWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0ZsYXR0ZW5Qcm90b2NvbEV4dGVuZHMu
anMKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGZsYXR0ZW5Q
cm90b2NvbEV4dGVuZHMocHJvZ3JhbSkKLXsKLSAgICBsZXQgdmlzaXRpbmcgPSBuZXcgVmlzaXRp
bmdTZXQoKTsKLSAgICAKLSAgICBmdW5jdGlvbiBmbGF0dGVuKHByb3RvY29sKQotICAgIHsKLSAg
ICAgICAgaWYgKCFwcm90b2NvbC5leHRlbmRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCi0gICAgICAgIHZpc2l0aW5nLmRvVmlzaXQocHJvdG9jb2wsICgpID0+IHsKLSAg
ICAgICAgICAgIGZvciAobGV0IHBhcmVudCBvZiBwcm90b2NvbC5leHRlbmRzKSB7Ci0gICAgICAg
ICAgICAgICAgcGFyZW50ID0gcGFyZW50LnByb3RvY29sRGVjbDsKLSAgICAgICAgICAgICAgICBm
bGF0dGVuKHBhcmVudCk7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgc2lnbmF0dXJlIG9mIHBh
cmVudC5zaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBuZXdTaWduYXR1cmUg
PSBzaWduYXR1cmUudmlzaXQoCi0gICAgICAgICAgICAgICAgICAgICAgICBuZXcgU3Vic3RpdHV0
aW9uKFtwYXJlbnQudHlwZVZhcmlhYmxlXSwgW3Byb3RvY29sLnR5cGVWYXJpYWJsZV0pKTsKLSAg
ICAgICAgICAgICAgICAgICAgcHJvdG9jb2wuYWRkKG5ld1NpZ25hdHVyZSk7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvdG9jb2wuZXh0ZW5kcyA9IFtd
OwotICAgICAgICB9KTsKLSAgICB9Ci0gICAgCi0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJv
Z3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIGZsYXR0ZW4ocHJvdG9jb2wpOwotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GbG9hdExpdGVyYWwuanMKaW5kZXgg
ZTZjNTczN2RlMTZhNGE2NDhkODVhZGNhMTY5MzQ1NGI2MTQwNzI3ZS4uZDVkMWIxNTIzMGYwOWMx
MGEwYmMxMjVmMDNjZjVhZDRjZTNkZDJmNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRmxvYXRMaXRlcmFsLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0Zsb2F0TGl0ZXJhbC5qcwpAQCAtMzAsNyArMzAsNyBAQCBsZXQgRmxvYXRMaXRlcmFs
ID0gY3JlYXRlTGl0ZXJhbCh7CiAgICAgCiAgICAgbmVnQ29uc3RleHByKG9yaWdpbikKICAgICB7
Ci0gICAgICAgIHJldHVybiBuZXcgSW50TGl0ZXJhbChvcmlnaW4sIC10aGlzLnZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBGbG9hdExpdGVyYWwob3JpZ2luLCAtdGhpcy52YWx1ZSk7CiAgICAg
fSwKICAgICAKICAgICBjcmVhdGVUeXBlKG9yaWdpbiwgdmFsdWUpCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuYy5qcwppbmRleCA2ZmE3YzlkMWI2ZjRiOTU4MzM1OTgxYzI3MjhiZTg2NWE1
NmU3M2FlLi42ZmM3MzMyNzYxZDQ2M2MzNWE4YzQwYzJhNzZmMmY0YjM2YzIzMjIzIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9GdW5jLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmMuanMKQEAgLTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3Ry
aWN0IjsKIAogY2xhc3MgRnVuYyBleHRlbmRzIE5vZGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdp
biwgbmFtZSwgcmV0dXJuVHlwZSwgdHlwZVBhcmFtZXRlcnMsIHBhcmFtZXRlcnMsIGlzQ2FzdCwg
c2hhZGVyVHlwZSkKKyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBh
cmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSkKICAgICB7CiAgICAgICAgIGlmICghKG9yaWdp
biBpbnN0YW5jZW9mIExleGVyVG9rZW4pKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJC
YWQgb3JpZ2luOiAiICsgb3JpZ2luKTsKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgRnVuYyBleHRl
bmRzIE5vZGUgewogICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMu
X25hbWUgPSBuYW1lOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gcmV0dXJuVHlwZTsKLSAg
ICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKICAgICAgICAgdGhp
cy5fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CiAgICAgICAgIHRoaXMuX2lzQ2FzdCA9IGlzQ2Fz
dDsKICAgICAgICAgdGhpcy5fc2hhZGVyVHlwZSA9IHNoYWRlclR5cGU7CkBAIC00OCw4ICs0Nyw2
IEBAIGNsYXNzIEZ1bmMgZXh0ZW5kcyBOb2RlIHsKICAgICBnZXQgb3JpZ2luKCkgeyByZXR1cm4g
dGhpcy5fb3JpZ2luOyB9CiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1lOyB9CiAg
ICAgZ2V0IHJldHVyblR5cGUoKSB7IHJldHVybiB0aGlzLl9yZXR1cm5UeXBlOyB9Ci0gICAgZ2V0
IHR5cGVQYXJhbWV0ZXJzKCkgeyByZXR1cm4gdGhpcy5fdHlwZVBhcmFtZXRlcnM7IH0KLSAgICBn
ZXQgdHlwZVBhcmFtZXRlcnNGb3JDYWxsUmVzb2x1dGlvbigpIHsgcmV0dXJuIHRoaXMudHlwZVBh
cmFtZXRlcnM7IH0KICAgICBnZXQgcGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3BhcmFtZXRl
cnM7IH0KICAgICBnZXQgcGFyYW1ldGVyVHlwZXMoKSB7IHJldHVybiB0aGlzLnBhcmFtZXRlcnMu
bWFwKHBhcmFtZXRlciA9PiBwYXJhbWV0ZXIudHlwZSk7IH0KICAgICBnZXQgaXNDYXN0KCkgeyBy
ZXR1cm4gdGhpcy5faXNDYXN0OyB9CkBAIC02NSw5ICs2Miw5IEBAIGNsYXNzIEZ1bmMgZXh0ZW5k
cyBOb2RlIHsKICAgICAgICAgaWYgKHRoaXMuc2hhZGVyVHlwZSkKICAgICAgICAgICAgIHJlc3Vs
dCArPSB0aGlzLnNoYWRlclR5cGUgKyAiICI7CiAgICAgICAgIGlmICh0aGlzLmlzQ2FzdCkKLSAg
ICAgICAgICAgIHJlc3VsdCArPSAib3BlcmF0b3I8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAi
PiAiICsgdGhpcy5yZXR1cm5UeXBlOworICAgICAgICAgICAgcmVzdWx0ICs9ICJvcGVyYXRvciAi
ICsgdGhpcy5yZXR1cm5UeXBlOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgKz0g
dGhpcy5yZXR1cm5UeXBlICsgIiAiICsgdGhpcy5uYW1lICsgIjwiICsgdGhpcy50eXBlUGFyYW1l
dGVycyArICI+IjsKKyAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLnJldHVyblR5cGUgKyAiICIg
KyB0aGlzLm5hbWU7CiAgICAgICAgIHJldHVybiByZXN1bHQgKyAiKCIgKyB0aGlzLnBhcmFtZXRl
cnMgKyAiKSI7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvRnVuY0RlZi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNE
ZWYuanMKaW5kZXggMTFmYTA5MmUzYjIyNzhlMjE1YTBhNjdlOTUxZTE3ZGFiYTEzNmE4My4uY2Ew
NTk3ZmNkMjk0ZGZhYjYwNDQyMTRlMDc1NGY3ZWY5NDRiODc4ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0RlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9GdW5jRGVmLmpzCkBAIC0yNSw5ICsyNSw5IEBACiAidXNlIHN0cmljdCI7
CiAKIGNsYXNzIEZ1bmNEZWYgZXh0ZW5kcyBGdW5jIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nh
c3QsIHNoYWRlclR5cGUpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBl
LCBwYXJhbWV0ZXJzLCBib2R5LCBpc0Nhc3QsIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBz
dXBlcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHR5cGVQYXJhbWV0ZXJzLCBwYXJhbWV0ZXJz
LCBpc0Nhc3QsIHNoYWRlclR5cGUpOworICAgICAgICBzdXBlcihvcmlnaW4sIG5hbWUsIHJldHVy
blR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIHRoaXMuX2Jv
ZHkgPSBib2R5OwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZhbHNlOwogICAgIH0KQEAg
LTM2LDggKzM2LDYgQEAgY2xhc3MgRnVuY0RlZiBleHRlbmRzIEZ1bmMgewogICAgIAogICAgIHJl
d3JpdGUocmV3cml0ZXIpCiAgICAgewotICAgICAgICBpZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMu
bGVuZ3RoKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgcmV3cml0ZSBhbiB1
bmluc3RhbnRpYXRlZCBmdW5jdGlvbiIpOwogICAgICAgICB0aGlzLl9yZXR1cm5UeXBlID0gdGhp
cy5fcmV0dXJuVHlwZS52aXNpdChyZXdyaXRlcik7CiAgICAgICAgIHRoaXMuX3BhcmFtZXRlcnMg
PSB0aGlzLl9wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHJld3Jp
dGVyKSk7CiAgICAgICAgIHRoaXMuX2JvZHkgPSB0aGlzLmJvZHkudmlzaXQocmV3cml0ZXIpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRv
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0Z1bmNJbnN0YW50aWF0b3IuanMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5Mjg2MmE2ZGQ4NTY1ZWUzN2U0MjA2MzFk
N2FmNzBkNTIyN2U1ODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRnVuY0luc3RhbnRpYXRvci5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIEZ1bmNJbnN0YW50aWF0
b3IgewotICAgIGNvbnN0cnVjdG9yKHByb2dyYW0pCi0gICAgewotICAgICAgICB0aGlzLl9wcm9n
cmFtID0gcHJvZ3JhbTsKLSAgICAgICAgdGhpcy5faW5zdGFuY2VzID0gbmV3IE1hcCgpOwotICAg
IH0KLSAgICAKLSAgICBnZXQgaW5zdGFuY2VzKCkgeyByZXR1cm4gdGhpcy5faW5zdGFuY2VzOyB9
Ci0gICAgCi0gICAgLy8gUmV0dXJucyBhIEZ1bmMgb2JqZWN0IHRoYXQgdW5pcXVlbHkgaWRlbnRp
ZmllcyBhIHBhcnRpY3VsYXIgc3lzdGVtIG9mIHR5cGUgYXJndW1lbnRzLiBZb3UgbXVzdAotICAg
IC8vIGludGFudGlhdGUgdGhpbmdzIHdpdGggY29uY3JldGUgdHlwZXMsIGJlY2F1c2UgdGhpcyBj
b2RlIGNhc3VhbGx5IGFzc3VtZXMgdGhpcy4gTm90ZSB0aGF0IHRoaXMKLSAgICAvLyB3aWxsIHJl
dHVybiBhIGRpZmZlcmVudCBmdW5jIGZyb20gYGZ1bmNgIG5vIG1hdHRlciB3aGF0LiBUaGlzIGVu
c3VyZXMgdGhhdCB3ZSBjYW4gdXNlIHRoZQotICAgIC8vIHJldHVybmVkIGZ1bmMgZm9yIHJld3Jp
dGVzIHRoYXQgaW5zdGFudGlhdGUgdHlwZXMgd2l0aG91dCBkZXN0cm95aW5nIG91ciBhYmlsaXR5
IHRvIGRvIG92ZXJsb2FkCi0gICAgLy8gcmVzb2x1dGlvbnMgb24gdGhlIG9yaWdpbmFsIFByb2dy
YW0uCi0gICAgZ2V0VW5pcXVlKGZ1bmMsIHR5cGVBcmd1bWVudHMpCi0gICAgewotICAgICAgICBj
bGFzcyBGaW5kVHlwZVZhcmlhYmxlIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgICAgICAgICB2aXNp
dFR5cGVSZWYobm9kZSkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgICAgICAgICB0
eXBlQXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpIHsKLSAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgdHlwZSB2YXJpYWJsZTogIiArIG5vZGUgKyAiIHdoZW4g
aW5zdGFudGlhdGluZyAiICsgZnVuYyArICIgd2l0aCBhcmd1bWVudHMgIiArIHR5cGVBcmd1bWVu
dHMpOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGZvciAobGV0IHR5cGVBcmd1
bWVudCBvZiB0eXBlQXJndW1lbnRzKQotICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KG5l
dyBGaW5kVHlwZVZhcmlhYmxlKCkpOwotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbmNlcyA9
IHRoaXMuX2luc3RhbmNlcy5nZXQoZnVuYyk7Ci0gICAgICAgIGlmICghaW5zdGFuY2VzKQotICAg
ICAgICAgICAgdGhpcy5faW5zdGFuY2VzLnNldChmdW5jLCBpbnN0YW5jZXMgPSBbXSk7Ci0gICAg
ICAgIAotICAgICAgICBmb3IgKGxldCBpbnN0YW5jZSBvZiBpbnN0YW5jZXMpIHsKLSAgICAgICAg
ICAgIGxldCBvayA9IHRydWU7Ci0gICAgICAgICAgICBmb3IgKGxldCBpID0gaW5zdGFuY2UudHlw
ZUFyZ3VtZW50cy5sZW5ndGg7IGktLTspIHsKLSAgICAgICAgICAgICAgICBpZiAoIWluc3RhbmNl
LnR5cGVBcmd1bWVudHNbaV0uZXF1YWxzKHR5cGVBcmd1bWVudHNbaV0pKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG9rID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghb2spCi0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICByZXR1cm4gaW5zdGFuY2UuZnVuYzsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IHRoaXNJbnN0YW50aWF0b3IgPSB0aGlzOwot
ICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGlvblN1YnN0aXR1dGlvbiBleHRlbmRz
IFN1YnN0aXR1dGlvbiB7Ci0gICAgICAgICAgICB2aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHN1cGVyLnZpc2l0Q2Fs
bEV4cHJlc3Npb24obm9kZSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8g
V2UgbWF5IGhhdmUgdG8gcmUtcmVzb2x2ZSB0aGUgZnVuY3Rpb24gY2FsbCwgaWYgaXQgd2FzIGEg
Y2FsbCB0byBhIHByb3RvY29sCi0gICAgICAgICAgICAgICAgLy8gc2lnbmF0dXJlLgotICAgICAg
ICAgICAgICAgIGlmIChyZXN1bHQuZnVuYyBpbnN0YW5jZW9mIFByb3RvY29sRnVuY0RlY2wpIHsK
LSAgICAgICAgICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbChy
ZXN1bHQucG9zc2libGVPdmVybG9hZHMsIHJlc3VsdC50eXBlQXJndW1lbnRzLCByZXN1bHQuYXJn
dW1lbnRUeXBlcywgcmVzdWx0LnJldHVyblR5cGUpOwotICAgICAgICAgICAgICAgICAgICBpZiAo
IW92ZXJsb2FkLmZ1bmMpCi0gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IkNvdWxkIG5vdCByZXNvbHZlIHByb3RvY29sIHNpZ25hdHVyZSBmdW5jdGlvbiBjYWxsIGR1cmlu
ZyBpbnN0YW50aWF0aW9uOiAiICsgcmVzdWx0LmZ1bmMgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVu
Z3RoID8gIjsgdHJpZWQ6XG4iICsgb3ZlcmxvYWQuZmFpbHVyZXMuam9pbigiXG4iKSA6ICIiKSk7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNvbHZlVG9PdmVybG9hZChvdmVybG9hZCk7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChyZXN1bHQuZnVuYy5pc05hdGl2ZSkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm5hdGl2
ZUZ1bmNJbnN0YW5jZSA9IHRoaXNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKHJlc3VsdC5mdW5jLCBy
ZXN1bHQuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBJbnN0YW50aWF0aW9uU3Vic3RpdHV0aW9u
KGZ1bmMudHlwZVBhcmFtZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotCi0gICAgICAgIGNsYXNzIElu
c3RhbnRpYXRpb25JbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBJbnN0YW50aWF0ZUltbWVk
aWF0ZXMgewotICAgICAgICAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQotICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcHJlc2VydmUgY2VydGFpbiB0aGlu
Z3MgdGhhdCB3b3VsZCBoYXZlIGluc3RhbnRpYXRlZCwgYnV0IHRoYXQgd2UgY2Fubm90Ci0gICAg
ICAgICAgICAgICAgLy8gaW5zdGFudGlhdGUgd2l0aG91dCBicmVha2luZyBjaGFpbi1pbnN0YW50
aWF0aW9ucyAoZ2VuZXJpYyBmdW5jdGlvbiBjYWxscyBnZW5lcmljCi0gICAgICAgICAgICAgICAg
Ly8gZnVuY3Rpb24gc28gdGhlcmVmb3JlIHRoZSBpbnN0YW50aWF0ZWQgZ2VuZXJpYyBmdW5jdGlv
biBtdXN0IHN0aWxsIGhhdmUgdGhlIG9yaWdpbmFsCi0gICAgICAgICAgICAgICAgLy8gKHVuaW5z
dGFudGlhdGVkKSB0eXBlcyB0byBpbnN0YW50aWF0ZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0
IGl0IGNhbGxzKS4KLSAgICAgICAgICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNz
aW9uKAotICAgICAgICAgICAgICAgICAgICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5
cGVBcmd1bWVudHMsCi0gICAgICAgICAgICAgICAgICAgIG5vZGUuYXJndW1lbnRMaXN0Lm1hcChh
cmd1bWVudCA9PiBOb2RlLnZpc2l0KGFyZ3VtZW50LCB0aGlzKSkpOwotICAgICAgICAgICAgICAg
IHJlc3VsdCA9IHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHJlc3VsdC5hcmd1bWVudFR5cGVzID0gQXJy
YXkuZnJvbShub2RlLmFyZ3VtZW50VHlwZXMpOwotICAgICAgICAgICAgICAgIGlmIChub2RlLmlz
Q2FzdCkKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldENhc3REYXRhKG5vZGUucmV0dXJu
VHlwZSk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LmFjdHVhbFR5cGVBcmd1bWVudHMgPSBBcnJh
eS5mcm9tKG5vZGUuYWN0dWFsVHlwZUFyZ3VtZW50cyk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0g
ICAgICAgIGxldCBpbnN0YW50aWF0ZUltbWVkaWF0ZXMgPSBuZXcgSW5zdGFudGlhdGlvbkluc3Rh
bnRpYXRlSW1tZWRpYXRlcygpOwotICAgICAgICAKLSAgICAgICAgY2xhc3MgSW5zdGFudGlhdGUg
ewotICAgICAgICAgICAgdmlzaXRGdW5jRGVmKGZ1bmMpCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgbGV0IHJldHVyblR5cGUgPSBmdW5jLnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0
aW9uKTsKLSAgICAgICAgICAgICAgICByZXR1cm5UeXBlID0gcmV0dXJuVHlwZS52aXNpdChpbnN0
YW50aWF0ZUltbWVkaWF0ZXMpOwotICAgICAgICAgICAgICAgIGxldCBwYXJhbWV0ZXJzID0gZnVu
Yy5wYXJhbWV0ZXJzLm1hcChwYXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHN1YnN0aXR1dGlv
bikpOwotICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzLm1hcChwYXJhbWV0
ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcykpOwotICAgICAgICAg
ICAgICAgIGxldCBib2R5ID0gZnVuYy5ib2R5LnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAg
ICAgICAgICAgYm9keSA9IGJvZHkudmlzaXQoaW5zdGFudGlhdGVJbW1lZGlhdGVzKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmV3IEZ1bmNEZWYoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
b3JpZ2luLCBmdW5jLm5hbWUsIHJldHVyblR5cGUsIFtdLCBwYXJhbWV0ZXJzLCBib2R5LCBmdW5j
LmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5zaGFkZXJUeXBlKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgdmlzaXROYXRpdmVGdW5jKGZ1bmMpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jSW5zdGFu
Y2UoCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMsCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMu
cmV0dXJuVHlwZS52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cyksCi0gICAgICAgICAgICAgICAgICAgIGZ1bmMucGFyYW1ldGVycy5tYXAocGFyYW1ldGVyID0+
IHBhcmFtZXRlci52aXNpdChzdWJzdGl0dXRpb24pLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRl
cykpLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmlzQ2FzdCwKLSAgICAgICAgICAgICAgICAg
ICAgZnVuYy5zaGFkZXJUeXBlLAotICAgICAgICAgICAgICAgICAgICBmdW5jLmluc3RhbnRpYXRl
SW1wbGVtZW50YXRpb24oc3Vic3RpdHV0aW9uKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0K
LSAgICAgICAgbGV0IHJlc3VsdGluZ0Z1bmMgPSBmdW5jLnZpc2l0KG5ldyBJbnN0YW50aWF0ZSgp
KTsKLSAgICAgICAgcmVzdWx0aW5nRnVuYy51bmluc3RhbnRpYXRlZFJldHVyblR5cGUgPSBmdW5j
LnJldHVyblR5cGUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgbGV0IGluc3RhbmNlID0g
e2Z1bmM6IHJlc3VsdGluZ0Z1bmMsIHR5cGVBcmd1bWVudHN9OwotICAgICAgICBpbnN0YW5jZXMu
cHVzaChpbnN0YW5jZSk7Ci0gICAgICAgIHJldHVybiByZXN1bHRpbmdGdW5jOwotICAgIH0KLX0K
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5mZXJUeXBlc0Zv
ckNhbGwuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2Fs
bC5qcwppbmRleCA0NDZiMzUxZGE1NzE1YzY4YTM1ZDc2OTc5NjlkNjk4ZWM3M2U3NGY4Li42MDQ5
MTUzNjI1MWQwOWJjZTAzYTE0ZWQ2Nzc1MjJhMDJkMTNhNjQzIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcworKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmZlclR5cGVzRm9yQ2FsbC5qcwpAQCAtMjQsMTkgKzI0
LDExIEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gaW5mZXJUeXBlc0ZvckNhbGwo
ZnVuYywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSkKK2Z1bmN0aW9u
IGluZmVyVHlwZXNGb3JDYWxsKGZ1bmMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiB7Ci0g
ICAgaWYgKHR5cGVBcmd1bWVudHMubGVuZ3RoICYmIHR5cGVBcmd1bWVudHMubGVuZ3RoICE9IGZ1
bmMudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICByZXR1cm4ge2ZhaWx1cmU6IG5ldyBP
dmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBhcmd1
bWVudHMgKHBhc3NlZCAiICsgdHlwZUFyZ3VtZW50cy5sZW5ndGggKyAiLCByZXF1aXJlICIgKyBm
dW5jLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwogICAgIGlmIChhcmd1bWVudFR5cGVz
Lmxlbmd0aCAhPSBmdW5jLnBhcmFtZXRlcnMubGVuZ3RoKQogICAgICAgICByZXR1cm4ge2ZhaWx1
cmU6IG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJlKGZ1bmMsICJXcm9uZyBudW1iZXIgb2Yg
YXJndW1lbnRzIChwYXNzZWQgIiArIGFyZ3VtZW50VHlwZXMubGVuZ3RoICsgIiwgcmVxdWlyZSAi
ICsgZnVuYy5wYXJhbWV0ZXJzLmxlbmd0aCArICIpIil9OwotICAgIGxldCB1bmlmaWNhdGlvbkNv
bnRleHQgPSBuZXcgVW5pZmljYXRpb25Db250ZXh0KGZ1bmMudHlwZVBhcmFtZXRlcnNGb3JDYWxs
UmVzb2x1dGlvbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgIGxldCBhcmd1bWVudCA9IHR5cGVBcmd1bWVudHNbaV07Ci0gICAg
ICAgIGxldCBwYXJhbWV0ZXIgPSBmdW5jLnR5cGVQYXJhbWV0ZXJzW2ldOwotICAgICAgICBpZiAo
IWFyZ3VtZW50LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcGFyYW1ldGVyKSkKLSAgICAgICAg
ICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywg
IlR5cGUgYXJndW1lbnQgIyIgKyAoaSArIDEpICsgIiBmb3IgcGFyYW1ldGVyICIgKyBwYXJhbWV0
ZXIubmFtZSArICIgZG9lcyBub3QgbWF0Y2ggKHBhc3NlZCAiICsgYXJndW1lbnQgKyAiLCByZXF1
aXJlICIgKyBwYXJhbWV0ZXIgKyAiKSIpfTsKLSAgICB9CisgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKICAgICBmb3IgKGxldCBpID0gMDsgaSA8
IGFyZ3VtZW50VHlwZXMubGVuZ3RoOyArK2kpIHsKICAgICAgICAgaWYgKCFhcmd1bWVudFR5cGVz
W2ldKQogICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIGFyZ3VtZW50IHR5cGUgYXQg
aSA9ICIgKyBpKTsKQEAgLTQ4LDE2ICs0MCw2IEBAIGZ1bmN0aW9uIGluZmVyVHlwZXNGb3JDYWxs
KGZ1bmMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUpCiAgICAgbGV0
IHZlcmlmaWNhdGlvblJlc3VsdCA9IHVuaWZpY2F0aW9uQ29udGV4dC52ZXJpZnkoKTsKICAgICBp
ZiAoIXZlcmlmaWNhdGlvblJlc3VsdC5yZXN1bHQpCiAgICAgICAgIHJldHVybiB7ZmFpbHVyZTog
bmV3IE92ZXJsb2FkUmVzb2x1dGlvbkZhaWx1cmUoZnVuYywgdmVyaWZpY2F0aW9uUmVzdWx0LnJl
YXNvbil9OwotICAgIGxldCBzaG91bGRCdWlsZFR5cGVBcmd1bWVudHMgPSAhdHlwZUFyZ3VtZW50
cy5sZW5ndGg7Ci0gICAgaWYgKHNob3VsZEJ1aWxkVHlwZUFyZ3VtZW50cykKLSAgICAgICAgdHlw
ZUFyZ3VtZW50cyA9IFtdOwotICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2YgZnVuYy50eXBl
UGFyYW1ldGVycykgewotICAgICAgICBsZXQgdHlwZUFyZ3VtZW50ID0gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodHlwZVBhcmFtZXRlcik7Ci0gICAgICAgIGlmICh0eXBlQXJndW1lbnQgPT0gdHlw
ZVBhcmFtZXRlcikKLSAgICAgICAgICAgIHJldHVybiB7ZmFpbHVyZTogbmV3IE92ZXJsb2FkUmVz
b2x1dGlvbkZhaWx1cmUoZnVuYywgIlR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyICsg
IiBkaWQgbm90IGdldCBhc3NpZ25lZCBhIHR5cGUiKX07Ci0gICAgICAgIGlmIChzaG91bGRCdWls
ZFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICB0eXBlQXJndW1lbnRzLnB1c2godHlwZUFyZ3Vt
ZW50KTsKLSAgICB9Ci0gICAgcmV0dXJuIHtmdW5jLCB1bmlmaWNhdGlvbkNvbnRleHQsIHR5cGVB
cmd1bWVudHN9OworICAgIHJldHVybiB7ZnVuYywgdW5pZmljYXRpb25Db250ZXh0fTsKIH0KIApk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lLmpzCmluZGV4IGYwMjg3M2JkMjczZDkx
MGIzZGYwNGZkMmE1MWEzYzdjMGE0NjdjZWYuLjA5MDc0Njk5MjZmOGMwN2Q1MzM0YmIwMzA3ZGQz
NTE4NWI4ZTUyM2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmUuanMKQEAg
LTI4LDE4ICsyOCwxMyBAQCBmdW5jdGlvbiBpbmxpbmUocHJvZ3JhbSkKIHsKICAgICBmb3IgKGxl
dCBmdW5jTGlzdCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICBmb3Ig
KGxldCBmdW5jIG9mIGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoIWZ1bmMudHlwZVBhcmFt
ZXRlcnMubGVuZ3RoKSB7Ci0gICAgICAgICAgICAgICAgZnVuYyA9IHByb2dyYW0uZnVuY0luc3Rh
bnRpYXRvci5nZXRVbmlxdWUoZnVuYywgW10pCi0gICAgICAgICAgICAgICAgX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChmdW5jKSk7Ci0gICAgICAgICAgICB9
CisgICAgICAgICAgICBfaW5saW5lRnVuY3Rpb24ocHJvZ3JhbSwgZnVuYywgbmV3IFZpc2l0aW5n
U2V0KGZ1bmMpKTsKICAgICAgICAgfQogICAgIH0KIH0KIAogZnVuY3Rpb24gX2lubGluZUZ1bmN0
aW9uKHByb2dyYW0sIGZ1bmMsIHZpc2l0aW5nKQogewotICAgIGlmIChmdW5jLnR5cGVQYXJhbWV0
ZXJzLmxlbmd0aCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgaW5saW5lIGZ1bmN0
aW9uIHRoYXQgaGFzIHR5cGUgcGFyYW1ldGVycyIpOwogICAgIGlmIChmdW5jLmlubGluZWQgfHwg
ZnVuYy5pc05hdGl2ZSkKICAgICAgICAgcmV0dXJuOwogICAgIApAQCAtNTUsMTQgKzUwLDEwIEBA
IGZ1bmN0aW9uIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBmdW5jLCB2aXNpdGluZykKICAgICBm
dW5jLmlubGluZWQgPSB0cnVlOwogfQogCi1mdW5jdGlvbiByZXNvbHZlSW5saW5lZEZ1bmN0aW9u
KHByb2dyYW0sIG5hbWUsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMsIGFsbG93RW50cnlQ
b2ludCA9IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZUlubGluZWRGdW5jdGlvbihwcm9ncmFtLCBu
YW1lLCBhcmd1bWVudFR5cGVzLCBhbGxvd0VudHJ5UG9pbnQgPSBmYWxzZSkKIHsKLSAgICBsZXQg
b3ZlcmxvYWQgPSBwcm9ncmFtLmdsb2JhbE5hbWVDb250ZXh0LnJlc29sdmVGdW5jT3ZlcmxvYWQo
bmFtZSwgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgdW5kZWZpbmVkLCBhbGxvd0VudHJ5
UG9pbnQpOworICAgIGxldCBvdmVybG9hZCA9IHByb2dyYW0uZ2xvYmFsTmFtZUNvbnRleHQucmVz
b2x2ZUZ1bmNPdmVybG9hZChuYW1lLCBhcmd1bWVudFR5cGVzLCB1bmRlZmluZWQsIGFsbG93RW50
cnlQb2ludCk7CiAgICAgaWYgKCFvdmVybG9hZC5mdW5jKQogICAgICAgICByZXR1cm4gb3Zlcmxv
YWQuZmFpbHVyZXM7Ci0gICAgaWYgKCFvdmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzKQotICAg
ICAgICByZXR1cm4gb3ZlcmxvYWQuZnVuYzsKLSAgICBsZXQgZnVuYyA9IHByb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUob3ZlcmxvYWQuZnVuYywgb3ZlcmxvYWQudHlwZUFyZ3VtZW50
cyk7Ci0gICAgX2lubGluZUZ1bmN0aW9uKHByb2dyYW0sIGZ1bmMsIG5ldyBWaXNpdGluZ1NldChv
dmVybG9hZC5mdW5jKSk7Ci0gICAgcmV0dXJuIGZ1bmM7CisgICAgcmV0dXJuIG92ZXJsb2FkLmZ1
bmM7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbmxpbmVy
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5saW5lci5qcwppbmRleCA0OTFl
ZjNlMjIxZmMwNjMxOGVlMDM2N2EzODE2OTllNTcyM2JmZTVhLi40NzRjNTQ2OGJmNzE1N2NkNzNj
NTA5Yzc3Mzg4ZWQzMzk3ZWQ0ODM1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9JbmxpbmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0lu
bGluZXIuanMKQEAgLTM1LDEwICszNSwxMCBAQCBjbGFzcyBJbmxpbmVyIGV4dGVuZHMgUmV3cml0
ZXIgewogICAgIHZpc2l0Q2FsbEV4cHJlc3Npb24obm9kZSkKICAgICB7CiAgICAgICAgIGxldCBy
ZXN1bHQgPSBzdXBlci52aXNpdENhbGxFeHByZXNzaW9uKG5vZGUpOwotICAgICAgICBpZiAocmVz
dWx0Lm5hdGl2ZUZ1bmNJbnN0YW5jZSkKKyAgICAgICAgaWYgKHJlc3VsdC5mdW5jLmlzTmF0aXZl
KQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2l0
aW5nLmRvVmlzaXQobm9kZS5mdW5jLCAoKSA9PiB7Ci0gICAgICAgICAgICBsZXQgZnVuYyA9IHRo
aXMuX3Byb2dyYW0uZnVuY0luc3RhbnRpYXRvci5nZXRVbmlxdWUocmVzdWx0LmZ1bmMsIHJlc3Vs
dC5hY3R1YWxUeXBlQXJndW1lbnRzKTsKKyAgICAgICAgICAgIGxldCBmdW5jID0gcmVzdWx0LmZ1
bmM7CiAgICAgICAgICAgICBpZiAoZnVuYy5pc05hdGl2ZSkKICAgICAgICAgICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgbmF0aXZlIGZ1bmM6ICIgKyBmdW5jKTsKICAgICAgICAg
ICAgIF9pbmxpbmVGdW5jdGlvbih0aGlzLl9wcm9ncmFtLCBmdW5jLCB0aGlzLl92aXNpdGluZyk7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnN0YW50aWF0ZUlt
bWVkaWF0ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiMzllZDY2MzgxNDEz
NDhhYmMxMjc2OTZiNmVlMzFlMGIwYzU4YjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW5zdGFudGlh
dGVJbW1lZGlhdGVzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMgZXh0ZW5kcyBSZXdyaXRlciB7Ci0gICAgdmlzaXRUeXBl
UmVmKG5vZGUpCi0gICAgewotICAgICAgICBub2RlID0gc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUp
OwotICAgICAgICBpZiAoIW5vZGUudHlwZS5pbnN0YW50aWF0ZSkgewotICAgICAgICAgICAgaWYg
KG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJ0eXBlIGRvZXMgbm90IHN1cHBvcnQgaW5zdGFudGlhdGlvbjogIiArIHR5cGUgKyAiICgi
ICsgdHlwZS5jb25zdHJ1Y3Rvci5uYW1lICsgIikiKTsKLSAgICAgICAgICAgIHJldHVybiBub2Rl
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBub2RlLnR5cGUuaW5zdGFudGlhdGUobm9kZS50
eXBlQXJndW1lbnRzKS52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0UmVmZXJlbmNlVHlwZShub2RlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG5vZGU7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9JbnRy
aW5zaWNzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvSW50cmluc2ljcy5qcwpp
bmRleCA5MzNkZmUwMTEzMDJiMGZiYzgzNDQ5OTRhMWE1YzFmNzdjMDUyYTZmLi41MjllMWQ0NzVj
YmUxZjRmYjI3MDcwYTIwNjJhYmQ1NjVlNmI4N2I0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9JbnRyaW5zaWNzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0ludHJpbnNpY3MuanMKQEAgLTM0LDE0ICszNCw2IEBAIGNsYXNzIEludHJpbnNp
Y3MgewogICAgICAgICAvLyBGb3IgZXhhbXBsZSwgaWYgYSBuYXRpdmUgZnVuY3Rpb24gaXMgZGVj
bGFyZWQgdXNpbmcgImludCIgcmF0aGVyIHRoYW4gImludDMyIiwgdGhlbiB3ZSBtdXN0CiAgICAg
ICAgIC8vIHVzZSAiaW50IiBoZXJlLCBzaW5jZSB3ZSBkb24ndCB5ZXQga25vdyB0aGF0IHRoZXkg
YXJlIHRoZSBzYW1lIHR5cGUuCiAgICAgICAgIAotICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIHZvaWQ8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsK
LSAgICAgICAgICAgICAgICB0aGlzLnZvaWQgPSB0eXBlOwotICAgICAgICAgICAgICAgIHR5cGUu
c2l6ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9ICgp
ID0+IHsgfTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gaXNC
aXR3aXNlRXF1aXZhbGVudChsZWZ0LCByaWdodCkKICAgICAgICAgewogICAgICAgICAgICAgbGV0
IGRvdWJsZUFycmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKQEAgLTU1LDQ5NCArNDcsODY1IEBA
IGNsYXNzIEludHJpbnNpY3MgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGNhc3QodHlwZWRBcnJh
eUNvbnN0cnVjdG9yLCBudW1iZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciBhcnJheSA9
IG5ldyB0eXBlZEFycmF5Q29uc3RydWN0b3IoMSk7CisgICAgICAgICAgICBhcnJheVswXSA9IG51
bWJlcjsKKyAgICAgICAgICAgIHJldHVybiBhcnJheVswXTsKKyAgICAgICAgfQogCi0gICAgICAg
IHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgaW50MzI8PiIsCi0g
ICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmludDMyID0gdHlwZTsK
LSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVkID0gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFsdWUg
fCAwLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKLSAgICAgICAgICAg
ICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5jcmVhdGVM
aXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUob3JpZ2luLCB2
YWx1ZSB8IDAsIHR5cGUpOwotICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2
YWx1ZSA9PiAodmFsdWUgKyAxKSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS52YWx1ZXNFcXVh
bCA9IChhLCBiKSA9PiBhID09PSBiOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZh
dWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2
YWx1ZSB8IDA7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJh
bCA9IHZhbHVlID0+IHZhbHVlIHwgMDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9
IGZ1bmN0aW9uKigpIHsgCi0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9
IDB4ZmZmZmZmZmY7ICsraSkgewotICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0g
aSB8IDA7Ci0gICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVlLCBuYW1l
OiB2YWx1ZX07Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9OwotICAg
ICAgICAgICAgfSk7Ci0KLSAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgdHlwZWRlZiB1aW50MzI8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAg
ICAgICB0aGlzLnVpbnQzMiA9IHR5cGU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2
ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25l
ZCA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4g
aXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSA+Pj4gMCwgdmFsdWUpOwotICAgICAgICAgICAgICAg
IHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFsdWUgPSAwOwot
ICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJ
bnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgPj4+IDAsIHR5cGUpOwotICAgICAgICAg
ICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsK
LSAgICAgICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7Ci0g
ICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNl
dCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOwotICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0
VmFsdWVGcm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOwotICAgICAgICAgICAg
ICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSA+Pj4g
MDsKLSAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsgCi0gICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmZmZmZmZmY7ICsraSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0gICAgICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBiaXR3aXNlQ2Fz
dCh0eXBlZEFycmF5Q29uc3RydWN0b3IxLCB0eXBlZEFycmF5Q29uc3RydWN0b3IyLCB2YWx1ZSkK
KyAgICAgICAgeworICAgICAgICAgICAgbGV0IHR5cGVkQXJyYXkxID0gbmV3IHR5cGVkQXJyYXlD
b25zdHJ1Y3RvcjEoMSk7CisgICAgICAgICAgICBsZXQgdHlwZWRBcnJheTIgPSBuZXcgdHlwZWRB
cnJheUNvbnN0cnVjdG9yMih0eXBlZEFycmF5MS5idWZmZXIpOworICAgICAgICAgICAgdHlwZWRB
cnJheTFbMF0gPSB2YWx1ZTsKKyAgICAgICAgICAgIHJldHVybiB0eXBlZEFycmF5MlswXTsKKyAg
ICAgICAgfQogCi0gICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHR5
cGVkZWYgdWludDg8PiIsCi0gICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0
aGlzLnVpbnQ4ID0gdHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB0eXBl
LmlzU2lnbmVkID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2
YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KHZhbHVlICYgMHhmZiwgdmFsdWUpOwotICAgICAg
ICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7Ci0gICAgICAgICAgICAgICAgdHlwZS5kZWZhdWx0VmFs
dWUgPSAwOwotICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZh
bHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgJiAweGZmLCB0eXBlKTsK
LSAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsg
MSkgJiAweGZmOwotICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikgPT4g
YSA9PT0gYjsKLSAgICAgICAgICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1
ZmZlciwgb2Zmc2V0KSA9PiBidWZmZXIuc2V0KG9mZnNldCwgMCk7Ci0gICAgICAgICAgICAgICAg
dHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOwot
ICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZSAmIDB4ZmY7Ci0gICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMgPSBmdW5jdGlv
biooKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsr
aSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07Ci0g
ICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIH0pOworICAgICAgICBmdW5jdGlvbiBjYXN0
VG9IYWxmKG51bWJlcikKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBtYXRoIG9iZXkgSUVFRSA3NTQuCisgICAgICAgICAgICBpZiAoTnVtYmVyLmlzTmFOKG51bWJl
cikpCisgICAgICAgICAgICAgICAgcmV0dXJuIG51bWJlcgorICAgICAgICAgICAgaWYgKG51bWJl
ciA+IDY1NTA0KQorICAgICAgICAgICAgICAgIHJldHVybiBOdW1iZXIuUE9TSVRJVkVfSU5GSU5J
VFk7CisgICAgICAgICAgICBpZiAobnVtYmVyIDwgLTY1NTA0KQorICAgICAgICAgICAgICAgIHJl
dHVybiBOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7CisgICAgICAgICAgICBpZiAobnVtYmVyID4g
MCAmJiBudW1iZXIgPCBNYXRoLnBvdygyLCAtMjQpKQorICAgICAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICAgICAgaWYgKG51bWJlciA8IDAgJiYgbnVtYmVyID4gLU1hdGgucG93KDIsIC0y
NCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0wOworICAgICAgICAgICAgbGV0IGRvdWJsZUFy
cmF5ID0gbmV3IEZsb2F0NjRBcnJheSgxKTsKKyAgICAgICAgICAgIGxldCB1aW50QXJyYXkgPSBu
ZXcgVWludDhBcnJheShkb3VibGVBcnJheS5idWZmZXIpOworICAgICAgICAgICAgZG91YmxlQXJy
YXlbMF0gPSBudW1iZXI7CisgICAgICAgICAgICBsZXQgc2lnbiA9IHVpbnRBcnJheVs3XSAmIDB4
ODA7CisgICAgICAgICAgICBsZXQgZXhwb25lbnQgPSAoKHVpbnRBcnJheVs3XSAmIDB4N2YpIDw8
IDQpIHwgKCh1aW50QXJyYXlbNl0gJiAweGYwKSA+Pj4gNCk7CisgICAgICAgICAgICBsZXQgc2ln
bmlmaWNhbmQgPSAoKHVpbnRBcnJheVs2XSAmIDB4MGYpIDw8IDYpIHwgKCh1aW50QXJyYXlbNV0g
JiAweGZjKSA+Pj4gMik7CisKKyAgICAgICAgICAgIGlmICgoZXhwb25lbnQgLSAxMDIzKSA8IC0x
NCkgeworICAgICAgICAgICAgICAgIGV4cG9uZW50ID0gMDsKKyAgICAgICAgICAgICAgICBzaWdu
aWZpY2FuZCA9IChNYXRoLmFicyhudW1iZXIpICogTWF0aC5wb3coMiwgMjQpKSA+Pj4gMDsKKyAg
ICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBNYXRoLnBvdygyLCAtMTQpICogc2lnbmlmaWNhbmQg
LyAxMDI0OworICAgICAgICAgICAgICAgIGlmIChzaWduICE9IDApCisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlICo9IC0xOworICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgZG91YmxlQXJyYXlbMF0gPSAwOwogCisgICAgICAgICAgICB1
aW50QXJyYXlbN10gfD0gc2lnbjsKKyAgICAgICAgICAgIHVpbnRBcnJheVs3XSB8PSAoZXhwb25l
bnQgPj4+IDQpOworICAgICAgICAgICAgdWludEFycmF5WzZdIHw9ICgoZXhwb25lbnQgPDwgNCkg
JiAweGYwKTsKKyAgICAgICAgICAgIHVpbnRBcnJheVs2XSB8PSAoc2lnbmlmaWNhbmQgPj4+IDYp
OworICAgICAgICAgICAgdWludEFycmF5WzVdIHw9ICgoc2lnbmlmaWNhbmQgPDwgMikgJiAweGZj
KTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIGRvdWJsZUFycmF5WzBdOworICAg
ICAgICB9CisgICAgICAgIAogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5h
dGl2ZSB0eXBlZGVmIGZsb2F0MzI8PiIsCisgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdm9p
ZCIsCiAgICAgICAgICAgICB0eXBlID0+IHsKLSAgICAgICAgICAgICAgICB0aGlzLmZsb2F0ID0g
dHlwZTsKLSAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICB0eXBlLnNpemUgPSAxOwotICAgICAgICAgICAgICAgIHR5cGUuaXNGbG9hdGluZyA9
IHRydWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7Ci0gICAgICAgICAg
ICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFsZW50KE1h
dGguZnJvdW5kKHZhbHVlKSwgdmFsdWUpOwotICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsK
LSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9
PiB2YWx1ZTsKLSAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFs
ID0gdmFsdWUgPT4gdmFsdWU7Ci0gICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21G
bG9hdExpdGVyYWwgPSB2YWx1ZSA9PiBNYXRoLmZyb3VuZCh2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgdGhpcy52b2lkID0gdHlwZTsKKyAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAwOworICAg
ICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoKSA9PiB7IH07CiAgICAg
ICAgICAgICB9KTsKLQorICAgICAgICAKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAg
ICAgICJuYXRpdmUgdHlwZWRlZiBib29sPD4iLAorICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVm
IGJvb2wiLAogICAgICAgICAgICAgdHlwZSA9PiB7CiAgICAgICAgICAgICAgICAgdGhpcy5ib29s
ID0gdHlwZTsKICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKICAgICAg
ICAgICAgICAgICB0eXBlLnNpemUgPSAxOwogICAgICAgICAgICAgICAgIHR5cGUucG9wdWxhdGVE
ZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5zZXQob2Zmc2V0LCBmYWxz
ZSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMih1aW50MzIpIiwKLSAgICAgICAg
ICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4gRVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgfCAwKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICAKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWNoYXIiLAorICAgICAg
ICAgICAgIHR5cGUgPT4geworICAgICAgICAgICAgICAgICB0aGlzLnVjaGFyID0gdHlwZTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNJbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1NpZ25lZCA9IGZhbHNlOworICAgICAgICAgICAg
ICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQodmFs
dWUgJiAweGZmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAg
ICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0aFR5cGUo
b3JpZ2luLCB2YWx1ZSAmIDB4ZmYsIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nl
c3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsgMSkgJiAweGZmOworICAgICAgICAgICAgICAg
ICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAgICAgICAgICAg
IHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+IGJ1ZmZlci5z
ZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21JbnRM
aXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAgICAgICAgICAgICB0eXBlLmZv
cm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgJiAweGZmOworICAgICAg
ICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4ZmY7ICsraSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB5aWVsZCB7dmFsdWU6IGksIG5hbWU6IGl9OworICAgICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgIH0pOworCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIG9wZXJhdG9yPD4gaW50MzIodWludDgpIiwKKyAgICAgICAgICAgICAibmF0aXZlIHR5
cGVkZWYgdXNob3J0IiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAg
dGhpcy51c2hvcnQgPSB0eXBlOworICAgICAgICAgICAgICAgICB0eXBlLmlzUHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc0ludCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgIHR5cGUuaXNOdW1iZXIgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzU2lnbmVk
ID0gZmFsc2U7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50ID0gdmFsdWUgPT4g
aXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSAmIDB4ZmZmZiwgdmFsdWUpOworICAgICAgICAgICAg
ICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAgICB0eXBlLmRlZmF1bHRWYWx1ZSA9
IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0ZXJhbCA9IChvcmlnaW4sIHZhbHVl
KSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgdmFsdWUgJiAweGZmZmYsIHR5cGUpOwor
ICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nlc3NvclZhbHVlID0gdmFsdWUgPT4gKHZhbHVlICsg
MSkgJiAweGZmZmY7CisgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikg
PT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9
IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAg
ICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSAmIDB4
ZmZmZjsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9
IHZhbHVlID0+IHZhbHVlICYgMHhmZmZmOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVl
cyA9IGZ1bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDw9IDB4ZmZmZjsgKytpKQorICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTog
aSwgbmFtZTogaX07CisgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAibmF0aXZlIHR5cGVkZWYgdWludCIs
CisgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMudWludCA9IHR5
cGU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAg
ICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJl
ciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNTaWduZWQgPSBmYWxzZTsKKyAgICAg
ICAgICAgICAgICAgdHlwZS5jYW5SZXByZXNlbnQgPSB2YWx1ZSA9PiBpc0JpdHdpc2VFcXVpdmFs
ZW50KHZhbHVlID4+PiAwLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7
CisgICAgICAgICAgICAgICAgIHR5cGUuZGVmYXVsdFZhbHVlID0gMDsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5jcmVhdGVMaXRlcmFsID0gKG9yaWdpbiwgdmFsdWUpID0+IEludExpdGVyYWwud2l0
aFR5cGUob3JpZ2luLCB2YWx1ZSA+Pj4gMCwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUu
c3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFsdWUgKyAxKSA+Pj4gMDsKKyAgICAgICAgICAg
ICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAgICAg
ICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBidWZm
ZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9t
SW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlID4+PiAwOworICAgICAgICAgICAgICAgICB0eXBl
LmZvcm1hdFZhbHVlRnJvbVVpbnRMaXRlcmFsID0gdmFsdWUgPT4gdmFsdWUgPj4+IDA7CisgICAg
ICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rpb24qKCkgeworICAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZmZmZmZjsgKytpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgIHlpZWxkIHt2YWx1ZTogaSwgbmFtZTogaX07CisgICAgICAgICAgICAg
ICAgIH07CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAg
ICAgICAgICAibmF0aXZlIHR5cGVkZWYgY2hhciIsCisgICAgICAgICAgICAgdHlwZSA9PiB7Cisg
ICAgICAgICAgICAgICAgIHRoaXMuY2hhciA9IHR5cGU7CisgICAgICAgICAgICAgICAgIHR5cGUu
aXNQcmltaXRpdmUgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmlzSW50ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNTaWduZWQgPSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2Vu
dCA9IHZhbHVlID0+IGlzQml0d2lzZUVxdWl2YWxlbnQoY2FzdChJbnQ4QXJyYXksIHZhbHVlKSwg
dmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dChJbnQ4QXJyYXksIHZhbHVlKSwgdHlwZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vz
c29yVmFsdWUgPSB2YWx1ZSA9PiBjYXN0KEludDhBcnJheSwgdmFsdWUgKyAxKTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS52YWx1ZXNFcXVhbCA9IChhLCBiKSA9PiBhID09PSBiOworICAgICAgICAg
ICAgICAgICB0eXBlLnBvcHVsYXRlRGVmYXVsdFZhbHVlID0gKGJ1ZmZlciwgb2Zmc2V0KSA9PiBi
dWZmZXIuc2V0KG9mZnNldCwgMCk7CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVG
cm9tSW50TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3QoSW50OEFycmF5LCB2YWx1ZSk7CisgICAgICAg
ICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBjYXN0
KEludDhBcnJheSwgdmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLmFsbFZhbHVlcyA9IGZ1
bmN0aW9uKigpIHsKKyAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IDB4
ZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNhc3QoSW50
OEFycmF5LCBpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCB7dmFsdWU6IHZhbHVl
LCBuYW1lOiB2YWx1ZX07CisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
IH07CisgICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAibmF0aXZlIHR5cGVkZWYgc2hvcnQiLAorICAgICAgICAgICAgIHR5cGUgPT4geworICAg
ICAgICAgICAgICAgICB0aGlzLnNob3J0ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5p
c1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVlOwor
ICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAg
dHlwZS5pc1NpZ25lZCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVzZW50
ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChjYXN0KEludDE2QXJyYXksIHZhbHVlKSwg
dmFsdWUpOworICAgICAgICAgICAgICAgICB0eXBlLnNpemUgPSAxOworICAgICAgICAgICAgICAg
ICB0eXBlLmRlZmF1bHRWYWx1ZSA9IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuY3JlYXRlTGl0
ZXJhbCA9IChvcmlnaW4sIHZhbHVlKSA9PiBJbnRMaXRlcmFsLndpdGhUeXBlKG9yaWdpbiwgY2Fz
dChJbnQxNkFycmF5LCB2YWx1ZSksIHR5cGUpOworICAgICAgICAgICAgICAgICB0eXBlLnN1Y2Nl
c3NvclZhbHVlID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSArIDEpOworICAgICAg
ICAgICAgICAgICB0eXBlLnZhbHVlc0VxdWFsID0gKGEsIGIpID0+IGEgPT09IGI7CisgICAgICAg
ICAgICAgICAgIHR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUgPSAoYnVmZmVyLCBvZmZzZXQpID0+
IGJ1ZmZlci5zZXQob2Zmc2V0LCAwKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3JtYXRWYWx1
ZUZyb21JbnRMaXRlcmFsID0gdmFsdWUgPT4gY2FzdChJbnQxNkFycmF5LCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1ZSA9PiBj
YXN0KEludDE2QXJyYXksIHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5hbGxWYWx1ZXMg
PSBmdW5jdGlvbiooKSB7CisgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8
PSAweGZmZmY7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGNh
c3QoSW50MTZBcnJheSwgaSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVl
OiB2YWx1ZSwgbmFtZTogdmFsdWV9OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgIH0pOworCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisg
ICAgICAgICAgICAgIm5hdGl2ZSB0eXBlZGVmIGludCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7
CisgICAgICAgICAgICAgICAgIHRoaXMuaW50ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlw
ZS5pc1ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNJbnQgPSB0cnVl
OworICAgICAgICAgICAgICAgICB0eXBlLmlzTnVtYmVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc1NpZ25lZCA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudCh2YWx1ZSB8IDAsIHZhbHVlKTsKKyAg
ICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsKKyAgICAgICAgICAgICAgICAgdHlwZS5kZWZh
dWx0VmFsdWUgPSAwOworICAgICAgICAgICAgICAgICB0eXBlLmNyZWF0ZUxpdGVyYWwgPSAob3Jp
Z2luLCB2YWx1ZSkgPT4gSW50TGl0ZXJhbC53aXRoVHlwZShvcmlnaW4sIHZhbHVlIHwgMCwgdHlw
ZSk7CisgICAgICAgICAgICAgICAgIHR5cGUuc3VjY2Vzc29yVmFsdWUgPSB2YWx1ZSA9PiAodmFs
dWUgKyAxKSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUudmFsdWVzRXF1YWwgPSAoYSwgYikg
PT4gYSA9PT0gYjsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9
IChidWZmZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAg
ICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZSB8IDA7
CisgICAgICAgICAgICAgICAgIHR5cGUuZm9ybWF0VmFsdWVGcm9tVWludExpdGVyYWwgPSB2YWx1
ZSA9PiB2YWx1ZSB8IDA7CisgICAgICAgICAgICAgICAgIHR5cGUuYWxsVmFsdWVzID0gZnVuY3Rp
b24qKCkgeworICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gMHhmZmZm
ZmZmZjsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gaSB8IDA7
CisgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQge3ZhbHVlOiB2YWx1ZSwgbmFtZTogdmFs
dWV9OworICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICB9OworICAgICAg
ICAgICAgIH0pOworCisgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICJuYXRp
dmUgdHlwZWRlZiBoYWxmIiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAg
ICAgdGhpcy5oYWxmID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5pc1ByaW1pdGl2ZSA9
IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuc2l6ZSA9IDE7CisgICAgICAgICAgICAgICAg
IHR5cGUuaXNGbG9hdGluZyA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuaXNOdW1iZXIg
PSB0cnVlOworICAgICAgICAgICAgICAgICB0eXBlLmNhblJlcHJlc2VudCA9IHZhbHVlID0+IGlz
Qml0d2lzZUVxdWl2YWxlbnQoY2FzdFRvSGFsZih2YWx1ZSksIHZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZmZXIsIG9mZnNldCkgPT4gYnVm
ZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJv
bUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5mb3Jt
YXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVlOworICAgICAgICAgICAgICAg
ICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZhbHVlID0+IGNhc3RUb0hhbGYo
dmFsdWUpOworICAgICAgICAgICAgIH0pOworCisgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBmbG9hdCIsCisgICAgICAgICAgICAgdHlwZSA9PiB7
CisgICAgICAgICAgICAgICAgIHRoaXMuZmxvYXQgPSB0eXBlOworICAgICAgICAgICAgICAgICB0
eXBlLmlzUHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgdHlwZS5zaXplID0gMTsK
KyAgICAgICAgICAgICAgICAgdHlwZS5pc0Zsb2F0aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgICAg
ICAgdHlwZS5pc051bWJlciA9IHRydWU7CisgICAgICAgICAgICAgICAgIHR5cGUuY2FuUmVwcmVz
ZW50ID0gdmFsdWUgPT4gaXNCaXR3aXNlRXF1aXZhbGVudChNYXRoLmZyb3VuZCh2YWx1ZSksIHZh
bHVlKTsKKyAgICAgICAgICAgICAgICAgdHlwZS5wb3B1bGF0ZURlZmF1bHRWYWx1ZSA9IChidWZm
ZXIsIG9mZnNldCkgPT4gYnVmZmVyLnNldChvZmZzZXQsIDApOworICAgICAgICAgICAgICAgICB0
eXBlLmZvcm1hdFZhbHVlRnJvbUludExpdGVyYWwgPSB2YWx1ZSA9PiB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICAgdHlwZS5mb3JtYXRWYWx1ZUZyb21VaW50TGl0ZXJhbCA9IHZhbHVlID0+IHZhbHVl
OworICAgICAgICAgICAgICAgICB0eXBlLmZvcm1hdFZhbHVlRnJvbUZsb2F0TGl0ZXJhbCA9IHZh
bHVlID0+IE1hdGguZnJvdW5kKHZhbHVlKTsKKyAgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBhdG9taWNfaW50IiwK
KyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgdGhpcy5hdG9taWNfaW50
ID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBw
dXQgaGVyZS4KKyAgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAg
ICAgICAgICAgICJuYXRpdmUgdHlwZWRlZiBhdG9taWNfdWludCIsCisgICAgICAgICAgICAgdHlw
ZSA9PiB7CisgICAgICAgICAgICAgICAgIHRoaXMuYXRvbWljX3VpbnQgPSB0eXBlOworICAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogRmlndXJlIG91dCB3aGF0IHRvIHB1dCBoZXJlLgorICAgICAg
ICAgICAgIH0pOworCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJib29sIiwg
InVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaW50IiwgImhhbGYi
LCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7
CisgICAgICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICAgICAgYG5h
dGl2ZSB0eXBlZGVmICR7cHJpbWl0aXZlVHlwZX0ke2l9YCwKKyAgICAgICAgICAgICAgICAgICAg
dHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3ByaW1pdGl2ZVR5cGV9
JHtpfWBdID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBGaWd1cmUg
b3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbImhh
bGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgZm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytp
KSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDI7IGogPD0gNDsgKytqKSB7CisgICAg
ICAgICAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBg
bmF0aXZlIHR5cGVkZWYgJHtwcmltaXRpdmVUeXBlfSR7aX14JHtqfWAsCisgICAgICAgICAgICAg
ICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ak
e3ByaW1pdGl2ZVR5cGV9JHtpfXgke2p9YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBGaWd1cmUgb3V0IHdoYXQgdG8gcHV0IGhlcmUuCisgICAgICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICJuYXRpdmUgdHlw
ZWRlZiBzYW1wbGVyIiwKKyAgICAgICAgICAgICB0eXBlID0+IHsKKyAgICAgICAgICAgICAgICAg
dGhpcy5zYW1wbGVyID0gdHlwZTsKKyAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBv
dXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICB9KTsKKworICAgICAgICBmb3IgKGxl
dCB0ZXh0dXJlVHlwZSBvZiBbIlRleHR1cmUxRCIsICJSV1RleHR1cmUxRCIsICJUZXh0dXJlMURB
cnJheSIsICJSV1RleHR1cmUxREFycmF5IiwgIlRleHR1cmUyRCIsICJSV1RleHR1cmUyRCIsICJU
ZXh0dXJlMkRBcnJheSIsICJSV1RleHR1cmUyREFycmF5IiwgIlRleHR1cmUzRCIsICJSV1RleHR1
cmUzRCIsICJUZXh0dXJlQ3ViZSJdKSB7CisgICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1l
bnQgb2YgWyJib29sIiwgInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQi
LCAiaW50IiwgImhhbGYiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1cmVUeXBlfTwk
e3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YF0g
PSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hh
dCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaSA9IDI7IGkgPD0gNDsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIHRoaXMu
X21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgICAgICBgbmF0aXZlIHR5cGVkZWYgJHt0ZXh0
dXJlVHlwZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gLAorICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tgJHt0ZXh0dXJlVHlw
ZX08JHt0eXBlQXJndW1lbnR9JHtpfT5gXSA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIGZvciAobGV0IHRleHR1cmVUeXBlIG9mIFsiVGV4dHVyZURlcHRoMkQi
LCAiUldUZXh0dXJlRGVwdGgyRCIsICJUZXh0dXJlRGVwdGgyREFycmF5IiwgIlJXVGV4dHVyZURl
cHRoMkRBcnJheSIsICJUZXh0dXJlRGVwdGhDdWJlIl0pIHsKKyAgICAgICAgICAgIGZvciAobGV0
IHR5cGVBcmd1bWVudCBvZiBbImZsb2F0IiwgImhhbGYiXSkgeworICAgICAgICAgICAgICAgIHRo
aXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgICAgIGBuYXRpdmUgdHlwZWRlZiAke3RleHR1
cmVUeXBlfTwke3R5cGVBcmd1bWVudH0+YCwKKyAgICAgICAgICAgICAgICAgICAgdHlwZSA9PiB7
CisgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Ake3RleHR1cmVUeXBlfTwke3R5cGVBcmd1
bWVudH0+YF0gPSB0eXBlOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IEZpZ3Vy
ZSBvdXQgd2hhdCB0byBwdXQgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsi
dXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJd
KSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUg
b3BlcmF0b3IgdWNoYXIoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMg
PT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmltaXRpdmVUeXBlIG9mIFsidWNo
YXIiLCAidWludCIsICJjaGFyIiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsK
KyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVy
YXRvciB1c2hvcnQoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpICYgMHhmZmZmKTsKKyAgICAgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1Y2hh
ciIsICJ1c2hvcnQiLCAiY2hhciIsICJzaG9ydCIsICJpbnQiLCAiaGFsZiIsICJmbG9hdCJdKSB7
CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgb3Bl
cmF0b3IgdWludCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4g
RVB0ci5ib3godmFsdWUubG9hZFZhbHVlKCkgPj4+IDApOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlwZSBvZiBbInVjaGFyIiwg
InVzaG9ydCIsICJ1aW50IiwgInNob3J0IiwgImludCIsICJoYWxmIiwgImZsb2F0Il0pIHsKKyAg
ICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRv
ciBjaGFyKCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAgICBmdW5jID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRy
LmJveChjYXN0KEludDhBcnJheSwgdmFsdWUubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHByaW1pdGl2ZVR5cGUgb2YgWyJ1
Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgImludCIsICJoYWxmIiwgImZsb2F0Il0p
IHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAgICAgYG5hdGl2ZSBv
cGVyYXRvciBzaG9ydCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAgICAgICAgICAgICAgZnVuYyA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4gRVB0ci5ib3goY2FzdChJbnQxNkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChsZXQgcHJpbWl0aXZlVHlw
ZSBvZiBbInVjaGFyIiwgInVzaG9ydCIsICJ1aW50IiwgImNoYXIiLCAic2hvcnQiLCAiaGFsZiIs
ICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAg
IGBuYXRpdmUgb3BlcmF0b3IgaW50KCR7cHJpbWl0aXZlVHlwZX0pYCwKKyAgICAgICAgICAgICAg
ICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveChjYXN0KEludDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGxldCBwcmlt
aXRpdmVUeXBlIG9mIFsidWNoYXIiLCAidXNob3J0IiwgInVpbnQiLCAiY2hhciIsICJzaG9ydCIs
ICJpbnQiLCAiZmxvYXQiXSkgeworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAg
ICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGhhbGYoJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KGNhc3RUb0hhbGYodmFsdWUubG9hZFZhbHVlKCkp
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAobGV0IHBy
aW1pdGl2ZVR5cGUgb2YgWyJ1Y2hhciIsICJ1c2hvcnQiLCAidWludCIsICJjaGFyIiwgInNob3J0
IiwgImludCIsICJoYWxmIl0pIHsKKyAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciBmbG9hdCgke3ByaW1pdGl2ZVR5cGV9KWAsCisgICAg
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVl
KCkpKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX21h
cC5zZXQoCisgICAgICAgICAgICBgbmF0aXZlIG9wZXJhdG9yIGludChhdG9taWNfaW50KWAsCiAg
ICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1
ZS5sb2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiBpbnQzMihmbG9hdCki
LAorICAgICAgICAgICAgYG5hdGl2ZSBvcGVyYXRvciB1aW50KGF0b21pY191aW50KWAsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpIHwgMCk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5s
b2FkVmFsdWUoKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5f
bWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50MzIoaW50MzIpIiwK
KyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09KGJvb2wsYm9vbCkiLAogICAgICAg
ICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChb
dmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSA+Pj4gMCk7CisgICAgICAgICAg
ICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAg
ICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJpZ2h0LmxvYWRWYWx1ZSgp
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKworCisgICAgICAgIGZvciAobGV0IHByaW1p
dGl2ZVR5cGUgb2YgWyJ1aW50IiwgImludCIsICJmbG9hdCJdKSB7CisgICAgICAgICAgICB0aGlz
Ll9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVyYXRvcj09KCR7cHJp
bWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1bmMgPT4g
eworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgp
ID09IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJvb2wgb3BlcmF0b3I8
KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0LmxvYWRW
YWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIH0pOworCisgICAg
ICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRpdmUgYm9vbCBvcGVy
YXRvcjw9KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAgICAgICAg
ICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpIDw9IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICB9KTsK
KworICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICAgICBgbmF0aXZlIGJv
b2wgb3BlcmF0b3I+KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAorICAgICAg
ICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eChsZWZ0LmxvYWRWYWx1ZSgpID4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAg
IH0pOworCisgICAgICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgICAgIGBuYXRp
dmUgYm9vbCBvcGVyYXRvcj49KCR7cHJpbWl0aXZlVHlwZX0sJHtwcmltaXRpdmVUeXBlfSlgLAor
ICAgICAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+CisgICAgICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfQorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIG9wZXJhdG9yPD4gdWludDMyKHVpbnQ4KSIsCisgICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvci0oaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVl
LmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9u
ID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KCgtdmFsdWUubG9h
ZFZhbHVlKCkpIHwgMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgb3BlcmF0b3I8PiB1aW50MzIoZmxvYXQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxvYWRWYWx1ZSgpID4+PiAwKTsKKyAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAg
ICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKC12YWx1ZS5sb2FkVmFsdWUoKSkpOwogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIG9wZXJhdG9yPD4gdWludDgoaW50MzIpIiwKKyAgICAgICAgICAgICJuYXRpdmUgaW50
IG9wZXJhdG9yKyhpbnQsaW50KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAg
ICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KHZhbHVlLmxv
YWRWYWx1ZSgpICYgMHhmZik7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIG9w
ZXJhdG9yPD4gdWludDgodWludDMyKSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRv
ci0oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUo
KSAmIDB4ZmYpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQs
IHJpZ2h0XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVl
KCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAK
KwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+
IHVpbnQ4KGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciooaW50LGlu
dCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1l
bnRhdGlvbiA9IChbdmFsdWVdKSA9PiBFUHRyLmJveCh2YWx1ZS5sb2FkVmFsdWUoKSAmIDB4ZmYp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgKiByaWdo
dC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZsb2F0KGlu
dDMyKSIsCisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvci8oaW50LGludCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5s
b2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0
aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZsb2F0KHVpbnQz
MikiLAorICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKyh1aW50LHVpbnQpIiwKICAg
ICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24g
PSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goTWF0aC5mcm91bmQodmFsdWUubG9hZFZhbHVlKCkpKTsK
KyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpICsgcmlnaHQu
bG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAg
ICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBvcGVyYXRvcjw+IGZsb2F0KHVp
bnQ4KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3ItKHVpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PiBFUHRyLmJveChNYXRoLmZyb3VuZCh2YWx1ZS5sb2FkVmFsdWUoKSkp
OworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdo
dC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcis8Pihp
bnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQsdWludCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgo
bGVmdC5sb2FkVmFsdWUoKSArIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAqIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+
Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNl
dCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcis8Pih1aW50LHVpbnQpIiwKKyAg
ICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci8odWludCx1aW50KSIsCiAgICAgICAgICAg
ICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0
LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1
ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLyByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAg
ICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKzw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAg
ICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yKyhmbG9hdCxmbG9hdCkiLAogICAgICAgICAgICAgZnVu
YyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmln
aHRdKSA9PgogICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0Lmxv
YWRWYWx1ZSgpICsgcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAg
ICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3Bl
cmF0b3ItPD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBvcGVyYXRvci0o
ZmxvYXQsZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAg
ICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsK
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUo
KSAtIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAg
ICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvci08
Pih1aW50LHVpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0
LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIC0gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKKyAg
ICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAq
IHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAg
ICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3ItPD4o
ZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgb3BlcmF0b3IvKGZsb2F0
LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmlt
cGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKGxlZnQubG9hZFZhbHVlKCkgLSByaWdodC5sb2FkVmFsdWUoKSkp
OworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1
ZSgpIC8gcmlnaHQubG9hZFZhbHVlKCkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3Iq
PD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3ImKGludCxpbnQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
KGxlZnQubG9hZFZhbHVlKCkgKiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSkg
fCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0
KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yKjw+KHVpbnQsdWludCkiLAorICAg
ICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3J8KGludCxpbnQpIiwKICAgICAgICAgICAgIGZ1
bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJp
Z2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkg
KiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJv
eCgobGVmdC5sb2FkVmFsdWUoKSB8IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIGZsb2F0IG9wZXJhdG9yKjw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0
aXZlIGludCBvcGVyYXRvcl4oaW50LGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChsZWZ0LmxvYWRWYWx1ZSgpICog
cmlnaHQubG9hZFZhbHVlKCkpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQu
bG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwot
ICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBp
bnQgb3BlcmF0b3IvPD4oaW50LGludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3J+KGludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBF
UHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOworICAg
ICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3go
KH52YWx1ZS5sb2FkVmFsdWUoKSkgfCAwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9y
Lzw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0b3I8PChpbnQs
dWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRy
LmJveCgobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAg
ICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRW
YWx1ZSgpKSB8IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMu
X21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvciY8PihpbnQsaW50KSIs
CisgICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcj4+KGludCx1aW50KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgJiByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94
KChsZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKSB8IDApOwogICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAi
bmF0aXZlIHVpbnQgb3BlcmF0b3ImPD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZl
IHVpbnQgb3BlcmF0b3ImKHVpbnQsdWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAg
ICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgogICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSAmIHJpZ2h0LmxvYWRW
YWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfDw+KGludCxpbnQp
IiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcnwodWludCx1aW50KSIsCiAgICAg
ICAgICAgICBmdW5jID0+IHsKICAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0g
KFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9h
ZFZhbHVlKCkgfCByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIu
Ym94KChsZWZ0LmxvYWRWYWx1ZSgpIHwgcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsKICAgICAg
ICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAg
ICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yfDw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSB1aW50IG9wZXJhdG9yXih1aW50LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewog
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4K
LSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgfCByaWdodC5s
b2FkVmFsdWUoKSkgPj4+IDApOworICAgICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5s
b2FkVmFsdWUoKSBeIHJpZ2h0LmxvYWRWYWx1ZSgpKSA+Pj4gMCk7CiAgICAgICAgICAgICB9KTsK
LSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUg
aW50IG9wZXJhdG9yXjw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVy
YXRvcn4odWludCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIF4gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52
YWx1ZS5sb2FkVmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3Je
PD4odWludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50
LHVpbnQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewogICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgXiByaWdodC5sb2FkVmFsdWUoKSkgPj4+IDApOworICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveCgobGVmdC5sb2FkVmFsdWUoKSA8PCByaWdodC5sb2Fk
VmFsdWUoKSkgPj4+IDApOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGludCBvcGVyYXRvcjw8PD4oaW50LHVp
bnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgdWludCBvcGVyYXRvcj4+KHVpbnQsdWludCkiLAog
ICAgICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0
LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAg
RVB0ci5ib3goKGxlZnQubG9hZFZhbHVlKCkgPj4gcmlnaHQubG9hZFZhbHVlKCkpID4+PiAwKTsK
ICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAg
ICAgICAgICAgIm5hdGl2ZSB1aW50IG9wZXJhdG9yPDw8Pih1aW50LHVpbnQpIiwKKyAgICAgICAg
ICAgICJuYXRpdmUgZmxvYXQgY29zKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KChsZWZ0LmxvYWRWYWx1ZSgpIDw8IHJpZ2h0Lmxv
YWRWYWx1ZSgpKSA+Pj4gMCk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChN
YXRoLmNvcyh2YWx1ZS5sb2FkVmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAK
KwogICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBpbnQgb3BlcmF0
b3I+Pjw+KGludCx1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IHNpbihmbG9hdCki
LAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChs
ZWZ0LmxvYWRWYWx1ZSgpID4+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGguc2luKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIHVpbnQgb3BlcmF0b3I+Pjw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCB0YW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA+Pj4gcmlnaHQubG9hZFZhbHVl
KCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50YW4odmFsdWUu
bG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhp
cy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgaW50IG9wZXJhdG9yfjw+KGludCkiLAor
ICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhY29zKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+
IEVQdHIuYm94KH52YWx1ZS5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLmFjb3ModmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgdWludCBvcGVyYXRvcn48Pih1aW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGFz
aW4oZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4gRVB0ci5ib3goKH52YWx1ZS5sb2FkVmFsdWUo
KSkgPj4+IDApOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hc2lu
KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAg
ICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGZsb2F0IG9wZXJhdG9yLzw+
KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGF0YW4oZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQobGVmdC5sb2FkVmFsdWUoKSAvIHJpZ2h0LmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAg
ICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLmF0YW4odmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcj09PD4oaW50LGludCkiLAorICAgICAg
ICAgICAgIm5hdGl2ZSBmbG9hdCBjb3NoKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsK
LSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+
Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQu
bG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3Zh
bHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5j
b3NoKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAg
ICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9
PTw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzaW5oKGZsb2F0KSIs
CiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxl
ZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1
bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5zaW5oKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PTw+KGJvb2wsYm9vbCkiLAorICAgICAgICAgICAgIm5h
dGl2ZSBmbG9hdCB0YW5oKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPT0gcmlnaHQubG9hZFZhbHVl
KCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4K
KyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50YW5oKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I9PTw+KGZsb2F0
LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGNlaWwoZmxvYXQpIiwKICAgICAg
ICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAo
W2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2Fk
VmFsdWUoKSA9PSByaWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChN
YXRoLmZyb3VuZChNYXRoLmNlaWwodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9
KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRp
dmUgYm9vbCBvcGVyYXRvcjw8PihpbnQsaW50KSIsCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0
IGV4cChmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpIDwgcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAg
ICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAg
ICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC5leHAodmFsdWUubG9hZFZhbHVlKCkp
KSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisKICAgICAgICAgdGhpcy5fbWFwLnNldCgK
LSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRvcjw8Pih1aW50LHVpbnQpIiwKKyAgICAg
ICAgICAgICJuYXRpdmUgZmxvYXQgZmxvb3IoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4g
ewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkg
PT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0
LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2
YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgu
Zmxvb3IodmFsdWUubG9hZFZhbHVlKCkpKSk7CiAgICAgICAgICAgICB9KTsKLSAgICAgICAgCisK
ICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAgICJuYXRpdmUgYm9vbCBvcGVyYXRv
cjw8PihmbG9hdCxmbG9hdCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBsb2coZmxvYXQp
IiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
bGVmdC5sb2FkVmFsdWUoKSA8IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBm
dW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQ
dHIuYm94KE1hdGguZnJvdW5kKE1hdGgubG9nKHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAg
ICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PTw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRp
dmUgZmxvYXQgcm91bmQoZmxvYXQpIiwKICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAg
ICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAg
ICAgICAgICAgICAgRVB0ci5ib3gobGVmdC5sb2FkVmFsdWUoKSA8PSByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9Pgor
ICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChNYXRoLmZyb3VuZChNYXRoLnJvdW5kKHZhbHVl
LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRo
aXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I8PTw+KHVpbnQs
dWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBzcXJ0KGZsb2F0KSIsCiAgICAgICAg
ICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFts
ZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZh
bHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVt
ZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0
aC5mcm91bmQoTWF0aC5zcXJ0KHZhbHVlLmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7
Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZl
IGJvb2wgb3BlcmF0b3I8PTw+KGZsb2F0LGZsb2F0KSIsCisgICAgICAgICAgICAibmF0aXZlIGZs
b2F0IHRydW5jKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAgICAgICAg
ICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPD0gcmlnaHQubG9hZFZhbHVlKCkpOwor
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAg
ICAgICAgICAgICAgICAgRVB0ci5ib3goTWF0aC5mcm91bmQoTWF0aC50cnVuYyh2YWx1ZS5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPjw+KGludCxpbnQpIiwK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgZGR4KGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5j
ID0+IHsKLSAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdo
dF0pID0+Ci0gICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiBy
aWdodC5sb2FkVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbdmFsdWVdKSA9PiBFUHRyLmJveCgwKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKKwog
ICAgICAgICB0aGlzLl9tYXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9y
Pjw+KHVpbnQsdWludCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBkZHkoZmxvYXQpIiwK
ICAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRp
b24gPSAoW2xlZnQsIHJpZ2h0XSkgPT4KLSAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3gobGVm
dC5sb2FkVmFsdWUoKSA+IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBmdW5j
LmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+IEVQdHIuYm94KDApOwogICAgICAgICAgICAg
fSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0
aXZlIGJvb2wgb3BlcmF0b3I+PD4oZmxvYXQsZmxvYXQpIiwKKyAgICAgICAgICAgICJuYXRpdmUg
ZmxvYXQgcG93KGZsb2F0LGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKICAgICAgICAg
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0gICAgICAg
ICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPiByaWdodC5sb2FkVmFsdWUo
KSk7CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KE1hdGguZnJvdW5kKE1hdGgucG93KGxl
ZnQubG9hZFZhbHVlKCksIHJpZ2h0LmxvYWRWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAgICAgICAgICAibmF0aXZlIGJv
b2wgb3BlcmF0b3I+PTw+KGludCxpbnQpIiwKKyAgICAgICAgICAgICJuYXRpdmUgYm9vbCBpc2Zp
bml0ZShmbG9hdCkiLAogICAgICAgICAgICAgZnVuYyA9PiB7Ci0gICAgICAgICAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAg
ICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAg
ICAgICAgICAgIEVQdHIuYm94KE51bWJlci5pc0Zpbml0ZSh2YWx1ZS5sb2FkVmFsdWUoKSkpOwog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCiAgICAgICAgIHRoaXMuX21hcC5zZXQoCi0gICAg
ICAgICAgICAibmF0aXZlIGJvb2wgb3BlcmF0b3I+PTw+KHVpbnQsdWludCkiLAorICAgICAgICAg
ICAgIm5hdGl2ZSBib29sIGlzaW5mKGZsb2F0KSIsCiAgICAgICAgICAgICBmdW5jID0+IHsKLSAg
ICAgICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtsZWZ0LCByaWdodF0pID0+Ci0g
ICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGxlZnQubG9hZFZhbHVlKCkgPj0gcmlnaHQubG9h
ZFZhbHVlKCkpOworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVl
XSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goKHZhbHVlLmxvYWRWYWx1ZSgpID09
IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSkgfHwgKHZhbHVlLmxvYWRWYWx1ZSgpID09IE51bWJl
ci5ORUdBVElWRV9JTkZJTklUWSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIAorCisgICAg
ICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGJvb2wgaXNuYW4oZmxvYXQp
IiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goTnVtYmVy
LmlzTmFOKHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAg
ICAgICAibmF0aXZlIGJvb2wgaXNub3JtYWwoaGFsZikiLAorICAgICAgICAgICAgZnVuYyA9PiB7
CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAg
ICAgICAgICAgICAgICAgICBFUHRyLmJveChpc05hTih2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgICAg
ICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSBib29sIGlzbm9ybWFsKGZsb2F0
KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxlbWVu
dGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGlzTmFO
KHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAgICAgICB9KTsKKwogICAgICAgICB0aGlzLl9t
YXAuc2V0KAotICAgICAgICAgICAgIm5hdGl2ZSBib29sIG9wZXJhdG9yPj08PihmbG9hdCxmbG9h
dCkiLAorICAgICAgICAgICAgIm5hdGl2ZSBmbG9hdCBhdGFuMihmbG9hdCxmbG9hdCkiLAogICAg
ICAgICAgICAgZnVuYyA9PiB7CiAgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbbGVmdCwgcmlnaHRdKSA9PgotICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChsZWZ0Lmxv
YWRWYWx1ZSgpID49IHJpZ2h0LmxvYWRWYWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgRVB0
ci5ib3goTWF0aC5mcm91bmQoTWF0aC5hdGFuMihsZWZ0LmxvYWRWYWx1ZSgpLCByaWdodC5sb2Fk
VmFsdWUoKSkpKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQg
YWRkcmVzc1NwYWNlIG9mIGFkZHJlc3NTcGFjZXMpIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5z
ZXQoCi0gICAgICAgICAgICAgICAgYG5hdGl2ZSBUKiAke2FkZHJlc3NTcGFjZX0gb3BlcmF0b3Im
W108VD4oVFtdICR7YWRkcmVzc1NwYWNlfSx1aW50KWAsCi0gICAgICAgICAgICAgICAgZnVuYyA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZiwgaW5k
ZXhdLCBub2RlKSA9PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZh
bHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZikKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJp
bmcsICJOdWxsIGRlcmVmZXJlbmNlIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9
IGluZGV4LmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4g
cmVmLmxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgV1RyYXBF
cnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJBcnJheSBpbmRleCAiICsgaW5kZXggKyAi
IGlzIG91dCBvZiBib3VuZHMgb2YgIiArIHJlZik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRVB0ci5ib3gocmVmLnB0ci5wbHVzKGluZGV4ICogbm9kZS5pbnN0YW50aWF0ZWRBY3R1
YWxUeXBlQXJndW1lbnRzWzBdLnNpemUpKTsKLSAgICAgICAgICAgICAgICAgICAgfTsKLSAgICAg
ICAgICAgICAgICB9KTsKIAotICAgICAgICAgICAgdGhpcy5fbWFwLnNldCgKLSAgICAgICAgICAg
ICAgICBgbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KFRbXSAke2FkZHJlc3NTcGFjZX0p
YCwKLSAgICAgICAgICAgICAgICBmdW5jID0+IHsKLSAgICAgICAgICAgICAgICAgICAgZnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbcmVmXSwgbm9kZSkgPT4gewotICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmID0gcmVmLmxvYWRWYWx1ZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZWYpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KDApOwotICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KHJlZi5sZW5ndGgpOwotICAgICAg
ICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICB9CisgICAgICAg
IHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGludCBhc2ludChmbG9hdCkiLAor
ICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAgICBFUHRyLmJveChiaXR3aXNlQ2Fz
dChGbG9hdDMyQXJyYXksIEludDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7CisgICAgICAg
ICAgICB9KTsKIAotICAgICAgICBmb3IgKGxldCBzd2l6emxlIG9mIFN3aXp6bGVPcC5hbGxTd2l6
emxlT3BlcmF0b3JzKCkpIHsKLSAgICAgICAgICAgIHRoaXMuX21hcC5zZXQoc3dpenpsZS50b1N0
cmluZygpLCAKLSAgICAgICAgICAgIGZ1bmMgPT4gewotICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZlY10sIG5vZGUpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgY29u
c3Qgb3V0cHV0QnVmZmVyID0gbmV3IEVCdWZmZXIoc3dpenpsZS5vdXRTaXplKTsKLSAgICAgICAg
ICAgICAgICAgICAgY29uc3QgcmVhZEluZGljZXMgPSB7ICd4JzogMCwgJ3knOiAxLCAneic6IDIs
ICd3JzogMyB9OwotICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHN3aXp6
bGUub3V0U2l6ZTsgaSsrKQotICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0QnVmZmVyLnNl
dChpLCB2ZWMuZ2V0KHJlYWRJbmRpY2VzW3N3aXp6bGUuY29tcG9uZW50c1tpXV0pKTsKLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gbmV3IEVQdHIob3V0cHV0QnVmZmVyLCAwKTsKLSAgICAgICAgICAgICAgICB9LAot
ICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0gc3dpenpsZTsKLSAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgY29uc29sZS5sb2coc3dpenpsZS50b1N0cmluZygpKTsK
LSAgICAgICAgfQorICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB1
aW50IGFzdWludChmbG9hdCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAg
ICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PgorICAgICAgICAgICAgICAgICAg
ICBFUHRyLmJveChiaXR3aXNlQ2FzdChGbG9hdDMyQXJyYXksIFVpbnQzMkFycmF5LCB2YWx1ZS5s
b2FkVmFsdWUoKSkpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgdGhpcy5fbWFwLnNldCgK
KyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNmbG9hdChpbnQpIiwKKyAgICAgICAgICAgIGZ1
bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkg
PT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3goYml0d2lzZUNhc3QoSW50MzJBcnJheSwg
RmxvYXQzMkFycmF5LCB2YWx1ZS5sb2FkVmFsdWUoKSkpOworICAgICAgICAgICAgfSk7CisKKyAg
ICAgICAgdGhpcy5fbWFwLnNldCgKKyAgICAgICAgICAgICJuYXRpdmUgZmxvYXQgYXNmbG9hdCh1
aW50KSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAgICBmdW5jLmltcGxl
bWVudGF0aW9uID0gKFt2YWx1ZV0pID0+CisgICAgICAgICAgICAgICAgICAgIEVQdHIuYm94KGJp
dHdpc2VDYXN0KFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIHZhbHVlLmxvYWRWYWx1ZSgpKSk7
CisgICAgICAgICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisg
ICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIGZsb2F0IGYxNnRvZjMy
KHVpbnQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMuaW1w
bGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5ib3go
MCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMu
CisgICAgICAgIHRoaXMuX21hcC5zZXQoCisgICAgICAgICAgICAibmF0aXZlIHVpbnQgZjMydG9m
MTYoZmxvYXQpIiwKKyAgICAgICAgICAgIGZ1bmMgPT4geworICAgICAgICAgICAgICAgIGZ1bmMu
aW1wbGVtZW50YXRpb24gPSAoW3ZhbHVlXSkgPT4KKyAgICAgICAgICAgICAgICAgICAgRVB0ci5i
b3goMCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0KAorICAgICAg
ICAgICAgIm5hdGl2ZSB2b2lkIEFsbE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCkiLAorICAg
ICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0aGlzLl9tYXAuc2V0
KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBT
eW5jKCkiLAorICAgICAgICAgICAgZnVuYyA9PiB7CisgICAgICAgICAgICAgICAgZnVuYy5pbXBs
ZW1lbnRhdGlvbiA9IGZ1bmN0aW9uKCkge307CisgICAgICAgICAgICB9KTsKKworICAgICAgICB0
aGlzLl9tYXAuc2V0KAorICAgICAgICAgICAgIm5hdGl2ZSB2b2lkIEdyb3VwTWVtb3J5QmFycmll
cldpdGhHcm91cFN5bmMoKSIsCisgICAgICAgICAgICBmdW5jID0+IHsKKyAgICAgICAgICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb24oKSB7fTsKKyAgICAgICAgICAgIH0pOwog
ICAgIH0KICAgICAKICAgICBhZGQodGhpbmcpCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9NeWxlcy5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TXlsZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YmVkYzhlNjdjMzI0ZWE0NTZhNGJhMmYxMWU5YzUxMjA4
YzdjMjhjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TXlsZXMuaHRtbApAQCAtMCwwICsxLDE1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5NeWxl
czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iTm9kZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmVmZXJlbmNlVHlwZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iVmFsdWUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJld3JpdGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJWaXNpdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVM
aXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDcmVhdGVMaXRlcmFsVHlwZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvcGVydHlBY2Nlc3NFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l6emxlT3AuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iQWRkcmVzc1NwYWNlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJBbm9ueW1vdXNWYXJp
YWJsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQXJyYXlSZWZUeXBlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJBcnJheVR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkFz
c2lnbm1lbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkF1dG9XcmFwcGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJCbG9jay5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iQm9v
bExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkJyZWFrLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDYWxsRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Q2FsbEZ1bmN0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVjay5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iQ2hlY2tMaXRlcmFsVHlwZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkNoZWNrTG9vcHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrUmVjdXJz
aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JlY3Vyc2l2ZVR5cGVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDaGVja1JldHVybnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkNoZWNrVW5yZWFjaGFibGVDb2RlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJD
aGVja1dyYXBwZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNoZWNrZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IkNsb25lUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iQ29tbWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJDb25zdGV4cHJG
b2xkZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJDb252ZXJ0UHRyVG9BcnJheVJlZkV4cHJlc3Npb24uanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9IkRvV2hpbGVMb29wLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJE
b3RFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJEZXJlZmVyZW5jZUV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVBcnJheVJlZi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iRUJ1ZmZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRUJ1ZmZl
ckJ1aWxkZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkVQdHIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IkVudW1MaXRlcmFsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVt
TWVtYmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFbnVtVHlwZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iRXZhbHVhdGlvbkNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iRXZhbHVhdG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHByZXNzaW9uRmluZGVy
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJFeHRlcm5hbE9yaWdpbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZpbmRIaWdo
Wm9tYmllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxhdHRlbmVkU3RydWN0T2Zmc2V0
R2F0aGVyZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iRmxvYXRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iRm9sZENvbnN0ZXhwcnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZvckxv
b3AuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJIaWdoWm9tYmllRmluZGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJJZGVudGl0eUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklmU3Rh
dGVtZW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbmRleEV4cHJlc3Npb24uanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IkluZmVyVHlwZXNGb3JDYWxsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJJbmxpbmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IklubGluZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJJbnRyaW5z
aWNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxleGVyVG9r
ZW4uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTG9naWNhbEV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IkxvZ2ljYWxOb3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ikxvb3BDaGVj
a2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlQXJyYXlSZWZFeHByZXNzaW9uLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJNYWtlUHRyRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iTmFtZUNvbnRleHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5h
bWVGaW5kZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iTmF0aXZlRnVuYy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVy
dHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTnVsbExpdGVyYWwuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJPcmlnaW5LaW5kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJPdmVybG9hZFJlc29sdXRp
b25GYWlsdXJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJQYXJzZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iUHJlcGFyZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvcGVy
dHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9IlJlYWRNb2RpZnlXcml0ZUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlJlY3Vyc2lvbkNoZWNrZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlY3Vyc2l2ZVR5
cGVDaGVja2VyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJSZXNvbHZlTmFtZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9IlJlc29sdmVPdmVybG9hZEltcGwuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9IlJlc29sdmVQcm9wZXJ0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJSZXNvbHZlVHlwZURlZnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJldHVybi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUmV0dXJuQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUmV0dXJuRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTdGFu
ZGFyZExpYnJhcnkuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlN0YXRlbWVudENsb25lci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0TGF5b3V0QnVpbGRlci5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iU3RydWN0VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
U3Vic3RpdHV0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hDYXNlLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJTd2l0Y2hTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJTeW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJUZXJuYXJ5RXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHJhcFN0YXRl
bWVudC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZURlZi5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iVHlwZURlZlJlc29sdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJU
eXBlT3JWYXJpYWJsZVJlZi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZVJlZi5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iVWludExpdGVyYWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFs
VHlwZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iVW5pZmljYXRpb25Db250ZXh0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJVbnJlYWNoYWJsZUNvZGVDaGVja2VyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJWYXJpYWJsZURlY2wuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
IlZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJWaXNpdGluZ1NldC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iV1N5bnRheEVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJXVHJhcEVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXVHlwZUVycm9y
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJXaGlsZUxvb3AuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9IldyYXBDaGVja2VyLmpzIj48L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9IlRlc3Qu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0Pgord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBmdW5jdGlvbigpIHsKKyAgICBwcmVwYXJlKCk7Cit9KTsKKzwvc2NyaXB0PgorCis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9Im1lc3NhZ2VzIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL015bGVzLmpzIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTXlsZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNhM2MzYmVmNzI2
YTcwNDYzMTczMWMzMjkyZWU0MDlkODFkZWFlYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL015bGVzLmpzCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworaWYg
KHRoaXMud2luZG93KSB7CisgICAgdGhpcy5wcmludCA9ICh0ZXh0KSA9PiB7CisgICAgICAgIHZh
ciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibWVzc2FnZXMiKS5hcHBlbmRDaGlsZChzcGFuKTsKKyAgICAgICAg
c3Bhbi5pbm5lckhUTUwgPSB0ZXh0LnJlcGxhY2UoLyAvZywgIiZuYnNwOyIpLnJlcGxhY2UoL1xu
L2csICI8YnI+IikgKyAiPGJyPiI7CisgICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLGRvY3VtZW50
LmJvZHkuc2Nyb2xsSGVpZ2h0KTsKKyAgICB9OworICAgIHRoaXMucHJlY2lzZVRpbWUgPSAoKSA9
PiBwZXJmb3JtYW5jZS5ub3coKSAvIDEwMDA7Cit9IGVsc2UKKyAgICBsb2FkKCJBbGwuanMiKTsK
KworcHJlcGFyZSgiL2ludGVybmFsL3Rlc3QiLCAwLCAiIik7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lQ29udGV4dC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCmluZGV4IGMzMWJjNDI4Mjk0NDMwYmQ0NTI3Nzk2
ZjRkN2E5OTYwNTM5ZjYxODguLmFmY2NlNzEyMzRmNWFhY2RlZjNlM2FlZGQyMTdkNjhkMzVmN2Ix
MDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVDb250ZXh0LmpzCkBA
IC0xMDQsMTMgKzEwNCwxMyBAQCBjbGFzcyBOYW1lQ29udGV4dCB7CiAgICAgICAgIHlpZWxkIHRo
aW5nOwogICAgIH0KICAgICAKLSAgICByZXNvbHZlRnVuY092ZXJsb2FkKG5hbWUsIHR5cGVBcmd1
bWVudHMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNl
KQorICAgIHJlc29sdmVGdW5jT3ZlcmxvYWQobmFtZSwgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlw
ZSwgYWxsb3dFbnRyeVBvaW50ID0gZmFsc2UpCiAgICAgewogICAgICAgICBsZXQgZnVuY3Rpb25z
ID0gdGhpcy5nZXQoRnVuYywgbmFtZSk7CiAgICAgICAgIGlmICghZnVuY3Rpb25zKQogICAgICAg
ICAgICAgcmV0dXJuIHtmYWlsdXJlczogW119OwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIHJl
c29sdmVPdmVybG9hZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVz
LCByZXR1cm5UeXBlLCBhbGxvd0VudHJ5UG9pbnQpOworICAgICAgICByZXR1cm4gcmVzb2x2ZU92
ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50
cnlQb2ludCk7CiAgICAgfQogICAgIAogICAgIGdldCBjdXJyZW50U3RhdGVtZW50KCkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hbWVGaW5kZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lRmluZGVyLmpzCmluZGV4IGZjMmZkYmQwMzI1
MjdjY2M1NGNhZDcxYmE1NzZiOTkyMjFlZTljN2QuLjQzZTQ3MWFhYzYxYWRhNDNmNzRjN2YwODMy
ZjczZTgwY2FhM2I0ZTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L05hbWVGaW5kZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmFtZUZp
bmRlci5qcwpAQCAtNDMsMTIgKzQzLDYgQEAgY2xhc3MgTmFtZUZpbmRlciBleHRlbmRzIFZpc2l0
b3IgewogICAgICAgICB0aGlzLl93b3JrbGlzdC5wdXNoKG5hbWUpOwogICAgIH0KICAgICAKLSAg
ICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICB0aGlzLmFkZChub2RlLm5h
bWUpOwotICAgICAgICBzdXBlci52aXNpdFByb3RvY29sUmVmKG5vZGUpOwotICAgIH0KLSAgICAK
ICAgICB2aXNpdFR5cGVSZWYobm9kZSkKICAgICB7CiAgICAgICAgIHRoaXMuYWRkKG5vZGUubmFt
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2
ZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYW1lUmVzb2x2ZXIuanMKaW5k
ZXggNzMxOTY0ZmM3ODIyMWFlNzMxMTg5ODEyNTIyMzI1MDNiY2ZhYmMzMC4uNjlkNGYyYzFiOWFi
N2RjMWM1MGMzNmRhOWNjOWNhMzdlMzkxY2MxOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmFtZVJlc29sdmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05hbWVSZXNvbHZlci5qcwpAQCAtNDEsMTkgKzQxLDE0IEBAIGNsYXNzIE5hbWVS
ZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAgICB0aGlzLl9uYW1lQ29udGV4dC5kb1N0
YXRlbWVudChzdGF0ZW1lbnQsICgpID0+IHN0YXRlbWVudC52aXNpdCh0aGlzKSk7CiAgICAgfQog
ICAgIAotICAgIF92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChub2RlKQor
ICAgIF9idWlsZE5hbWVDb250ZXh0KCkKICAgICB7Ci0gICAgICAgIGxldCBuYW1lQ29udGV4dCA9
IG5ldyBOYW1lQ29udGV4dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5
cGVQYXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgbmFtZUNv
bnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNp
dCh0aGlzKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gbmFtZUNvbnRleHQ7CisgICAgICAg
IHJldHVybiBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwogICAgIH0KICAgICAK
ICAgICB2aXNpdEZ1bmMobm9kZSkKICAgICB7Ci0gICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5h
bWVSZXNvbHZlcih0aGlzLl92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChu
b2RlKSk7CisgICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcih0aGlzLl9idWls
ZE5hbWVDb250ZXh0KG5vZGUpKTsKICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KGNoZWNr
ZXIpOwogICAgICAgICBmb3IgKGxldCBwYXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKQogICAg
ICAgICAgICAgcGFyYW1ldGVyLnZpc2l0KGNoZWNrZXIpOwpAQCAtNjEsMTYgKzU2LDE0IEBAIGNs
YXNzIE5hbWVSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIAogICAgIHZpc2l0RnVuY0Rl
Zihub2RlKQogICAgIHsKLSAgICAgICAgbGV0IGNvbnRleHRXaXRoVHlwZVBhcmFtZXRlcnMgPSB0
aGlzLl92aXNpdFR5cGVQYXJhbWV0ZXJzQW5kQnVpbGROYW1lQ29udGV4dChub2RlKTsKLSAgICAg
ICAgbGV0IGNoZWNrZXJXaXRoVHlwZVBhcmFtZXRlcnMgPSBuZXcgTmFtZVJlc29sdmVyKGNvbnRl
eHRXaXRoVHlwZVBhcmFtZXRlcnMpOwotICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQoY2hl
Y2tlcldpdGhUeXBlUGFyYW1ldGVycyk7Ci0gICAgICAgIGxldCBjb250ZXh0V2l0aFBhcmFtZXRl
cnMgPSBuZXcgTmFtZUNvbnRleHQoY29udGV4dFdpdGhUeXBlUGFyYW1ldGVycyk7CisgICAgICAg
IGxldCBpbm5lckNvbnRleHQgPSB0aGlzLl9idWlsZE5hbWVDb250ZXh0KCk7CisgICAgICAgIGxl
dCBpbm5lckNoZWNrZXIgPSBuZXcgTmFtZVJlc29sdmVyKGlubmVyQ29udGV4dCk7CisgICAgICAg
IG5vZGUucmV0dXJuVHlwZS52aXNpdChpbm5lckNoZWNrZXIpOwogICAgICAgICBmb3IgKGxldCBw
YXJhbWV0ZXIgb2Ygbm9kZS5wYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICBwYXJhbWV0ZXIudmlz
aXQoY2hlY2tlcldpdGhUeXBlUGFyYW1ldGVycyk7Ci0gICAgICAgICAgICBjb250ZXh0V2l0aFBh
cmFtZXRlcnMuYWRkKHBhcmFtZXRlcik7CisgICAgICAgICAgICBwYXJhbWV0ZXIudmlzaXQoaW5u
ZXJDaGVja2VyKTsKKyAgICAgICAgICAgIGlubmVyQ29udGV4dC5hZGQocGFyYW1ldGVyKTsKICAg
ICAgICAgfQotICAgICAgICBsZXQgY2hlY2tlcldpdGhQYXJhbWV0ZXJzID0gbmV3IE5hbWVSZXNv
bHZlcihjb250ZXh0V2l0aFBhcmFtZXRlcnMpOwotICAgICAgICBub2RlLmJvZHkudmlzaXQoY2hl
Y2tlcldpdGhQYXJhbWV0ZXJzKTsKKyAgICAgICAgbm9kZS5ib2R5LnZpc2l0KGlubmVyQ2hlY2tl
cik7CiAgICAgfQogICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkKQEAgLTExNSw0MSArMTA4LDkg
QEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgIG5vZGUuYm9k
eS52aXNpdChuZXdSZXNvbHZlcik7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xEZWNs
KG5vZGUpCi0gICAgewotICAgICAgICBmb3IgKGxldCBwYXJlbnQgb2Ygbm9kZS5leHRlbmRzKQot
ICAgICAgICAgICAgcGFyZW50LnZpc2l0KHRoaXMpOwotICAgICAgICBsZXQgbmFtZUNvbnRleHQg
PSBuZXcgTmFtZUNvbnRleHQodGhpcy5fbmFtZUNvbnRleHQpOwotICAgICAgICBuYW1lQ29udGV4
dC5hZGQobm9kZS50eXBlVmFyaWFibGUpOwotICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1l
UmVzb2x2ZXIobmFtZUNvbnRleHQpOwotICAgICAgICBmb3IgKGxldCBzaWduYXR1cmUgb2Ygbm9k
ZS5zaWduYXR1cmVzKQotICAgICAgICAgICAgc2lnbmF0dXJlLnZpc2l0KGNoZWNrZXIpOwotICAg
IH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICBsZXQg
cmVzdWx0ID0gdGhpcy5fbmFtZUNvbnRleHQuZ2V0KFByb3RvY29sLCBub2RlLm5hbWUpOwotICAg
ICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlwZUVycm9yKG5vZGUu
b3JpZ2luLm9yaWdpblN0cmluZywgIkNvdWxkIG5vdCBmaW5kIHByb3RvY29sIG5hbWVkICIgKyBu
b2RlLm5hbWUpOwotICAgICAgICBub2RlLnByb3RvY29sRGVjbCA9IHJlc3VsdDsKLSAgICB9Ci0g
ICAgCi0gICAgdmlzaXRQcm90b2NvbEZ1bmNEZWNsKG5vZGUpCi0gICAgewotICAgICAgICB0aGlz
LnZpc2l0RnVuYyhub2RlKTsKLSAgICAgICAgbGV0IGZ1bmNzID0gdGhpcy5fbmFtZUNvbnRleHQu
Z2V0KEZ1bmMsIG5vZGUubmFtZSk7Ci0gICAgICAgIGlmICghZnVuY3MpCi0gICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDYW5ub3QgZmlu
ZCBhbnkgZnVuY3Rpb25zIG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICBub2RlLnBvc3Np
YmxlT3ZlcmxvYWRzID0gZnVuY3M7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZURlZihub2Rl
KQogICAgIHsKICAgICAgICAgbGV0IG5hbWVDb250ZXh0ID0gbmV3IE5hbWVDb250ZXh0KHRoaXMu
X25hbWVDb250ZXh0KTsKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRlciBvZiBub2RlLnR5
cGVQYXJhbWV0ZXJzKSB7Ci0gICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwot
ICAgICAgICAgICAgbmFtZUNvbnRleHQuYWRkKHR5cGVQYXJhbWV0ZXIpOwotICAgICAgICB9CiAg
ICAgICAgIGxldCBjaGVja2VyID0gbmV3IE5hbWVSZXNvbHZlcihuYW1lQ29udGV4dCk7CiAgICAg
ICAgIG5vZGUudHlwZS52aXNpdChjaGVja2VyKTsKICAgICB9CkBAIC0xNTcsMTUgKzExOCwyMiBA
QCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICB2aXNpdFN0cnVjdFR5
cGUobm9kZSkKICAgICB7CiAgICAgICAgIGxldCBuYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4
dCh0aGlzLl9uYW1lQ29udGV4dCk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Yg
bm9kZS50eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgdHlwZVBhcmFtZXRlci52aXNpdCh0
aGlzKTsKLSAgICAgICAgICAgIG5hbWVDb250ZXh0LmFkZCh0eXBlUGFyYW1ldGVyKTsKLSAgICAg
ICAgfQogICAgICAgICBsZXQgY2hlY2tlciA9IG5ldyBOYW1lUmVzb2x2ZXIobmFtZUNvbnRleHQp
OwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxkcykKICAgICAgICAgICAgIGZp
ZWxkLnZpc2l0KGNoZWNrZXIpOwogICAgIH0KICAgICAKKyAgICB2aXNpdFR5cGVSZWYobm9kZSkK
KyAgICB7CisgICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOworICAgICAgICBpZiAoIXR5cGUp
IHsKKyAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwgbm9kZS5u
YW1lKTsKKyAgICAgICAgICAgIGlmICghdHlwZSkKKyAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCB0eXBl
IG5hbWVkICIgKyBub2RlLm5hbWUpOworICAgICAgICAgICAgbm9kZS50eXBlID0gdHlwZTsKKyAg
ICAgICAgfQorICAgIH0KKwogICAgIF9yZXNvbHZlVHlwZUFyZ3VtZW50cyh0eXBlQXJndW1lbnRz
KQogICAgIHsKICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7CkBAIC0xODEsMzYgKzE0OSwxNiBAQCBjbGFzcyBOYW1lUmVzb2x2ZXIgZXh0ZW5k
cyBWaXNpdG9yIHsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHRo
cm93IG5ldyBXVHlwZUVycm9yKHR5cGVBcmd1bWVudC5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlw
ZSBhcmd1bWVudCByZXNvbHZlZCB0byB3cm9uZyBraW5kIG9mIHRoaW5nOiAiICsgdGhpbmcua2lu
ZCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICh0eXBlQXJn
dW1lbnRbaV0gaW5zdGFuY2VvZiBWYWx1ZQotICAgICAgICAgICAgICAgICYmICF0eXBlQXJndW1l
bnRbaV0uaXNDb25zdGV4cHIpCisgICAgICAgICAgICBpZiAodHlwZUFyZ3VtZW50W2ldIGluc3Rh
bmNlb2YgVmFsdWUgJiYgIXR5cGVBcmd1bWVudFtpXS5pc0NvbnN0ZXhwcikKICAgICAgICAgICAg
ICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcih0eXBlQXJndW1lbnRbaV0ub3JpZ2luLm9yaWdpblN0
cmluZywgIkV4cGVjdGVkIGNvbnN0ZXhwciIpOwogICAgICAgICB9CiAgICAgfQogICAgIAotICAg
IHZpc2l0VHlwZVJlZihub2RlKQorICAgIHZpc2l0TmF0aXZlVHlwZShub2RlKQogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVzb2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRzKTsKLSAg
ICAgICAgCi0gICAgICAgIGxldCB0eXBlID0gbm9kZS50eXBlOwotICAgICAgICBpZiAoIXR5cGUp
IHsKLSAgICAgICAgICAgIHR5cGUgPSB0aGlzLl9uYW1lQ29udGV4dC5nZXQoVHlwZSwgbm9kZS5u
YW1lKTsKLSAgICAgICAgICAgIGlmICghdHlwZSkKLSAgICAgICAgICAgICAgICB0aHJvdyBuZXcg
V1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJDb3VsZCBub3QgZmluZCB0eXBl
IG5hbWVkICIgKyBub2RlLm5hbWUpOwotICAgICAgICAgICAgbm9kZS50eXBlID0gdHlwZTsKLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgaWYgKHR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3Ro
ICE9IG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5
cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBudW1iZXIgb2YgdHlwZSBh
cmd1bWVudHMgKHBhc3NlZCAiICsgbm9kZS50eXBlQXJndW1lbnRzLmxlbmd0aCArICIsIGV4cGVj
dGVkICIgKyB0eXBlLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCArICIpIik7Ci0gICAgICAgIGZvciAo
bGV0IGkgPSAwOyBpIDwgdHlwZS50eXBlUGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgbGV0IHBhcmFtZXRlcklzVHlwZSA9IHR5cGUudHlwZVBhcmFtZXRlcnNbaV0gaW5zdGFu
Y2VvZiBUeXBlVmFyaWFibGU7Ci0gICAgICAgICAgICBsZXQgYXJndW1lbnRJc1R5cGUgPSBub2Rl
LnR5cGVBcmd1bWVudHNbaV0gaW5zdGFuY2VvZiBUeXBlOwotICAgICAgICAgICAgbm9kZS50eXBl
QXJndW1lbnRzW2ldLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgaWYgKHBhcmFtZXRlcklzVHlw
ZSAmJiAhYXJndW1lbnRJc1R5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJy
b3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgdHlwZSwgYnV0IGdvdCB2YWx1
ZSBhdCBhcmd1bWVudCAjIiArIGkpOwotICAgICAgICAgICAgaWYgKCFwYXJhbWV0ZXJJc1R5cGUg
JiYgYXJndW1lbnRJc1R5cGUpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3Io
bm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiRXhwZWN0ZWQgdmFsdWUsIGJ1dCBnb3QgdHlwZSBh
dCBhcmd1bWVudCAjIiArIGkpOwotICAgICAgICB9CisgICAgICAgIGZvcihsZXQgdHlwZUFyZ3Vt
ZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKKyAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCkBAIC0y
NzksOCArMjI3LDYgQEAgY2xhc3MgTmFtZVJlc29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAg
CiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVz
b2x2ZVR5cGVBcmd1bWVudHMobm9kZS50eXBlQXJndW1lbnRzKTsKLSAgICAgICAgCiAgICAgICAg
IGxldCBmdW5jcyA9IHRoaXMuX25hbWVDb250ZXh0LmdldChGdW5jLCBub2RlLm5hbWUpOwogICAg
ICAgICBpZiAoZnVuY3MpCiAgICAgICAgICAgICBub2RlLnBvc3NpYmxlT3ZlcmxvYWRzID0gZnVu
Y3M7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5j
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwppbmRleCBh
NTUzMzUyZDlhZWU2MGJjYTYyYWQ2ZTEyMzI4OGI4OTA1MTgyNDg3Li5kYzBmZjc4MWI2OTJlMTg0
NjI3ODY0ODUwZWY2OGRkMzViOWE4ZjA1IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL05hdGl2ZUZ1bmMuanMKQEAgLTI1LDEzICsyNSwxMiBAQAogInVzZSBzdHJpY3QiOwogCiBj
bGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKQorICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1l
dGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKQogICAgIHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKTsKKyAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0
ZXJzLCBpc0Nhc3QsIHNoYWRlclR5cGUpOwogICAgICAgICB0aGlzLmlzUmVzdHJpY3RlZCA9IGZh
bHNlOwogICAgICAgICB0aGlzLmltcGxlbWVudGF0aW9uID0gbnVsbDsKICAgICAgICAgdGhpcy5f
aW1wbGVtZW50YXRpb25EYXRhID0gbnVsbDsKLSAgICAgICAgdGhpcy5pbnN0YW50aWF0ZUltcGxl
bWVudGF0aW9uID0gKHN1YnN0aXR1dGlvbikgPT4ge307CiAgICAgICAgIHRoaXMudmlzaXRJbXBs
ZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9PiBudWxsOwog
ICAgICAgICB0aGlzLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YSA9IGltcGxl
bWVudGF0aW9uRGF0YSA9PiBudWxsOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmNJbnN0YW5jZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYzk5Yjc4MjYzNTM1YTcwZDkzMDk2MjZkNTg1MDM1OTAwMTA1ZDQxMS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jSW5zdGFuY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0i
dXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2ZUZ1bmNJbnN0YW5jZSBleHRlbmRzIEZ1bmMgewot
ICAgIGNvbnN0cnVjdG9yKGZ1bmMsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hh
ZGVyVHlwZSwgaW1wbGVtZW50YXRpb25EYXRhKQotICAgIHsKLSAgICAgICAgc3VwZXIoZnVuYy5v
cmlnaW4sIGZ1bmMubmFtZSwgcmV0dXJuVHlwZSwgW10sIHBhcmFtZXRlcnMsIGlzQ2FzdCwgc2hh
ZGVyVHlwZSk7Ci0gICAgICAgIHRoaXMuX2Z1bmMgPSBmdW5jOwotICAgICAgICB0aGlzLl9pbXBs
ZW1lbnRhdGlvbkRhdGEgPSBpbXBsZW1lbnRhdGlvbkRhdGE7Ci0gICAgfQotICAgIAotICAgIGdl
dCBmdW5jKCkgeyByZXR1cm4gdGhpcy5fZnVuYzsgfQotICAgIGdldCBpc05hdGl2ZSgpIHsgcmV0
dXJuIHRydWU7IH0KLSAgICBnZXQgaW1wbGVtZW50YXRpb25EYXRhKCkgeyByZXR1cm4gdGhpcy5f
aW1wbGVtZW50YXRpb25EYXRhOyB9Ci0KLSAgICB0b0RlY2xTdHJpbmcoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuICJuYXRpdmUgIiArIHN1cGVyLnRvRGVjbFN0cmluZygpOwotICAgIH0KLX0KLQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTmF0aXZlVHlwZS5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGUuanMKaW5kZXggYjhiMWE0
NzMzMGI1ZmQ1MWZmMDIxYWYwNjU4Njg0NGMyYWNiYThlYS4uNWNjMTg0OTM4OWViYTFjZjJhMjYx
ZWFjZmQ4OThhMzI1ZGZiOWMxNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvTmF0aXZlVHlwZS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9O
YXRpdmVUeXBlLmpzCkBAIC0yNSwxNCArMjUsMTQgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3Mg
TmF0aXZlVHlwZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwg
dHlwZVBhcmFtZXRlcnMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlQXJndW1l
bnRzKQogICAgIHsKLSAgICAgICAgaWYgKCEodHlwZVBhcmFtZXRlcnMgaW5zdGFuY2VvZiBBcnJh
eSkpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1ldGVycyBub3QgYXJy
YXk6ICIgKyB0eXBlUGFyYW1ldGVycyk7CisgICAgICAgIGlmICghKHR5cGVBcmd1bWVudHMgaW5z
dGFuY2VvZiBBcnJheSkpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoInR5cGUgcGFyYW1l
dGVycyBub3QgYXJyYXk6ICIgKyB0eXBlQXJndW1lbnRzKTsKICAgICAgICAgc3VwZXIoKTsKICAg
ICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsK
LSAgICAgICAgdGhpcy5fdHlwZVBhcmFtZXRlcnMgPSB0eXBlUGFyYW1ldGVyczsKKyAgICAgICAg
dGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgICAgIHRoaXMuX2lzTnVt
YmVyID0gZmFsc2U7CiAgICAgICAgIHRoaXMuX2lzSW50ID0gZmFsc2U7CiAgICAgICAgIHRoaXMu
X2lzRmxvYXRpbmcgPSBmYWxzZTsKQEAgLTQwLDggKzQwLDE1IEBAIGNsYXNzIE5hdGl2ZVR5cGUg
ZXh0ZW5kcyBUeXBlIHsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRo
aXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAg
IGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9Cisg
ICAgZ2V0IGJhc2VOYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQorICAgIGdldCBuYW1lKCkK
KyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSB0aGlzLl9uYW1lOworICAgICAgICBpZiAodGhp
cy50eXBlQXJndW1lbnRzLmxlbmd0aCkKKyAgICAgICAgICAgIHJlc3VsdCArPSAiPCIgKyB0aGlz
LnR5cGVBcmd1bWVudHMgKyAiPiI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorICAg
IGdldCB0eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQogICAg
IGdldCBpc05hdGl2ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICAKICAgICAvLyBXZSBsZXQgSW50
cmluc2ljcy5qcyBzZXQgdGhlc2UgYXMgaXQgbGlrZXMuCkBAIC01NCwxOCArNjEsOSBAQCBjbGFz
cyBOYXRpdmVUeXBlIGV4dGVuZHMgVHlwZSB7CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1
cm4gdGhpcy5faXNQcmltaXRpdmU7IH0KICAgICBzZXQgaXNQcmltaXRpdmUodmFsdWUpIHsgdGhp
cy5faXNQcmltaXRpdmUgPSB2YWx1ZTsgfQogICAgIAotICAgIGluc3RhbnRpYXRlKHR5cGVBcmd1
bWVudHMpCi0gICAgewotICAgICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGggIT0gdGhpcy50
eXBlUGFyYW1ldGVycy5sZW5ndGgpCi0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25n
IG51bWJlciBvZiB0eXBlIGFyZ3VtZW50cyB0byBpbnN0YW50aWF0aW9uIik7Ci0gICAgICAgIGlm
ICghdHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpczsKLSAgICAg
ICAgcmV0dXJuIG5ldyBOYXRpdmVUeXBlSW5zdGFuY2UodGhpcywgdHlwZUFyZ3VtZW50cyk7Ci0g
ICAgfQotICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIHJldHVybiAibmF0aXZl
IHR5cGVkZWYgIiArIHRoaXMubmFtZSArICI8IiArIHRoaXMudHlwZVBhcmFtZXRlcnMgKyAiPiI7
CisgICAgICAgIHJldHVybiAibmF0aXZlIHR5cGVkZWYgIiArIHRoaXMubmFtZTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJ
bnN0YW5jZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZVR5cGVJbnN0
YW5jZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2EzOWU3Nzc4NzAwNDllZDIy
ZDcwNDFhNTIwMTRjYzhlNjljYmM0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVUeXBlSW5z
dGFuY2UuanMKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIE5hdGl2
ZVR5cGVJbnN0YW5jZSBleHRlbmRzIFR5cGUgewotICAgIGNvbnN0cnVjdG9yKHR5cGUsIHR5cGVB
cmd1bWVudHMpCi0gICAgewotICAgICAgICBzdXBlcigpOwotICAgICAgICB0aGlzLl90eXBlID0g
dHlwZTsKLSAgICAgICAgdGhpcy5fdHlwZUFyZ3VtZW50cyA9IHR5cGVBcmd1bWVudHM7Ci0gICAg
fQotICAgIAotICAgIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5fdHlwZTsgfQotICAgIGdldCB0
eXBlQXJndW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fdHlwZUFyZ3VtZW50czsgfQotICAgIGdldCBp
c1ByaW1pdGl2ZSgpIHsgcmV0dXJuIHRoaXMuX3R5cGUuaXNQcmltaXRpdmU7IH0KLSAgICBnZXQg
aXNOYXRpdmUoKSB7IHJldHVybiB0cnVlOyB9Ci0gICAgCi0gICAgdW5pZnlJbXBsKHVuaWZpY2F0
aW9uQ29udGV4dCwgb3RoZXIpCi0gICAgewotICAgICAgICBpZiAodGhpcy50eXBlICE9IG90aGVy
LnR5cGUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICh0aGlzLnR5cGVB
cmd1bWVudHMubGVuZ3RoICE9IG90aGVyLnR5cGVBcmd1bWVudHMubGVuZ3RoKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHlwZUFy
Z3VtZW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVu
dHNbaV0udW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlQXJndW1lbnRzW2ldKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biB0aGlzLnR5cGUgKyAiPCIgKyB0aGlzLnR5cGVBcmd1bWVudHMgKyAiPiI7Ci0gICAgfQotfQot
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2RlLmpzIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTm9kZS5qcwppbmRleCA4ODEwMzAxMzA3NzNlNzBl
YTg4ZTBhYjU5Nzk3NGNmNTYxZjlkNWU0Li5lZmU0YTFhNDgyYjQ3MjFmMmZiM2ZlNTg3NzZkYWRh
NmFmNzdkOWMyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Ob2Rl
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05vZGUuanMKQEAgLTg4LDkg
Kzg4LDkgQEAgY2xhc3MgTm9kZSB7CiAgICAgZ2V0IGlzTGl0ZXJhbCgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgCiAgICAgZ2V0IGlzTmF0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICAKKwog
ICAgIGNvbnZlcnNpb25Db3N0KHVuaWZpY2F0aW9uQ29udGV4dCkgeyByZXR1cm4gMDsgfQotICAg
IAorCiAgICAgZXF1YWxzKG90aGVyKQogICAgIHsKICAgICAgICAgbGV0IHVuaWZpY2F0aW9uQ29u
dGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQoKTsKQEAgLTEyMywxMSArMTIzLDQgQEAgY2xh
c3MgTm9kZSB7CiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy52aXNpdChuZXcgU3Vic3RpdHV0
aW9uKHBhcmFtZXRlcnMsIGFyZ3VtZW50TGlzdCkpOwogICAgIH0KLSAgICAKLSAgICBzdWJzdGl0
dXRlVG9VbmlmaWNhdGlvbihwYXJhbWV0ZXJzLCB1bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewot
ICAgICAgICByZXR1cm4gdGhpcy5zdWJzdGl0dXRlKAotICAgICAgICAgICAgcGFyYW1ldGVycywK
LSAgICAgICAgICAgIHBhcmFtZXRlcnMubWFwKHR5cGUgPT4gdW5pZmljYXRpb25Db250ZXh0LmZp
bmQodHlwZSkpKTsKLSAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9Ob3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTm9ybWFsVXNlUHJvcGVydHlSZXNvbHZlci5qcwppbmRleCBkZjQ1ZDdlNGVi
MTE0OWJlZjMxNTgyOTYxNTE1ZjdmOTZmNGUwMTE1Li45YWYxOWVlMGU3ZTJmYTRjNTZhNDBkMGJi
YjU5Y2Q3YThjOGFmZWExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Ob3JtYWxVc2VQcm9wZXJ0eVJlc29sdmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL05vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIuanMKQEAgLTM0LDUgKzM0LDEyIEBA
IGNsYXNzIE5vcm1hbFVzZVByb3BlcnR5UmVzb2x2ZXIgZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAg
ewogICAgICAgICByZXR1cm4gc3VwZXIudmlzaXRJbmRleEV4cHJlc3Npb24obm9kZSkucmV3cml0
ZUFmdGVyQ2xvbmluZygpOwogICAgIH0KKworICAgIHZpc2l0VGVybmFyeUV4cHJlc3Npb24obm9k
ZSkKKyAgICB7CisgICAgICAgIGxldCByZXN1bHQgPSBzdXBlci52aXNpdFRlcm5hcnlFeHByZXNz
aW9uKG5vZGUpOworICAgICAgICByZXN1bHQuaXNMVmFsdWUgPSBub2RlLmlzTFZhbHVlOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvUGFyc2UuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9QYXJzZS5qcwppbmRleCA2ZDJiNDMxNjE1NjAxYWI5ZGQzZDA5MzhmYmZiMzg1ZWUyYTRkYWYx
Li4zNjZkYzFmYzRlYWNiZjY5ZjFlNjhmMjA5NGFjNTEzMzcwOWMwNzY0IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9QYXJzZS5qcwpAQCAtMjQsNiArMjQsOCBAQAogICovCiAidXNlIHN0
cmljdCI7CiAKK3ZhciBhc2RmID0gMDsKKwogZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogewogICAgIGxldCBsZXhlciA9
IG5ldyBMZXhlcihvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpOwpA
QCAtMTIxLDEyICsxMjMsNiBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdp
bktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIAotICAgIGZ1bmN0aW9uIHBhcnNlUHJvdG9jb2xSZWYoKQotICAgIHsKLSAgICAg
ICAgbGV0IHByb3RvY29sVG9rZW4gPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAg
ICByZXR1cm4gbmV3IFByb3RvY29sUmVmKHByb3RvY29sVG9rZW4sIHByb3RvY29sVG9rZW4udGV4
dCk7Ci0gICAgfQotICAgIAogICAgIGZ1bmN0aW9uIGNvbnN1bWVFbmRPZlR5cGVBcmdzKCkKICAg
ICB7CiAgICAgICAgIGxldCByaWdodFNoaWZ0ID0gdHJ5Q29uc3VtZSgiPj4iKTsKQEAgLTEzNiwz
NCArMTMyLDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBs
aW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICAgICAgY29uc3VtZSgiPiIpOwogICAgIH0K
ICAgICAKLSAgICBmdW5jdGlvbiBwYXJzZVR5cGVQYXJhbWV0ZXJzKCkKLSAgICB7Ci0gICAgICAg
IGlmICghdGVzdCgiPCIpKQotICAgICAgICAgICAgcmV0dXJuIFtdOwotICAgICAgICAKLSAgICAg
ICAgbGV0IHJlc3VsdCA9IFtdOwotICAgICAgICBjb25zdW1lKCI8Iik7Ci0gICAgICAgIHdoaWxl
ICghdGVzdCgiPiIpKSB7Ci0gICAgICAgICAgICBsZXQgY29uc3RleHByID0gbGV4ZXIuYmFja3Ry
YWNraW5nU2NvcGUoKCkgPT4gewotICAgICAgICAgICAgICAgIGxldCB0eXBlID0gcGFyc2VUeXBl
KCk7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmllciIp
OwotICAgICAgICAgICAgICAgIGFzc2VydE5leHQoIiwiLCAiPiIsICI+PiIpOwotICAgICAgICAg
ICAgICAgIHJldHVybiBuZXcgQ29uc3RleHByVHlwZVBhcmFtZXRlcih0eXBlLm9yaWdpbiwgbmFt
ZS50ZXh0LCB0eXBlKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgaWYgKGNvbnN0ZXhw
cikKLSAgICAgICAgICAgICAgICByZXN1bHQucHVzaChjb25zdGV4cHIpOwotICAgICAgICAgICAg
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1lS2luZCgiaWRlbnRpZmll
ciIpOwotICAgICAgICAgICAgICAgIGxldCBwcm90b2NvbCA9IHRyeUNvbnN1bWUoIjoiKSA/IHBh
cnNlUHJvdG9jb2xSZWYoKSA6IG51bGw7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobmV3
IFR5cGVWYXJpYWJsZShuYW1lLCBuYW1lLnRleHQsIHByb3RvY29sKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAoIXRyeUNvbnN1bWUoIiwiKSkKLSAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgfQotICAgICAgICBjb25zdW1lRW5kT2ZUeXBlQXJncygpOwotICAgICAgICBy
ZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKICAgICBmdW5jdGlvbiBwYXJzZVRlcm0oKQogICAg
IHsKICAgICAgICAgbGV0IHRva2VuOwpAQCAtMjIyLDcgKzE5MCw3IEBAIGZ1bmN0aW9uIHBhcnNl
KHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAg
ICB7CiAgICAgICAgIGxldCB0b2tlbjsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
LSIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJh
dG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VUZXJtKCldKTsKKyAgICAgICAgICAgIHJldHVy
biBuZXcgQ2FsbEV4cHJlc3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbcGFy
c2VUZXJtKCldKTsKICAgICAgICAgbGV0IGxlZnQgPSBwYXJzZVRlcm0oKTsKICAgICAgICAgaWYg
KHRva2VuID0gdHJ5Q29uc3VtZSgiLiIpKQogICAgICAgICAgICAgbGVmdCA9IG5ldyBEb3RFeHBy
ZXNzaW9uKHRva2VuLCBsZWZ0LCBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpLnRleHQpOwpAQCAt
MjgyLDggKzI1MCw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2lu
ZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgIGFkZHJlc3NTcGFjZSA9IHRv
a2VuLnRleHQ7CiAgICAgICAgIAogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVu
dGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBlQXJndW1lbnRz
KCk7Ci0gICAgICAgIGxldCB0eXBlID0gbmV3IFR5cGVSZWYobmFtZSwgbmFtZS50ZXh0LCB0eXBl
QXJndW1lbnRzKTsKKyAgICAgICAgbGV0IHR5cGUgPSBuZXcgVHlwZVJlZihuYW1lLCBuYW1lLnRl
eHQpOwogICAgICAgICAKICAgICAgICAgZnVuY3Rpb24gZ2V0QWRkcmVzc1NwYWNlKCkKICAgICAg
ICAgewpAQCAtMzE4LDExICsyODUsMTAgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0
IG9yaWdpbiA9IGNvbnN1bWUoInR5cGVkZWYiKTsKICAgICAgICAgbGV0IG5hbWUgPSBjb25zdW1l
S2luZCgiaWRlbnRpZmllciIpLnRleHQ7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IHBh
cnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgY29uc3VtZSgiPSIpOwogICAgICAgICBsZXQg
dHlwZSA9IHBhcnNlVHlwZSgpOwogICAgICAgICBjb25zdW1lKCI7Iik7Ci0gICAgICAgIHJldHVy
biBuZXcgVHlwZURlZihvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJzLCB0eXBlKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBUeXBlRGVmKG9yaWdpbiwgbmFtZSwgdHlwZSk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIGdlbmVyaWNQYXJzZUxlZnQodGV4dHMsIG5leHRQYXJzZXIsIGNvbnN0cnVj
dG9yKQpAQCAtMzM5LDEzICszMDUsMTIgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICByZXR1cm4gZ2Vu
ZXJpY1BhcnNlTGVmdCgKICAgICAgICAgICAgIHRleHRzLCBuZXh0UGFyc2VyLAogICAgICAgICAg
ICAgKHRva2VuLCBsZWZ0LCByaWdodCkgPT4KLSAgICAgICAgICAgICAgICBuZXcgQ2FsbEV4cHJl
c3Npb24odG9rZW4sICJvcGVyYXRvciIgKyB0b2tlbi50ZXh0LCBbXSwgW2xlZnQsIHJpZ2h0XSkp
OworICAgICAgICAgICAgICAgIG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yIiAr
IHRva2VuLnRleHQsIFtsZWZ0LCByaWdodF0pKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
cGFyc2VDYWxsRXhwcmVzc2lvbigpCiAgICAgewogICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVL
aW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgIGxldCB0eXBlQXJndW1lbnRzID0gcGFyc2VUeXBl
QXJndW1lbnRzKCk7CiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGFyZ3VtZW50
TGlzdCA9IFtdOwogICAgICAgICB3aGlsZSAoIXRlc3QoIikiKSkgewpAQCAtMzU1LDcgKzMyMCw3
IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJl
ck9mZnNldCwgdGV4dCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjb25zdW1lKCIpIik7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgQ2FsbEV4cHJlc3Npb24o
bmFtZSwgbmFtZS50ZXh0LCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudExpc3QpOworICAgICAgICBs
ZXQgcmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKG5hbWUsIG5hbWUudGV4dCwgYXJndW1lbnRM
aXN0KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgCkBAIC0zNjMsNyArMzI4
LDYgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGxleGVyLnRlc3RTY29wZSgo
KSA9PiB7CiAgICAgICAgICAgICBjb25zdW1lS2luZCgiaWRlbnRpZmllciIpOwotICAgICAgICAg
ICAgcGFyc2VUeXBlQXJndW1lbnRzKCk7CiAgICAgICAgICAgICBjb25zdW1lKCIoIik7CiAgICAg
ICAgIH0pOwogICAgIH0KQEAgLTM4MSw3ICszNDUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFt
LCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlm
IChuYW1lID09ICJvcGVyYXRvciIpCiAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFs
aWQgbmFtZTogIiArIG5hbWUpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhw
cmVzc2lvbih0b2tlbiwgbmFtZSwgW10sIGFyZ3MpOworICAgICAgICByZXR1cm4gbmV3IENhbGxF
eHByZXNzaW9uKHRva2VuLCBuYW1lLCBhcmdzKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24g
ZmluaXNoUGFyc2luZ1Bvc3RJbmNyZW1lbnQodG9rZW4sIGxlZnQpCkBAIC00NTQsNyArNDE4LDcg
QEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVy
T2Zmc2V0LCB0ZXh0KQogICAgICAgICBpZiAodGVzdCgiKysiLCAiLS0iKSkKICAgICAgICAgICAg
IHJldHVybiBwYXJzZVByZUluY3JlbWVudCgpOwogICAgICAgICBpZiAodG9rZW4gPSB0cnlDb25z
dW1lKCIrIiwgIi0iLCAifiIpKQotICAgICAgICAgICAgcmV0dXJuIG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yIiArIHRva2VuLnRleHQsIFtdLCBbcGFyc2VQb3NzaWJsZVByZWZp
eCgpXSk7CisgICAgICAgICAgICByZXR1cm4gbmV3IENhbGxFeHByZXNzaW9uKHRva2VuLCAib3Bl
cmF0b3IiICsgdG9rZW4udGV4dCwgW3BhcnNlUG9zc2libGVQcmVmaXgoKV0pOwogICAgICAgICBp
ZiAodG9rZW4gPSB0cnlDb25zdW1lKCIqIikpCiAgICAgICAgICAgICByZXR1cm4gbmV3IERlcmVm
ZXJlbmNlRXhwcmVzc2lvbih0b2tlbiwgcGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAg
aWYgKHRva2VuID0gdHJ5Q29uc3VtZSgiJiIpKQpAQCAtNDYzLDcgKzQyNyw3IEBAIGZ1bmN0aW9u
IHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKICAgICAgICAgICAgIHJldHVybiBuZXcgTWFrZUFycmF5UmVmRXhwcmVzc2lvbih0b2tlbiwg
cGFyc2VQb3NzaWJsZVByZWZpeCgpKTsKICAgICAgICAgaWYgKHRva2VuID0gdHJ5Q29uc3VtZSgi
ISIpKSB7CiAgICAgICAgICAgICBsZXQgcmVtYWluZGVyID0gcGFyc2VQb3NzaWJsZVByZWZpeCgp
OwotICAgICAgICAgICAgcmV0dXJuIG5ldyBMb2dpY2FsTm90KHRva2VuLCBuZXcgQ2FsbEV4cHJl
c3Npb24ocmVtYWluZGVyLm9yaWdpbiwgImJvb2wiLCBbXSwgW3JlbWFpbmRlcl0pKTsKKyAgICAg
ICAgICAgIHJldHVybiBuZXcgTG9naWNhbE5vdCh0b2tlbiwgbmV3IENhbGxFeHByZXNzaW9uKHJl
bWFpbmRlci5vcmlnaW4sICJib29sIiwgW3JlbWFpbmRlcl0pKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm4gcGFyc2VQb3NzaWJsZVN1ZmZpeCgpOwogICAgIH0KQEAgLTQ5Myw3ICs0NTcsNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgICAgIHJldHVybiBnZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAg
ICAgWyI9PSIsICIhPSJdLCBwYXJzZVBvc3NpYmxlUmVsYXRpb25hbEluZXF1YWxpdHksCiAgICAg
ICAgICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiB7Ci0gICAgICAgICAgICAgICAgbGV0IHJl
c3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lvbih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbXSwgW2xlZnQs
IHJpZ2h0XSk7CisgICAgICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBDYWxsRXhwcmVzc2lv
bih0b2tlbiwgIm9wZXJhdG9yPT0iLCBbbGVmdCwgcmlnaHRdKTsKICAgICAgICAgICAgICAgICBp
ZiAodG9rZW4udGV4dCA9PSAiIT0iKQogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBuZXcg
TG9naWNhbE5vdCh0b2tlbiwgcmVzdWx0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNTE5LDcgKzQ4Myw3IEBAIGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3Jp
Z2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4dCkKICAgICB7CiAgICAgICAgIHJldHVybiBn
ZW5lcmljUGFyc2VMZWZ0KAogICAgICAgICAgICAgdGV4dHMsIG5leHRQYXJzZXIsCi0gICAgICAg
ICAgICAodG9rZW4sIGxlZnQsIHJpZ2h0KSA9PiBuZXcgTG9naWNhbEV4cHJlc3Npb24odG9rZW4s
IHRva2VuLnRleHQsIG5ldyBDYWxsRXhwcmVzc2lvbihsZWZ0Lm9yaWdpbiwgImJvb2wiLCBbXSwg
W2xlZnRdKSwgbmV3IENhbGxFeHByZXNzaW9uKHJpZ2h0Lm9yaWdpbiwgImJvb2wiLCBbXSwgW3Jp
Z2h0XSkpKTsKKyAgICAgICAgICAgICh0b2tlbiwgbGVmdCwgcmlnaHQpID0+IG5ldyBMb2dpY2Fs
RXhwcmVzc2lvbih0b2tlbiwgdG9rZW4udGV4dCwgbmV3IENhbGxFeHByZXNzaW9uKGxlZnQub3Jp
Z2luLCAiYm9vbCIsIFtsZWZ0XSksIG5ldyBDYWxsRXhwcmVzc2lvbihyaWdodC5vcmlnaW4sICJi
b29sIiwgW3JpZ2h0XSkpKTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VQb3NzaWJs
ZUxvZ2ljYWxBbmQoKQpAQCAtNTM4LDcgKzUwMiwxMCBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFt
LCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGxl
dCBvcGVyYXRvciA9IHRyeUNvbnN1bWUoIj8iKTsKICAgICAgICAgaWYgKCFvcGVyYXRvcikKICAg
ICAgICAgICAgIHJldHVybiBwcmVkaWNhdGU7Ci0gICAgICAgIHJldHVybiBuZXcgVGVybmFyeUV4
cHJlc3Npb24ob3BlcmF0b3IsIHByZWRpY2F0ZSwgcGFyc2VQb3NzaWJsZUFzc2lnbm1lbnQoKSwg
cGFyc2VQb3NzaWJsZUFzc2lnbm1lbnQoKSk7CisgICAgICAgIGxldCBib2R5RXhwcmVzc2lvbiA9
IHBhcnNlUG9zc2libGVBc3NpZ25tZW50KCk7CisgICAgICAgIGNvbnN1bWUoIjoiKTsKKyAgICAg
ICAgbGV0IGVsc2VFeHByZXNzaW9uID0gcGFyc2VQb3NzaWJsZUFzc2lnbm1lbnQoKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBUZXJuYXJ5RXhwcmVzc2lvbihvcGVyYXRvciwgcHJlZGljYXRlLCBib2R5
RXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Npb24pOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBw
YXJzZVBvc3NpYmxlQXNzaWdubWVudChtb2RlKQpAQCAtNjU2LDcgKzYyMyw3IEBAIGZ1bmN0aW9u
IHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwgdGV4
dCkKICAgICAgICAgbGV0IGVsc2VCb2R5OwogICAgICAgICBpZiAodHJ5Q29uc3VtZSgiZWxzZSIp
KQogICAgICAgICAgICAgZWxzZUJvZHkgPSBwYXJzZVN0YXRlbWVudCgpOwotICAgICAgICByZXR1
cm4gbmV3IElmU3RhdGVtZW50KG9yaWdpbiwgbmV3IENhbGxFeHByZXNzaW9uKGNvbmRpdGlvbmFs
Lm9yaWdpbiwgImJvb2wiLCBbXSwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5KTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBJZlN0YXRlbWVudChvcmlnaW4sIG5ldyBDYWxsRXhwcmVzc2lvbihj
b25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSksIGJvZHksIGVsc2VCb2R5
KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBwYXJzZVdoaWxlKCkKQEAgLTY2Niw3ICs2MzMsNyBA
QCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJP
ZmZzZXQsIHRleHQpCiAgICAgICAgIGxldCBjb25kaXRpb25hbCA9IHBhcnNlRXhwcmVzc2lvbigp
OwogICAgICAgICBjb25zdW1lKCIpIik7CiAgICAgICAgIGxldCBib2R5ID0gcGFyc2VTdGF0ZW1l
bnQoKTsKLSAgICAgICAgcmV0dXJuIG5ldyBXaGlsZUxvb3Aob3JpZ2luLCBuZXcgQ2FsbEV4cHJl
c3Npb24oY29uZGl0aW9uYWwub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29uZGl0aW9uYWxdKSwgYm9k
eSk7CisgICAgICAgIHJldHVybiBuZXcgV2hpbGVMb29wKG9yaWdpbiwgbmV3IENhbGxFeHByZXNz
aW9uKGNvbmRpdGlvbmFsLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uYWxdKSwgYm9keSk7CiAg
ICAgfQogCiAgICAgZnVuY3Rpb24gcGFyc2VGb3IoKQpAQCAtNjg3LDcgKzY1NCw3IEBAIGZ1bmN0
aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9mZnNldCwg
dGV4dCkKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBjb25kaXRpb24gPSBwYXJzZUV4cHJl
c3Npb24oKTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgICAgIGNvbmRpdGlv
biA9IG5ldyBDYWxsRXhwcmVzc2lvbihjb25kaXRpb24ub3JpZ2luLCAiYm9vbCIsIFtdLCBbY29u
ZGl0aW9uXSk7CisgICAgICAgICAgICBjb25kaXRpb24gPSBuZXcgQ2FsbEV4cHJlc3Npb24oY29u
ZGl0aW9uLm9yaWdpbiwgImJvb2wiLCBbY29uZGl0aW9uXSk7CiAgICAgICAgIH0KICAgICAgICAg
bGV0IGluY3JlbWVudDsKICAgICAgICAgaWYgKHRyeUNvbnN1bWUoIikiKSkKQEAgLTcwOCw3ICs2
NzUsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVO
dW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGNvbnN1bWUoIigiKTsKICAgICAgICAgbGV0IGNv
bmRpdGlvbmFsID0gcGFyc2VFeHByZXNzaW9uKCk7CiAgICAgICAgIGNvbnN1bWUoIikiKTsKLSAg
ICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVz
c2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW10sIFtjb25kaXRpb25hbF0pKTsKKyAg
ICAgICAgcmV0dXJuIG5ldyBEb1doaWxlTG9vcChvcmlnaW4sIGJvZHksIG5ldyBDYWxsRXhwcmVz
c2lvbihjb25kaXRpb25hbC5vcmlnaW4sICJib29sIiwgW2NvbmRpdGlvbmFsXSkpOwogICAgIH0K
ICAgICAKICAgICBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlRGVjbHMoKQpAQCAtODU4LDEzICs4MjUs
MTEgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVt
YmVyT2Zmc2V0LCB0ZXh0KQogICAgICAgICBsZXQgb3JpZ2luOwogICAgICAgICBsZXQgcmV0dXJu
VHlwZTsKICAgICAgICAgbGV0IG5hbWU7Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVyczsKICAg
ICAgICAgbGV0IGlzQ2FzdDsKICAgICAgICAgbGV0IHNoYWRlclR5cGU7CiAgICAgICAgIGxldCBv
cGVyYXRvclRva2VuID0gdHJ5Q29uc3VtZSgib3BlcmF0b3IiKTsKICAgICAgICAgaWYgKG9wZXJh
dG9yVG9rZW4pIHsKICAgICAgICAgICAgIG9yaWdpbiA9IG9wZXJhdG9yVG9rZW47Ci0gICAgICAg
ICAgICB0eXBlUGFyYW1ldGVycyA9IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAg
IHJldHVyblR5cGUgPSBwYXJzZVR5cGUoKTsKICAgICAgICAgICAgIG5hbWUgPSAib3BlcmF0b3Ig
Y2FzdCI7CiAgICAgICAgICAgICBpc0Nhc3QgPSB0cnVlOwpAQCAtODc3LDQ0ICs4NDIsMTcgQEAg
ZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zm
c2V0LCB0ZXh0KQogICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgb3JpZ2luID0g
cmV0dXJuVHlwZS5vcmlnaW47CiAgICAgICAgICAgICBuYW1lID0gcGFyc2VGdW5jTmFtZSgpOwot
ICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAg
ICAgICAgICBpc0Nhc3QgPSBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBsZXQgcGFyYW1ldGVy
cyA9IHBhcnNlUGFyYW1ldGVycygpOwotICAgICAgICByZXR1cm4gbmV3IEZ1bmMob3JpZ2luLCBu
YW1lLCByZXR1cm5UeXBlLCB0eXBlUGFyYW1ldGVycywgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFk
ZXJUeXBlKTsKKyAgICAgICAgcmV0dXJuIG5ldyBGdW5jKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlw
ZSwgcGFyYW1ldGVycywgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICB9CiAKLSAgICBmdW5jdGlv
biBwYXJzZVByb3RvY29sRnVuY0RlY2woKQotICAgIHsKLSAgICAgICAgbGV0IGZ1bmMgPSBwYXJz
ZUZ1bmNEZWNsKCk7Ci0gICAgICAgIHJldHVybiBuZXcgUHJvdG9jb2xGdW5jRGVjbChmdW5jLm9y
aWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVyblR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1
bmMucGFyYW1ldGVycywgZnVuYy5pc0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAg
IAogICAgIGZ1bmN0aW9uIHBhcnNlRnVuY0RlZigpCiAgICAgewogICAgICAgICBsZXQgZnVuYyA9
IHBhcnNlRnVuY0RlY2woKTsKICAgICAgICAgbGV0IGJvZHkgPSBwYXJzZUJsb2NrKCk7Ci0gICAg
ICAgIHJldHVybiBuZXcgRnVuY0RlZihmdW5jLm9yaWdpbiwgZnVuYy5uYW1lLCBmdW5jLnJldHVy
blR5cGUsIGZ1bmMudHlwZVBhcmFtZXRlcnMsIGZ1bmMucGFyYW1ldGVycywgYm9keSwgZnVuYy5p
c0Nhc3QsIGZ1bmMuc2hhZGVyVHlwZSk7Ci0gICAgfQotICAgIAotICAgIGZ1bmN0aW9uIHBhcnNl
UHJvdG9jb2xEZWNsKCkKLSAgICB7Ci0gICAgICAgIGxldCBvcmlnaW4gPSBjb25zdW1lKCJwcm90
b2NvbCIpOwotICAgICAgICBsZXQgbmFtZSA9IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIikudGV4
dDsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBQcm90b2NvbERlY2wob3JpZ2luLCBuYW1lKTsK
LSAgICAgICAgaWYgKHRyeUNvbnN1bWUoIjoiKSkgewotICAgICAgICAgICAgd2hpbGUgKCF0ZXN0
KCJ7IikpIHsKLSAgICAgICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwYXJzZVByb3RvY29s
UmVmKCkpOwotICAgICAgICAgICAgICAgIGlmICghdHJ5Q29uc3VtZSgiLCIpKQotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBjb25z
dW1lKCJ7Iik7Ci0gICAgICAgIHdoaWxlICghdHJ5Q29uc3VtZSgifSIpKSB7Ci0gICAgICAgICAg
ICByZXN1bHQuYWRkKHBhcnNlUHJvdG9jb2xGdW5jRGVjbCgpKTsKLSAgICAgICAgICAgIGNvbnN1
bWUoIjsiKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICByZXR1
cm4gbmV3IEZ1bmNEZWYoZnVuYy5vcmlnaW4sIGZ1bmMubmFtZSwgZnVuYy5yZXR1cm5UeXBlLCBm
dW5jLnBhcmFtZXRlcnMsIGJvZHksIGZ1bmMuaXNDYXN0LCBmdW5jLnNoYWRlclR5cGUpOwogICAg
IH0KICAgICAKICAgICBmdW5jdGlvbiBwYXJzZUZpZWxkKCkKQEAgLTkyOSw4ICs4NjcsNyBAQCBm
dW5jdGlvbiBwYXJzZShwcm9ncmFtLCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZz
ZXQsIHRleHQpCiAgICAgewogICAgICAgICBsZXQgb3JpZ2luID0gY29uc3VtZSgic3RydWN0Iik7
CiAgICAgICAgIGxldCBuYW1lID0gY29uc3VtZUtpbmQoImlkZW50aWZpZXIiKS50ZXh0OwotICAg
ICAgICBsZXQgdHlwZVBhcmFtZXRlcnMgPSBwYXJzZVR5cGVQYXJhbWV0ZXJzKCk7Ci0gICAgICAg
IGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShvcmlnaW4sIG5hbWUsIHR5cGVQYXJhbWV0ZXJz
KTsKKyAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBTdHJ1Y3RUeXBlKG9yaWdpbiwgbmFtZSk7CiAg
ICAgICAgIGNvbnN1bWUoInsiKTsKICAgICAgICAgd2hpbGUgKCF0cnlDb25zdW1lKCJ9IikpCiAg
ICAgICAgICAgICByZXN1bHQuYWRkKHBhcnNlRmllbGQoKSk7CkBAIC05NDEsNyArODc4LDcgQEAg
ZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zm
c2V0LCB0ZXh0KQogICAgIHsKICAgICAgICAgbGV0IGZ1bmMgPSBwYXJzZUZ1bmNEZWNsKCk7CiAg
ICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAgICAgcmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMu
b3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJuVHlwZSwgZnVuYy50eXBlUGFyYW1ldGVycywg
ZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKKyAgICAgICAg
cmV0dXJuIG5ldyBOYXRpdmVGdW5jKGZ1bmMub3JpZ2luLCBmdW5jLm5hbWUsIGZ1bmMucmV0dXJu
VHlwZSwgZnVuYy5wYXJhbWV0ZXJzLCBmdW5jLmlzQ2FzdCwgZnVuYy5zaGFkZXJUeXBlKTsKICAg
ICB9CiAgICAgCiAgICAgZnVuY3Rpb24gcGFyc2VOYXRpdmUoKQpAQCAtOTQ5LDkgKzg4Niw5IEBA
IGZ1bmN0aW9uIHBhcnNlKHByb2dyYW0sIG9yaWdpbiwgb3JpZ2luS2luZCwgbGluZU51bWJlck9m
ZnNldCwgdGV4dCkKICAgICAgICAgbGV0IG9yaWdpbiA9IGNvbnN1bWUoIm5hdGl2ZSIpOwogICAg
ICAgICBpZiAodHJ5Q29uc3VtZSgidHlwZWRlZiIpKSB7CiAgICAgICAgICAgICBsZXQgbmFtZSA9
IGNvbnN1bWVLaW5kKCJpZGVudGlmaWVyIik7Ci0gICAgICAgICAgICBsZXQgcGFyYW1ldGVycyA9
IHBhcnNlVHlwZVBhcmFtZXRlcnMoKTsKKyAgICAgICAgICAgIGxldCBwYXJzZWRBcmd1bWVudHMg
PSBwYXJzZVR5cGVBcmd1bWVudHMoKTsKICAgICAgICAgICAgIGNvbnN1bWUoIjsiKTsKLSAgICAg
ICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZShvcmlnaW4sIG5hbWUudGV4dCwgcGFyYW1ldGVy
cyk7CisgICAgICAgICAgICByZXR1cm4gbmV3IE5hdGl2ZVR5cGUob3JpZ2luLCBuYW1lLnRleHQs
IHBhcnNlZEFyZ3VtZW50cyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIHBhcnNlTmF0aXZl
RnVuYygpOwogICAgIH0KQEAgLTk4NSw3ICs5MjIsNyBAQCBmdW5jdGlvbiBwYXJzZShwcm9ncmFt
LCBvcmlnaW4sIG9yaWdpbktpbmQsIGxpbmVOdW1iZXJPZmZzZXQsIHRleHQpCiAgICAgICAgIGlm
ICh0cnlDb25zdW1lKCI6IikpCiAgICAgICAgICAgICBiYXNlVHlwZSA9IHBhcnNlVHlwZSgpOwog
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBiYXNlVHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJp
bnQiLCBbXSk7CisgICAgICAgICAgICBiYXNlVHlwZSA9IG5ldyBUeXBlUmVmKG5hbWUsICJpbnQi
KTsKICAgICAgICAgY29uc3VtZSgieyIpOwogICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IEVudW1U
eXBlKG5hbWUsIG5hbWUudGV4dCwgYmFzZVR5cGUpOwogICAgICAgICB3aGlsZSAoIXRlc3QoIn0i
KSkgewpAQCAtOTk5LDI0ICs5MzYsMjcgQEAgZnVuY3Rpb24gcGFyc2UocHJvZ3JhbSwgb3JpZ2lu
LCBvcmlnaW5LaW5kLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KQogICAgIAogICAgIGZvciAoOzsp
IHsKICAgICAgICAgbGV0IHRva2VuID0gbGV4ZXIucGVlaygpOworICAgICAgICBsZXQgcmVzdWx0
ID0gbnVsbDsKICAgICAgICAgaWYgKCF0b2tlbikKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgaWYgKHRva2VuLnRleHQgPT0gIjsiKQogICAgICAgICAgICAgbGV4ZXIubmV4dCgpOwotICAg
ICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJ0eXBlZGVmIikKLSAgICAgICAgICAgIHByb2dy
YW0uYWRkKHBhcnNlVHlwZURlZigpKTsKLSAgICAgICAgZWxzZSBpZiAob3JpZ2luS2luZCA9PSAi
bmF0aXZlIiAmJiB0b2tlbi50ZXh0ID09ICJuYXRpdmUiKQotICAgICAgICAgICAgcHJvZ3JhbS5h
ZGQocGFyc2VOYXRpdmUoKSk7Ci0gICAgICAgIGVsc2UgaWYgKG9yaWdpbktpbmQgPT0gIm5hdGl2
ZSIgJiYgdG9rZW4udGV4dCA9PSAicmVzdHJpY3RlZCIpCi0gICAgICAgICAgICBwcm9ncmFtLmFk
ZChwYXJzZVJlc3RyaWN0ZWRGdW5jRGVmKCkpOwotICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0
ID09ICJzdHJ1Y3QiKQotICAgICAgICAgICAgcHJvZ3JhbS5hZGQocGFyc2VTdHJ1Y3RUeXBlKCkp
OwotICAgICAgICBlbHNlIGlmICh0b2tlbi50ZXh0ID09ICJlbnVtIikKLSAgICAgICAgICAgIHBy
b2dyYW0uYWRkKHBhcnNlRW51bVR5cGUoKSk7Ci0gICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQg
PT0gInByb3RvY29sIikKLSAgICAgICAgICAgIHByb2dyYW0uYWRkKHBhcnNlUHJvdG9jb2xEZWNs
KCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcm9ncmFtLmFkZChwYXJzZUZ1bmNEZWYo
KSk7CisgICAgICAgIGVsc2UgaWYgKHRva2VuLnRleHQgPT0gInR5cGVkZWYiKSB7CisgICAgICAg
ICAgICByZXN1bHQgPSAocGFyc2VUeXBlRGVmKCkpOworICAgICAgICB9IGVsc2UgaWYgKG9yaWdp
bktpbmQgPT0gIm5hdGl2ZSIgJiYgdG9rZW4udGV4dCA9PSAibmF0aXZlIikgeworICAgICAgICAg
ICAgcmVzdWx0ID0gKHBhcnNlTmF0aXZlKCkpOworICAgICAgICB9IGVsc2UgaWYgKG9yaWdpbktp
bmQgPT0gIm5hdGl2ZSIgJiYgdG9rZW4udGV4dCA9PSAicmVzdHJpY3RlZCIpIHsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IChwYXJzZVJlc3RyaWN0ZWRGdW5jRGVmKCkpOworICAgICAgICB9IGVsc2Ug
aWYgKHRva2VuLnRleHQgPT0gInN0cnVjdCIpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChwYXJz
ZVN0cnVjdFR5cGUoKSk7CisgICAgICAgIH0gZWxzZSBpZiAodG9rZW4udGV4dCA9PSAiZW51bSIp
IHsKKyAgICAgICAgICAgIHJlc3VsdCA9IChwYXJzZUVudW1UeXBlKCkpOworICAgICAgICB9IGVs
c2UKKyAgICAgICAgICAgIHJlc3VsdCA9IChwYXJzZUZ1bmNEZWYoKSk7CisgICAgICAgIHByaW50
KCJQYXJzZWQgIiArIGFzZGYgKyAiIHRvcC1sZXZlbCBzdGF0ZW1lbnQ6ICIgKyByZXN1bHQpOwor
ICAgICAgICBpZiAocmVzdWx0ICE9IG51bGwpCisgICAgICAgICAgICBwcm9ncmFtLmFkZChyZXN1
bHQpOworICAgICAgICByZXN1bHQgPT0gbnVsbAorICAgICAgICBhc2RmID0gYXNkZiArIDE7CiAg
ICAgfQogfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVw
YXJlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcwppbmRleCBh
MjA0OGE5YWQzZTgzYmQxOGI3NjQ0NGNhNTU0NmU0OGZlMDExOWEwLi4xNmRkMmYxNjZkN2Y2ZDhh
NDRlZjVjYTc5YTg0YTBkNDQ5NmUxYzFkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1ByZXBhcmUuanMKQEAgLTQyLDE2ICs0MiwxMyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAg
ICAgICAgIGZvbGRDb25zdGV4cHJzKHByb2dyYW0pOwogICAgICAgICBsZXQgbmFtZVJlc29sdmVy
ID0gY3JlYXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwogICAgICAgICByZXNvbHZlTmFtZXNJblR5
cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7Ci0gICAgICAgIHJlc29sdmVOYW1lc0luUHJvdG9j
b2xzKHByb2dyYW0sIG5hbWVSZXNvbHZlcik7CiAgICAgICAgIHJlc29sdmVUeXBlRGVmc0luVHlw
ZXMocHJvZ3JhbSk7Ci0gICAgICAgIHJlc29sdmVUeXBlRGVmc0luUHJvdG9jb2xzKHByb2dyYW0p
OwogICAgICAgICBjaGVja1JlY3Vyc2l2ZVR5cGVzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVz
aXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pOwogICAgICAgICBzeW50aGVzaXplRW51bUZ1bmN0
aW9ucyhwcm9ncmFtKTsKICAgICAgICAgcmVzb2x2ZU5hbWVzSW5GdW5jdGlvbnMocHJvZ3JhbSwg
bmFtZVJlc29sdmVyKTsKICAgICAgICAgcmVzb2x2ZVR5cGVEZWZzSW5GdW5jdGlvbnMocHJvZ3Jh
bSk7Ci0gICAgICAgIAotICAgICAgICBmbGF0dGVuUHJvdG9jb2xFeHRlbmRzKHByb2dyYW0pOwor
CiAgICAgICAgIGNoZWNrKHByb2dyYW0pOwogICAgICAgICBjaGVja0xpdGVyYWxUeXBlcyhwcm9n
cmFtKTsKICAgICAgICAgcmVzb2x2ZVByb3BlcnRpZXMocHJvZ3JhbSk7CkBAIC02NSw2ICs2Miw3
IEBAIGxldCBwcmVwYXJlID0gKCgpID0+IHsKICAgICAgICAgY2hlY2tQcm9ncmFtV3JhcHBlZChw
cm9ncmFtKTsKICAgICAgICAgZmluZEhpZ2hab21iaWVzKHByb2dyYW0pOwogICAgICAgICBpbmxp
bmUocHJvZ3JhbSk7CisgICAgICAgIHByaW50KCJEb25lLiIpCiAgICAgICAgIAogICAgICAgICBy
ZXR1cm4gcHJvZ3JhbTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvZ3JhbS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb2dy
YW0uanMKaW5kZXggYmJjNGIyNGE2MjI3YjFjZTViMDZkNzMzYWMyMGQ5MmI1OTZhNGM3My4uOGZj
NmY3OTNlZTZlNzNlZWNhNWE2YWE3NGE0NDBhNjdiODZiZTZmYSAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvZ3JhbS5qcworKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9Qcm9ncmFtLmpzCkBAIC0zMSw4ICszMSw2IEBAIGNsYXNzIFByb2dyYW0g
ZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgdGhpcy5fdG9wTGV2ZWxTdGF0ZW1lbnRzID0gW107CiAg
ICAgICAgIHRoaXMuX2Z1bmN0aW9ucyA9IG5ldyBNYXAoKTsKICAgICAgICAgdGhpcy5fdHlwZXMg
PSBuZXcgTWFwKCk7Ci0gICAgICAgIHRoaXMuX3Byb3RvY29scyA9IG5ldyBNYXAoKTsKLSAgICAg
ICAgdGhpcy5fZnVuY0luc3RhbnRpYXRvciA9IG5ldyBGdW5jSW5zdGFudGlhdG9yKHRoaXMpOwog
ICAgICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dCA9IG5ldyBOYW1lQ29udGV4dCgpOwogICAg
ICAgICB0aGlzLl9nbG9iYWxOYW1lQ29udGV4dC5wcm9ncmFtID0gdGhpczsKICAgICAgICAgdGhp
cy5fZ2xvYmFsTmFtZUNvbnRleHQucmVjb2duaXplSW50cmluc2ljcygpOwpAQCAtNDIsOCArNDAs
NiBAQCBjbGFzcyBQcm9ncmFtIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IHRvcExldmVsU3RhdGVt
ZW50cygpIHsgcmV0dXJuIHRoaXMuX3RvcExldmVsU3RhdGVtZW50czsgfQogICAgIGdldCBmdW5j
dGlvbnMoKSB7IHJldHVybiB0aGlzLl9mdW5jdGlvbnM7IH0KICAgICBnZXQgdHlwZXMoKSB7IHJl
dHVybiB0aGlzLl90eXBlczsgfQotICAgIGdldCBwcm90b2NvbHMoKSB7IHJldHVybiB0aGlzLl9w
cm90b2NvbHM7IH0KLSAgICBnZXQgZnVuY0luc3RhbnRpYXRvcigpIHsgcmV0dXJuIHRoaXMuX2Z1
bmNJbnN0YW50aWF0b3I7IH0KICAgICBnZXQgZ2xvYmFsTmFtZUNvbnRleHQoKSB7IHJldHVybiB0
aGlzLl9nbG9iYWxOYW1lQ29udGV4dDsgfQogICAgIAogICAgIGFkZChzdGF0ZW1lbnQpCkBAIC01
Niw4ICs1Miw2IEBAIGNsYXNzIFByb2dyYW0gZXh0ZW5kcyBOb2RlIHsKICAgICAgICAgICAgIGFy
cmF5LnB1c2goc3RhdGVtZW50KTsKICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFu
Y2VvZiBUeXBlKQogICAgICAgICAgICAgdGhpcy5fdHlwZXMuc2V0KHN0YXRlbWVudC5uYW1lLCBz
dGF0ZW1lbnQpOwotICAgICAgICBlbHNlIGlmIChzdGF0ZW1lbnQgaW5zdGFuY2VvZiBQcm90b2Nv
bCkKLSAgICAgICAgICAgIHRoaXMuX3Byb3RvY29scy5zZXQoc3RhdGVtZW50Lm5hbWUsIHN0YXRl
bWVudCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiU3RhdGVt
ZW50IGlzIG5vdCBhIGZ1bmN0aW9uIG9yIHR5cGU6ICIgKyBzdGF0ZW1lbnQpOwogICAgICAgICB0
aGlzLl90b3BMZXZlbFN0YXRlbWVudHMucHVzaChzdGF0ZW1lbnQpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvcGVydHlSZXNvbHZlci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3BlcnR5UmVzb2x2ZXIuanMKaW5kZXggNTdjNjAwYzQ4
ZjAyZTIyOTc3OGU2MTYyZGNmY2RhMzJhMWY1Y2I2Yy4uYjVjNDU0YWMyZGMzZDUzNGNhNTIxM2Vm
MTNjMzczNmNkMTcwMDM0NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJvcGVydHlSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9Qcm9wZXJ0eVJlc29sdmVyLmpzCkBAIC01OSw2ICs1OSwxMCBAQCBjbGFzcyBQcm9wZXJ0eVJl
c29sdmVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
dmlzaXQobm9kZS5sVmFsdWUpOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2aXNpdFRl
cm5hcnlFeHByZXNzaW9uKG5vZGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICAgICAgCiAgICAgICAgIG5vZGUudmlzaXQobmV3IFJWYWx1ZUZpbmRlcigpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29sLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDMzZjg0NTY0NzdlY2EyZThkY2Y2NmNmNDVjMmQ0NzNjYTA4NTdkODgu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9jb2wuanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0idXNl
IHN0cmljdCI7Ci0KLWNsYXNzIFByb3RvY29sIGV4dGVuZHMgTm9kZSB7Ci0gICAgY29uc3RydWN0
b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5f
b3JpZ2luID0gb3JpZ2luOwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICB9Ci0gICAg
Ci0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCBuYW1l
KCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBraW5kKCkgeyByZXR1cm4gUHJvdG9j
b2w7IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5u
YW1lOwotICAgIH0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Byb3RvY29sRGVjbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Byb3RvY29s
RGVjbC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUwYmNmY2YzM2JhNzM5NWM1
NmQ5NTJhNTc5ZDA5OTI3YjBiZTc2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbERlY2wu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBQcm90b2NvbERl
Y2wgZXh0ZW5kcyBQcm90b2NvbCB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAg
IHsKLSAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgdGhpcy5leHRlbmRzID0g
W107Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMgPSBbXTsKLSAgICAgICAgdGhpcy5fc2lnbmF0
dXJlTWFwID0gbmV3IE1hcCgpOwotICAgICAgICB0aGlzLl90eXBlVmFyaWFibGUgPSBuZXcgVHlw
ZVZhcmlhYmxlKG9yaWdpbiwgbmFtZSwgbnVsbCk7Ci0gICAgfQotICAgIAotICAgIGFkZEV4dGVu
ZHMocHJvdG9jb2wpCi0gICAgewotICAgICAgICB0aGlzLmV4dGVuZHMucHVzaChwcm90b2NvbCk7
Ci0gICAgfQotICAgIAotICAgIGFkZChzaWduYXR1cmUpCi0gICAgewotICAgICAgICBpZiAoIShz
aWduYXR1cmUgaW5zdGFuY2VvZiBQcm90b2NvbEZ1bmNEZWNsKSkKLSAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigiU2lnbmF0dXJlIGlzbid0IGEgUHJvdG9jb2xGdW5jRGVjbCBidXQgYSAiICsg
c2lnbmF0dXJlLmNvbnN0cnVjdG9yLm5hbWUpOwotICAgICAgICAKLSAgICAgICAgc2lnbmF0dXJl
LnByb3RvY29sRGVjbCA9IHRoaXM7Ci0gICAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWdu
YXR1cmUpOwotICAgICAgICBsZXQgb3ZlcmxvYWRzID0gdGhpcy5fc2lnbmF0dXJlTWFwLmdldChz
aWduYXR1cmUubmFtZSk7Ci0gICAgICAgIGlmICghb3ZlcmxvYWRzKQotICAgICAgICAgICAgdGhp
cy5fc2lnbmF0dXJlTWFwLnNldChzaWduYXR1cmUubmFtZSwgb3ZlcmxvYWRzID0gW10pOwotICAg
ICAgICBvdmVybG9hZHMucHVzaChzaWduYXR1cmUpOwotICAgIH0KLSAgICAKLSAgICBnZXQgc2ln
bmF0dXJlcygpIHsgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZXM7IH0KLSAgICBzaWduYXR1cmVzQnlO
YW1lKG5hbWUpIHsgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZU1hcC5nZXQobmFtZSk7IH0KLSAgICBn
ZXQgdHlwZVZhcmlhYmxlKCkgeyByZXR1cm4gdGhpcy5fdHlwZVZhcmlhYmxlOyB9Ci0gICAgCi0g
ICAgc2lnbmF0dXJlc0J5TmFtZVdpdGhUeXBlVmFyaWFibGUobmFtZSwgdHlwZVZhcmlhYmxlKQot
ICAgIHsKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0dXRpb24oW3RoaXMu
dHlwZVZhcmlhYmxlXSwgW3R5cGVWYXJpYWJsZV0pOwotICAgICAgICBsZXQgcmVzdWx0ID0gdGhp
cy5zaWduYXR1cmVzQnlOYW1lKG5hbWUpOwotICAgICAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAg
ICAgIHJldHVybiBudWxsOwotICAgICAgICByZXR1cm4gcmVzdWx0Lm1hcChzaWduYXR1cmUgPT4g
c2lnbmF0dXJlLnZpc2l0KHN1YnN0aXR1dGlvbikpOwotICAgIH0KLSAgICAKLSAgICBpbmhlcml0
cyhvdGhlclByb3RvY29sKQotICAgIHsKLSAgICAgICAgaWYgKCFvdGhlclByb3RvY29sKQotICAg
ICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICAKLSAgICAgICAgaWYgKG90
aGVyUHJvdG9jb2wgaW5zdGFuY2VvZiBQcm90b2NvbFJlZikKLSAgICAgICAgICAgIG90aGVyUHJv
dG9jb2wgPSBvdGhlclByb3RvY29sLnByb3RvY29sRGVjbDsKLSAgICAgICAgCi0gICAgICAgIGZv
ciAobGV0IG90aGVyU2lnbmF0dXJlIG9mIG90aGVyUHJvdG9jb2wuc2lnbmF0dXJlcykgewotICAg
ICAgICAgICAgbGV0IHNpZ25hdHVyZXMgPSB0aGlzLnNpZ25hdHVyZXNCeU5hbWUob3RoZXJTaWdu
YXR1cmUubmFtZSk7Ci0gICAgICAgICAgICBpZiAoIXNpZ25hdHVyZXMpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246ICJQcm90b2NvbCAiICsgdGhpcy5uYW1l
ICsgIiBkb2VzIG5vdCBoYXZlIGEgZnVuY3Rpb24gbmFtZWQgIiArIG90aGVyU2lnbmF0dXJlLm5h
bWUgKyAiIChsb29raW5nIGF0IHNpZ25hdHVyZSAiICsgb3RoZXJTaWduYXR1cmUgKyAiKSJ9Owot
ICAgICAgICAgICAgbGV0IG92ZXJsb2FkID0gcmVzb2x2ZU92ZXJsb2FkSW1wbCgKLSAgICAgICAg
ICAgICAgICBzaWduYXR1cmVzLCBbXSwKLSAgICAgICAgICAgICAgICBvdGhlclNpZ25hdHVyZS5w
YXJhbWV0ZXJUeXBlcywKLSAgICAgICAgICAgICAgICBvdGhlclNpZ25hdHVyZS5yZXR1cm5UeXBl
Rm9yT3ZlcmxvYWRSZXNvbHV0aW9uKTsKLSAgICAgICAgICAgIGlmICghb3ZlcmxvYWQuZnVuYykK
LSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJlYXNvbjogIkRpZCBub3Qg
ZmluZCBtYXRjaGluZyBzaWduYXR1cmUgZm9yICIgKyBvdGhlclNpZ25hdHVyZSArICIgaW4gIiAr
IHRoaXMubmFtZSArIChvdmVybG9hZC5mYWlsdXJlcy5sZW5ndGggPyAiICh0cmllZDogIiArIG92
ZXJsb2FkLmZhaWx1cmVzLmpvaW4oIjsgIikgKyAiKSIgOiAiIil9OwotICAgICAgICAgICAgbGV0
IHN1YnN0aXR1dGVkUmV0dXJuVHlwZSA9Ci0gICAgICAgICAgICAgICAgb3ZlcmxvYWQuZnVuYy5y
ZXR1cm5UeXBlLnN1YnN0aXR1dGVUb1VuaWZpY2F0aW9uKAotICAgICAgICAgICAgICAgICAgICBv
dmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQp
OwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlZFJldHVyblR5cGUuZXF1YWxzKG90aGVyU2ln
bmF0dXJlLnJldHVyblR5cGUpKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxz
ZSwgcmVhc29uOiAiUmV0dXJuIHR5cGUgbWlzbWF0Y2ggYmV0d2VlbiAiICsgb3RoZXJTaWduYXR1
cmUucmV0dXJuVHlwZSArICIgYW5kICIgKyBzdWJzdGl0dXRlZFJldHVyblR5cGV9OwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsKLSAgICB9Ci0gICAgCi0gICAgaGFz
SGVpcih0eXBlKQotICAgIHsKLSAgICAgICAgbGV0IHN1YnN0aXR1dGlvbiA9IG5ldyBTdWJzdGl0
dXRpb24oW3RoaXMuX3R5cGVWYXJpYWJsZV0sIFt0eXBlXSk7Ci0gICAgICAgIGxldCBzaWduYXR1
cmVzID0gdGhpcy5zaWduYXR1cmVzOwotICAgICAgICBmb3IgKGxldCBvcmlnaW5hbFNpZ25hdHVy
ZSBvZiBzaWduYXR1cmVzKSB7Ci0gICAgICAgICAgICBsZXQgc2lnbmF0dXJlID0gb3JpZ2luYWxT
aWduYXR1cmUudmlzaXQoc3Vic3RpdHV0aW9uKTsKLSAgICAgICAgICAgIGxldCBvdmVybG9hZCA9
IHJlc29sdmVPdmVybG9hZEltcGwoc2lnbmF0dXJlLnBvc3NpYmxlT3ZlcmxvYWRzLCBzaWduYXR1
cmUudHlwZVBhcmFtZXRlcnMsIHNpZ25hdHVyZS5wYXJhbWV0ZXJUeXBlcywgc2lnbmF0dXJlLnJl
dHVyblR5cGVGb3JPdmVybG9hZFJlc29sdXRpb24pOwotICAgICAgICAgICAgaWYgKCFvdmVybG9h
ZC5mdW5jKQotICAgICAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAi
RGlkIG5vdCBmaW5kIG1hdGNoaW5nIHNpZ25hdHVyZSBmb3IgIiArIG9yaWdpbmFsU2lnbmF0dXJl
ICsgIiAoYXQgIiArIG9yaWdpbmFsU2lnbmF0dXJlLm9yaWdpbi5vcmlnaW5TdHJpbmcgKyAiKSB3
aXRoIHR5cGUgIiArIHR5cGUgKyAob3ZlcmxvYWQuZmFpbHVyZXMubGVuZ3RoID8gIiAodHJpZWQ6
ICIgKyBvdmVybG9hZC5mYWlsdXJlcy5qb2luKCI7ICIpICsgIikiIDogIiIpfTsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgbGV0IHN1YnN0aXR1dGVkUmV0dXJuVHlwZSA9IG92ZXJsb2FkLmZ1
bmMucmV0dXJuVHlwZS5zdWJzdGl0dXRlVG9VbmlmaWNhdGlvbigKLSAgICAgICAgICAgICAgICBv
dmVybG9hZC5mdW5jLnR5cGVQYXJhbWV0ZXJzLCBvdmVybG9hZC51bmlmaWNhdGlvbkNvbnRleHQp
OwotICAgICAgICAgICAgaWYgKCFzdWJzdGl0dXRlZFJldHVyblR5cGUuZXF1YWxzKHNpZ25hdHVy
ZS5yZXR1cm5UeXBlKSkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIkF0IHNpZ25hdHVyZSAiICsgb3JpZ2luYWxTaWduYXR1cmUgKyAiIChhdCAiICsgb3Jp
Z2luYWxTaWduYXR1cmUub3JpZ2luLm9yaWdpblN0cmluZyArICIpOiByZXR1cm4gdHlwZSBtaXNt
YXRjaCBiZXR3ZWVuICIgKyBzaWduYXR1cmUucmV0dXJuVHlwZSArICIgYW5kICIgKyBzdWJzdGl0
dXRlZFJldHVyblR5cGUgKyAiIGluIGZvdW5kIGZ1bmN0aW9uICIgKyBvdmVybG9hZC5mdW5jLnRv
RGVjbFN0cmluZygpfTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07
Ci0gICAgfQotICAgIAotICAgIHRvU3RyaW5nKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiAicHJv
dG9jb2wgIiArIHRoaXMubmFtZSArICIgeyAiICsgdGhpcy5zaWduYXR1cmVzLmpvaW4oIjsgIikg
KyAiOyB9IjsKLSAgICB9Ci19Ci0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJvdG9jb2xGdW5jRGVjbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Byb3RvY29sRnVuY0RlY2wuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5
YjVjOWI4ZTcxNjE4NjhhMWNlNDVkNTg4NjYzOTJjMDIyMjQ0ZDMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvUHJvdG9jb2xGdW5jRGVjbC5qcworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsK
LQotY2xhc3MgUHJvdG9jb2xGdW5jRGVjbCBleHRlbmRzIEZ1bmMgewotICAgIGdldCB0eXBlUGFy
YW1ldGVyc0ZvckNhbGxSZXNvbHV0aW9uKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnR5
cGVQYXJhbWV0ZXJzLmNvbmNhdCh0aGlzLnByb3RvY29sRGVjbC50eXBlVmFyaWFibGUpOwotICAg
IH0KLX0KLQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJvdG9j
b2xSZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDNjMGVhMzBkNzQ4ZDhiOWUxNjEwN2E5Zjgw
OGMyM2IzMjg2NWU2NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9Qcm90b2NvbFJlZi5qcworKysgL2Rl
di9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLSJ1c2Ugc3RyaWN0IjsKLQotY2xhc3MgUHJvdG9jb2xSZWYgZXh0ZW5kcyBQ
cm90b2NvbCB7Ci0gICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQotICAgIHsKLSAgICAgICAg
c3VwZXIob3JpZ2luLCBuYW1lKTsKLSAgICAgICAgdGhpcy5wcm90b2NvbERlY2wgPSBudWxsOwot
ICAgIH0KLSAgICAKLSAgICBpbmhlcml0cyhvdGhlcikKLSAgICB7Ci0gICAgICAgIHJldHVybiB0
aGlzLnByb3RvY29sRGVjbC5pbmhlcml0cyhvdGhlcik7Ci0gICAgfQotICAgIAotICAgIGhhc0hl
aXIodHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLnByb3RvY29sRGVjbC5oYXNIZWly
KHR5cGUpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaXNQcmltaXRpdmUoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMucHJvdG9jb2xEZWNsLmlzUHJpbWl0aXZlOwotICAgIH0KLX0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29sdmVOYW1lcy5qcwppbmRleCAxOTIyZThl
YzI3ZmMzOWQ5NWI0YWE4YmZhOWE1NmM5MTBmNmU2OGIyLi40OWRjODYzN2Q0ZTE0M2E5YjA3ZDU5
Y2YzZmI5NzVjZjg0YTY1ZTE2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9SZXNvbHZlTmFtZXMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
UmVzb2x2ZU5hbWVzLmpzCkBAIC0zNSwxMiArMzUsNiBAQCBmdW5jdGlvbiByZXNvbHZlTmFtZXNJ
blR5cGVzKHByb2dyYW0sIG5hbWVSZXNvbHZlcikKICAgICAgICAgbmFtZVJlc29sdmVyLmRvU3Rh
dGVtZW50KHR5cGUpOwogfQogCi1mdW5jdGlvbiByZXNvbHZlTmFtZXNJblByb3RvY29scyhwcm9n
cmFtLCBuYW1lUmVzb2x2ZXIpCi17Ci0gICAgZm9yIChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5w
cm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIG5hbWVSZXNvbHZlci5kb1N0YXRlbWVudChwcm90
b2NvbCk7Ci19Ci0KIGZ1bmN0aW9uIHJlc29sdmVOYW1lc0luRnVuY3Rpb25zKHByb2dyYW0sIG5h
bWVSZXNvbHZlcikKIHsKICAgICBmb3IgKGxldCBmdW5jcyBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52
YWx1ZXMoKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVz
b2x2ZU92ZXJsb2FkSW1wbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jlc29s
dmVPdmVybG9hZEltcGwuanMKaW5kZXggN2UyMjE1NmRlMWFjNWUyYTZjNzI0YWQzNDY5ZGM5MWU3
NDZmMjU2Ni4uZDU0Yjk0ZDM2Y2RiMGIwNjgyOTk2MjZhZjA1NjVhODJiYTc3NzVjNyAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZU92ZXJsb2FkSW1wbC5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlT3ZlcmxvYWRJbXBs
LmpzCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KICJ1c2Ugc3RyaWN0IjsKIAotZnVuY3Rpb24gcmVz
b2x2ZU92ZXJsb2FkSW1wbChmdW5jdGlvbnMsIHR5cGVBcmd1bWVudHMsIGFyZ3VtZW50VHlwZXMs
IHJldHVyblR5cGUsIGFsbG93RW50cnlQb2ludCA9IGZhbHNlKQorZnVuY3Rpb24gcmVzb2x2ZU92
ZXJsb2FkSW1wbChmdW5jdGlvbnMsIGFyZ3VtZW50VHlwZXMsIHJldHVyblR5cGUsIGFsbG93RW50
cnlQb2ludCA9IGZhbHNlKQogewogICAgIGlmICghZnVuY3Rpb25zKQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIk51bGwgZnVuY3Rpb25zOyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gY2F1Z2h0IGJ5
IHRoZSBjYWxsZXIuIik7CkBAIC0zNiw3ICszNiw3IEBAIGZ1bmN0aW9uIHJlc29sdmVPdmVybG9h
ZEltcGwoZnVuY3Rpb25zLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1cm5UeXBl
CiAgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKG5ldyBPdmVybG9hZFJlc29sdXRpb25GYWlsdXJl
KGZ1bmMsICJGdW5jdGlvbiBpcyBhICIgKyBmdW5jLnNoYWRlclR5cGUgKyAiIHNoYWRlciwgc28g
aXQgY2Fubm90IGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBhbiBleGlzdGluZyBzaGFkZXIuIikpCiAg
ICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICBsZXQgb3ZlcmxvYWQgPSBp
bmZlclR5cGVzRm9yQ2FsbChmdW5jLCB0eXBlQXJndW1lbnRzLCBhcmd1bWVudFR5cGVzLCByZXR1
cm5UeXBlKTsKKyAgICAgICAgbGV0IG92ZXJsb2FkID0gaW5mZXJUeXBlc0ZvckNhbGwoZnVuYywg
YXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZSk7CiAgICAgICAgIGlmIChvdmVybG9hZC5mYWlsdXJl
KQogICAgICAgICAgICAgZmFpbHVyZXMucHVzaChvdmVybG9hZC5mYWlsdXJlKTsKICAgICAgICAg
ZWxzZQpAQCAtNzQsNyArNzQsNiBAQCBmdW5jdGlvbiByZXNvbHZlT3ZlcmxvYWRJbXBsKGZ1bmN0
aW9ucywgdHlwZUFyZ3VtZW50cywgYXJndW1lbnRUeXBlcywgcmV0dXJuVHlwZQogICAgICAgICAg
ICAgbGV0IHBhcmFtZXRlckZ1bmMgPSBzdWNjZXNzZXNbal0uZnVuYzsKICAgICAgICAgICAgIGxl
dCBvdmVybG9hZCA9IGluZmVyVHlwZXNGb3JDYWxsKAogICAgICAgICAgICAgICAgIHBhcmFtZXRl
ckZ1bmMsCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50cy5sZW5ndGggPyBhcmd1bWVudEZ1
bmMudHlwZVBhcmFtZXRlcnMgOiBbXSwKICAgICAgICAgICAgICAgICBhcmd1bWVudEZ1bmMucGFy
YW1ldGVyVHlwZXMsCiAgICAgICAgICAgICAgICAgYXJndW1lbnRGdW5jLnJldHVyblR5cGVGb3JP
dmVybG9hZFJlc29sdXRpb24pOwogICAgICAgICAgICAgaWYgKCFvdmVybG9hZC5mdW5jKSB7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXNvbHZlVHlwZURlZnMuanMKaW5k
ZXggM2JkMmE0ZDY1ZjU2NGY3MDhiMGVmNDc1OWU0M2IyYzg4ZDQ4YzIzNC4uZTg3YmRjM2MzNDgz
MTk5NTJmZjlkOGYwMzk5ZjM0OGVhOTUwZDYwZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvUmVzb2x2ZVR5cGVEZWZzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL1Jlc29sdmVUeXBlRGVmcy5qcwpAQCAtMzEsMTMgKzMxLDYgQEAgZnVuY3Rp
b24gcmVzb2x2ZVR5cGVEZWZzSW5UeXBlcyhwcm9ncmFtKQogICAgICAgICB0eXBlLnZpc2l0KHJl
c29sdmVyKTsKIH0KIAotZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5Qcm90b2NvbHMocHJvZ3Jh
bSkKLXsKLSAgICBsZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJlc29sdmVyKCk7Ci0gICAgZm9y
IChsZXQgcHJvdG9jb2wgb2YgcHJvZ3JhbS5wcm90b2NvbHMudmFsdWVzKCkpCi0gICAgICAgIHBy
b3RvY29sLnZpc2l0KHJlc29sdmVyKTsKLX0KLQogZnVuY3Rpb24gcmVzb2x2ZVR5cGVEZWZzSW5G
dW5jdGlvbnMocHJvZ3JhbSkKIHsKICAgICBsZXQgcmVzb2x2ZXIgPSBuZXcgVHlwZURlZlJlc29s
dmVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9SZXdyaXRl
ci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Jld3JpdGVyLmpzCmluZGV4IGY0
MGQ2Yjg4YjI2ZWVkY2JmODI5ZjFiYWJiMTBhMjA0NWI3YThlODMuLjQ0NmU0MzkxNjg4OTM3OTdj
ZWQ2YmZjN2I1NjM3YTU5NDI5ZmFlYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Jld3JpdGVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1Jld3JpdGVyLmpzCkBAIC01Myw0MSArNTMsMTEgQEAgY2xhc3MgUmV3cml0ZXIgewogICAgIC8v
IHRoYXQuCiAgICAgdmlzaXRGdW5jRGVmKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNp
dE5hdGl2ZUZ1bmMobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0TmF0aXZlRnVuY0lu
c3RhbmNlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkg
eyByZXR1cm4gbm9kZTsgfQogICAgIHZpc2l0VHlwZURlZihub2RlKSB7IHJldHVybiBub2RlOyB9
CiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KLSAgICB2aXNpdENv
bnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZSkgeyByZXR1cm4gbm9kZTsgfQotICAgIHZpc2l0UHJv
dG9jb2xEZWNsKG5vZGUpIHsgcmV0dXJuIG5vZGU7IH0KICAgICB2aXNpdEVudW1UeXBlKG5vZGUp
IHsgcmV0dXJuIG5vZGU7IH0KIAotICAgIC8vIFRoaXMgaXMgYWxtb3N0IHdyb25nLiBXZSBpbnN0
YW50aWF0ZSBGdW5jIGluIFN1YnN0aXR1dGlvbiBpbiBQcm90b2NvbERlY2wuIFRoZW4sIHdlIGVu
ZCB1cAotICAgIC8vIG5vdCByZXdyaXRpbmcgdHlwZSB2YXJpYWJsZXMuIEkgdGhpbmsgdGhhdCBq
dXN0IHdvcmtzIGJlY2F1c2Ugbm90IHJld3JpdGluZyB0aGVtIHRoZXJlIGlzIE9LLgotICAgIC8v
IEV2ZXJ5d2hlcmUgZWxzZSwgaXQncyBtYW5kYXRvcnkgdGhhdCB3ZSBkb24ndCByZXdyaXRlIHRo
ZXNlIGJlY2F1c2Ugd2UgYWx3YXlzIGFzc3VtZSB0aGF0Ci0gICAgLy8gdHlwZSB2YXJpYWJsZXMg
YXJlIG91dHNpZGUgdGhlIHNjb3BlIG9mIHJld3JpdGluZy4KLSAgICB2aXNpdFR5cGVWYXJpYWJs
ZShub2RlKSB7IHJldHVybiBub2RlOyB9Ci0KLSAgICB2aXNpdFByb3RvY29sRnVuY0RlY2wobm9k
ZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xGdW5jRGVjbCgKLSAg
ICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnJldHVy
blR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcChw
YXJhbWV0ZXIgPT4gcGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKLSAgICAgICAgICAgIG5vZGUucGFy
YW1ldGVycy5tYXAocGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCi0gICAgICAg
ICAgICBub2RlLmlzQ2FzdCwKLSAgICAgICAgICAgIG5vZGUuc2hhZGVyVHlwZSk7Ci0gICAgICAg
IHJlc3VsdC5wcm90b2NvbERlY2wgPSBub2RlLnByb3RvY29sRGVjbDsKLSAgICAgICAgcmVzdWx0
LnBvc3NpYmxlT3ZlcmxvYWRzID0gbm9kZS5wb3NzaWJsZU92ZXJsb2FkczsKLSAgICAgICAgcmV0
dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXROYXRpdmVUeXBlSW5zdGFuY2Uobm9k
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZUluc3RhbmNlKAotICAgICAg
ICAgICAgbm9kZS50eXBlLnZpc2l0KHRoaXMpLAotICAgICAgICAgICAgbm9kZS50eXBlQXJndW1l
bnRzLm1hcChhcmd1bWVudCA9PiBhcmd1bWVudC52aXNpdCh0aGlzKSkpOwotICAgIH0KLSAgICAK
ICAgICB2aXNpdEZ1bmNQYXJhbWV0ZXIobm9kZSkKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQg
PSBuZXcgRnVuY1BhcmFtZXRlcihub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnR5cGUudmlz
aXQodGhpcykpOwpAQCAtMTI1LDE0ICs5NSw5IEBAIGNsYXNzIFJld3JpdGVyIHsKICAgICAgICAg
fSkpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gbm9kZTsKLSAgICB9Ci0gICAgCiAgICAgdmlzaXRUeXBlUmVmKG5vZGUpCiAg
ICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYobm9kZS5vcmlnaW4sIG5vZGUu
bmFtZSwgbm9kZS50eXBlQXJndW1lbnRzLm1hcCh0eXBlQXJndW1lbnQgPT4gdHlwZUFyZ3VtZW50
LnZpc2l0KHRoaXMpKSk7CisgICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlwZVJlZihub2RlLm9y
aWdpbiwgbm9kZS5uYW1lKTsKICAgICAgICAgcmVzdWx0LnR5cGUgPSBOb2RlLnZpc2l0KG5vZGUu
dHlwZSwgdGhpcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQpAQCAtMTk4LDYgKzE2
MywxMSBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgICAgIHJlc3VsdC5hZGRyZXNzU3BhY2UgPSBu
b2RlLmFkZHJlc3NTcGFjZTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisKKyAgICB2
aXNpdFRlcm5hcnlFeHByZXNzaW9uKG5vZGUpCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFRl
cm5hcnlFeHByZXNzaW9uKG5vZGUub3JpZ2luLCBub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKSwg
bm9kZS5ib2R5RXhwcmVzc2lvbi52aXNpdCh0aGlzKSwgbm9kZS5lbHNlRXhwcmVzc2lvbi52aXNp
dCh0aGlzKSk7CisgICAgfQogICAgIAogICAgIF9oYW5kbGVQcm9wZXJ0eUFjY2Vzc0V4cHJlc3Np
b24ocmVzdWx0LCBub2RlKQogICAgIHsKQEAgLTMxNywxNCArMjg3LDYgQEAgY2xhc3MgUmV3cml0
ZXIgewogCiAgICAgcHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpCiAgICAgewot
ICAgICAgICBsZXQgaGFuZGxlVHlwZUFyZ3VtZW50cyA9IGFjdHVhbFR5cGVBcmd1bWVudHMgPT4g
ewotICAgICAgICAgICAgaWYgKGFjdHVhbFR5cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGFjdHVhbFR5cGVBcmd1bWVudHMubWFwKGFjdHVhbFR5cGVBcmd1bWVudCA9PiBhY3R1
YWxUeXBlQXJndW1lbnQudmlzaXQodGhpcykpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgICAgIHJldHVybiBudWxsOwotICAgICAgICB9Ci0gICAgICAgIHJlc3VsdC5hY3R1YWxUeXBl
QXJndW1lbnRzID0gaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmFjdHVhbFR5cGVBcmd1bWVudHMp
OwotICAgICAgICByZXN1bHQuaW5zdGFudGlhdGVkQWN0dWFsVHlwZUFyZ3VtZW50cyA9IGhhbmRs
ZVR5cGVBcmd1bWVudHMobm9kZS5pbnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAg
ICAgICAgbGV0IGFyZ3VtZW50VHlwZXMgPSBub2RlLmFyZ3VtZW50VHlwZXM7CiAgICAgICAgIGlm
IChhcmd1bWVudFR5cGVzKQogICAgICAgICAgICAgcmVzdWx0LmFyZ3VtZW50VHlwZXMgPSBhcmd1
bWVudFR5cGVzLm1hcChhcmd1bWVudFR5cGUgPT4gYXJndW1lbnRUeXBlLnZpc2l0KHRoaXMpKTsK
QEAgLTM0Miw3ICszMDQsNiBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgewogICAgICAgICBsZXQg
cmVzdWx0ID0gbmV3IENhbGxFeHByZXNzaW9uKAogICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5v
ZGUubmFtZSwKLSAgICAgICAgICAgIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50
ID0+IHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmFyZ3VtZW50
TGlzdC5tYXAoYXJndW1lbnQgPT4gTm9kZS52aXNpdChhcmd1bWVudCwgdGhpcykpKTsKICAgICAg
ICAgcmV0dXJuIHRoaXMucHJvY2Vzc0Rlcml2ZWRDYWxsRGF0YShub2RlLCByZXN1bHQpOwogICAg
IH0KQEAgLTQxMiw3ICszNzMsNyBAQCBjbGFzcyBSZXdyaXRlciB7CiAgICAgCiAgICAgdmlzaXRB
bm9ueW1vdXNWYXJpYWJsZShub2RlKQogICAgIHsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBB
bm9ueW1vdXNWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBBbm9ueW1vdXNWYXJpYWJsZShub2RlLm9yaWdpbiwgTm9k
ZS52aXNpdChub2RlLnR5cGUsIHRoaXMpKTsKICAgICAgICAgcmVzdWx0Ll9pbmRleCA9IG5vZGUu
X2luZGV4OwogICAgICAgICB0aGlzLl9tYXBOb2RlKG5vZGUsIHJlc3VsdCk7CiAgICAgICAgIHJl
c3VsdC5lUHRyID0gbm9kZS5lUHRyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvU1BJUlYuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJW
Lmh0bWwKaW5kZXggOTNmNmI5YjkzMmQyNzJkNzdhM2RjMzE2N2Y1MjVmYTQwYTYxZWQyMy4uZjlk
N2Q0OTUxZTY3YmY4NWFmODljNzg0Y2VhZTUwZmU2ZjEyNTZkZiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAorKysgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sCkBAIC00Miw3ICs0Miw2IEBAIHRkIHsKICAgICA8c2Ny
aXB0IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29t
bWFFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9s
ZGVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iQ29uc3RleHByVHlwZVBhcmFtZXRl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkNvbnRpbnVlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRvQXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRG9XaGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNjEs
NyArNjAsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IkV4dGVybmFsT3JpZ2luLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmllbGQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQg
c3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJGbGF0
dGVuUHJvdG9jb2xFeHRlbmRzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRmxhdHRl
bmVkU3RydWN0T2Zmc2V0R2F0aGVyZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJG
bG9hdExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxU
eXBlLmpzIj48L3NjcmlwdD4KQEAgLTY5LDcgKzY3LDYgQEAgdGQgewogICAgIDxzY3JpcHQgc3Jj
PSJGb3JMb29wLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVuYy5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmNEZWYuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQg
c3JjPSJGdW5jSW5zdGFudGlhdG9yLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iRnVu
Y1BhcmFtZXRlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkZ1bmN0aW9uTGlrZUJs
b2NrLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSGlnaFpvbWJpZUZpbmRlci5qcyI+
PC9zY3JpcHQ+CkBAIC03OSw3ICs3Niw2IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iSW5mZXJU
eXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmUuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludExpdGVy
YWxUeXBlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9z
Y3JpcHQ+CkBAIC05Niw5ICs5Miw3IEBAIHRkIHsKICAgICA8c2NyaXB0IHNyYz0iTmFtZUZpbmRl
ci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5hbWVSZXNvbHZlci5qcyI+PC9zY3Jp
cHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMiPjwvc2NyaXB0PgotICAgIDxzY3Jp
cHQgc3JjPSJOYXRpdmVGdW5jSW5zdGFuY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJOYXRpdmVUeXBlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZUlu
c3RhbmNlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTm9ybWFsVXNlUHJvcGVydHlS
ZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ik51bGxMaXRlcmFsLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTA5
LDEwICsxMDMsNiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJQcm9ncmFtLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iUHJvZ3JhbVdpdGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2Ny
aXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlw
dCBzcmM9IlByb3RvY29sRGVjbC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlByb3Rv
Y29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5q
cyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlB0clR5cGUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CkBAIC0xMzcsMTQg
KzEyNywxMiBAQCB0ZCB7CiAgICAgPHNjcmlwdCBzcmM9IlN3aXRjaFN0YXRlbWVudC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVFbnVtRnVuY3Rpb25zLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iVHJhcFN0YXRlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IlR5cGVEZWYuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVz
b2x2ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJUeXBlT3JWYXJpYWJsZVJlZi5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9IlR5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlR5cGVSZWYuanMiPjwvc2NyaXB0PgotICAgIDxz
Y3JpcHQgc3JjPSJUeXBlVmFyaWFibGUuanMiPjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJU
eXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVHlwZWRW
YWx1ZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWQ29kZWdlbi5qcwppbmRleCBiNGY1
MDg1OWE4N2FmYjYwZTU0YjM2MGM2MDU5YzRhYWM4YzIzYmNhLi5hOWZkZWVjZTQ3NTg2Njg2NjNl
ZDEwMzJmNzJiMjAzZTgyMDUyYWExIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TUElSVkNvZGVnZW4uanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvU1BJUlZDb2RlZ2VuLmpzCkBAIC01Myw3ICs1Myw3IEBAIGZ1bmN0aW9uIGdlbmVyYXRlU1BJ
UlYoc3BpcnYsIHByb2dyYW0pCiAgICAgdHlwZU1hcC5zZXQocHJvZ3JhbS5pbnRyaW5zaWNzLnVp
bnQzMiwgY3VycmVudElkKyspOwogCiAgICAgZm9yIChsZXQgZW50cnlQb2ludCBvZiBmaW5kRW50
cnlQb2ludHMoKSkgewotICAgICAgICBsZXQgaW5saW5lZFNoYWRlciA9IHByb2dyYW0uZnVuY0lu
c3RhbnRpYXRvci5nZXRVbmlxdWUoZW50cnlQb2ludCwgW10pOworICAgICAgICBsZXQgaW5saW5l
ZFNoYWRlciA9IGVudHJ5UG9pbnQ7CiAgICAgICAgIF9pbmxpbmVGdW5jdGlvbihwcm9ncmFtLCBp
bmxpbmVkU2hhZGVyLCBuZXcgVmlzaXRpbmdTZXQoZW50cnlQb2ludCkpOwogCiAgICAgICAgIGxl
dCB0eXBlQW5hbHl6ZXIgPSBuZXcgU1BJUlZUeXBlQW5hbHl6ZXIocHJvZ3JhbSwgdHlwZU1hcCwg
Y3VycmVudElkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0
YW5kYXJkTGlicmFyeS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0YW5kYXJk
TGlicmFyeS5qcwppbmRleCAxOTg4NzIzYzM1NDgwODFjNjY3ZmFjNzg2MmY0MDI2N2Y5ZjhiODU3
Li45MmJmZGMzZjM5ZmYyNjkyOTM3Y2YzYjhjOWQ3NWFlZGJjODIzZTQ3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGFuZGFyZExpYnJhcnkuanMKKysrIGIvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RhbmRhcmRMaWJyYXJ5LmpzCkBAIC0yNiw1NiAr
MjYsNzgwIEBACiAKIC8vIE5PVEU6IFRoZSBuZXh0IGxpbmUgaXMgbGluZSAyOCwgYW5kIHdlIHJl
bHkgb24gdGhpcyBpbiBQcmVwYXJlLmpzLgogbGV0IHN0YW5kYXJkTGlicmFyeSA9IGAKLS8vIFRo
aXMgaXMgdGhlIFdTTCBzdGFuZGFyZCBsaWJyYXJ5LiBJbXBsZW1lbnRhdGlvbnMgb2YgYWxsIG9m
IHRoZXNlIHRoaW5ncyBhcmUgaW4KLS8vIEludHJpbnNpY3MuanMuCisvLyBUaGlzIHdhcyBhdXRv
Z2VuZXJhdGVkIGZyb20gR2VuZXJhdGVfU3RhbmRhcmRfTGlicmFyeS5zd2lmdCEgRG8gbm90IGVk
aXQhIQogCi0vLyBOZWVkIHRvIGJvb3RzdHJhcCB2b2lkIGZpcnN0LgogbmF0aXZlIHR5cGVkZWYg
dm9pZDsKLQotbmF0aXZlIHR5cGVkZWYgdWludDg7Ci1uYXRpdmUgdHlwZWRlZiBpbnQzMjsKLW5h
dGl2ZSB0eXBlZGVmIHVpbnQzMjsKIG5hdGl2ZSB0eXBlZGVmIGJvb2w7Ci10eXBlZGVmIGludCA9
IGludDMyOwotdHlwZWRlZiB1aW50ID0gdWludDMyOwotCi1uYXRpdmUgdHlwZWRlZiBmbG9hdDMy
OwotdHlwZWRlZiBmbG9hdCA9IGZsb2F0MzI7Ci0KLW5hdGl2ZSBvcGVyYXRvciBpbnQzMih1aW50
MzIpOwotbmF0aXZlIG9wZXJhdG9yIGludDMyKHVpbnQ4KTsKLW5hdGl2ZSBvcGVyYXRvciBpbnQz
MihmbG9hdCk7Ci1uYXRpdmUgb3BlcmF0b3IgdWludDMyKGludDMyKTsKLW5hdGl2ZSBvcGVyYXRv
ciB1aW50MzIodWludDgpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQzMihmbG9hdCk7Ci1uYXRpdmUg
b3BlcmF0b3IgdWludDgoaW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIHVpbnQ4KHVpbnQzMik7Ci1u
YXRpdmUgb3BlcmF0b3IgdWludDgoZmxvYXQpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0KGludDMy
KTsKLW5hdGl2ZSBvcGVyYXRvciBmbG9hdCh1aW50MzIpOwotbmF0aXZlIG9wZXJhdG9yIGZsb2F0
KHVpbnQ4KTsKK25hdGl2ZSB0eXBlZGVmIHVjaGFyOworbmF0aXZlIHR5cGVkZWYgdXNob3J0Owor
bmF0aXZlIHR5cGVkZWYgdWludDsKK25hdGl2ZSB0eXBlZGVmIGNoYXI7CituYXRpdmUgdHlwZWRl
ZiBzaG9ydDsKK25hdGl2ZSB0eXBlZGVmIGludDsKK25hdGl2ZSB0eXBlZGVmIGhhbGY7CituYXRp
dmUgdHlwZWRlZiBmbG9hdDsKK25hdGl2ZSB0eXBlZGVmIGF0b21pY19pbnQ7CituYXRpdmUgdHlw
ZWRlZiBhdG9taWNfdWludDsKK3N0cnVjdCBib29sMiB7CisgICAgYm9vbCB4OworICAgIGJvb2wg
eTsKK30KK3N0cnVjdCBib29sMyB7CisgICAgYm9vbCB4OworICAgIGJvb2wgeTsKKyAgICBib29s
IHo7Cit9CitzdHJ1Y3QgYm9vbDQgeworICAgIGJvb2wgeDsKKyAgICBib29sIHk7CisgICAgYm9v
bCB6OworICAgIGJvb2wgdzsKK30KK3N0cnVjdCB1Y2hhcjIgeworICAgIHVjaGFyIHg7CisgICAg
dWNoYXIgeTsKK30KK3N0cnVjdCB1Y2hhcjMgeworICAgIHVjaGFyIHg7CisgICAgdWNoYXIgeTsK
KyAgICB1Y2hhciB6OworfQorc3RydWN0IHVjaGFyNCB7CisgICAgdWNoYXIgeDsKKyAgICB1Y2hh
ciB5OworICAgIHVjaGFyIHo7CisgICAgdWNoYXIgdzsKK30KK3N0cnVjdCB1c2hvcnQyIHsKKyAg
ICB1c2hvcnQgeDsKKyAgICB1c2hvcnQgeTsKK30KK3N0cnVjdCB1c2hvcnQzIHsKKyAgICB1c2hv
cnQgeDsKKyAgICB1c2hvcnQgeTsKKyAgICB1c2hvcnQgejsKK30KK3N0cnVjdCB1c2hvcnQ0IHsK
KyAgICB1c2hvcnQgeDsKKyAgICB1c2hvcnQgeTsKKyAgICB1c2hvcnQgejsKKyAgICB1c2hvcnQg
dzsKK30KK3N0cnVjdCB1aW50MiB7CisgICAgdWludCB4OworICAgIHVpbnQgeTsKK30KK3N0cnVj
dCB1aW50MyB7CisgICAgdWludCB4OworICAgIHVpbnQgeTsKKyAgICB1aW50IHo7Cit9CitzdHJ1
Y3QgdWludDQgeworICAgIHVpbnQgeDsKKyAgICB1aW50IHk7CisgICAgdWludCB6OworICAgIHVp
bnQgdzsKK30KK3N0cnVjdCBjaGFyMiB7CisgICAgY2hhciB4OworICAgIGNoYXIgeTsKK30KK3N0
cnVjdCBjaGFyMyB7CisgICAgY2hhciB4OworICAgIGNoYXIgeTsKKyAgICBjaGFyIHo7Cit9Citz
dHJ1Y3QgY2hhcjQgeworICAgIGNoYXIgeDsKKyAgICBjaGFyIHk7CisgICAgY2hhciB6OworICAg
IGNoYXIgdzsKK30KK3N0cnVjdCBzaG9ydDIgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsK
K30KK3N0cnVjdCBzaG9ydDMgeworICAgIHNob3J0IHg7CisgICAgc2hvcnQgeTsKKyAgICBzaG9y
dCB6OworfQorc3RydWN0IHNob3J0NCB7CisgICAgc2hvcnQgeDsKKyAgICBzaG9ydCB5OworICAg
IHNob3J0IHo7CisgICAgc2hvcnQgdzsKK30KK3N0cnVjdCBpbnQyIHsKKyAgICBpbnQgeDsKKyAg
ICBpbnQgeTsKK30KK3N0cnVjdCBpbnQzIHsKKyAgICBpbnQgeDsKKyAgICBpbnQgeTsKKyAgICBp
bnQgejsKK30KK3N0cnVjdCBpbnQ0IHsKKyAgICBpbnQgeDsKKyAgICBpbnQgeTsKKyAgICBpbnQg
ejsKKyAgICBpbnQgdzsKK30KK3N0cnVjdCBoYWxmMiB7CisgICAgaGFsZiB4OworICAgIGhhbGYg
eTsKK30KK3N0cnVjdCBoYWxmMyB7CisgICAgaGFsZiB4OworICAgIGhhbGYgeTsKKyAgICBoYWxm
IHo7Cit9CitzdHJ1Y3QgaGFsZjQgeworICAgIGhhbGYgeDsKKyAgICBoYWxmIHk7CisgICAgaGFs
ZiB6OworICAgIGhhbGYgdzsKK30KK3N0cnVjdCBmbG9hdDIgeworICAgIGZsb2F0IHg7CisgICAg
ZmxvYXQgeTsKK30KK3N0cnVjdCBmbG9hdDMgeworICAgIGZsb2F0IHg7CisgICAgZmxvYXQgeTsK
KyAgICBmbG9hdCB6OworfQorc3RydWN0IGZsb2F0NCB7CisgICAgZmxvYXQgeDsKKyAgICBmbG9h
dCB5OworICAgIGZsb2F0IHo7CisgICAgZmxvYXQgdzsKK30KK3N0cnVjdCBoYWxmMngyIHsKKyAg
ICBoYWxmMiByb3cwOworICAgIGhhbGYyIHJvdzE7Cit9CitzdHJ1Y3QgaGFsZjJ4MyB7CisgICAg
aGFsZjMgcm93MDsKKyAgICBoYWxmMyByb3cxOworfQorc3RydWN0IGhhbGYyeDQgeworICAgIGhh
bGY0IHJvdzA7CisgICAgaGFsZjQgcm93MTsKK30KK3N0cnVjdCBoYWxmM3gyIHsKKyAgICBoYWxm
MiByb3cwOworICAgIGhhbGYyIHJvdzE7CisgICAgaGFsZjIgcm93MjsKK30KK3N0cnVjdCBoYWxm
M3gzIHsKKyAgICBoYWxmMyByb3cwOworICAgIGhhbGYzIHJvdzE7CisgICAgaGFsZjMgcm93MjsK
K30KK3N0cnVjdCBoYWxmM3g0IHsKKyAgICBoYWxmNCByb3cwOworICAgIGhhbGY0IHJvdzE7Cisg
ICAgaGFsZjQgcm93MjsKK30KK3N0cnVjdCBoYWxmNHgyIHsKKyAgICBoYWxmMiByb3cwOworICAg
IGhhbGYyIHJvdzE7CisgICAgaGFsZjIgcm93MjsKKyAgICBoYWxmMiByb3czOworfQorc3RydWN0
IGhhbGY0eDMgeworICAgIGhhbGYzIHJvdzA7CisgICAgaGFsZjMgcm93MTsKKyAgICBoYWxmMyBy
b3cyOworICAgIGhhbGYzIHJvdzM7Cit9CitzdHJ1Y3QgaGFsZjR4NCB7CisgICAgaGFsZjQgcm93
MDsKKyAgICBoYWxmNCByb3cxOworICAgIGhhbGY0IHJvdzI7CisgICAgaGFsZjQgcm93MzsKK30K
K3N0cnVjdCBmbG9hdDJ4MiB7CisgICAgZmxvYXQyIHJvdzA7CisgICAgZmxvYXQyIHJvdzE7Cit9
CitzdHJ1Y3QgZmxvYXQyeDMgeworICAgIGZsb2F0MyByb3cwOworICAgIGZsb2F0MyByb3cxOwor
fQorc3RydWN0IGZsb2F0Mng0IHsKKyAgICBmbG9hdDQgcm93MDsKKyAgICBmbG9hdDQgcm93MTsK
K30KK3N0cnVjdCBmbG9hdDN4MiB7CisgICAgZmxvYXQyIHJvdzA7CisgICAgZmxvYXQyIHJvdzE7
CisgICAgZmxvYXQyIHJvdzI7Cit9CitzdHJ1Y3QgZmxvYXQzeDMgeworICAgIGZsb2F0MyByb3cw
OworICAgIGZsb2F0MyByb3cxOworICAgIGZsb2F0MyByb3cyOworfQorc3RydWN0IGZsb2F0M3g0
IHsKKyAgICBmbG9hdDQgcm93MDsKKyAgICBmbG9hdDQgcm93MTsKKyAgICBmbG9hdDQgcm93MjsK
K30KK3N0cnVjdCBmbG9hdDR4MiB7CisgICAgZmxvYXQyIHJvdzA7CisgICAgZmxvYXQyIHJvdzE7
CisgICAgZmxvYXQyIHJvdzI7CisgICAgZmxvYXQyIHJvdzM7Cit9CitzdHJ1Y3QgZmxvYXQ0eDMg
eworICAgIGZsb2F0MyByb3cwOworICAgIGZsb2F0MyByb3cxOworICAgIGZsb2F0MyByb3cyOwor
ICAgIGZsb2F0MyByb3czOworfQorc3RydWN0IGZsb2F0NHg0IHsKKyAgICBmbG9hdDQgcm93MDsK
KyAgICBmbG9hdDQgcm93MTsKKyAgICBmbG9hdDQgcm93MjsKKyAgICBmbG9hdDQgcm93MzsKK30K
K25hdGl2ZSB0eXBlZGVmIHNhbXBsZXI7CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbD47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxib29sND47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVjaGFyMj47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUxRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVzaG9ydD47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNo
b3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dXNob3J0ND47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMUQ8dWludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8dWludDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDx1
aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGNoYXIzPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxRDxjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMUQ8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxzaG9ydDQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aW50Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMUQ8aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMUQ8aGFsZj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGhhbGYzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
MUQ8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEPGZsb2F0Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMUQ8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxRDxmbG9hdDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8Ym9vbD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDxib29sMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUxRDxib29sND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUx
RDx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1Y2hhcjI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMUQ8dWNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVj
aGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hvcnQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8dXNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1c2hv
cnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHVzaG9ydDQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMUQ8dWludD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50Mj47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDx1aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxRDx1aW50ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxjaGFyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFE
PGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGNoYXI0PjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPHNob3J0
Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMUQ8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGludD47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEPGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8aW50ND47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUxRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGYy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGhhbGYzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0PjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEPGZsb2F0Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUxRDxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMUQ8ZmxvYXQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFE
QXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbDM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWNoYXIyPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNo
b3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVzaG9ydDI+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTFEQXJyYXk8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PHVpbnQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTFEQXJyYXk8dWludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8dWludDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMURBcnJheTxjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyMz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMURBcnJheTxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxzaG9y
dDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUxREFycmF5PHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJh
eTxpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aW50Mj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5
PGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8aGFsZj47CituYXRpdmUgdHlw
ZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJh
eTxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURBcnJheTxoYWxmND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMURBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMURB
cnJheTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTFEQXJyYXk8ZmxvYXQzPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUxREFycmF5PGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUxREFycmF5PGJvb2w+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxib29s
Mj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGJvb2wzPjsKK25hdGl2ZSB0eXBl
ZGVmIFJXVGV4dHVyZTFEQXJyYXk8Ym9vbDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURB
cnJheTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVjaGFyMj47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUxREFycmF5PHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTFEQXJyYXk8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTx1aW50Mj47CituYXRpdmUg
dHlwZWRlZiBSV1RleHR1cmUxREFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxjaGFyPjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYg
UldUZXh0dXJlMURBcnJheTxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5
PGNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJyYXk8c2hvcnQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMURBcnJheTxzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxzaG9y
dDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxpbnQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMURBcnJheTxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTFEQXJy
YXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGludDQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTFEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxoYWxmMz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUxREFycmF5PGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTFEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJh
eTxmbG9hdDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdDM+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMURBcnJheTxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTJEPGJvb2w+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGJvb2wyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyRDxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Ym9vbDQ+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVjaGFyMz47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlMkQ8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVzaG9ydDQ+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
PHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDx1aW50Mz47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlMkQ8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxj
aGFyMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxzaG9ydDI+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEPHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8
c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEPGludDI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGludDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEPGludDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGY+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyRDxoYWxmMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkQ8aGFsZjQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZTJEPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyRDxmbG9hdDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlMkQ8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGJvb2w+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8Ym9vbDQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlMkQ8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWNoYXIy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVjaGFyMz47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyRDx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dXNob3J0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkQ8dXNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDx1c2hvcnQ0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHVpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlMkQ8dWludDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDM+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkQ8dWludDQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8
Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBSV1RleHR1cmUyRDxjaGFyMz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxjaGFyND47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDxzaG9ydDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8c2hvcnQzPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1
cmUyRDxpbnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aW50Mj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyRDxpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGludDQ+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkQ8aGFsZj47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUyRDxoYWxmMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmMz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyRDxoYWxmND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUy
RDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyRDxmbG9hdDI+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlMkQ8ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEPGZs
b2F0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxib29sPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUyREFycmF5PGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmUyREFycmF5PHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTx1c2hvcnQy
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJh
eTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmUyREFycmF5PHVpbnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFy
cmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGNoYXI+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJE
QXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8Y2hhcjQ+OworbmF0
aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVy
ZTJEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PHNob3J0Mz47
CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEQXJyYXk8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGludDI+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aW50Mz47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlMkRBcnJheTxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5PGhhbGY+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYg
VGV4dHVyZTJEQXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8aGFs
ZjQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQ+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTJEQXJyYXk8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUyREFycmF5
PGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlMkRBcnJheTxmbG9hdDQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8Ym9vbDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxib29sMz47
CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTJEQXJyYXk8dWNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJh
eTx1Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcjM+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1c2hvcnQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1
c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dXNob3J0Mz47CituYXRp
dmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHVzaG9ydDQ+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTx1aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8dWlu
dDI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTx1aW50Mz47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8Y2hhcj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGNoYXIyPjsKK25h
dGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldU
ZXh0dXJlMkRBcnJheTxjaGFyND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PHNo
b3J0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQyPjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTJEQXJyYXk8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aW50Mj47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUyREFycmF5PGludDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxp
bnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8aGFsZj47CituYXRpdmUgdHlw
ZWRlZiBSV1RleHR1cmUyREFycmF5PGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJE
QXJyYXk8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlMkRBcnJheTxoYWxmND47Citu
YXRpdmUgdHlwZWRlZiBSV1RleHR1cmUyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJX
VGV4dHVyZTJEQXJyYXk8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8
ZmxvYXQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTJEQXJyYXk8ZmxvYXQ0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmUzRDxib29sPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxib29s
Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8Ym9vbDM+OworbmF0aXZlIHR5cGVkZWYgVGV4
dHVyZTNEPGJvb2w0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hhcj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8dWNoYXIyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1Y2hh
cjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlM0Q8dXNob3J0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQyPjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUz
RDx1c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmUzRDx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8dWludDM+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUz
RDxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxjaGFyMj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlM0Q8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGNoYXI0PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9ydD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8
c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxzaG9ydDM+OworbmF0aXZlIHR5cGVk
ZWYgVGV4dHVyZTNEPHNob3J0ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlM0Q8aW50PjsKK25h
dGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxp
bnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmUzRDxoYWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxoYWxmMj47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlM0Q8aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZTNEPGhhbGY0
PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBUZXh0
dXJlM0Q8ZmxvYXQyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmUzRDxmbG9hdDM+OworbmF0aXZl
IHR5cGVkZWYgVGV4dHVyZTNEPGZsb2F0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxi
b29sPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2wyPjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGJvb2wzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGJvb2w0PjsK
K25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4
dHVyZTNEPHVjaGFyMj47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1Y2hhcjM+OworbmF0
aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8dWNoYXI0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVy
ZTNEPHVzaG9ydD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1c2hvcnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVzaG9ydDM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
M0Q8dXNob3J0ND47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDx1aW50PjsKK25hdGl2ZSB0
eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVp
bnQzPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPHVpbnQ0PjsKK25hdGl2ZSB0eXBlZGVm
IFJXVGV4dHVyZTNEPGNoYXI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjI+Owor
bmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8Y2hhcjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0
dXJlM0Q8Y2hhcjQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQ+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8c2hvcnQyPjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNE
PHNob3J0Mz47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmUzRDxzaG9ydDQ+OworbmF0aXZlIHR5
cGVkZWYgUldUZXh0dXJlM0Q8aW50PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGludDI+
OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aW50Mz47CituYXRpdmUgdHlwZWRlZiBSV1Rl
eHR1cmUzRDxpbnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGhhbGY+OworbmF0aXZl
IHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjI+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8
aGFsZjM+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8aGFsZjQ+OworbmF0aXZlIHR5cGVk
ZWYgUldUZXh0dXJlM0Q8ZmxvYXQ+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlM0Q8ZmxvYXQy
PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZTNEPGZsb2F0Mz47CituYXRpdmUgdHlwZWRlZiBS
V1RleHR1cmUzRDxmbG9hdDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8Ym9vbD47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sMj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxib29sMz47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxib29sND47CituYXRpdmUg
dHlwZWRlZiBUZXh0dXJlQ3ViZTx1Y2hhcj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1
Y2hhcjI+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWNoYXIzPjsKK25hdGl2ZSB0eXBl
ZGVmIFRleHR1cmVDdWJlPHVjaGFyND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1c2hv
cnQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dXNob3J0Mj47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlQ3ViZTx1c2hvcnQzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHVzaG9y
dDQ+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8dWludD47CituYXRpdmUgdHlwZWRlZiBU
ZXh0dXJlQ3ViZTx1aW50Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50Mz47Citu
YXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTx1aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJl
Q3ViZTxjaGFyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNoYXIyPjsKK25hdGl2ZSB0
eXBlZGVmIFRleHR1cmVDdWJlPGNoYXIzPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGNo
YXI0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPHNob3J0PjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPHNob3J0Mj47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxzaG9ydDM+
OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8c2hvcnQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRl
eHR1cmVDdWJlPGludD47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxpbnQyPjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGludDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1YmU8
aW50ND47CituYXRpdmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxoYWxmPjsKK25hdGl2ZSB0eXBlZGVm
IFRleHR1cmVDdWJlPGhhbGYyPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGYzPjsK
K25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGhhbGY0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1
cmVDdWJlPGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVDdWJlPGZsb2F0Mj47CituYXRp
dmUgdHlwZWRlZiBUZXh0dXJlQ3ViZTxmbG9hdDM+OworbmF0aXZlIHR5cGVkZWYgVGV4dHVyZUN1
YmU8ZmxvYXQ0PjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEPGZsb2F0PjsKK25hdGl2
ZSB0eXBlZGVmIFRleHR1cmVEZXB0aDJEPGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJl
RGVwdGgyRDxmbG9hdD47CituYXRpdmUgdHlwZWRlZiBSV1RleHR1cmVEZXB0aDJEPGhhbGY+Owor
bmF0aXZlIHR5cGVkZWYgVGV4dHVyZURlcHRoMkRBcnJheTxmbG9hdD47CituYXRpdmUgdHlwZWRl
ZiBUZXh0dXJlRGVwdGgyREFycmF5PGhhbGY+OworbmF0aXZlIHR5cGVkZWYgUldUZXh0dXJlRGVw
dGgyREFycmF5PGZsb2F0PjsKK25hdGl2ZSB0eXBlZGVmIFJXVGV4dHVyZURlcHRoMkRBcnJheTxo
YWxmPjsKK25hdGl2ZSB0eXBlZGVmIFRleHR1cmVEZXB0aEN1YmU8ZmxvYXQ+OworbmF0aXZlIHR5
cGVkZWYgVGV4dHVyZURlcHRoQ3ViZTxoYWxmPjsKIAorb3BlcmF0b3IgdWNoYXIodWNoYXIgeCkg
eworICAgIHJldHVybiB4OworfQorbmF0aXZlIG9wZXJhdG9yIHVjaGFyKHVzaG9ydCk7CituYXRp
dmUgb3BlcmF0b3IgdWNoYXIodWludCk7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoY2hhcik7Citu
YXRpdmUgb3BlcmF0b3IgdWNoYXIoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHVjaGFyKGludCk7
CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoaGFsZik7CituYXRpdmUgb3BlcmF0b3IgdWNoYXIoZmxv
YXQpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydCh1Y2hhcik7CitvcGVyYXRvciB1c2hvcnQodXNo
b3J0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciB1c2hvcnQodWludCk7
CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGNoYXIpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChz
aG9ydCk7CituYXRpdmUgb3BlcmF0b3IgdXNob3J0KGludCk7CituYXRpdmUgb3BlcmF0b3IgdXNo
b3J0KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVzaG9ydChmbG9hdCk7CituYXRpdmUgb3BlcmF0
b3IgdWludCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgdWludCh1c2hvcnQpOworb3BlcmF0b3Ig
dWludCh1aW50IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciB1aW50KGNo
YXIpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoc2hvcnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQo
aW50KTsKK25hdGl2ZSBvcGVyYXRvciB1aW50KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQo
ZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGNoYXIodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGNo
YXIodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBjaGFyKHVpbnQpOworb3BlcmF0b3IgY2hhcihj
aGFyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBjaGFyKHNob3J0KTsK
K25hdGl2ZSBvcGVyYXRvciBjaGFyKGludCk7CituYXRpdmUgb3BlcmF0b3IgY2hhcihoYWxmKTsK
K25hdGl2ZSBvcGVyYXRvciBjaGFyKGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydCh1Y2hh
cik7CituYXRpdmUgb3BlcmF0b3Igc2hvcnQodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9y
dCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBzaG9ydChjaGFyKTsKK29wZXJhdG9yIHNob3J0KHNo
b3J0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBzaG9ydChpbnQpOwor
bmF0aXZlIG9wZXJhdG9yIHNob3J0KGhhbGYpOworbmF0aXZlIG9wZXJhdG9yIHNob3J0KGZsb2F0
KTsKK25hdGl2ZSBvcGVyYXRvciBpbnQodWNoYXIpOworbmF0aXZlIG9wZXJhdG9yIGludCh1c2hv
cnQpOworbmF0aXZlIG9wZXJhdG9yIGludCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBpbnQoY2hh
cik7CituYXRpdmUgb3BlcmF0b3IgaW50KHNob3J0KTsKK29wZXJhdG9yIGludChpbnQgeCkgewor
ICAgIHJldHVybiB4OworfQorbmF0aXZlIG9wZXJhdG9yIGludChoYWxmKTsKK25hdGl2ZSBvcGVy
YXRvciBpbnQoZmxvYXQpOworbmF0aXZlIG9wZXJhdG9yIGhhbGYodWNoYXIpOworbmF0aXZlIG9w
ZXJhdG9yIGhhbGYodXNob3J0KTsKK25hdGl2ZSBvcGVyYXRvciBoYWxmKHVpbnQpOworbmF0aXZl
IG9wZXJhdG9yIGhhbGYoY2hhcik7CituYXRpdmUgb3BlcmF0b3IgaGFsZihzaG9ydCk7CituYXRp
dmUgb3BlcmF0b3IgaGFsZihpbnQpOworb3BlcmF0b3IgaGFsZihoYWxmIHgpIHsKKyAgICByZXR1
cm4geDsKK30KK25hdGl2ZSBvcGVyYXRvciBoYWxmKGZsb2F0KTsKK25hdGl2ZSBvcGVyYXRvciBm
bG9hdCh1Y2hhcik7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQodXNob3J0KTsKK25hdGl2ZSBvcGVy
YXRvciBmbG9hdCh1aW50KTsKK25hdGl2ZSBvcGVyYXRvciBmbG9hdChjaGFyKTsKK25hdGl2ZSBv
cGVyYXRvciBmbG9hdChzaG9ydCk7CituYXRpdmUgb3BlcmF0b3IgZmxvYXQoaW50KTsKK25hdGl2
ZSBvcGVyYXRvciBmbG9hdChoYWxmKTsKK29wZXJhdG9yIGZsb2F0KGZsb2F0IHgpIHsKKyAgICBy
ZXR1cm4geDsKK30KK29wZXJhdG9yIGJvb2woYm9vbCB4KSB7CisgICAgcmV0dXJuIHg7Cit9Citu
YXRpdmUgb3BlcmF0b3IgaW50KGF0b21pY19pbnQpOworbmF0aXZlIG9wZXJhdG9yIHVpbnQoYXRv
bWljX3VpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29sLCBib29sKTsKK2Jvb2wgb3Bl
cmF0b3ImKGJvb2wgYSwgYm9vbCBiKSB7CisgICAgcmV0dXJuIGEgJiYgYjsKK30KK2Jvb2wgb3Bl
cmF0b3J8KGJvb2wgYSwgYm9vbCBiKSB7CisgICAgcmV0dXJuIGEgfHwgYjsKK30KK2Jvb2wgb3Bl
cmF0b3JeKGJvb2wgYSwgYm9vbCBiKSB7CisgICAgaWYgKGEpCisgICAgICAgIHJldHVybiAhYjsK
KyAgICByZXR1cm4gYjsKK30KK2Jvb2wgb3BlcmF0b3J+KGJvb2wgdmFsdWUpIHsKKyAgICByZXR1
cm4gIXZhbHVlOworfQogbmF0aXZlIGludCBvcGVyYXRvcisoaW50LCBpbnQpOwotbmF0aXZlIHVp
bnQgb3BlcmF0b3IrKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0b3IrKHVpbnQ4IGEsIHVpbnQ4
IGIpIHsgcmV0dXJuIHVpbnQ4KHVpbnQoYSkgKyB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9w
ZXJhdG9yKyhmbG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7IHJldHVy
biB2YWx1ZSArIDE7IH0KLXVpbnQgb3BlcmF0b3IrKyh1aW50IHZhbHVlKSB7IHJldHVybiB2YWx1
ZSArIDE7IH0KLXVpbnQ4IG9wZXJhdG9yKysodWludDggdmFsdWUpIHsgcmV0dXJuIHZhbHVlICsg
MTsgfQogbmF0aXZlIGludCBvcGVyYXRvci0oaW50LCBpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0
b3ItKHVpbnQsIHVpbnQpOwotdWludDggb3BlcmF0b3ItKHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0
dXJuIHVpbnQ4KHVpbnQoYSkgLSB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yLShm
bG9hdCwgZmxvYXQpOwotaW50IG9wZXJhdG9yLS0oaW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAt
IDE7IH0KLXVpbnQgb3BlcmF0b3ItLSh1aW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSAtIDE7IH0K
LXVpbnQ4IG9wZXJhdG9yLS0odWludDggdmFsdWUpIHsgcmV0dXJuIHZhbHVlIC0gMTsgfQogbmF0
aXZlIGludCBvcGVyYXRvciooaW50LCBpbnQpOwotbmF0aXZlIHVpbnQgb3BlcmF0b3IqKHVpbnQs
IHVpbnQpOwotdWludDggb3BlcmF0b3IqKHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQ4
KHVpbnQoYSkgKiB1aW50KGIpKTsgfQotbmF0aXZlIGZsb2F0IG9wZXJhdG9yKihmbG9hdCwgZmxv
YXQpOwogbmF0aXZlIGludCBvcGVyYXRvci8oaW50LCBpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0
b3I9PShpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwoaW50LCBpbnQpOworbmF0aXZl
IGJvb2wgb3BlcmF0b3I8PShpbnQsIGludCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBp
bnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsIGludCk7CituYXRpdmUgdWludCBvcGVy
YXRvcisodWludCwgdWludCk7CituYXRpdmUgdWludCBvcGVyYXRvci0odWludCwgdWludCk7Citu
YXRpdmUgdWludCBvcGVyYXRvcioodWludCwgdWludCk7CiBuYXRpdmUgdWludCBvcGVyYXRvci8o
dWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvci8odWludDggYSwgdWludDggYikgeyByZXR1cm4g
dWludDgodWludChhKSAvIHVpbnQoYikpOyB9CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KHVpbnQs
IHVpbnQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I8KHVpbnQsIHVpbnQpOworbmF0aXZlIGJvb2wg
b3BlcmF0b3I8PSh1aW50LCB1aW50KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPih1aW50LCB1aW50
KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPj0odWludCwgdWludCk7CituYXRpdmUgZmxvYXQgb3Bl
cmF0b3IrKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3ItKGZsb2F0LCBmbG9h
dCk7CituYXRpdmUgZmxvYXQgb3BlcmF0b3IqKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgZmxvYXQg
b3BlcmF0b3IvKGZsb2F0LCBmbG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcj09KGZsb2F0LCBm
bG9hdCk7CituYXRpdmUgYm9vbCBvcGVyYXRvcjwoZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29s
IG9wZXJhdG9yPD0oZmxvYXQsIGZsb2F0KTsKK25hdGl2ZSBib29sIG9wZXJhdG9yPihmbG9hdCwg
ZmxvYXQpOworbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxvYXQpOwogbmF0aXZlIGlu
dCBvcGVyYXRvciYoaW50LCBpbnQpOwogbmF0aXZlIGludCBvcGVyYXRvcnwoaW50LCBpbnQpOwog
bmF0aXZlIGludCBvcGVyYXRvcl4oaW50LCBpbnQpOwpAQCAtODgsMzAyICs4MTIsNjQyMDYgQEAg
bmF0aXZlIHVpbnQgb3BlcmF0b3JeKHVpbnQsIHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3J+
KHVpbnQpOwogbmF0aXZlIHVpbnQgb3BlcmF0b3I8PCh1aW50LCB1aW50KTsKIG5hdGl2ZSB1aW50
IG9wZXJhdG9yPj4odWludCwgdWludCk7Ci11aW50OCBvcGVyYXRvciYodWludDggYSwgdWludDgg
YikgeyByZXR1cm4gdWludDgodWludChhKSAmIHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRvcnwo
dWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSB8IHVpbnQoYikpOyB9Ci11
aW50OCBvcGVyYXRvcl4odWludDggYSwgdWludDggYikgeyByZXR1cm4gdWludDgodWludChhKSBe
IHVpbnQoYikpOyB9Ci11aW50OCBvcGVyYXRvcn4odWludDggdmFsdWUpIHsgcmV0dXJuIHVpbnQ4
KH51aW50KHZhbHVlKSk7IH0KLXVpbnQ4IG9wZXJhdG9yPDwodWludDggYSwgdWludCBiKSB7IHJl
dHVybiB1aW50OCh1aW50KGEpIDw8IChiICYgNykpOyB9Ci11aW50OCBvcGVyYXRvcj4+KHVpbnQ4
IGEsIHVpbnQgYikgeyByZXR1cm4gdWludDgodWludChhKSA+PiAoYiAmIDcpKTsgfQotbmF0aXZl
IGZsb2F0IG9wZXJhdG9yLyhmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I9PShp
bnQsIGludCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj09KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVy
YXRvcj09KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQoYSkgPT0gdWludChiKTsgfQot
bmF0aXZlIGJvb2wgb3BlcmF0b3I9PShib29sLCBib29sKTsKLW5hdGl2ZSBib29sIG9wZXJhdG9y
PT0oZmxvYXQsIGZsb2F0KTsKLW5hdGl2ZSBib29sIG9wZXJhdG9yPChpbnQsIGludCk7Ci1uYXRp
dmUgYm9vbCBvcGVyYXRvcjwodWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPCh1aW50OCBhLCB1
aW50OCBiKSB7IHJldHVybiB1aW50KGEpIDwgdWludChiKTsgfQotbmF0aXZlIGJvb2wgb3BlcmF0
b3I8KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcjw9KGludCwgaW50KTsKLW5h
dGl2ZSBib29sIG9wZXJhdG9yPD0odWludCwgdWludCk7Ci1ib29sIG9wZXJhdG9yPD0odWludDgg
YSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA8PSB1aW50KGIpOyB9Ci1uYXRpdmUgYm9vbCBv
cGVyYXRvcjw9KGZsb2F0LCBmbG9hdCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj4oaW50LCBpbnQp
OwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj4odWlu
dDggYSwgdWludDggYikgeyByZXR1cm4gdWludChhKSA+IHVpbnQoYik7IH0KLW5hdGl2ZSBib29s
IG9wZXJhdG9yPihmbG9hdCwgZmxvYXQpOwotbmF0aXZlIGJvb2wgb3BlcmF0b3I+PShpbnQsIGlu
dCk7Ci1uYXRpdmUgYm9vbCBvcGVyYXRvcj49KHVpbnQsIHVpbnQpOwotYm9vbCBvcGVyYXRvcj49
KHVpbnQ4IGEsIHVpbnQ4IGIpIHsgcmV0dXJuIHVpbnQoYSkgPj0gdWludChiKTsgfQotbmF0aXZl
IGJvb2wgb3BlcmF0b3I+PShmbG9hdCwgZmxvYXQpOwotCi1ib29sIG9wZXJhdG9yJihib29sIGEs
IGJvb2wgYikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0dXJuIGI7Ci0gICAgcmV0dXJuIGZh
bHNlOwordWNoYXIgb3BlcmF0b3IrKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNo
YXIodWludChhKSArIHVpbnQoYikpOwogfQotCi1ib29sIG9wZXJhdG9yfChib29sIGEsIGJvb2wg
YikKLXsKLSAgICBpZiAoYSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKGIpCi0gICAg
ICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKK3VjaGFyIG9wZXJhdG9yLSh1Y2hh
ciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgLSB1aW50KGIpKTsKIH0K
LQotYm9vbCBvcGVyYXRvcl4oYm9vbCBhLCBib29sIGIpCi17Ci0gICAgaWYgKGEpCi0gICAgICAg
IHJldHVybiAhYjsKLSAgICByZXR1cm4gYjsKK3VjaGFyIG9wZXJhdG9yKih1Y2hhciBhLCB1Y2hh
ciBiKSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgKiB1aW50KGIpKTsKIH0KLQotYm9vbCBv
cGVyYXRvcn4oYm9vbCB2YWx1ZSkKLXsKLSAgICByZXR1cm4gIXZhbHVlOwordWNoYXIgb3BlcmF0
b3IvKHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSAvIHVpbnQo
YikpOwogfQotCi1wcm90b2NvbCBBZGRhYmxlIHsKLSAgICBBZGRhYmxlIG9wZXJhdG9yKyhBZGRh
YmxlLCBBZGRhYmxlKTsKK3VjaGFyIG9wZXJhdG9yJih1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAg
cmV0dXJuIHVjaGFyKHVpbnQoYSkgJiB1aW50KGIpKTsKIH0KLQotcHJvdG9jb2wgRXF1YXRhYmxl
IHsKLSAgICBib29sIG9wZXJhdG9yPT0oRXF1YXRhYmxlLCBFcXVhdGFibGUpOwordWNoYXIgb3Bl
cmF0b3J8KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWNoYXIodWludChhKSB8IHVp
bnQoYikpOwogfQotCi1yZXN0cmljdGVkIG9wZXJhdG9yPFQ+IFQoKQotewotICAgIFQgZGVmYXVs
dFZhbHVlOwotICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cit1Y2hhciBvcGVyYXRvcl4odWNoYXIg
YSwgdWNoYXIgYikgeworICAgIHJldHVybiB1Y2hhcih1aW50KGEpIF4gdWludChiKSk7CiB9Ci0K
LXJlc3RyaWN0ZWQgb3BlcmF0b3I8VD4gVChUIHgpCi17Ci0gICAgcmV0dXJuIHg7Cit1Y2hhciBv
cGVyYXRvcn4odWNoYXIgYSkgeworICAgIHJldHVybiB1Y2hhcih+dWludChhKSk7CiB9Ci0KLW9w
ZXJhdG9yPFQ6RXF1YXRhYmxlPiBib29sKFQgeCkKLXsKLSAgICByZXR1cm4geCAhPSBUKCk7Citi
b29sIG9wZXJhdG9yPT0odWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID09
IHVpbnQoYik7CiB9Ci0KLXN0cnVjdCB2ZWMyPFQ+IHsKLSAgICBUIHg7Ci0gICAgVCB5OworYm9v
bCBvcGVyYXRvcjwodWNoYXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpIDwgdWlu
dChiKTsKIH0KLQotdHlwZWRlZiBpbnQyID0gdmVjMjxpbnQ+OwotdHlwZWRlZiB1aW50MiA9IHZl
YzI8dWludD47Ci10eXBlZGVmIGZsb2F0MiA9IHZlYzI8ZmxvYXQ+OwotCi1vcGVyYXRvcjxUPiB2
ZWMyPFQ+KFQgeCwgVCB5KQotewotICAgIHZlYzI8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0g
eDsKLSAgICByZXN1bHQueSA9IHk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK2Jvb2wgb3BlcmF0b3I8
PSh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIHVpbnQoYSkgPD0gdWludChiKTsKIH0K
LQotYm9vbCBvcGVyYXRvcj09PFQ6RXF1YXRhYmxlPih2ZWMyPFQ+IGEsIHZlYzI8VD4gYikKLXsK
LSAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworYm9vbCBvcGVyYXRvcj4odWNo
YXIgYSwgdWNoYXIgYikgeworICAgIHJldHVybiB1aW50KGEpID4gdWludChiKTsKIH0KLQotdGhy
ZWFkIFQqIG9wZXJhdG9yJltdPFQ+KHRocmVhZCB2ZWMyPFQ+KiBmb28sIHVpbnQgaW5kZXgpCi17
Ci0gICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgIHJldHVybiAmZm9vLT54OwotICAgIGlmIChp
bmRleCA9PSAxKQotICAgICAgICByZXR1cm4gJmZvby0+eTsKLSAgICB0cmFwOworYm9vbCBvcGVy
YXRvcj49KHVjaGFyIGEsIHVjaGFyIGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+PSB1aW50KGIp
OwogfQotCi1zdHJ1Y3QgdmVjMzxUPiB7Ci0gICAgVCB4OwotICAgIFQgeTsKLSAgICBUIHo7Cit1
c2hvcnQgb3BlcmF0b3IrKHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQo
dWludChhKSArIHVpbnQoYikpOwogfQotCi10eXBlZGVmIGludDMgPSB2ZWMzPGludD47Ci10eXBl
ZGVmIHVpbnQzID0gdmVjMzx1aW50PjsKLXR5cGVkZWYgZmxvYXQzID0gdmVjMzxmbG9hdD47Ci0K
LW9wZXJhdG9yPFQ+IHZlYzM8VD4oVCB4LCBUIHksIFQgeikKLXsKLSAgICB2ZWMzPFQ+IHJlc3Vs
dDsKLSAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB5OwotICAgIHJlc3VsdC56ID0g
ejsKLSAgICByZXR1cm4gcmVzdWx0OwordXNob3J0IG9wZXJhdG9yLSh1c2hvcnQgYSwgdXNob3J0
IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgLSB1aW50KGIpKTsKIH0KLQotb3BlcmF0
b3I8VD4gdmVjMzxUPih2ZWMyPFQ+IHYyLCBUIHopCi17Ci0gICAgdmVjMzxUPiByZXN1bHQ7Ci0g
ICAgcmVzdWx0LnggPSB2Mi54OwotICAgIHJlc3VsdC55ID0gdjIueTsKLSAgICByZXN1bHQueiA9
IHo7Ci0gICAgcmV0dXJuIHJlc3VsdDsKK3VzaG9ydCBvcGVyYXRvcioodXNob3J0IGEsIHVzaG9y
dCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICogdWludChiKSk7CiB9Ci0KLW9wZXJh
dG9yPFQ+IHZlYzM8VD4oVCB4LCB2ZWMyPFQ+IHYyKQotewotICAgIHZlYzM8VD4gcmVzdWx0Owot
ICAgIHJlc3VsdC54ID0geDsKLSAgICByZXN1bHQueSA9IHYyLng7Ci0gICAgcmVzdWx0LnogPSB2
Mi55OwotICAgIHJldHVybiByZXN1bHQ7Cit1c2hvcnQgb3BlcmF0b3IvKHVzaG9ydCBhLCB1c2hv
cnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSAvIHVpbnQoYikpOwogfQotCi1ib29s
IG9wZXJhdG9yPT08VDpFcXVhdGFibGU+KHZlYzM8VD4gYSwgdmVjMzxUPiBiKQotewotICAgIHJl
dHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK3VzaG9ydCBvcGVy
YXRvciYodXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJuIHVzaG9ydCh1aW50KGEpICYg
dWludChiKSk7CiB9Ci0KLXRocmVhZCBUKiBvcGVyYXRvciZbXTxUPih0aHJlYWQgdmVjMzxUPiog
Zm9vLCB1aW50IGluZGV4KQotewotICAgIGlmIChpbmRleCA9PSAwKQotICAgICAgICByZXR1cm4g
JmZvby0+eDsKLSAgICBpZiAoaW5kZXggPT0gMSkKLSAgICAgICAgcmV0dXJuICZmb28tPnk7Ci0g
ICAgaWYgKGluZGV4ID09IDIpCi0gICAgICAgIHJldHVybiAmZm9vLT56OwotICAgIHRyYXA7Cit1
c2hvcnQgb3BlcmF0b3J8KHVzaG9ydCBhLCB1c2hvcnQgYikgeworICAgIHJldHVybiB1c2hvcnQo
dWludChhKSB8IHVpbnQoYikpOwogfQotCi1zdHJ1Y3QgdmVjNDxUPiB7Ci0gICAgVCB4OwotICAg
IFQgeTsKLSAgICBUIHo7Ci0gICAgVCB3OwordXNob3J0IG9wZXJhdG9yXih1c2hvcnQgYSwgdXNo
b3J0IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkgXiB1aW50KGIpKTsKIH0KK3VzaG9y
dCBvcGVyYXRvcn4odXNob3J0IGEpIHsKKyAgICByZXR1cm4gdXNob3J0KH51aW50KGEpKTsKK30K
K2Jvb2wgb3BlcmF0b3I9PSh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChh
KSA9PSB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjwodXNob3J0IGEsIHVzaG9ydCBiKSB7Cisg
ICAgcmV0dXJuIHVpbnQoYSkgPCB1aW50KGIpOworfQorYm9vbCBvcGVyYXRvcjw9KHVzaG9ydCBh
LCB1c2hvcnQgYikgeworICAgIHJldHVybiB1aW50KGEpIDw9IHVpbnQoYik7Cit9Citib29sIG9w
ZXJhdG9yPih1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gdWludChhKSA+IHVpbnQo
Yik7Cit9Citib29sIG9wZXJhdG9yPj0odXNob3J0IGEsIHVzaG9ydCBiKSB7CisgICAgcmV0dXJu
IHVpbnQoYSkgPj0gdWludChiKTsKK30KK3VjaGFyIG9wZXJhdG9yPDwodWNoYXIgYSwgdWludCBi
KSB7CisgICAgcmV0dXJuIHVjaGFyKHVpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3VzaG9ydCBv
cGVyYXRvcjw8KHVzaG9ydCBhLCB1aW50IGIpIHsKKyAgICByZXR1cm4gdXNob3J0KHVpbnQoYSkg
PDwgKGIgJiA2NTUzNSkpOworfQordWNoYXIgb3BlcmF0b3I+Pih1Y2hhciBhLCB1aW50IGIpIHsK
KyAgICByZXR1cm4gdWNoYXIodWludChhKSA+PiAoYiAmIDI1NSkpOworfQordXNob3J0IG9wZXJh
dG9yPj4odXNob3J0IGEsIHVpbnQgYikgeworICAgIHJldHVybiB1c2hvcnQodWludChhKSA+PiAo
YiAmIDY1NTM1KSk7Cit9CitjaGFyIG9wZXJhdG9yKyhjaGFyIGEsIGNoYXIgYikgeworICAgIHJl
dHVybiBjaGFyKGludChhKSArIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yLShjaGFyIGEsIGNo
YXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAtIGludChiKSk7Cit9CitjaGFyIG9wZXJh
dG9yKihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSAqIGludChiKSk7
Cit9CitjaGFyIG9wZXJhdG9yLyhjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGlu
dChhKSAvIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yJihjaGFyIGEsIGNoYXIgYikgeworICAg
IHJldHVybiBjaGFyKGludChhKSAmIGludChiKSk7Cit9CitjaGFyIG9wZXJhdG9yfChjaGFyIGEs
IGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSB8IGludChiKSk7Cit9CitjaGFyIG9w
ZXJhdG9yXihjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBjaGFyKGludChhKSBeIGludChi
KSk7Cit9CitjaGFyIG9wZXJhdG9yfihjaGFyIGEpIHsKKyAgICByZXR1cm4gY2hhcih+aW50KGEp
KTsKK30KK2Jvb2wgb3BlcmF0b3I9PShjaGFyIGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQo
YSkgPT0gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj4oY2hhciBhLCBjaGFyIGIpIHsKKyAgICBy
ZXR1cm4gaW50KGEpID4gaW50KGIpOworfQorYm9vbCBvcGVyYXRvcj49KGNoYXIgYSwgY2hhciBi
KSB7CisgICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPChjaGFy
IGEsIGNoYXIgYikgeworICAgIHJldHVybiBpbnQoYSkgPCBpbnQoYik7Cit9Citib29sIG9wZXJh
dG9yPD0oY2hhciBhLCBjaGFyIGIpIHsKKyAgICByZXR1cm4gaW50KGEpIDw9IGludChiKTsKK30K
K3Nob3J0IG9wZXJhdG9yKyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGlu
dChhKSArIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvci0oc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgLSBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3IqKHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpICogaW50KGIpKTsKK30K
K3Nob3J0IG9wZXJhdG9yLyhzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGlu
dChhKSAvIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvciYoc2hvcnQgYSwgc2hvcnQgYikgewor
ICAgIHJldHVybiBzaG9ydChpbnQoYSkgJiBpbnQoYikpOworfQorc2hvcnQgb3BlcmF0b3J8KHNo
b3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gc2hvcnQoaW50KGEpIHwgaW50KGIpKTsKK30K
K3Nob3J0IG9wZXJhdG9yXihzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGlu
dChhKSBeIGludChiKSk7Cit9CitzaG9ydCBvcGVyYXRvcn4oc2hvcnQgYSkgeworICAgIHJldHVy
biBzaG9ydCh+aW50KGEpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShzaG9ydCBhLCBzaG9ydCBiKSB7
CisgICAgcmV0dXJuIGludChhKSA9PSBpbnQoYik7Cit9Citib29sIG9wZXJhdG9yPihzaG9ydCBh
LCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+IGludChiKTsKK30KK2Jvb2wgb3BlcmF0
b3I+PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA+PSBpbnQoYik7Cit9
Citib29sIG9wZXJhdG9yPChzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0dXJuIGludChhKSA8
IGludChiKTsKK30KK2Jvb2wgb3BlcmF0b3I8PShzaG9ydCBhLCBzaG9ydCBiKSB7CisgICAgcmV0
dXJuIGludChhKSA8PSBpbnQoYik7Cit9CitjaGFyIG9wZXJhdG9yPDwoY2hhciBhLCB1aW50IGIp
IHsKKyAgICByZXR1cm4gY2hhcihpbnQoYSkgPDwgKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9wZXJh
dG9yPDwoc2hvcnQgYSwgdWludCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA8PCAoYiAm
IDY1NTM1KSk7Cit9CitjaGFyIG9wZXJhdG9yPj4oY2hhciBhLCB1aW50IGIpIHsKKyAgICByZXR1
cm4gY2hhcihpbnQoYSkgPj4gKGIgJiAyNTUpKTsKK30KK3Nob3J0IG9wZXJhdG9yPj4oc2hvcnQg
YSwgdWludCBiKSB7CisgICAgcmV0dXJuIHNob3J0KGludChhKSA+PiAoYiAmIDY1NTM1KSk7Cit9
Cit1Y2hhciBvcGVyYXRvcisrKHVjaGFyIHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVlICsgMTsK
K30KK3VjaGFyIG9wZXJhdG9yLS0odWNoYXIgdmFsdWUpIHsKKyAgICByZXR1cm4gdmFsdWUgLSAx
OworfQordXNob3J0IG9wZXJhdG9yKysodXNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJuIHZhbHVl
ICsgMTsKK30KK3VzaG9ydCBvcGVyYXRvci0tKHVzaG9ydCB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSAtIDE7Cit9Cit1aW50IG9wZXJhdG9yKysodWludCB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSArIDE7Cit9Cit1aW50IG9wZXJhdG9yLS0odWludCB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSAtIDE7Cit9CitjaGFyIG9wZXJhdG9yKysoY2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSArIDE7Cit9CitjaGFyIG9wZXJhdG9yLS0oY2hhciB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSAtIDE7Cit9CitzaG9ydCBvcGVyYXRvcisrKHNob3J0IHZhbHVlKSB7CisgICAgcmV0dXJu
IHZhbHVlICsgMTsKK30KK3Nob3J0IG9wZXJhdG9yLS0oc2hvcnQgdmFsdWUpIHsKKyAgICByZXR1
cm4gdmFsdWUgLSAxOworfQoraW50IG9wZXJhdG9yKysoaW50IHZhbHVlKSB7CisgICAgcmV0dXJu
IHZhbHVlICsgMTsKK30KK2ludCBvcGVyYXRvci0tKGludCB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSAtIDE7Cit9CitoYWxmIG9wZXJhdG9yKysoaGFsZiB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSArIDE7Cit9CitoYWxmIG9wZXJhdG9yLS0oaGFsZiB2YWx1ZSkgeworICAgIHJldHVybiB2
YWx1ZSAtIDE7Cit9CitmbG9hdCBvcGVyYXRvcisrKGZsb2F0IHZhbHVlKSB7CisgICAgcmV0dXJu
IHZhbHVlICsgMTsKK30KK2Zsb2F0IG9wZXJhdG9yLS0oZmxvYXQgdmFsdWUpIHsKKyAgICByZXR1
cm4gdmFsdWUgLSAxOworfQoraGFsZiBvcGVyYXRvcisoaGFsZiBhLCBoYWxmIGIpIHsKKyAgICBy
ZXR1cm4gaGFsZihmbG9hdChhKSArIGZsb2F0KGIpKTsKK30KK2hhbGYgb3BlcmF0b3ItKGhhbGYg
YSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGhhbGYoZmxvYXQoYSkgLSBmbG9hdChiKSk7Cit9Cito
YWxmIG9wZXJhdG9yKihoYWxmIGEsIGhhbGYgYikgeworICAgIHJldHVybiBoYWxmKGZsb2F0KGEp
ICogZmxvYXQoYikpOworfQoraGFsZiBvcGVyYXRvci8oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICBy
ZXR1cm4gaGFsZihmbG9hdChhKSAvIGZsb2F0KGIpKTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxm
IGEsIGhhbGYgYikgeworICAgIHJldHVybiBmbG9hdChhKSA9PSBmbG9hdChiKTsKK30KK2Jvb2wg
b3BlcmF0b3I8KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDwgZmxvYXQo
Yik7Cit9Citib29sIG9wZXJhdG9yPD0oaGFsZiBhLCBoYWxmIGIpIHsKKyAgICByZXR1cm4gZmxv
YXQoYSkgPD0gZmxvYXQoYik7Cit9Citib29sIG9wZXJhdG9yPihoYWxmIGEsIGhhbGYgYikgewor
ICAgIHJldHVybiBmbG9hdChhKSA8IGZsb2F0KGIpOworfQorYm9vbCBvcGVyYXRvcj49KGhhbGYg
YSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGZsb2F0KGEpIDw9IGZsb2F0KGIpOworfQorY2hhciBv
cGVyYXRvci0oY2hhciB4KSB7CisgICAgcmV0dXJuIGNoYXIoLWludCh4KSk7Cit9CitzaG9ydCBv
cGVyYXRvci0oc2hvcnQgeCkgeworICAgIHJldHVybiBzaG9ydCgtaW50KHgpKTsKK30KK2hhbGYg
b3BlcmF0b3ItKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKC1mbG9hdCh4KSk7Cit9CituYXRp
dmUgaW50IG9wZXJhdG9yLShpbnQpOworbmF0aXZlIGZsb2F0IG9wZXJhdG9yLShmbG9hdCk7CiAK
LXR5cGVkZWYgaW50NCA9IHZlYzQ8aW50PjsKLXR5cGVkZWYgdWludDQgPSB2ZWM0PHVpbnQ+Owot
dHlwZWRlZiBmbG9hdDQgPSB2ZWM0PGZsb2F0PjsKLQotb3BlcmF0b3I8VD4gdmVjNDxUPihUIHgs
IFQgeSwgVCB6LCBUIHcpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB4
OwotICAgIHJlc3VsdC55ID0geTsKLSAgICByZXN1bHQueiA9IHo7Ci0gICAgcmVzdWx0LncgPSB3
OwordWNoYXIyIG9wZXJhdG9yKyh1Y2hhcjIgYSwgdWNoYXIyIGIpIHsKKyAgICB1Y2hhcjIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0g
KyBiWzFdOwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4odmVj
MjxUPiB2MiwgVCB6LCBUIHcpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAgcmVzdWx0Lngg
PSB2Mi54OwotICAgIHJlc3VsdC55ID0gdjIueTsKLSAgICByZXN1bHQueiA9IHo7Ci0gICAgcmVz
dWx0LncgPSB3OwordWNoYXIyIG9wZXJhdG9yLSh1Y2hhcjIgYSwgdWNoYXIyIGIpIHsKKyAgICB1
Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gLSBiWzFdOwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZl
YzQ8VD4oVCB4LCB2ZWMyPFQ+IHYyLCBUIHcpCi17Ci0gICAgdmVjNDxUPiByZXN1bHQ7Ci0gICAg
cmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0gdjIueDsKLSAgICByZXN1bHQueiA9IHYyLnk7
Ci0gICAgcmVzdWx0LncgPSB3OwordWNoYXIyIG9wZXJhdG9yKih1Y2hhcjIgYSwgdWNoYXIyIGIp
IHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiWzBdOworICAg
IHJlc3VsdFsxXSA9IGFbMV0gKiBiWzFdOwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0KLW9wZXJh
dG9yPFQ+IHZlYzQ8VD4oVCB4LCBUIHksIHZlYzI8VD4gdjIpCi17Ci0gICAgdmVjNDxUPiByZXN1
bHQ7Ci0gICAgcmVzdWx0LnggPSB4OwotICAgIHJlc3VsdC55ID0geTsKLSAgICByZXN1bHQueiA9
IHYyLng7Ci0gICAgcmVzdWx0LncgPSB2Mi55OwordWNoYXIyIG9wZXJhdG9yKih1Y2hhcjIgYSwg
dWNoYXIgYikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGI7
CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGI7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLQotb3Bl
cmF0b3I8VD4gdmVjNDxUPih2ZWMyPFQ+IHYyYSwgdmVjMjxUPiB2MmIpCi17Ci0gICAgdmVjNDxU
PiByZXN1bHQ7Ci0gICAgcmVzdWx0LnggPSB2MmEueDsKLSAgICByZXN1bHQueSA9IHYyYS55Owot
ICAgIHJlc3VsdC56ID0gdjJiLng7Ci0gICAgcmVzdWx0LncgPSB2MmIueTsKK3VjaGFyMiBvcGVy
YXRvcioodWNoYXIgYSwgdWNoYXIyIGIpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGEgKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEgKiBiWzFdOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9Ci0KLW9wZXJhdG9yPFQ+IHZlYzQ8VD4odmVjMzxUPiB2MywgVCB3KQotewotICAg
IHZlYzQ8VD4gcmVzdWx0OwotICAgIHJlc3VsdC54ID0gdjMueDsKLSAgICByZXN1bHQueSA9IHYz
Lnk7Ci0gICAgcmVzdWx0LnogPSB2My56OwordWNoYXIyIG9wZXJhdG9yLyh1Y2hhcjIgYSwgdWNo
YXIyIGIpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBd
OworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjIgb3BlcmF0b3IvKHVjaGFyMiBhLCB1Y2hhciBiKSB7CisgICAgdWNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyIG9wZXJhdG9yLyh1Y2hhciBhLCB1Y2hhcjIgYikg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYSAvIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRv
cisodWNoYXIzIGEsIHVjaGFyMyBiKSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1
bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJh
dG9yLSh1Y2hhcjMgYSwgdWNoYXIzIGIpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOworICAgIHJl
c3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3Bl
cmF0b3IqKHVjaGFyMyBhLCB1Y2hhcjMgYikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAg
cmVzdWx0WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBv
cGVyYXRvcioodWNoYXIzIGEsIHVjaGFyIGIpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiOworICAgIHJlc3Vs
dFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iq
KHVjaGFyIGEsIHVjaGFyMyBiKSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBh
ICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLyh1Y2hhcjMg
YSwgdWNoYXIzIGIpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0g
LyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFb
Ml0gLyBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IvKHVjaGFy
MyBhLCB1Y2hhciBiKSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBd
IC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8g
YjsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLyh1Y2hhciBhLCB1Y2hh
cjMgYikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07Cisg
ICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvcisodWNoYXI0IGEsIHVjaGFyNCBiKSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAg
ICByZXN1bHRbM10gPSBhWzNdICsgYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLSh1Y2hhcjQgYSwgdWNoYXI0IGIpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOwor
ICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLSBiWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IqKHVjaGFyNCBhLCB1Y2hh
cjQgYikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07
CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAqIGJb
Ml07CisgICAgcmVzdWx0WzNdID0gYVszXSAqIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvcioodWNoYXI0IGEsIHVjaGFyIGIpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiOwor
ICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJlc3VsdFszXSA9IGFbM10gKiBiOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IqKHVjaGFyIGEsIHVjaGFyNCBiKSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1
bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXN1bHRb
M10gPSBhICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLyh1
Y2hhcjQgYSwgdWNoYXI0IGIpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJlc3VsdFsy
XSA9IGFbMl0gLyBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLyBiWzNdOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IvKHVjaGFyNCBhLCB1Y2hhciBiKSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0g
PSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAgICByZXN1bHRbM10gPSBh
WzNdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLyh1Y2hhciBh
LCB1Y2hhcjQgYikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJb
MF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07
CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDIgb3BlcmF0b3IrKHVzaG9ydDIgYSwgdXNob3J0MiBiKSB7CisgICAgdXNob3J0MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYVswXSArIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSArIGJb
MV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3ItKHVzaG9ydDIgYSwg
dXNob3J0MiBiKSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAt
IGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDIgb3BlcmF0b3IqKHVzaG9ydDIgYSwgdXNob3J0MiBiKSB7CisgICAgdXNob3J0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0g
YVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IqKHVz
aG9ydDIgYSwgdXNob3J0IGIpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhWzBdICogYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdICogYjsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0MiBvcGVyYXRvcioodXNob3J0IGEsIHVzaG9ydDIgYikgeworICAgIHVzaG9y
dDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEg
KiBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLyh1c2hvcnQy
IGEsIHVzaG9ydDIgYikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFb
MF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLyh1c2hvcnQyIGEsIHVzaG9ydCBiKSB7CisgICAgdXNo
b3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGI7CisgICAgcmVzdWx0WzFdID0g
YVsxXSAvIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IvKHVzaG9y
dCBhLCB1c2hvcnQyIGIpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBh
IC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhIC8gYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0MyBvcGVyYXRvcisodXNob3J0MyBhLCB1c2hvcnQzIGIpIHsKKyAgICB1c2hvcnQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBh
WzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0MyBvcGVyYXRvci0odXNob3J0MyBhLCB1c2hvcnQzIGIpIHsKKyAgICB1
c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC0gYlswXTsKKyAgICByZXN1bHRb
MV0gPSBhWzFdIC0gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC0gYlsyXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvcioodXNob3J0MyBhLCB1c2hvcnQzIGIpIHsK
KyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYlswXTsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICogYlsyXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvcioodXNob3J0MyBhLCB1c2hvcnQg
YikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAg
IHJlc3VsdFsxXSA9IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yKih1c2hvcnQgYSwgdXNob3J0MyBiKSB7
CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAqIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYSAqIGJbMV07CisgICAgcmVzdWx0WzJdID0gYSAqIGJbMl07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IvKHVzaG9ydDMgYSwgdXNob3J0MyBiKSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYVsxXSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAvIGJbMl07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IvKHVzaG9ydDMgYSwgdXNob3J0IGIp
IHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci8odXNob3J0IGEsIHVzaG9ydDMgYikgewor
ICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgLyBiWzBdOworICAgIHJlc3Vs
dFsxXSA9IGEgLyBiWzFdOworICAgIHJlc3VsdFsyXSA9IGEgLyBiWzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yKyh1c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBdOworICAgIHJlc3Vs
dFsxXSA9IGFbMV0gKyBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKyBiWzJdOworICAgIHJl
c3VsdFszXSA9IGFbM10gKyBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLSh1c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOwor
ICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLSBiWzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yKih1c2hvcnQ0IGEsIHVz
aG9ydDQgYikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBi
WzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0g
KiBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yKih1c2hvcnQ0IGEsIHVzaG9ydCBiKSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGI7CisgICAgcmVzdWx0WzFdID0gYVsx
XSAqIGI7CisgICAgcmVzdWx0WzJdID0gYVsyXSAqIGI7CisgICAgcmVzdWx0WzNdID0gYVszXSAq
IGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IqKHVzaG9ydCBhLCB1
c2hvcnQ0IGIpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlsw
XTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsK
KyAgICByZXN1bHRbM10gPSBhICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci8odXNob3J0NCBhLCB1c2hvcnQ0IGIpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYlsx
XTsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYlsyXTsKKyAgICByZXN1bHRbM10gPSBhWzNdIC8g
YlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci8odXNob3J0NCBh
LCB1c2hvcnQgYikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0g
LyBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLyBi
OworICAgIHJlc3VsdFszXSA9IGFbM10gLyBiOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLyh1c2hvcnQgYSwgdXNob3J0NCBiKSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07Cisg
ICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yKyh1aW50MiBhLCB1aW50MiBiKSB7Cisg
ICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBdOworICAgIHJlc3Vs
dFsxXSA9IGFbMV0gKyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRv
ci0odWludDIgYSwgdWludDIgYikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhWzBdIC0gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC0gYlsxXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDIgb3BlcmF0b3IqKHVpbnQyIGEsIHVpbnQyIGIpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0g
YVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yKih1aW50
MiBhLCB1aW50IGIpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAq
IGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQyIG9wZXJhdG9yKih1aW50IGEsIHVpbnQyIGIpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gYSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAqIGJbMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLyh1aW50MiBhLCB1aW50MiBiKSB7CisgICAg
dWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci8o
dWludDIgYSwgdWludCBiKSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFb
MF0gLyBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MiBvcGVyYXRvci8odWludCBhLCB1aW50MiBiKSB7CisgICAgdWludDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGEgLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEgLyBiWzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvcisodWludDMgYSwgdWludDMgYikgewor
ICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1
bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3ItKHVpbnQzIGEsIHVpbnQzIGIpIHsKKyAg
ICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAtIGJbMF07CisgICAgcmVzdWx0
WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAtIGJbMl07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yKih1aW50MyBhLCB1aW50MyBiKSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiWzBdOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gKiBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiWzJdOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvcioodWludDMgYSwgdWludCBiKSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFb
MV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MyBvcGVyYXRvcioodWludCBhLCB1aW50MyBiKSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGEgKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEgKiBiWzFdOworICAg
IHJlc3VsdFsyXSA9IGEgKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVy
YXRvci8odWludDMgYSwgdWludDMgYikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdIC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYlsxXTsKKyAgICByZXN1
bHRbMl0gPSBhWzJdIC8gYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0
b3IvKHVpbnQzIGEsIHVpbnQgYikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBh
WzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IvKHVpbnQgYSwg
dWludDMgYikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhIC8gYlswXTsK
KyAgICByZXN1bHRbMV0gPSBhIC8gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhIC8gYlsyXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IrKHVpbnQ0IGEsIHVpbnQ0IGIpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSArIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYVsxXSArIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSArIGJbMl07CisgICAg
cmVzdWx0WzNdID0gYVszXSArIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLSh1aW50NCBhLCB1aW50NCBiKSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOworICAgIHJl
c3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLSBiWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvcioodWludDQgYSwgdWludDQgYikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYlswXTsKKyAgICByZXN1
bHRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICogYlsyXTsKKyAgICBy
ZXN1bHRbM10gPSBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3IqKHVpbnQ0IGEsIHVpbnQgYikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdICogYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdICogYjsKKyAgICByZXN1bHRbMl0g
PSBhWzJdICogYjsKKyAgICByZXN1bHRbM10gPSBhWzNdICogYjsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IqKHVpbnQgYSwgdWludDQgYikgeworICAgIHVpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsK
KyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXN1bHRbM10gPSBhICogYlszXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IvKHVpbnQ0IGEsIHVpbnQ0IGIpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYVsxXSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAvIGJbMl07CisgICAg
cmVzdWx0WzNdID0gYVszXSAvIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLyh1aW50NCBhLCB1aW50IGIpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYVswXSAvIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGI7CisgICAgcmVzdWx0WzJd
ID0gYVsyXSAvIGI7CisgICAgcmVzdWx0WzNdID0gYVszXSAvIGI7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLyh1aW50IGEsIHVpbnQ0IGIpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07
CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yKyhjaGFyMiBhLCBjaGFyMiBiKSB7
CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBdOworICAgIHJl
c3VsdFsxXSA9IGFbMV0gKyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVy
YXRvci0oY2hhcjIgYSwgY2hhcjIgYikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdIC0gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC0gYlsxXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjIgb3BlcmF0b3IqKGNoYXIyIGEsIGNoYXIyIGIpIHsKKyAgICBj
aGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFd
ID0gYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yKihj
aGFyMiBhLCBjaGFyIGIpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVsw
XSAqIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXIyIG9wZXJhdG9yKihjaGFyIGEsIGNoYXIyIGIpIHsKKyAgICBjaGFyMiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gYSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAqIGJbMV07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLyhjaGFyMiBhLCBjaGFyMiBiKSB7Cisg
ICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3Vs
dFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRv
ci8oY2hhcjIgYSwgY2hhciBiKSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGFbMF0gLyBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMiBvcGVyYXRvci8oY2hhciBhLCBjaGFyMiBiKSB7CisgICAgY2hhcjIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGEgLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEgLyBiWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvcisoY2hhcjMgYSwgY2hhcjMgYikg
eworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3ItKGNoYXIzIGEsIGNoYXIzIGIpIHsK
KyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAtIGJbMF07CisgICAgcmVz
dWx0WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAtIGJbMl07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yKihjaGFyMyBhLCBjaGFyMyBiKSB7Cisg
ICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiWzBdOworICAgIHJlc3Vs
dFsxXSA9IGFbMV0gKiBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvciooY2hhcjMgYSwgY2hhciBiKSB7CisgICAg
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9
IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvciooY2hhciBhLCBjaGFyMyBiKSB7CisgICAgY2hhcjMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGEgKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEgKiBiWzFdOwor
ICAgIHJlc3VsdFsyXSA9IGEgKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBv
cGVyYXRvci8oY2hhcjMgYSwgY2hhcjMgYikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhWzBdIC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYlsxXTsKKyAgICBy
ZXN1bHRbMl0gPSBhWzJdIC8gYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3Bl
cmF0b3IvKGNoYXIzIGEsIGNoYXIgYikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0g
PSBhWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IvKGNoYXIg
YSwgY2hhcjMgYikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhIC8gYlsw
XTsKKyAgICByZXN1bHRbMV0gPSBhIC8gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhIC8gYlsyXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IrKGNoYXI0IGEsIGNoYXI0IGIp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSArIGJbMF07CisgICAg
cmVzdWx0WzFdID0gYVsxXSArIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSArIGJbMl07Cisg
ICAgcmVzdWx0WzNdID0gYVszXSArIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLShjaGFyNCBhLCBjaGFyNCBiKSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOworICAg
IHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLSBiWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvciooY2hhcjQgYSwgY2hhcjQgYikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYlswXTsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICogYlsyXTsKKyAg
ICByZXN1bHRbM10gPSBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3IqKGNoYXI0IGEsIGNoYXIgYikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhWzBdICogYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdICogYjsKKyAgICByZXN1bHRb
Ml0gPSBhWzJdICogYjsKKyAgICByZXN1bHRbM10gPSBhWzNdICogYjsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjQgb3BlcmF0b3IqKGNoYXIgYSwgY2hhcjQgYikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsx
XTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXN1bHRbM10gPSBhICogYlszXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IvKGNoYXI0IGEsIGNoYXI0IGIp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGJbMF07CisgICAg
cmVzdWx0WzFdID0gYVsxXSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAvIGJbMl07Cisg
ICAgcmVzdWx0WzNdID0gYVszXSAvIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLyhjaGFyNCBhLCBjaGFyIGIpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gYVswXSAvIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGI7CisgICAgcmVzdWx0
WzJdID0gYVsyXSAvIGI7CisgICAgcmVzdWx0WzNdID0gYVszXSAvIGI7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLyhjaGFyIGEsIGNoYXI0IGIpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJb
MV07CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MiBvcGVyYXRvcisoc2hvcnQyIGEsIHNob3J0
MiBiKSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsK
KyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQyIG9wZXJhdG9yLShzaG9ydDIgYSwgc2hvcnQyIGIpIHsKKyAgICBzaG9ydDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgb3BlcmF0b3IqKHNob3J0MiBhLCBzaG9y
dDIgYikgeworICAgIHNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07
CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0MiBvcGVyYXRvciooc2hvcnQyIGEsIHNob3J0IGIpIHsKKyAgICBzaG9ydDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgb3BlcmF0b3IqKHNob3J0IGEsIHNob3J0MiBiKSB7
CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1
bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9y
LyhzaG9ydDIgYSwgc2hvcnQyIGIpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDIgb3BlcmF0b3IvKHNob3J0MiBhLCBzaG9ydCBiKSB7CisgICAg
c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0g
PSBhWzFdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLyhzaG9y
dCBhLCBzaG9ydDIgYikgeworICAgIHNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAv
IGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0MyBvcGVyYXRvcisoc2hvcnQzIGEsIHNob3J0MyBiKSB7CisgICAgc2hvcnQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsg
YlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQzIG9wZXJhdG9yLShzaG9ydDMgYSwgc2hvcnQzIGIpIHsKKyAgICBzaG9ydDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0g
LSBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDMgb3BlcmF0b3IqKHNob3J0MyBhLCBzaG9ydDMgYikgeworICAgIHNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsx
XSAqIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0MyBvcGVyYXRvciooc2hvcnQzIGEsIHNob3J0IGIpIHsKKyAgICBzaG9ydDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0g
KiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDMgb3BlcmF0b3IqKHNob3J0IGEsIHNob3J0MyBiKSB7CisgICAgc2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAg
ICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9w
ZXJhdG9yLyhzaG9ydDMgYSwgc2hvcnQzIGIpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAg
IHJlc3VsdFsyXSA9IGFbMl0gLyBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
b3BlcmF0b3IvKHNob3J0MyBhLCBzaG9ydCBiKSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1
bHRbMl0gPSBhWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9y
LyhzaG9ydCBhLCBzaG9ydDMgYikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0g
YSAvIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvcisoc2hvcnQ0
IGEsIHNob3J0NCBiKSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBd
ICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBh
WzJdICsgYlsyXTsKKyAgICByZXN1bHRbM10gPSBhWzNdICsgYlszXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLShzaG9ydDQgYSwgc2hvcnQ0IGIpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9
IGFbMV0gLSBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFsz
XSA9IGFbM10gLSBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iq
KHNob3J0NCBhLCBzaG9ydDQgYikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmVzdWx0
WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmVzdWx0WzNdID0gYVszXSAqIGJbM107CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvciooc2hvcnQ0IGEsIHNob3J0IGIpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJlc3VsdFszXSA9
IGFbM10gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IqKHNob3J0
IGEsIHNob3J0NCBiKSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICog
YlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsy
XTsKKyAgICByZXN1bHRbM10gPSBhICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQ0IG9wZXJhdG9yLyhzaG9ydDQgYSwgc2hvcnQ0IGIpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFd
OworICAgIHJlc3VsdFsyXSA9IGFbMl0gLyBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gLyBi
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IvKHNob3J0NCBhLCBz
aG9ydCBiKSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsK
KyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAg
ICByZXN1bHRbM10gPSBhWzNdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLyhzaG9ydCBhLCBzaG9ydDQgYikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmVzdWx0
WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDIgb3BlcmF0b3IrKGludDIgYSwgaW50MiBiKSB7CisgICAgaW50MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSArIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAr
IGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3ItKGludDIgYSwgaW50
MiBiKSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAtIGJbMF07Cisg
ICAgcmVzdWx0WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIg
b3BlcmF0b3IqKGludDIgYSwgaW50MiBiKSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IqKGludDIgYSwgaW50IGIpIHsKKyAgICBpbnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYjsKKyAgICByZXN1bHRbMV0gPSBhWzFd
ICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvciooaW50IGEsIGludDIg
YikgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgKiBiWzBdOworICAgIHJl
c3VsdFsxXSA9IGEgKiBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9y
LyhpbnQyIGEsIGludDIgYikgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFb
MF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQyIG9wZXJhdG9yLyhpbnQyIGEsIGludCBiKSB7CisgICAgaW50MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGI7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IvKGludCBhLCBpbnQyIGIpIHsKKyAg
ICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhIC8gYlswXTsKKyAgICByZXN1bHRbMV0g
PSBhIC8gYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvcisoaW50MyBh
LCBpbnQzIGIpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlsw
XTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsg
YlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci0oaW50MyBhLCBpbnQz
IGIpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC0gYlswXTsKKyAg
ICByZXN1bHRbMV0gPSBhWzFdIC0gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC0gYlsyXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvciooaW50MyBhLCBpbnQzIGIpIHsK
KyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYlswXTsKKyAgICByZXN1
bHRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICogYlsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvciooaW50MyBhLCBpbnQgYikgeworICAgIGlu
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFb
MV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQzIG9wZXJhdG9yKihpbnQgYSwgaW50MyBiKSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gYSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAqIGJbMV07CisgICAgcmVz
dWx0WzJdID0gYSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iv
KGludDMgYSwgaW50MyBiKSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVsw
XSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0g
YVsyXSAvIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IvKGludDMg
YSwgaW50IGIpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsK
KyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci8oaW50IGEsIGludDMgYikgeworICAg
IGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgLyBiWzBdOworICAgIHJlc3VsdFsxXSA9
IGEgLyBiWzFdOworICAgIHJlc3VsdFsyXSA9IGEgLyBiWzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yKyhpbnQ0IGEsIGludDQgYikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKyBiWzFd
OworICAgIHJlc3VsdFsyXSA9IGFbMl0gKyBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gKyBi
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLShpbnQ0IGEsIGludDQg
YikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAg
IHJlc3VsdFsxXSA9IGFbMV0gLSBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOwor
ICAgIHJlc3VsdFszXSA9IGFbM10gLSBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yKihpbnQ0IGEsIGludDQgYikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFbMF0gKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiWzFdOworICAgIHJl
c3VsdFsyXSA9IGFbMl0gKiBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10gKiBiWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yKihpbnQ0IGEsIGludCBiKSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGI7CisgICAgcmVzdWx0WzFdID0g
YVsxXSAqIGI7CisgICAgcmVzdWx0WzJdID0gYVsyXSAqIGI7CisgICAgcmVzdWx0WzNdID0gYVsz
XSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IqKGludCBhLCBpbnQ0
IGIpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICBy
ZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXN1
bHRbM10gPSBhICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci8o
aW50NCBhLCBpbnQ0IGIpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBd
IC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBh
WzJdIC8gYlsyXTsKKyAgICByZXN1bHRbM10gPSBhWzNdIC8gYlszXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci8oaW50NCBhLCBpbnQgYikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiOwor
ICAgIHJlc3VsdFsyXSA9IGFbMl0gLyBiOworICAgIHJlc3VsdFszXSA9IGFbM10gLyBiOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLyhpbnQgYSwgaW50NCBiKSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0g
YSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAv
IGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yKyhoYWxmMiBhLCBo
YWxmMiBiKSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKyBiWzBd
OworICAgIHJlc3VsdFsxXSA9IGFbMV0gKyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMiBvcGVyYXRvci0oaGFsZjIgYSwgaGFsZjIgYikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhWzBdIC0gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC0gYlsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0b3IqKGhhbGYyIGEsIGhhbGYyIGIp
IHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAg
cmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9w
ZXJhdG9yKihoYWxmMiBhLCBoYWxmIGIpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYVswXSAqIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGI7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yKihoYWxmIGEsIGhhbGYyIGIpIHsKKyAgICBoYWxmMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAqIGJb
MV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yLyhoYWxmMiBhLCBoYWxm
MiBiKSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOwor
ICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBvcGVyYXRvci8oaGFsZjIgYSwgaGFsZiBiKSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGFbMF0gLyBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci8oaGFsZiBhLCBoYWxmMiBiKSB7CisgICAgaGFs
ZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEg
LyBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvcisoaGFsZjMgYSwg
aGFsZjMgYikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlsw
XTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsg
YlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3ItKGhhbGYzIGEsIGhh
bGYzIGIpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAtIGJbMF07
CisgICAgcmVzdWx0WzFdID0gYVsxXSAtIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAtIGJb
Ml07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yKihoYWxmMyBhLCBoYWxm
MyBiKSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiWzBdOwor
ICAgIHJlc3VsdFsxXSA9IGFbMV0gKiBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvciooaGFsZjMgYSwgaGFsZiBi
KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJl
c3VsdFsxXSA9IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvciooaGFsZiBhLCBoYWxmMyBiKSB7CisgICAgaGFs
ZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGEgKiBiWzBdOworICAgIHJlc3VsdFsxXSA9IGEg
KiBiWzFdOworICAgIHJlc3VsdFsyXSA9IGEgKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci8oaGFsZjMgYSwgaGFsZjMgYikgeworICAgIGhhbGYzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYlsx
XTsKKyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjMgb3BlcmF0b3IvKGhhbGYzIGEsIGhhbGYgYikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICBy
ZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0
b3IvKGhhbGYgYSwgaGFsZjMgYikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhIC8gYlswXTsKKyAgICByZXN1bHRbMV0gPSBhIC8gYlsxXTsKKyAgICByZXN1bHRbMl0gPSBh
IC8gYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IrKGhhbGY0IGEs
IGhhbGY0IGIpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSArIGJb
MF07CisgICAgcmVzdWx0WzFdID0gYVsxXSArIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAr
IGJbMl07CisgICAgcmVzdWx0WzNdID0gYVszXSArIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLShoYWxmNCBhLCBoYWxmNCBiKSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLSBi
WzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJlc3VsdFszXSA9IGFbM10g
LSBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvciooaGFsZjQgYSwg
aGFsZjQgYikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICogYlsw
XTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICog
YlsyXTsKKyAgICByZXN1bHRbM10gPSBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IqKGhhbGY0IGEsIGhhbGYgYikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBhWzBdICogYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdICogYjsKKyAg
ICByZXN1bHRbMl0gPSBhWzJdICogYjsKKyAgICByZXN1bHRbM10gPSBhWzNdICogYjsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZjQgYikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0g
PSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXN1bHRbM10gPSBh
ICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IvKGhhbGY0IGEs
IGhhbGY0IGIpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGJb
MF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAv
IGJbMl07CisgICAgcmVzdWx0WzNdID0gYVszXSAvIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLyhoYWxmNCBhLCBoYWxmIGIpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYVswXSAvIGI7CisgICAgcmVzdWx0WzFdID0gYVsxXSAvIGI7Cisg
ICAgcmVzdWx0WzJdID0gYVsyXSAvIGI7CisgICAgcmVzdWx0WzNdID0gYVszXSAvIGI7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLyhoYWxmIGEsIGhhbGY0IGIpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFd
ID0gYSAvIGJbMV07CisgICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0g
YSAvIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBvcGVyYXRvcisoZmxvYXQy
IGEsIGZsb2F0MiBiKSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBd
ICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyIG9wZXJhdG9yLShmbG9hdDIgYSwgZmxvYXQyIGIpIHsKKyAgICBmbG9hdDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFb
MV0gLSBiWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgb3BlcmF0b3IqKGZsb2F0
MiBhLCBmbG9hdDIgYikgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVsw
XSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MiBvcGVyYXRvciooZmxvYXQyIGEsIGZsb2F0IGIpIHsKKyAgICBmbG9hdDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsxXSA9IGFbMV0g
KiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgb3BlcmF0b3IqKGZsb2F0IGEsIGZs
b2F0MiBiKSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsK
KyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
IG9wZXJhdG9yLyhmbG9hdDIgYSwgZmxvYXQyIGIpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBiWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgb3BlcmF0b3IvKGZsb2F0MiBhLCBmbG9hdCBi
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICBy
ZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJh
dG9yLyhmbG9hdCBhLCBmbG9hdDIgYikgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvcisoZmxvYXQzIGEsIGZsb2F0MyBiKSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1bHRbMV0g
PSBhWzFdICsgYlsxXTsKKyAgICByZXN1bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLShmbG9hdDMgYSwgZmxvYXQzIGIpIHsKKyAgICBm
bG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gLSBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IqKGZsb2F0MyBhLCBmbG9hdDMgYikgeworICAg
IGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0
WzFdID0gYVsxXSAqIGJbMV07CisgICAgcmVzdWx0WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvciooZmxvYXQzIGEsIGZsb2F0IGIpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAgIHJlc3VsdFsx
XSA9IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IqKGZsb2F0IGEsIGZsb2F0MyBiKSB7CisgICAgZmxvYXQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICog
YlsxXTsKKyAgICByZXN1bHRbMl0gPSBhICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzIG9wZXJhdG9yLyhmbG9hdDMgYSwgZmxvYXQzIGIpIHsKKyAgICBmbG9hdDMgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFbMV0gLyBi
WzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLyBiWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgb3BlcmF0b3IvKGZsb2F0MyBhLCBmbG9hdCBiKSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBhWzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsK
KyAgICByZXN1bHRbMl0gPSBhWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
IG9wZXJhdG9yLyhmbG9hdCBhLCBmbG9hdDMgYikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07CisgICAgcmVz
dWx0WzJdID0gYSAvIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
cisoZmxvYXQ0IGEsIGZsb2F0NCBiKSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhWzBdICsgYlswXTsKKyAgICByZXN1bHRbMV0gPSBhWzFdICsgYlsxXTsKKyAgICByZXN1
bHRbMl0gPSBhWzJdICsgYlsyXTsKKyAgICByZXN1bHRbM10gPSBhWzNdICsgYlszXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLShmbG9hdDQgYSwgZmxvYXQ0IGIpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLSBiWzBdOworICAgIHJl
c3VsdFsxXSA9IGFbMV0gLSBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLSBiWzJdOworICAg
IHJlc3VsdFszXSA9IGFbM10gLSBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IqKGZsb2F0NCBhLCBmbG9hdDQgYikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gYVswXSAqIGJbMF07CisgICAgcmVzdWx0WzFdID0gYVsxXSAqIGJbMV07Cisg
ICAgcmVzdWx0WzJdID0gYVsyXSAqIGJbMl07CisgICAgcmVzdWx0WzNdID0gYVszXSAqIGJbM107
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvciooZmxvYXQ0IGEsIGZsb2F0
IGIpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gKiBiOworICAg
IHJlc3VsdFsxXSA9IGFbMV0gKiBiOworICAgIHJlc3VsdFsyXSA9IGFbMl0gKiBiOworICAgIHJl
c3VsdFszXSA9IGFbM10gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IqKGZsb2F0IGEsIGZsb2F0NCBiKSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhICogYlswXTsKKyAgICByZXN1bHRbMV0gPSBhICogYlsxXTsKKyAgICByZXN1bHRbMl0g
PSBhICogYlsyXTsKKyAgICByZXN1bHRbM10gPSBhICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLyhmbG9hdDQgYSwgZmxvYXQ0IGIpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFbMF0gLyBiWzBdOworICAgIHJlc3VsdFsxXSA9IGFb
MV0gLyBiWzFdOworICAgIHJlc3VsdFsyXSA9IGFbMl0gLyBiWzJdOworICAgIHJlc3VsdFszXSA9
IGFbM10gLyBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IvKGZs
b2F0NCBhLCBmbG9hdCBiKSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBh
WzBdIC8gYjsKKyAgICByZXN1bHRbMV0gPSBhWzFdIC8gYjsKKyAgICByZXN1bHRbMl0gPSBhWzJd
IC8gYjsKKyAgICByZXN1bHRbM10gPSBhWzNdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLyhmbG9hdCBhLCBmbG9hdDQgYikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYSAvIGJbMF07CisgICAgcmVzdWx0WzFdID0gYSAvIGJbMV07Cisg
ICAgcmVzdWx0WzJdID0gYSAvIGJbMl07CisgICAgcmVzdWx0WzNdID0gYSAvIGJbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLShjaGFyMiBhKSB7CisgICAgY2hhcjIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IC1hWzBdOworICAgIHJlc3VsdFsxXSA9IC1hWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci0oY2hhcjMgYSkgeworICAgIGNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAtYVswXTsKKyAgICByZXN1bHRbMV0gPSAtYVsx
XTsKKyAgICByZXN1bHRbMl0gPSAtYVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3ItKGNoYXI0IGEpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
LWFbMF07CisgICAgcmVzdWx0WzFdID0gLWFbMV07CisgICAgcmVzdWx0WzJdID0gLWFbMl07Cisg
ICAgcmVzdWx0WzNdID0gLWFbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MiBvcGVy
YXRvci0oc2hvcnQyIGEpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IC1h
WzBdOworICAgIHJlc3VsdFsxXSA9IC1hWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDMgb3BlcmF0b3ItKHNob3J0MyBhKSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSAtYVswXTsKKyAgICByZXN1bHRbMV0gPSAtYVsxXTsKKyAgICByZXN1bHRbMl0gPSAtYVsy
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLShzaG9ydDQgYSkgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gLWFbMF07CisgICAgcmVzdWx0WzFd
ID0gLWFbMV07CisgICAgcmVzdWx0WzJdID0gLWFbMl07CisgICAgcmVzdWx0WzNdID0gLWFbM107
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3ItKGludDIgYSkgeworICAgIGlu
dDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IC1hWzBdOworICAgIHJlc3VsdFsxXSA9IC1hWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLShpbnQzIGEpIHsKKyAgICBp
bnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAtYVswXTsKKyAgICByZXN1bHRbMV0gPSAtYVsx
XTsKKyAgICByZXN1bHRbMl0gPSAtYVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci0oaW50NCBhKSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gLWFb
MF07CisgICAgcmVzdWx0WzFdID0gLWFbMV07CisgICAgcmVzdWx0WzJdID0gLWFbMl07CisgICAg
cmVzdWx0WzNdID0gLWFbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9y
LShoYWxmMiBhKSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IC1hWzBdOwor
ICAgIHJlc3VsdFsxXSA9IC1hWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVy
YXRvci0oaGFsZjMgYSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAtYVsw
XTsKKyAgICByZXN1bHRbMV0gPSAtYVsxXTsKKyAgICByZXN1bHRbMl0gPSAtYVsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3ItKGhhbGY0IGEpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gLWFbMF07CisgICAgcmVzdWx0WzFdID0gLWFbMV07Cisg
ICAgcmVzdWx0WzJdID0gLWFbMl07CisgICAgcmVzdWx0WzNdID0gLWFbM107CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MiBvcGVyYXRvci0oZmxvYXQyIGEpIHsKKyAgICBmbG9hdDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IC1hWzBdOworICAgIHJlc3VsdFsxXSA9IC1hWzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3ItKGZsb2F0MyBhKSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAtYVswXTsKKyAgICByZXN1bHRbMV0gPSAtYVsx
XTsKKyAgICByZXN1bHRbMl0gPSAtYVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IG9wZXJhdG9yLShmbG9hdDQgYSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gLWFbMF07CisgICAgcmVzdWx0WzFdID0gLWFbMV07CisgICAgcmVzdWx0WzJdID0gLWFbMl07
CisgICAgcmVzdWx0WzNdID0gLWFbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIg
b3BlcmF0b3IrKGhhbGYyeDIgYSwgaGFsZjJ4MiBiKSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSArIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
YVswXVsxXSArIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSArIGJbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSArIGJbMV1bMV07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDIgb3BlcmF0b3ItKGhhbGYyeDIgYSwgaGFsZjJ4MiBiKSB7CisgICAgaGFs
ZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAtIGJbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gYVswXVsxXSAtIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYVsx
XVswXSAtIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAtIGJbMV1bMV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgb3BlcmF0b3ItKGhhbGYyeDIgYSkgeworICAg
IGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IC1hWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IC1hWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IC1hWzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IC1hWzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG9w
ZXJhdG9yKihoYWxmMngyIGEsIGhhbGYyeDIgYikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFb
MF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMngyIG9wZXJhdG9yKihoYWxmMngyIGEsIGhhbGYgYikgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiOworICAgIHJlc3VsdFswXVsx
XSA9IGFbMF1bMV0gKiBiOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiOworICAgIHJl
c3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngy
IG9wZXJhdG9yKihoYWxmIGEsIGhhbGYyeDIgYikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGEgKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGEgKiBiWzBd
WzFdOworICAgIHJlc3VsdFsxXVswXSA9IGEgKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9
IGEgKiBiWzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG9wZXJhdG9yLyho
YWxmMngyIGEsIGhhbGYyeDIgYikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBi
WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIG9wZXJhdG9yLyhoYWxmMngyIGEsIGhhbGYgYikgeworICAgIGhhbGYyeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLyBiOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1b
MV0gLyBiOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiOworICAgIHJlc3VsdFsxXVsx
XSA9IGFbMV1bMV0gLyBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG9wZXJhdG9y
LyhoYWxmIGEsIGhhbGYyeDIgYikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGEgLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGEgLyBiWzBdWzFdOworICAg
IHJlc3VsdFsxXVswXSA9IGEgLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGEgLyBiWzFd
WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG9wZXJhdG9yKyhoYWxmMngzIGEs
IGhhbGYyeDMgYikgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFb
MF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9
IGFbMV1bMF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFd
OworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKyBiWzFdWzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngzIG9wZXJhdG9yLShoYWxmMngzIGEsIGhhbGYyeDMgYikgeworICAgIGhh
bGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLSBiWzBdWzBdOworICAg
IHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLSBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFb
MF1bMl0gLSBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLSBiWzFdWzBdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLSBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IGFbMV1bMl0gLSBiWzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG9wZXJh
dG9yLShoYWxmMngzIGEpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSAtYVswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSAtYVswXVsxXTsKKyAgICByZXN1bHRbMF1b
Ml0gPSAtYVswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSAtYVsxXVswXTsKKyAgICByZXN1bHRb
MV1bMV0gPSAtYVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAtYVsxXVsyXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjJ4MyBvcGVyYXRvciooaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsK
KyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYlswXVsw
XTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYlswXVsxXTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBhWzBdWzJdICogYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYlsx
XVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYlsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhWzFdWzJdICogYlsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MyBvcGVyYXRvciooaGFsZjJ4MyBhLCBoYWxmIGIpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFd
ICogYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMV1bMF0g
PSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1
bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBv
cGVyYXRvciooaGFsZiBhLCBoYWxmMngzIGIpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhICogYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhICogYlswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gPSBhICogYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
ICogYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhICogYlsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhICogYlsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBvcGVy
YXRvci8oaGFsZjJ4MyBhLCBoYWxmMngzIGIpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBd
WzFdIC8gYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYlswXVsyXTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
WzFdWzFdIC8gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYlsxXVsyXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBvcGVyYXRvci8oaGFsZjJ4MyBhLCBoYWxm
IGIpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8g
YjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0gPSBh
WzBdWzJdIC8gYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRb
MV1bMV0gPSBhWzFdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBvcGVyYXRvci8oaGFsZiBhLCBoYWxmMngzIGIp
IHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhIC8gYlswXVswXTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhIC8gYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhIC8g
YlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhIC8gYlsxXVswXTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhIC8gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhIC8gYlsxXVsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBvcGVyYXRvcisoaGFsZjJ4NCBhLCBoYWxmMng0IGIp
IHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICsgYlsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICsgYlswXVsxXTsKKyAgICByZXN1bHRb
MF1bMl0gPSBhWzBdWzJdICsgYlswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdICsg
YlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICsgYlsxXVswXTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhWzFdWzFdICsgYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJd
ICsgYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdICsgYlsxXVszXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBvcGVyYXRvci0oaGFsZjJ4NCBhLCBoYWxmMng0IGIp
IHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRb
MF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdIC0g
YlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJd
IC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdIC0gYlsxXVszXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBvcGVyYXRvci0oaGFsZjJ4NCBhKSB7CisgICAgaGFs
ZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBd
WzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0
WzBdWzNdID0gLWFbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAg
cmVzdWx0WzFdWzNdID0gLWFbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
b3BlcmF0b3IqKGhhbGYyeDQgYSwgaGFsZjJ4NCBiKSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
YVswXVsxXSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAqIGJbMF1bMl07
CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBd
ID0gYVsxXVswXSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAqIGJbMV1b
MV07CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFd
WzNdID0gYVsxXVszXSAqIGJbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
b3BlcmF0b3IqKGhhbGYyeDQgYSwgaGFsZiBiKSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYVswXVswXSAqIGI7CisgICAgcmVzdWx0WzBdWzFdID0gYVswXVsxXSAq
IGI7CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAqIGI7CisgICAgcmVzdWx0WzBdWzNdID0g
YVswXVszXSAqIGI7CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAqIGI7CisgICAgcmVzdWx0
WzFdWzFdID0gYVsxXVsxXSAqIGI7CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAqIGI7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDQgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZjJ4NCBiKSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAq
IGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzBd
WzNdID0gYSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07CisgICAg
cmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAqIGJbMV1b
Ml07CisgICAgcmVzdWx0WzFdWzNdID0gYSAqIGJbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgb3BlcmF0b3IvKGhhbGYyeDQgYSwgaGFsZjJ4NCBiKSB7CisgICAgaGFsZjJ4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGJbMF1bMF07CisgICAgcmVz
dWx0WzBdWzFdID0gYVswXVsxXSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsy
XSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAvIGJbMF1bM107CisgICAg
cmVzdWx0WzFdWzBdID0gYVsxXVswXSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsx
XVsxXSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAvIGJbMV1bMl07Cisg
ICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAvIGJbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgb3BlcmF0b3IvKGhhbGYyeDQgYSwgaGFsZiBiKSB7CisgICAgaGFsZjJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGI7CisgICAgcmVzdWx0WzBdWzFd
ID0gYVswXVsxXSAvIGI7CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAvIGI7CisgICAgcmVz
dWx0WzBdWzNdID0gYVswXVszXSAvIGI7CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAvIGI7
CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAvIGI7CisgICAgcmVzdWx0WzFdWzJdID0gYVsx
XVsyXSAvIGI7CisgICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAvIGI7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyeDQgb3BlcmF0b3IvKGhhbGYgYSwgaGFsZjJ4NCBiKSB7CisgICAgaGFs
ZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0
WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAvIGJbMF1bMl07Cisg
ICAgcmVzdWx0WzBdWzNdID0gYSAvIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJb
MV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ID0gYSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAvIGJbMV1bM107CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgb3BlcmF0b3IrKGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7
CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSArIGJbMF1b
MF07CisgICAgcmVzdWx0WzBdWzFdID0gYVswXVsxXSArIGJbMF1bMV07CisgICAgcmVzdWx0WzFd
WzBdID0gYVsxXVswXSArIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSArIGJb
MV1bMV07CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSArIGJbMl1bMF07CisgICAgcmVzdWx0
WzJdWzFdID0gYVsyXVsxXSArIGJbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgb3BlcmF0b3ItKGhhbGYzeDIgYSwgaGFsZjN4MiBiKSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAtIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gYVswXVsxXSAtIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAtIGJbMV1b
MF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAtIGJbMV1bMV07CisgICAgcmVzdWx0WzJd
WzBdID0gYVsyXVswXSAtIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAtIGJb
Ml1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgb3BlcmF0b3ItKGhhbGYzeDIg
YSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IC1hWzBdWzBdOwor
ICAgIHJlc3VsdFswXVsxXSA9IC1hWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IC1hWzFdWzBd
OworICAgIHJlc3VsdFsxXVsxXSA9IC1hWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IC1hWzJd
WzBdOworICAgIHJlc3VsdFsyXVsxXSA9IC1hWzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmM3gyIG9wZXJhdG9yKihoYWxmM3gyIGEsIGhhbGYzeDIgYikgeworICAgIGhhbGYzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0g
KiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJl
c3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1b
MV0gKiBiWzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG9wZXJhdG9yKiho
YWxmM3gyIGEsIGhhbGYgYikgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFbMF1bMF0gKiBiOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiOworICAgIHJl
c3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBi
OworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiOworICAgIHJlc3VsdFsyXVsxXSA9IGFb
Ml1bMV0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG9wZXJhdG9yKihoYWxm
IGEsIGhhbGYzeDIgYikgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGEgKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGEgKiBiWzBdWzFdOworICAgIHJlc3Vs
dFsxXVswXSA9IGEgKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGEgKiBiWzFdWzFdOwor
ICAgIHJlc3VsdFsyXVswXSA9IGEgKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGEgKiBi
WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG9wZXJhdG9yLyhoYWxmM3gy
IGEsIGhhbGYzeDIgYikgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBiWzBdWzFd
OworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsx
XSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gLyBiWzJd
WzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIG9wZXJhdG9yLyhoYWxmM3gyIGEsIGhhbGYgYikgeworICAgIGhh
bGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLyBiOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gLyBiOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1b
MF0gLyBiOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gyIG9wZXJhdG9yLyhoYWxmIGEsIGhhbGYzeDIgYikgeworICAgIGhhbGYz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGEgLyBiWzBdWzBdOworICAgIHJlc3VsdFsw
XVsxXSA9IGEgLyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGEgLyBiWzFdWzBdOworICAg
IHJlc3VsdFsxXVsxXSA9IGEgLyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGEgLyBiWzJd
WzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGEgLyBiWzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmM3gzIG9wZXJhdG9yKyhoYWxmM3gzIGEsIGhhbGYzeDMgYikgeworICAgIGhhbGYz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1b
Ml0gKyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOworICAg
IHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFb
MV1bMl0gKyBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJdWzBdOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9
IGFbMl1bMl0gKyBiWzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG9wZXJh
dG9yLShoYWxmM3gzIGEsIGhhbGYzeDMgYikgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFbMF1bMF0gLSBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1b
MV0gLSBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gLSBiWzBdWzJdOworICAg
IHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLSBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFb
MV1bMV0gLSBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLSBiWzFdWzJdOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gLSBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9
IGFbMl1bMV0gLSBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gLSBiWzJdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG9wZXJhdG9yLShoYWxmM3gzIGEpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSAtYVswXVswXTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSAtYVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSAtYVswXVsyXTsKKyAg
ICByZXN1bHRbMV1bMF0gPSAtYVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSAtYVsxXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gPSAtYVsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSAtYVsyXVsw
XTsKKyAgICByZXN1bHRbMl1bMV0gPSAtYVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAtYVsy
XVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBvcGVyYXRvciooaGFsZjN4MyBh
LCBoYWxmM3gzIGIpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
WzBdWzBdICogYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYlswXVsxXTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhWzFdWzBdICogYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYlsxXVsx
XTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICogYlsxXVsyXTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhWzJdWzBdICogYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYlsy
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdICogYlsyXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjN4MyBvcGVyYXRvciooaGFsZjN4MyBhLCBoYWxmIGIpIHsKKyAgICBo
YWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1
bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsK
KyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFd
WzFdICogYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRbMl1b
MF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBhWzJdWzJdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4
MyBvcGVyYXRvciooaGFsZiBhLCBoYWxmM3gzIGIpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhICogYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhICogYlsw
XVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhICogYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhICogYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhICogYlsxXVsxXTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhICogYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhICogYlsyXVswXTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhICogYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhICog
YlsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBvcGVyYXRvci8oaGFsZjN4
MyBhLCBoYWxmM3gzIGIpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhWzBdWzBdIC8gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYlswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYlswXVsyXTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhWzFdWzBdIC8gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC8gYlsx
XVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYlsxXVsyXTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhWzJdWzBdIC8gYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8g
YlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8gYlsyXVsyXTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4MyBvcGVyYXRvci8oaGFsZjN4MyBhLCBoYWxmIGIpIHsKKyAg
ICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8g
YjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBh
WzFdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsKKyAg
ICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4MyBvcGVyYXRvci8oaGFsZiBhLCBoYWxmM3gzIGIpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhIC8gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhIC8g
YlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhIC8gYlswXVsyXTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhIC8gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhIC8gYlsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhIC8gYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhIC8gYlsyXVsw
XTsKKyAgICByZXN1bHRbMl1bMV0gPSBhIC8gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBh
IC8gYlsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBvcGVyYXRvcisoaGFs
ZjN4NCBhLCBoYWxmM3g0IGIpIHsKKyAgICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhWzBdWzBdICsgYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICsgYlsw
XVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICsgYlswXVsyXTsKKyAgICByZXN1bHRb
MF1bM10gPSBhWzBdWzNdICsgYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICsg
YlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICsgYlsxXVsxXTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhWzFdWzJdICsgYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNd
ICsgYlsxXVszXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICsgYlsyXVswXTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhWzJdWzFdICsgYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJd
WzJdICsgYlsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdICsgYlsyXVszXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBvcGVyYXRvci0oaGFsZjN4NCBhLCBoYWxmM3g0
IGIpIHsKKyAgICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0g
YlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNd
IC0gYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFd
WzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdIC0gYlsxXVszXTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0gYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBh
WzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC0gYlsyXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC0gYlsyXVszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4NCBvcGVyYXRvci0oaGFsZjN4NCBhKSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gLWFb
MF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0g
LWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gLWFbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJd
WzFdID0gLWFbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gLWFbMl1bMl07CisgICAgcmVzdWx0
WzJdWzNdID0gLWFbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgb3BlcmF0
b3IqKGhhbGYzeDQgYSwgaGFsZjN4NCBiKSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gYVswXVswXSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYVswXVsx
XSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAqIGJbMF1bMl07CisgICAg
cmVzdWx0WzBdWzNdID0gYVswXVszXSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYVsx
XVswXSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAqIGJbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0g
YVsxXVszXSAqIGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAqIGJbMl1bMF07
CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAqIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJd
ID0gYVsyXVsyXSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYVsyXVszXSAqIGJbMl1b
M107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgb3BlcmF0b3IqKGhhbGYzeDQgYSwg
aGFsZiBiKSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVsw
XSAqIGI7CisgICAgcmVzdWx0WzBdWzFdID0gYVswXVsxXSAqIGI7CisgICAgcmVzdWx0WzBdWzJd
ID0gYVswXVsyXSAqIGI7CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAqIGI7CisgICAgcmVz
dWx0WzFdWzBdID0gYVsxXVswXSAqIGI7CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAqIGI7
CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAqIGI7CisgICAgcmVzdWx0WzFdWzNdID0gYVsx
XVszXSAqIGI7CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAqIGI7CisgICAgcmVzdWx0WzJd
WzFdID0gYVsyXVsxXSAqIGI7CisgICAgcmVzdWx0WzJdWzJdID0gYVsyXVsyXSAqIGI7CisgICAg
cmVzdWx0WzJdWzNdID0gYVsyXVszXSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDQgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZjN4NCBiKSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJb
MF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ID0gYSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAqIGJbMV1bMl07
CisgICAgcmVzdWx0WzFdWzNdID0gYSAqIGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYSAq
IGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAqIGJbMl1bMV07CisgICAgcmVzdWx0WzJd
WzJdID0gYSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYSAqIGJbMl1bM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgb3BlcmF0b3IvKGhhbGYzeDQgYSwgaGFsZjN4NCBi
KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGJb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYVswXVsxXSAvIGJbMF1bMV07CisgICAgcmVzdWx0
WzBdWzJdID0gYVswXVsyXSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAv
IGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAvIGJbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0gYVsxXVsxXSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsy
XSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAvIGJbMV1bM107CisgICAg
cmVzdWx0WzJdWzBdID0gYVsyXVswXSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsy
XVsxXSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYVsyXVsyXSAvIGJbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzNdID0gYVsyXVszXSAvIGJbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDQgb3BlcmF0b3IvKGhhbGYzeDQgYSwgaGFsZiBiKSB7CisgICAgaGFsZjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGI7CisgICAgcmVzdWx0WzBdWzFd
ID0gYVswXVsxXSAvIGI7CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAvIGI7CisgICAgcmVz
dWx0WzBdWzNdID0gYVswXVszXSAvIGI7CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAvIGI7
CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAvIGI7CisgICAgcmVzdWx0WzFdWzJdID0gYVsx
XVsyXSAvIGI7CisgICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAvIGI7CisgICAgcmVzdWx0WzJd
WzBdID0gYVsyXVswXSAvIGI7CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAvIGI7CisgICAg
cmVzdWx0WzJdWzJdID0gYVsyXVsyXSAvIGI7CisgICAgcmVzdWx0WzJdWzNdID0gYVsyXVszXSAv
IGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgb3BlcmF0b3IvKGhhbGYgYSwgaGFs
ZjN4NCBiKSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJd
ID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gYSAvIGJbMF1bM107CisgICAgcmVz
dWx0WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gYSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAv
IGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJd
WzFdID0gYSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAvIGJbMl1bMl07CisgICAg
cmVzdWx0WzJdWzNdID0gYSAvIGJbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgb3BlcmF0b3IrKGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSArIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gYVswXVsxXSArIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSArIGJbMV1b
MF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSArIGJbMV1bMV07CisgICAgcmVzdWx0WzJd
WzBdID0gYVsyXVswXSArIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSArIGJb
Ml1bMV07CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSArIGJbM11bMF07CisgICAgcmVzdWx0
WzNdWzFdID0gYVszXVsxXSArIGJbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgb3BlcmF0b3ItKGhhbGY0eDIgYSwgaGFsZjR4MiBiKSB7CisgICAgaGFsZjR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAtIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gYVswXVsxXSAtIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYVsxXVswXSAtIGJbMV1b
MF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAtIGJbMV1bMV07CisgICAgcmVzdWx0WzJd
WzBdID0gYVsyXVswXSAtIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAtIGJb
Ml1bMV07CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSAtIGJbM11bMF07CisgICAgcmVzdWx0
WzNdWzFdID0gYVszXVsxXSAtIGJbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgb3BlcmF0b3ItKGhhbGY0eDIgYSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IC1hWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IC1hWzBdWzFdOworICAgIHJl
c3VsdFsxXVswXSA9IC1hWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IC1hWzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IC1hWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IC1hWzJdWzFdOwor
ICAgIHJlc3VsdFszXVswXSA9IC1hWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IC1hWzNdWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJhdG9yKihoYWxmNHgyIGEsIGhh
bGY0eDIgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1b
MF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAg
IHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFb
MV1bMV0gKiBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiWzJdWzBdOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9
IGFbM11bMF0gKiBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKiBiWzNdWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJhdG9yKihoYWxmNHgyIGEsIGhh
bGYgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0g
KiBiOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiOworICAgIHJlc3VsdFsxXVswXSA9
IGFbMV1bMF0gKiBiOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiOworICAgIHJlc3Vs
dFsyXVswXSA9IGFbMl1bMF0gKiBiOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiOwor
ICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gKiBiOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11b
MV0gKiBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJhdG9yKihoYWxmIGEs
IGhhbGY0eDIgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGEg
KiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGEgKiBiWzBdWzFdOworICAgIHJlc3VsdFsx
XVswXSA9IGEgKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGEgKiBiWzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IGEgKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGEgKiBiWzJd
WzFdOworICAgIHJlc3VsdFszXVswXSA9IGEgKiBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9
IGEgKiBiWzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJhdG9yLyho
YWxmNHgyIGEsIGhhbGY0eDIgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBi
WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3Vs
dFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0g
LyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOworICAgIHJl
c3VsdFszXVswXSA9IGFbM11bMF0gLyBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11b
MV0gLyBiWzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJhdG9yLyho
YWxmNHgyIGEsIGhhbGYgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFbMF1bMF0gLyBiOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBiOworICAgIHJl
c3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBi
OworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gLyBiOworICAgIHJlc3VsdFsyXVsxXSA9IGFb
Ml1bMV0gLyBiOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gLyBiOworICAgIHJlc3VsdFsz
XVsxXSA9IGFbM11bMV0gLyBiOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG9wZXJh
dG9yLyhoYWxmIGEsIGhhbGY0eDIgYikgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGEgLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGEgLyBiWzBdWzFdOwor
ICAgIHJlc3VsdFsxXVswXSA9IGEgLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGEgLyBi
WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGEgLyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsx
XSA9IGEgLyBiWzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9IGEgLyBiWzNdWzBdOworICAgIHJl
c3VsdFszXVsxXSA9IGEgLyBiWzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgz
IG9wZXJhdG9yKyhoYWxmNHgzIGEsIGhhbGY0eDMgYikgeworICAgIGhhbGY0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9
IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKyBiWzBdWzJd
OworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsx
XSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKyBiWzFd
WzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJdWzBdOworICAgIHJlc3VsdFsy
XVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gKyBi
WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gKyBiWzNdWzBdOworICAgIHJlc3Vs
dFszXVsxXSA9IGFbM11bMV0gKyBiWzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IGFbM11bMl0g
KyBiWzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG9wZXJhdG9yLShoYWxm
NHgzIGEsIGhhbGY0eDMgYikgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFbMF1bMF0gLSBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLSBiWzBd
WzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gLSBiWzBdWzJdOworICAgIHJlc3VsdFsx
XVswXSA9IGFbMV1bMF0gLSBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLSBi
WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLSBiWzFdWzJdOworICAgIHJlc3Vs
dFsyXVswXSA9IGFbMl1bMF0gLSBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0g
LSBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gLSBiWzJdWzJdOworICAgIHJl
c3VsdFszXVswXSA9IGFbM11bMF0gLSBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11b
MV0gLSBiWzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IGFbM11bMl0gLSBiWzNdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG9wZXJhdG9yLShoYWxmNHgzIGEpIHsKKyAgICBo
YWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSAtYVswXVswXTsKKyAgICByZXN1bHRb
MF1bMV0gPSAtYVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSAtYVswXVsyXTsKKyAgICByZXN1
bHRbMV1bMF0gPSAtYVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSAtYVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSAtYVsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSAtYVsyXVswXTsKKyAg
ICByZXN1bHRbMl1bMV0gPSAtYVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAtYVsyXVsyXTsK
KyAgICByZXN1bHRbM11bMF0gPSAtYVszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSAtYVszXVsx
XTsKKyAgICByZXN1bHRbM11bMl0gPSAtYVszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBvcGVyYXRvciooaGFsZjR4MyBhLCBoYWxmNHgzIGIpIHsKKyAgICBoYWxmNHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYlswXVswXTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhWzBdWzFdICogYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICog
YlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYlsxXVswXTsKKyAgICByZXN1
bHRbMV1bMV0gPSBhWzFdWzFdICogYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJd
ICogYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICogYlsyXVswXTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJd
WzJdICogYlsyXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdICogYlszXVswXTsKKyAg
ICByZXN1bHRbM11bMV0gPSBhWzNdWzFdICogYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBh
WzNdWzJdICogYlszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBvcGVyYXRv
ciooaGFsZjR4MyBhLCBoYWxmIGIpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBd
ICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMl0g
PSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1
bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdICogYjsK
KyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdICogYjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNd
WzFdICogYjsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNdWzJdICogYjsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjR4MyBvcGVyYXRvciooaGFsZiBhLCBoYWxmNHgzIGIpIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhICogYlswXVswXTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhICogYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhICogYlswXVsyXTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhICogYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhICogYlsx
XVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhICogYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhICogYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhICogYlsyXVsxXTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhICogYlsyXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSBhICogYlszXVswXTsK
KyAgICByZXN1bHRbM11bMV0gPSBhICogYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhICog
YlszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBvcGVyYXRvci8oaGFsZjR4
MyBhLCBoYWxmNHgzIGIpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhWzBdWzBdIC8gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYlswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYlswXVsyXTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhWzFdWzBdIC8gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC8gYlsx
XVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYlsxXVsyXTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhWzJdWzBdIC8gYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8g
YlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8gYlsyXVsyXTsKKyAgICByZXN1
bHRbM11bMF0gPSBhWzNdWzBdIC8gYlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFd
IC8gYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNdWzJdIC8gYlszXVsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBvcGVyYXRvci8oaGFsZjR4MyBhLCBoYWxmIGIpIHsK
KyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJd
IC8gYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0g
PSBhWzFdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1
bHRbMl1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsK
KyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8gYjsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNd
WzBdIC8gYjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdIC8gYjsKKyAgICByZXN1bHRbM11b
Ml0gPSBhWzNdWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBvcGVyYXRv
ci8oaGFsZiBhLCBoYWxmNHgzIGIpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhIC8gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhIC8gYlswXVsxXTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhIC8gYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhIC8gYlsx
XVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhIC8gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhIC8gYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhIC8gYlsyXVswXTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhIC8gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhIC8gYlsyXVsyXTsK
KyAgICByZXN1bHRbM11bMF0gPSBhIC8gYlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBhIC8g
YlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhIC8gYlszXVsyXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjR4NCBvcGVyYXRvcisoaGFsZjR4NCBhLCBoYWxmNHg0IGIpIHsKKyAgICBo
YWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICsgYlswXVswXTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICsgYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBh
WzBdWzJdICsgYlswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdICsgYlswXVszXTsK
KyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICsgYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhWzFdWzFdICsgYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICsgYlsxXVsy
XTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdICsgYlsxXVszXTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhWzJdWzBdICsgYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICsgYlsy
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdICsgYlsyXVsyXTsKKyAgICByZXN1bHRb
Ml1bM10gPSBhWzJdWzNdICsgYlsyXVszXTsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdICsg
YlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdICsgYlszXVsxXTsKKyAgICByZXN1
bHRbM11bMl0gPSBhWzNdWzJdICsgYlszXVsyXTsKKyAgICByZXN1bHRbM11bM10gPSBhWzNdWzNd
ICsgYlszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBvcGVyYXRvci0oaGFs
ZjR4NCBhLCBoYWxmNHg0IGIpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlsw
XVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRb
MF1bM10gPSBhWzBdWzNdIC0gYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0g
YlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1
bHRbMV1bMl0gPSBhWzFdWzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNd
IC0gYlsxXVszXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0gYlsyXVswXTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJd
WzJdIC0gYlsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC0gYlsyXVszXTsKKyAg
ICByZXN1bHRbM11bMF0gPSBhWzNdWzBdIC0gYlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBh
WzNdWzFdIC0gYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNdWzJdIC0gYlszXVsyXTsK
KyAgICByZXN1bHRbM11bM10gPSBhWzNdWzNdIC0gYlszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjR4NCBvcGVyYXRvci0oaGFsZjR4NCBhKSB7CisgICAgaGFsZjR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gLWFb
MF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0g
LWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gLWFbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJd
WzFdID0gLWFbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gLWFbMl1bMl07CisgICAgcmVzdWx0
WzJdWzNdID0gLWFbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0gLWFbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0gLWFbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gLWFbM11bMl07CisgICAg
cmVzdWx0WzNdWzNdID0gLWFbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQg
b3BlcmF0b3IqKGhhbGY0eDQgYSwgaGFsZjR4NCBiKSB7CisgICAgaGFsZjR4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
YVswXVsxXSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAqIGJbMF1bMl07
CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBd
ID0gYVsxXVswXSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAqIGJbMV1b
MV07CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFd
WzNdID0gYVsxXVszXSAqIGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAqIGJb
Ml1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAqIGJbMl1bMV07CisgICAgcmVzdWx0
WzJdWzJdID0gYVsyXVsyXSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYVsyXVszXSAq
IGJbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSAqIGJbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0gYVszXVsxXSAqIGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYVszXVsy
XSAqIGJbM11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gYVszXVszXSAqIGJbM11bM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgb3BlcmF0b3IqKGhhbGY0eDQgYSwgaGFsZiBiKSB7
CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAqIGI7Cisg
ICAgcmVzdWx0WzBdWzFdID0gYVswXVsxXSAqIGI7CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsy
XSAqIGI7CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAqIGI7CisgICAgcmVzdWx0WzFdWzBd
ID0gYVsxXVswXSAqIGI7CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAqIGI7CisgICAgcmVz
dWx0WzFdWzJdID0gYVsxXVsyXSAqIGI7CisgICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAqIGI7
CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAqIGI7CisgICAgcmVzdWx0WzJdWzFdID0gYVsy
XVsxXSAqIGI7CisgICAgcmVzdWx0WzJdWzJdID0gYVsyXVsyXSAqIGI7CisgICAgcmVzdWx0WzJd
WzNdID0gYVsyXVszXSAqIGI7CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSAqIGI7CisgICAg
cmVzdWx0WzNdWzFdID0gYVszXVsxXSAqIGI7CisgICAgcmVzdWx0WzNdWzJdID0gYVszXVsyXSAq
IGI7CisgICAgcmVzdWx0WzNdWzNdID0gYVszXVszXSAqIGI7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgb3BlcmF0b3IqKGhhbGYgYSwgaGFsZjR4NCBiKSB7CisgICAgaGFsZjR4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdID0gYSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAq
IGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAqIGJbMV1bM107CisgICAgcmVzdWx0WzJd
WzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAqIGJbMl1bMV07CisgICAg
cmVzdWx0WzJdWzJdID0gYSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYSAqIGJbMl1b
M107CisgICAgcmVzdWx0WzNdWzBdID0gYSAqIGJbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0g
YSAqIGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYSAqIGJbM11bMl07CisgICAgcmVzdWx0
WzNdWzNdID0gYSAqIGJbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgb3Bl
cmF0b3IvKGhhbGY0eDQgYSwgaGFsZjR4NCBiKSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYVsw
XVsxXSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAvIGJbMF1bMl07Cisg
ICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAvIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
YVsxXVswXSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAvIGJbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gYVsxXVsyXSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gYVsxXVszXSAvIGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAvIGJbMl1b
MF07CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsxXSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJd
WzJdID0gYVsyXVsyXSAvIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYVsyXVszXSAvIGJb
Ml1bM107CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSAvIGJbM11bMF07CisgICAgcmVzdWx0
WzNdWzFdID0gYVszXVsxXSAvIGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYVszXVsyXSAv
IGJbM11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gYVszXVszXSAvIGJbM11bM107CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgb3BlcmF0b3IvKGhhbGY0eDQgYSwgaGFsZiBiKSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYVswXVswXSAvIGI7CisgICAg
cmVzdWx0WzBdWzFdID0gYVswXVsxXSAvIGI7CisgICAgcmVzdWx0WzBdWzJdID0gYVswXVsyXSAv
IGI7CisgICAgcmVzdWx0WzBdWzNdID0gYVswXVszXSAvIGI7CisgICAgcmVzdWx0WzFdWzBdID0g
YVsxXVswXSAvIGI7CisgICAgcmVzdWx0WzFdWzFdID0gYVsxXVsxXSAvIGI7CisgICAgcmVzdWx0
WzFdWzJdID0gYVsxXVsyXSAvIGI7CisgICAgcmVzdWx0WzFdWzNdID0gYVsxXVszXSAvIGI7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYVsyXVswXSAvIGI7CisgICAgcmVzdWx0WzJdWzFdID0gYVsyXVsx
XSAvIGI7CisgICAgcmVzdWx0WzJdWzJdID0gYVsyXVsyXSAvIGI7CisgICAgcmVzdWx0WzJdWzNd
ID0gYVsyXVszXSAvIGI7CisgICAgcmVzdWx0WzNdWzBdID0gYVszXVswXSAvIGI7CisgICAgcmVz
dWx0WzNdWzFdID0gYVszXVsxXSAvIGI7CisgICAgcmVzdWx0WzNdWzJdID0gYVszXVsyXSAvIGI7
CisgICAgcmVzdWx0WzNdWzNdID0gYVszXVszXSAvIGI7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDQgb3BlcmF0b3IvKGhhbGYgYSwgaGFsZjR4NCBiKSB7CisgICAgaGFsZjR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0g
YSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0
WzBdWzNdID0gYSAvIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAvIGJb
MV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAvIGJbMV1bM107CisgICAgcmVzdWx0WzJdWzBd
ID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAvIGJbMl1bMV07CisgICAgcmVz
dWx0WzJdWzJdID0gYSAvIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYSAvIGJbMl1bM107
CisgICAgcmVzdWx0WzNdWzBdID0gYSAvIGJbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0gYSAv
IGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYSAvIGJbM11bMl07CisgICAgcmVzdWx0WzNd
WzNdID0gYSAvIGJbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngyIG9wZXJh
dG9yKyhmbG9hdDJ4MiBhLCBmbG9hdDJ4MiBiKSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFb
MF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4MiBvcGVyYXRvci0oZmxvYXQyeDIgYSwgZmxvYXQyeDIgYikgeworICAgIGZs
b2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSBh
WzFdWzBdIC0gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgb3BlcmF0b3ItKGZsb2F0MngyIGEpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MngyIG9wZXJhdG9yKihmbG9hdDJ4MiBhLCBmbG9hdDJ4MiBiKSB7CisgICAgZmxvYXQyeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFsw
XVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBi
WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBvcGVyYXRvciooZmxvYXQyeDIgYSwgZmxvYXQgYikgewor
ICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBd
ICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDIgb3BlcmF0b3IqKGZsb2F0IGEsIGZsb2F0MngyIGIpIHsKKyAgICBmbG9h
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0
WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MngyIG9wZXJhdG9yLyhmbG9hdDJ4MiBhLCBmbG9hdDJ4MiBiKSB7CisgICAgZmxvYXQyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0g
LyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBvcGVyYXRvci8oZmxvYXQyeDIgYSwgZmxvYXQgYikg
eworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsK
KyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFd
WzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC8gYjsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDIgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0MngyIGIpIHsKKyAgICBm
bG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVz
dWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MngzIG9wZXJhdG9yKyhmbG9hdDJ4MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1b
Ml0gKyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOworICAg
IHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFb
MV1bMl0gKyBiWzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBvcGVyYXRv
ci0oZmxvYXQyeDMgYSwgZmxvYXQyeDMgYikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBd
WzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
WzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC0gYlsxXVsyXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgb3BlcmF0b3ItKGZsb2F0MngzIGEpIHsK
KyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07Cisg
ICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MngzIG9wZXJhdG9yKihmbG9hdDJ4MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0g
KiBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1b
Ml0gKiBiWzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBvcGVyYXRvcioo
ZmxvYXQyeDMgYSwgZmxvYXQgYikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBd
ICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMl0g
PSBhWzFdWzJdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgb3BlcmF0b3Iq
KGZsb2F0IGEsIGZsb2F0MngzIGIpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJb
MV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ID0gYSAqIGJbMV1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG9wZXJhdG9y
LyhmbG9hdDJ4MyBhLCBmbG9hdDJ4MyBiKSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1b
MV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gLyBiWzBdWzJdOworICAg
IHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFb
MV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBvcGVyYXRvci8oZmxvYXQyeDMgYSwgZmxv
YXQgYikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBd
IC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0g
PSBhWzBdWzJdIC8gYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1
bHRbMV1bMV0gPSBhWzFdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0
MngzIGIpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJd
ID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAvIGJbMV1bMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG9wZXJhdG9yKyhmbG9hdDJ4NCBhLCBm
bG9hdDJ4NCBiKSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFb
MF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKyBiWzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9
IGFbMF1bM10gKyBiWzBdWzNdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBd
OworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsy
XSA9IGFbMV1bMl0gKyBiWzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IGFbMV1bM10gKyBiWzFd
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBvcGVyYXRvci0oZmxvYXQyeDQg
YSwgZmxvYXQyeDQgYikgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMF1b
M10gPSBhWzBdWzNdIC0gYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsx
XVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhWzFdWzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdIC0g
YlsxXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgb3BlcmF0b3ItKGZsb2F0
Mng0IGEpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1b
MF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFb
MF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gLWFbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
LWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ID0gLWFbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gLWFbMV1bM107CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0Mng0IG9wZXJhdG9yKihmbG9hdDJ4NCBhLCBmbG9hdDJ4NCBiKSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBd
OworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IGFbMF1bMl0gKiBiWzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IGFbMF1bM10gKiBiWzBd
WzNdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsx
XVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKiBi
WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IGFbMV1bM10gKiBiWzFdWzNdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCBvcGVyYXRvciooZmxvYXQyeDQgYSwgZmxvYXQgYikgewor
ICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJd
ICogYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdICogYjsKKyAgICByZXN1bHRbMV1bMF0g
PSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1
bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdICogYjsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgb3BlcmF0b3IqKGZsb2F0IGEsIGZsb2F0
Mng0IGIpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJd
ID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gYSAqIGJbMF1bM107CisgICAgcmVz
dWx0WzFdWzBdID0gYSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gYSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAq
IGJbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG9wZXJhdG9yLyhmbG9h
dDJ4NCBhLCBmbG9hdDJ4NCBiKSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBi
WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gLyBiWzBdWzJdOworICAgIHJlc3Vs
dFswXVszXSA9IGFbMF1bM10gLyBiWzBdWzNdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0g
LyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJl
c3VsdFsxXVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IGFbMV1b
M10gLyBiWzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBvcGVyYXRvci8o
ZmxvYXQyeDQgYSwgZmxvYXQgYikgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNd
IC8gYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0g
PSBhWzFdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1
bHRbMV1bM10gPSBhWzFdWzNdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQg
b3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0Mng0IGIpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJb
MF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ID0gYSAvIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAvIGJbMV1bMl07
CisgICAgcmVzdWx0WzFdWzNdID0gYSAvIGJbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3gyIG9wZXJhdG9yKyhmbG9hdDN4MiBhLCBmbG9hdDN4MiBiKSB7CisgICAgZmxvYXQz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1b
MF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFb
Ml1bMV0gKyBiWzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBvcGVyYXRv
ci0oZmxvYXQzeDIgYSwgZmxvYXQzeDIgYikgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBd
WzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
WzJdWzBdIC0gYlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgb3BlcmF0b3ItKGZsb2F0M3gyIGEpIHsK
KyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07
CisgICAgcmVzdWx0WzJdWzFdID0gLWFbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3gyIG9wZXJhdG9yKihmbG9hdDN4MiBhLCBmbG9hdDN4MiBiKSB7CisgICAgZmxvYXQzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0g
KiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJl
c3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1b
MV0gKiBiWzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBvcGVyYXRvcioo
ZmxvYXQzeDIgYSwgZmxvYXQgYikgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFd
ICogYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1bHRbMl1bMV0g
PSBhWzJdWzFdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgb3BlcmF0b3Iq
KGZsb2F0IGEsIGZsb2F0M3gyIGIpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07Cisg
ICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJb
MV1bMV07CisgICAgcmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFd
ID0gYSAqIGJbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIG9wZXJhdG9y
LyhmbG9hdDN4MiBhLCBmbG9hdDN4MiBiKSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1b
MV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAg
IHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFb
Ml1bMF0gLyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBvcGVyYXRvci8oZmxvYXQzeDIgYSwgZmxv
YXQgYikgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBd
IC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMF0g
PSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC8gYjsKKyAgICByZXN1
bHRbMl1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0
M3gyIGIpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBd
ID0gYSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVz
dWx0WzJdWzBdID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAvIGJbMl1bMV07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG9wZXJhdG9yKyhmbG9hdDN4MyBhLCBm
bG9hdDN4MyBiKSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFb
MF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOwor
ICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9
IGFbMV1bMF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFd
OworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKyBiWzFdWzJdOworICAgIHJlc3VsdFsyXVsw
XSA9IGFbMl1bMF0gKyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJd
WzFdOworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gKyBiWzJdWzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MyBvcGVyYXRvci0oZmxvYXQzeDMgYSwgZmxvYXQzeDMgYikgewor
ICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlswXVsw
XTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsx
XVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhWzFdWzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0g
YlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1
bHRbMl1bMl0gPSBhWzJdWzJdIC0gYlsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDMgb3BlcmF0b3ItKGZsb2F0M3gzIGEpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1b
Ml07CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gLWFb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gLWFbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIG9wZXJhdG9yKihmbG9hdDN4MyBhLCBmbG9hdDN4MyBiKSB7CisgICAgZmxv
YXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAg
IHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFb
MF1bMl0gKiBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IGFbMV1bMl0gKiBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiWzJdWzBd
OworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsy
XSA9IGFbMl1bMl0gKiBiWzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBv
cGVyYXRvciooZmxvYXQzeDMgYSwgZmxvYXQgYikgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFd
ICogYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMV1bMF0g
PSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1
bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICogYjsK
KyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJd
WzJdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgb3BlcmF0b3IqKGZsb2F0
IGEsIGZsb2F0M3gzIGIpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVz
dWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAq
IGJbMV1bMl07CisgICAgcmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJd
WzFdID0gYSAqIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAqIGJbMl1bMl07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIG9wZXJhdG9yLyhmbG9hdDN4MyBhLCBmbG9hdDN4
MyBiKSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0g
LyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBiWzBdWzFdOworICAgIHJl
c3VsdFswXVsyXSA9IGFbMF1bMl0gLyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1b
MF0gLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAg
IHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFb
Ml1bMF0gLyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gLyBiWzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MyBvcGVyYXRvci8oZmxvYXQzeDMgYSwgZmxvYXQgYikgeworICAgIGZsb2F0
M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAgICByZXN1bHRb
MF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYjsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFd
IC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1bHRbMl1bMF0g
PSBhWzJdWzBdIC8gYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsKKyAgICByZXN1
bHRbMl1bMl0gPSBhWzJdWzJdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMg
b3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0M3gzIGIpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJb
MF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBd
ID0gYSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVz
dWx0WzFdWzJdID0gYSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzJdWzBdID0gYSAvIGJbMl1bMF07
CisgICAgcmVzdWx0WzJdWzFdID0gYSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAv
IGJbMl1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG9wZXJhdG9yKyhmbG9h
dDN4NCBhLCBmbG9hdDN4NCBiKSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBi
WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKyBiWzBdWzJdOworICAgIHJlc3Vs
dFswXVszXSA9IGFbMF1bM10gKyBiWzBdWzNdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0g
KyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJl
c3VsdFsxXVsyXSA9IGFbMV1bMl0gKyBiWzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IGFbMV1b
M10gKyBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJdWzBdOworICAg
IHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IGFb
Ml1bMl0gKyBiWzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IGFbMl1bM10gKyBiWzJdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBvcGVyYXRvci0oZmxvYXQzeDQgYSwgZmxv
YXQzeDQgYikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBd
WzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSBh
WzBdWzNdIC0gYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
PSBhWzFdWzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdIC0gYlsxXVsz
XTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0gYlsyXVswXTsKKyAgICByZXN1bHRbMl1b
MV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC0gYlsy
XVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC0gYlsyXVszXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgb3BlcmF0b3ItKGZsb2F0M3g0IGEpIHsKKyAgICBmbG9hdDN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzBd
WzNdID0gLWFbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0
WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmVz
dWx0WzFdWzNdID0gLWFbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07CisgICAg
cmVzdWx0WzJdWzFdID0gLWFbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gLWFbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzNdID0gLWFbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IG9wZXJhdG9yKihmbG9hdDN4NCBhLCBmbG9hdDN4NCBiKSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFsw
XVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKiBi
WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IGFbMF1bM10gKiBiWzBdWzNdOworICAgIHJlc3Vs
dFsxXVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0g
KiBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKiBiWzFdWzJdOworICAgIHJl
c3VsdFsxXVszXSA9IGFbMV1bM10gKiBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1b
MF0gKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFdOworICAg
IHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gKiBiWzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IGFb
Ml1bM10gKiBiWzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBvcGVyYXRv
ciooZmxvYXQzeDQgYSwgZmxvYXQgYikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsK
KyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBd
WzNdICogYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1b
MV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICBy
ZXN1bHRbMV1bM10gPSBhWzFdWzNdICogYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICog
YjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAgICByZXN1bHRbMl1bMl0gPSBh
WzJdWzJdICogYjsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdICogYjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgb3BlcmF0b3IqKGZsb2F0IGEsIGZsb2F0M3g0IGIpIHsKKyAg
ICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzNdID0gYSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
YSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0
WzFdWzJdID0gYSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAqIGJbMV1bM107Cisg
ICAgcmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAqIGJb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0gYSAqIGJbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IG9wZXJhdG9y
LyhmbG9hdDN4NCBhLCBmbG9hdDN4NCBiKSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1b
MV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gLyBiWzBdWzJdOworICAg
IHJlc3VsdFswXVszXSA9IGFbMF1bM10gLyBiWzBdWzNdOworICAgIHJlc3VsdFsxXVswXSA9IGFb
MV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9
IGFbMV1bM10gLyBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gLyBiWzJdWzBd
OworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsy
XSA9IGFbMl1bMl0gLyBiWzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IGFbMl1bM10gLyBiWzJd
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBvcGVyYXRvci8oZmxvYXQzeDQg
YSwgZmxvYXQgYikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
WzBdWzBdIC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRb
MF1bMl0gPSBhWzBdWzJdIC8gYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdIC8gYjsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFd
IC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1bHRbMV1bM10g
PSBhWzFdWzNdIC8gYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICByZXN1
bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8gYjsK
KyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDQgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0M3g0IGIpIHsKKyAgICBmbG9hdDN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFd
ID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAvIGJbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdID0gYSAvIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07
CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAv
IGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAvIGJbMV1bM107CisgICAgcmVzdWx0WzJd
WzBdID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAvIGJbMl1bMV07CisgICAg
cmVzdWx0WzJdWzJdID0gYSAvIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gYSAvIGJbMl1b
M107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIG9wZXJhdG9yKyhmbG9hdDR4MiBh
LCBmbG9hdDR4MiBiKSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFd
OworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsx
XSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJd
WzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOworICAgIHJlc3VsdFsz
XVswXSA9IGFbM11bMF0gKyBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKyBi
WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBvcGVyYXRvci0oZmxvYXQ0
eDIgYSwgZmxvYXQ0eDIgYikgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlsw
XVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0g
YlsyXVswXTsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1
bHRbM11bMF0gPSBhWzNdWzBdIC0gYlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFd
IC0gYlszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgb3BlcmF0b3ItKGZs
b2F0NHgyIGEpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gLWFb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0g
LWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzJdWzBd
ID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gLWFbMl1bMV07CisgICAgcmVzdWx0WzNd
WzBdID0gLWFbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0gLWFbM11bMV07CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NHgyIG9wZXJhdG9yKihmbG9hdDR4MiBhLCBmbG9hdDR4MiBiKSB7
CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBd
WzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFsx
XVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBi
WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKiBiWzJdWzBdOworICAgIHJlc3Vs
dFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0g
KiBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKiBiWzNdWzFdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBvcGVyYXRvciooZmxvYXQ0eDIgYSwgZmxvYXQgYikg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsK
KyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFd
WzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsKKyAgICByZXN1bHRbMl1b
MF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAgICBy
ZXN1bHRbM11bMF0gPSBhWzNdWzBdICogYjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdICog
YjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgb3BlcmF0b3IqKGZsb2F0IGEsIGZs
b2F0NHgyIGIpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAq
IGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzFd
WzBdID0gYSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAg
cmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAqIGJbMl1b
MV07CisgICAgcmVzdWx0WzNdWzBdID0gYSAqIGJbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0g
YSAqIGJbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIG9wZXJhdG9yLyhm
bG9hdDR4MiBhLCBmbG9hdDR4MiBiKSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0g
LyBiWzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJl
c3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1b
MF0gLyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOworICAg
IHJlc3VsdFszXVswXSA9IGFbM11bMF0gLyBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFb
M11bMV0gLyBiWzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBvcGVyYXRv
ci8oZmxvYXQ0eDIgYSwgZmxvYXQgYikgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsK
KyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFd
WzFdIC8gYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICByZXN1bHRbMl1b
MV0gPSBhWzJdWzFdIC8gYjsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdIC8gYjsKKyAgICBy
ZXN1bHRbM11bMV0gPSBhWzNdWzFdIC8gYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
eDIgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0NHgyIGIpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAv
IGJbMF1bMV07CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFd
WzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzJdWzBdID0gYSAvIGJbMl1bMF07CisgICAg
cmVzdWx0WzJdWzFdID0gYSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzNdWzBdID0gYSAvIGJbM11b
MF07CisgICAgcmVzdWx0WzNdWzFdID0gYSAvIGJbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NHgzIG9wZXJhdG9yKyhmbG9hdDR4MyBhLCBmbG9hdDR4MyBiKSB7CisgICAgZmxv
YXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAg
IHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFb
MF1bMl0gKyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IGFbMV1bMl0gKyBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gKyBiWzJdWzBd
OworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOworICAgIHJlc3VsdFsyXVsy
XSA9IGFbMl1bMl0gKyBiWzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gKyBiWzNd
WzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKyBiWzNdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IGFbM11bMl0gKyBiWzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyBvcGVyYXRvci0oZmxvYXQ0eDMgYSwgZmxvYXQ0eDMgYikgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhWzBdWzFdIC0gYlswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlsw
XVsyXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsxXVswXTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC0g
YlsxXVsyXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0gYlsyXVswXTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJd
IC0gYlsyXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdIC0gYlszXVswXTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBhWzNdWzFdIC0gYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNd
WzJdIC0gYlszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgb3BlcmF0b3It
KGZsb2F0NHgzIGEpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
LWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1bMV07CisgICAgcmVzdWx0WzBdWzJd
ID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0WzFd
WzFdID0gLWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmVzdWx0
WzJdWzBdID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gLWFbMl1bMV07CisgICAgcmVz
dWx0WzJdWzJdID0gLWFbMl1bMl07CisgICAgcmVzdWx0WzNdWzBdID0gLWFbM11bMF07CisgICAg
cmVzdWx0WzNdWzFdID0gLWFbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gLWFbM11bMl07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG9wZXJhdG9yKihmbG9hdDR4MyBhLCBmbG9h
dDR4MyBiKSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1b
MF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAg
IHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKiBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFb
MV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBiWzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKiBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9
IGFbMl1bMF0gKiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFd
OworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gKiBiWzJdWzJdOworICAgIHJlc3VsdFszXVsw
XSA9IGFbM11bMF0gKiBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKiBiWzNd
WzFdOworICAgIHJlc3VsdFszXVsyXSA9IGFbM11bMl0gKiBiWzNdWzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBvcGVyYXRvciooZmxvYXQ0eDMgYSwgZmxvYXQgYikgeworICAg
IGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdICogYjsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdICog
YjsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBh
WzFdWzFdICogYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdICogYjsKKyAg
ICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdICogYjsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBd
ICogYjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdICogYjsKKyAgICByZXN1bHRbM11bMl0g
PSBhWzNdWzJdICogYjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgb3BlcmF0b3Iq
KGZsb2F0IGEsIGZsb2F0NHgzIGIpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gYSAqIGJb
MV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJd
ID0gYSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVz
dWx0WzJdWzFdID0gYSAqIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAqIGJbMl1bMl07
CisgICAgcmVzdWx0WzNdWzBdID0gYSAqIGJbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0gYSAq
IGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYSAqIGJbM11bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NHgzIG9wZXJhdG9yLyhmbG9hdDR4MyBhLCBmbG9hdDR4MyBiKSB7Cisg
ICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBd
OworICAgIHJlc3VsdFswXVsxXSA9IGFbMF1bMV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IGFbMF1bMl0gLyBiWzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFd
WzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsx
XVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0gLyBi
WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFdOworICAgIHJlc3Vs
dFsyXVsyXSA9IGFbMl1bMl0gLyBiWzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0g
LyBiWzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gLyBiWzNdWzFdOworICAgIHJl
c3VsdFszXVsyXSA9IGFbM11bMl0gLyBiWzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyBvcGVyYXRvci8oZmxvYXQ0eDMgYSwgZmxvYXQgYikgeworICAgIGZsb2F0NHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBdIC8gYjsKKyAgICByZXN1bHRbMF1bMV0g
PSBhWzBdWzFdIC8gYjsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC8gYjsKKyAgICByZXN1
bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC8gYjsK
KyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJd
WzBdIC8gYjsKKyAgICByZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsKKyAgICByZXN1bHRbMl1b
Ml0gPSBhWzJdWzJdIC8gYjsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdIC8gYjsKKyAgICBy
ZXN1bHRbM11bMV0gPSBhWzNdWzFdIC8gYjsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNdWzJdIC8g
YjsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgb3BlcmF0b3IvKGZsb2F0IGEsIGZs
b2F0NHgzIGIpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAv
IGJbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBd
WzJdID0gYSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAg
cmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gYSAvIGJbMV1b
Ml07CisgICAgcmVzdWx0WzJdWzBdID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0g
YSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAvIGJbMl1bMl07CisgICAgcmVzdWx0
WzNdWzBdID0gYSAvIGJbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0gYSAvIGJbM11bMV07Cisg
ICAgcmVzdWx0WzNdWzJdID0gYSAvIGJbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NHg0IG9wZXJhdG9yKyhmbG9hdDR4NCBhLCBmbG9hdDR4NCBiKSB7CisgICAgZmxvYXQ0eDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKyBiWzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IGFbMF1bMV0gKyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0g
KyBiWzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IGFbMF1bM10gKyBiWzBdWzNdOworICAgIHJl
c3VsdFsxXVswXSA9IGFbMV1bMF0gKyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1b
MV0gKyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKyBiWzFdWzJdOworICAg
IHJlc3VsdFsxXVszXSA9IGFbMV1bM10gKyBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IGFb
Ml1bMF0gKyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKyBiWzJdWzFdOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gKyBiWzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9
IGFbMl1bM10gKyBiWzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gKyBiWzNdWzBd
OworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKyBiWzNdWzFdOworICAgIHJlc3VsdFszXVsy
XSA9IGFbM11bMl0gKyBiWzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IGFbM11bM10gKyBiWzNd
WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBvcGVyYXRvci0oZmxvYXQ0eDQg
YSwgZmxvYXQ0eDQgYikgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhWzBdWzBdIC0gYlswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC0gYlswXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gPSBhWzBdWzJdIC0gYlswXVsyXTsKKyAgICByZXN1bHRbMF1b
M10gPSBhWzBdWzNdIC0gYlswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC0gYlsx
XVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdIC0gYlsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhWzFdWzJdIC0gYlsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFdWzNdIC0g
YlsxXVszXTsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC0gYlsyXVswXTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhWzJdWzFdIC0gYlsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJd
IC0gYlsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC0gYlsyXVszXTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBhWzNdWzBdIC0gYlszXVswXTsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNd
WzFdIC0gYlszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSBhWzNdWzJdIC0gYlszXVsyXTsKKyAg
ICByZXN1bHRbM11bM10gPSBhWzNdWzNdIC0gYlszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0eDQgb3BlcmF0b3ItKGZsb2F0NHg0IGEpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gLWFbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0gLWFbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdID0gLWFbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gLWFb
MF1bM107CisgICAgcmVzdWx0WzFdWzBdID0gLWFbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0g
LWFbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gLWFbMV1bMl07CisgICAgcmVzdWx0WzFdWzNd
ID0gLWFbMV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gLWFbMl1bMF07CisgICAgcmVzdWx0WzJd
WzFdID0gLWFbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gLWFbMl1bMl07CisgICAgcmVzdWx0
WzJdWzNdID0gLWFbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0gLWFbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0gLWFbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gLWFbM11bMl07CisgICAg
cmVzdWx0WzNdWzNdID0gLWFbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0
IG9wZXJhdG9yKihmbG9hdDR4NCBhLCBmbG9hdDR4NCBiKSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gKiBiWzBdWzBdOworICAgIHJlc3VsdFswXVsx
XSA9IGFbMF1bMV0gKiBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1bMl0gKiBiWzBd
WzJdOworICAgIHJlc3VsdFswXVszXSA9IGFbMF1bM10gKiBiWzBdWzNdOworICAgIHJlc3VsdFsx
XVswXSA9IGFbMV1bMF0gKiBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFbMV1bMV0gKiBi
WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gKiBiWzFdWzJdOworICAgIHJlc3Vs
dFsxXVszXSA9IGFbMV1bM10gKiBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IGFbMl1bMF0g
KiBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gKiBiWzJdWzFdOworICAgIHJl
c3VsdFsyXVsyXSA9IGFbMl1bMl0gKiBiWzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IGFbMl1b
M10gKiBiWzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gKiBiWzNdWzBdOworICAg
IHJlc3VsdFszXVsxXSA9IGFbM11bMV0gKiBiWzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IGFb
M11bMl0gKiBiWzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IGFbM11bM10gKiBiWzNdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBvcGVyYXRvciooZmxvYXQ0eDQgYSwgZmxv
YXQgYikgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhWzBdWzBd
ICogYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdICogYjsKKyAgICByZXN1bHRbMF1bMl0g
PSBhWzBdWzJdICogYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdICogYjsKKyAgICByZXN1
bHRbMV1bMF0gPSBhWzFdWzBdICogYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFdWzFdICogYjsK
KyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdICogYjsKKyAgICByZXN1bHRbMV1bM10gPSBhWzFd
WzNdICogYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdICogYjsKKyAgICByZXN1bHRbMl1b
MV0gPSBhWzJdWzFdICogYjsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdICogYjsKKyAgICBy
ZXN1bHRbMl1bM10gPSBhWzJdWzNdICogYjsKKyAgICByZXN1bHRbM11bMF0gPSBhWzNdWzBdICog
YjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdICogYjsKKyAgICByZXN1bHRbM11bMl0gPSBh
WzNdWzJdICogYjsKKyAgICByZXN1bHRbM11bM10gPSBhWzNdWzNdICogYjsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0eDQgb3BlcmF0b3IqKGZsb2F0IGEsIGZsb2F0NHg0IGIpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAqIGJbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0gYSAqIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0gYSAqIGJbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzNdID0gYSAqIGJbMF1bM107CisgICAgcmVzdWx0WzFdWzBdID0g
YSAqIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAqIGJbMV1bMV07CisgICAgcmVzdWx0
WzFdWzJdID0gYSAqIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAqIGJbMV1bM107Cisg
ICAgcmVzdWx0WzJdWzBdID0gYSAqIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0gYSAqIGJb
Ml1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAqIGJbMl1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0gYSAqIGJbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0gYSAqIGJbM11bMF07CisgICAgcmVz
dWx0WzNdWzFdID0gYSAqIGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYSAqIGJbM11bMl07
CisgICAgcmVzdWx0WzNdWzNdID0gYSAqIGJbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NHg0IG9wZXJhdG9yLyhmbG9hdDR4NCBhLCBmbG9hdDR4NCBiKSB7CisgICAgZmxvYXQ0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFbMF1bMF0gLyBiWzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IGFbMF1bMV0gLyBiWzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IGFbMF1b
Ml0gLyBiWzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IGFbMF1bM10gLyBiWzBdWzNdOworICAg
IHJlc3VsdFsxXVswXSA9IGFbMV1bMF0gLyBiWzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IGFb
MV1bMV0gLyBiWzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IGFbMV1bMl0gLyBiWzFdWzJdOwor
ICAgIHJlc3VsdFsxXVszXSA9IGFbMV1bM10gLyBiWzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9
IGFbMl1bMF0gLyBiWzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IGFbMl1bMV0gLyBiWzJdWzFd
OworICAgIHJlc3VsdFsyXVsyXSA9IGFbMl1bMl0gLyBiWzJdWzJdOworICAgIHJlc3VsdFsyXVsz
XSA9IGFbMl1bM10gLyBiWzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9IGFbM11bMF0gLyBiWzNd
WzBdOworICAgIHJlc3VsdFszXVsxXSA9IGFbM11bMV0gLyBiWzNdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IGFbM11bMl0gLyBiWzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IGFbM11bM10gLyBi
WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBvcGVyYXRvci8oZmxvYXQ0
eDQgYSwgZmxvYXQgYikgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBhWzBdWzBdIC8gYjsKKyAgICByZXN1bHRbMF1bMV0gPSBhWzBdWzFdIC8gYjsKKyAgICByZXN1
bHRbMF1bMl0gPSBhWzBdWzJdIC8gYjsKKyAgICByZXN1bHRbMF1bM10gPSBhWzBdWzNdIC8gYjsK
KyAgICByZXN1bHRbMV1bMF0gPSBhWzFdWzBdIC8gYjsKKyAgICByZXN1bHRbMV1bMV0gPSBhWzFd
WzFdIC8gYjsKKyAgICByZXN1bHRbMV1bMl0gPSBhWzFdWzJdIC8gYjsKKyAgICByZXN1bHRbMV1b
M10gPSBhWzFdWzNdIC8gYjsKKyAgICByZXN1bHRbMl1bMF0gPSBhWzJdWzBdIC8gYjsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhWzJdWzFdIC8gYjsKKyAgICByZXN1bHRbMl1bMl0gPSBhWzJdWzJdIC8g
YjsKKyAgICByZXN1bHRbMl1bM10gPSBhWzJdWzNdIC8gYjsKKyAgICByZXN1bHRbM11bMF0gPSBh
WzNdWzBdIC8gYjsKKyAgICByZXN1bHRbM11bMV0gPSBhWzNdWzFdIC8gYjsKKyAgICByZXN1bHRb
M11bMl0gPSBhWzNdWzJdIC8gYjsKKyAgICByZXN1bHRbM11bM10gPSBhWzNdWzNdIC8gYjsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgb3BlcmF0b3IvKGZsb2F0IGEsIGZsb2F0NHg0
IGIpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYSAvIGJbMF1b
MF07CisgICAgcmVzdWx0WzBdWzFdID0gYSAvIGJbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdID0g
YSAvIGJbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdID0gYSAvIGJbMF1bM107CisgICAgcmVzdWx0
WzFdWzBdID0gYSAvIGJbMV1bMF07CisgICAgcmVzdWx0WzFdWzFdID0gYSAvIGJbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzJdID0gYSAvIGJbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gYSAvIGJb
MV1bM107CisgICAgcmVzdWx0WzJdWzBdID0gYSAvIGJbMl1bMF07CisgICAgcmVzdWx0WzJdWzFd
ID0gYSAvIGJbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gYSAvIGJbMl1bMl07CisgICAgcmVz
dWx0WzJdWzNdID0gYSAvIGJbMl1bM107CisgICAgcmVzdWx0WzNdWzBdID0gYSAvIGJbM11bMF07
CisgICAgcmVzdWx0WzNdWzFdID0gYSAvIGJbM11bMV07CisgICAgcmVzdWx0WzNdWzJdID0gYSAv
IGJbM11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gYSAvIGJbM11bM107CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGJvb2wyKGJvb2wgeCwgYm9vbCB5KSB7CisgICAgYm9vbDIgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbCB5LCBib29sIHopIHsKKyAgICBi
b29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICBy
ZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2wzKGJvb2wy
IHgsIGJvb2wgeSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAg
ICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGJvb2wzKGJvb2wgeCwgYm9vbDIgeSkgeworICAgIGJvb2wzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5
LCBib29sIHosIGJvb2wgdykgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wgeSwg
Ym9vbCB6KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJl
c3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbDIgeSwgYm9vbCB6
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9
IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wgeCwgYm9vbCB5LCBib29sMiB6KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7Cisg
ICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIGJvb2w0KGJvb2wyIHgsIGJvb2wyIHkpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0
LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIGJvb2w0KGJvb2wzIHgsIGJvb2wgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsK
KyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGJvb2w0
KGJvb2wgeCwgYm9vbDMgeSkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0Lncg
PSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGJvb2wy
KSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChib29sMykgeworICAg
IHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoYm9vbDQpIHsKKyAgICByZXR1cm4g
NDsKK30KK29wZXJhdG9yIHVjaGFyMih1Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgdWNoYXIyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIgeSwgdWNoYXIgeikgewor
ICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsK
KyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFy
Myh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjModWNoYXIgeCwgdWNoYXIyIHkpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAg
ICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0
KHVjaGFyIHgsIHVjaGFyIHksIHVjaGFyIHosIHVjaGFyIHcpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
OworICAgIHJlc3VsdC53ID0gdzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNo
YXI0KHVjaGFyMiB4LCB1Y2hhciB5LCB1Y2hhciB6KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7
CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hh
cjQodWNoYXIgeCwgdWNoYXIyIHksIHVjaGFyIHopIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsK
KyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFy
NCh1Y2hhciB4LCB1Y2hhciB5LCB1Y2hhcjIgeikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAg
ICByZXN1bHQudyA9IHoueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdWNoYXI0
KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVz
dWx0LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVjaGFyNCh1Y2hh
cjMgeCwgdWNoYXIgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0Lncg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1Y2hhcjQodWNoYXIgeCwgdWNo
YXIzIHkpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludCBvcGVyYXRvci5sZW5ndGgodWNoYXIyKSB7CisgICAg
cmV0dXJuIDI7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1Y2hhcjMpIHsKKyAgICByZXR1cm4g
MzsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVjaGFyNCkgeworICAgIHJldHVybiA0OworfQor
b3BlcmF0b3IgdXNob3J0Mih1c2hvcnQgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsK
KyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5
OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNo
b3J0Myh1c2hvcnQyIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQzKHVzaG9ydCB4LCB1c2hvcnQyIHkp
IHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIHVzaG9ydDQodXNob3J0IHgsIHVzaG9ydCB5LCB1c2hvcnQgeiwgdXNob3J0IHcpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQgeSwgdXNob3J0IHopIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgu
eTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQyIHksIHVzaG9ydCB6KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0g
eS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQgeCwgdXNob3J0IHksIHVzaG9ydDIg
eikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVzaG9ydDQodXNob3J0MiB4LCB1c2hvcnQyIHkpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9
IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1bHQudyA9IHkueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorb3BlcmF0b3IgdXNob3J0NCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitvcGVyYXRvciB1c2hvcnQ0KHVzaG9ydCB4LCB1c2hvcnQzIHkpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDIpIHsKKyAgICByZXR1cm4gMjsKK30K
K3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQg
b3BlcmF0b3IubGVuZ3RoKHVzaG9ydDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHVp
bnQyKHVpbnQgeCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVp
bnQzKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVpbnQyIHgsIHVpbnQgeSkgeworICAgIHVp
bnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAg
ICByZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQzKHVp
bnQgeCwgdWludDIgeSkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7Cisg
ICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50IHosIHVpbnQgdykgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Owor
ICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIHVpbnQ0KHVpbnQyIHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJl
c3VsdC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29w
ZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDIgeSwgdWludCB6KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9
IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IHVpbnQ0KHVpbnQgeCwgdWludCB5LCB1aW50MiB6KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7Cisg
ICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0
KHVpbnQyIHgsIHVpbnQyIHkpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4
Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0
LncgPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQzIHgs
IHVpbnQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHVpbnQ0KHVpbnQgeCwgdWludDMgeSkgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7
CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKHVpbnQyKSB7CisgICAgcmV0dXJuIDI7Cit9
Cit1aW50IG9wZXJhdG9yLmxlbmd0aCh1aW50MykgeworICAgIHJldHVybiAzOworfQordWludCBv
cGVyYXRvci5sZW5ndGgodWludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGNoYXIy
KGNoYXIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIz
KGNoYXIgeCwgY2hhciB5LCBjaGFyIHopIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIyIHgsIGNoYXIgeSkgeworICAgIGNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICBy
ZXN1bHQueiA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXIzKGNoYXIg
eCwgY2hhcjIgeSkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAg
cmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyIHosIGNoYXIgdykgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAg
IHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K29wZXJhdG9yIGNoYXI0KGNoYXIyIHgsIGNoYXIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3Vs
dC56ID0geTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGNoYXI0KGNoYXIgeCwgY2hhcjIgeSwgY2hhciB6KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHku
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNo
YXI0KGNoYXIgeCwgY2hhciB5LCBjaGFyMiB6KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAg
cmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNo
YXIyIHgsIGNoYXIyIHkpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7
CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0Lncg
PSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIzIHgsIGNo
YXIgeSkgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1
bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGNoYXI0KGNoYXIgeCwgY2hhcjMgeSkgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7Cisg
ICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGNoYXIyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1
aW50IG9wZXJhdG9yLmxlbmd0aChjaGFyMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVy
YXRvci5sZW5ndGgoY2hhcjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIHNob3J0Mihz
aG9ydCB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9y
dDMoc2hvcnQgeCwgc2hvcnQgeSwgc2hvcnQgeikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0MyhzaG9ydDIgeCwgc2hvcnQgeSkgewor
ICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBz
aG9ydDMoc2hvcnQgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0IHgsIHNob3J0IHksIHNob3J0
IHosIHNob3J0IHcpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAg
ICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6OworICAgIHJlc3VsdC53ID0gdzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydCB5LCBz
aG9ydCB6KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICBy
ZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQyIHksIHNo
b3J0IHopIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXN1bHQudyA9IHo7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydCB4LCBzaG9ydCB5LCBzaG9y
dDIgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3Vs
dC55ID0geTsKKyAgICByZXN1bHQueiA9IHoueDsKKyAgICByZXN1bHQudyA9IHoueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3Igc2hvcnQ0KHNob3J0MiB4LCBzaG9ydDIgeSkgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4
Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK29wZXJhdG9yIHNob3J0NChzaG9ydDMgeCwgc2hvcnQgeSkgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7Cisg
ICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitvcGVyYXRvciBzaG9ydDQoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQu
eiA9IHkueTsKKyAgICByZXN1bHQudyA9IHkuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dCBvcGVyYXRvci5sZW5ndGgoc2hvcnQyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJh
dG9yLmxlbmd0aChzaG9ydDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3IubGVu
Z3RoKHNob3J0NCkgeworICAgIHJldHVybiA0OworfQorb3BlcmF0b3IgaW50MihpbnQgeCwgaW50
IHkpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQgeSwg
aW50IHopIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0
LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0
b3IgaW50MyhpbnQyIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQzKGludCB4LCBpbnQyIHkpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0
LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50IHgsIGlu
dCB5LCBpbnQgeiwgaW50IHcpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7
CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gejsKKyAgICByZXN1bHQudyA9IHc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGludDQoaW50MiB4LCBpbnQgeSwgaW50
IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQu
eSA9IHgueTsKKyAgICByZXN1bHQueiA9IHk7CisgICAgcmVzdWx0LncgPSB6OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQyIHksIGludCB6KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAg
IHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorb3BlcmF0b3IgaW50NChpbnQgeCwgaW50IHksIGludDIgeikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6
Lng7CisgICAgcmVzdWx0LncgPSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IGludDQoaW50MiB4LCBpbnQyIHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICByZXN1
bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgaW50NChpbnQzIHgs
IGludCB5KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB4Lno7CisgICAgcmVzdWx0LncgPSB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBpbnQ0KGludCB4LCBpbnQzIHkpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAg
cmVzdWx0LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGludDIpIHsKKyAgICByZXR1cm4gMjsKK30KK3VpbnQg
b3BlcmF0b3IubGVuZ3RoKGludDMpIHsKKyAgICByZXR1cm4gMzsKK30KK3VpbnQgb3BlcmF0b3Iu
bGVuZ3RoKGludDQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGhhbGYyKGhhbGYgeCwg
aGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1
bHQueSA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwg
aGFsZiB5LCBoYWxmIHopIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Owor
ICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK29wZXJhdG9yIGhhbGYzKGhhbGYyIHgsIGhhbGYgeSkgeworICAgIGhhbGYzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9
IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGYzKGhhbGYgeCwgaGFsZjIg
eSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0Lnkg
PSB5Lng7CisgICAgcmVzdWx0LnogPSB5Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJh
dG9yIGhhbGY0KGhhbGYgeCwgaGFsZiB5LCBoYWxmIHosIGhhbGYgdykgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56
ID0gejsKKyAgICByZXN1bHQudyA9IHc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9y
IGhhbGY0KGhhbGYyIHgsIGhhbGYgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0geTsK
KyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0
KGhhbGYgeCwgaGFsZjIgeSwgaGFsZiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0geDsKKyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICBy
ZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYg
eCwgaGFsZiB5LCBoYWxmMiB6KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
eDsKKyAgICByZXN1bHQueSA9IHk7CisgICAgcmVzdWx0LnogPSB6Lng7CisgICAgcmVzdWx0Lncg
PSB6Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYyIHgsIGhh
bGYyIHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVz
dWx0LnkgPSB4Lnk7CisgICAgcmVzdWx0LnogPSB5Lng7CisgICAgcmVzdWx0LncgPSB5Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYzIHgsIGhhbGYgeSkgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgu
eTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQudyA9IHk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGhhbGY0KGhhbGYgeCwgaGFsZjMgeSkgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5Lng7CisgICAgcmVzdWx0
LnogPSB5Lnk7CisgICAgcmVzdWx0LncgPSB5Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQgb3BlcmF0b3IubGVuZ3RoKGhhbGYyKSB7CisgICAgcmV0dXJuIDI7Cit9Cit1aW50IG9wZXJh
dG9yLmxlbmd0aChoYWxmMykgeworICAgIHJldHVybiAzOworfQordWludCBvcGVyYXRvci5sZW5n
dGgoaGFsZjQpIHsKKyAgICByZXR1cm4gNDsKK30KK29wZXJhdG9yIGZsb2F0MihmbG9hdCB4LCBm
bG9hdCB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHg7CisgICAgcmVz
dWx0LnkgPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxvYXQg
eCwgZmxvYXQgeSwgZmxvYXQgeikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB4OworICAgIHJlc3VsdC55ID0geTsKKyAgICByZXN1bHQueiA9IHo7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK29wZXJhdG9yIGZsb2F0MyhmbG9hdDIgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4Lng7CisgICAgcmVzdWx0LnkgPSB4Lnk7CisgICAg
cmVzdWx0LnogPSB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9hdDMoZmxv
YXQgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsK
KyAgICByZXN1bHQueSA9IHkueDsKKyAgICByZXN1bHQueiA9IHkueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHosIGZsb2F0
IHcpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0geDsKKyAgICByZXN1bHQu
eSA9IHk7CisgICAgcmVzdWx0LnogPSB6OwogICAgIHJlc3VsdC53ID0gdzsKICAgICByZXR1cm4g
cmVzdWx0OwogfQotCi1vcGVyYXRvcjxUPiB2ZWM0PFQ+KFQgeCwgdmVjMzxUPiB2MykKLXsKLSAg
ICB2ZWM0PFQ+IHJlc3VsdDsKLSAgICByZXN1bHQueCA9IHg7Ci0gICAgcmVzdWx0LnkgPSB2My54
OwotICAgIHJlc3VsdC56ID0gdjMueTsKLSAgICByZXN1bHQudyA9IHYzLno7CitvcGVyYXRvciBm
bG9hdDQoZmxvYXQyIHgsIGZsb2F0IHksIGZsb2F0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0geC54OworICAgIHJlc3VsdC55ID0geC55OworICAgIHJlc3VsdC56ID0g
eTsKKyAgICByZXN1bHQudyA9IHo7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZs
b2F0NChmbG9hdCB4LCBmbG9hdDIgeSwgZmxvYXQgeikgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB4OworICAgIHJlc3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55
OworICAgIHJlc3VsdC53ID0gejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxv
YXQ0KGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0MiB6KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHg7CisgICAgcmVzdWx0LnkgPSB5OworICAgIHJlc3VsdC56ID0gei54Owor
ICAgIHJlc3VsdC53ID0gei55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitvcGVyYXRvciBmbG9h
dDQoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHgueDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHkueDsKKyAgICBy
ZXN1bHQudyA9IHkueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorb3BlcmF0b3IgZmxvYXQ0KGZs
b2F0MyB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHgu
eDsKKyAgICByZXN1bHQueSA9IHgueTsKKyAgICByZXN1bHQueiA9IHguejsKKyAgICByZXN1bHQu
dyA9IHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK29wZXJhdG9yIGZsb2F0NChmbG9hdCB4LCBm
bG9hdDMgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB4OworICAgIHJl
c3VsdC55ID0geS54OworICAgIHJlc3VsdC56ID0geS55OworICAgIHJlc3VsdC53ID0geS56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IG9wZXJhdG9yLmxlbmd0aChmbG9hdDIpIHsKKyAg
ICByZXR1cm4gMjsKK30KK3VpbnQgb3BlcmF0b3IubGVuZ3RoKGZsb2F0MykgeworICAgIHJldHVy
biAzOworfQordWludCBvcGVyYXRvci5sZW5ndGgoZmxvYXQ0KSB7CisgICAgcmV0dXJuIDQ7Cit9
Citib29sIG9wZXJhdG9yPT0oYm9vbDIgYSwgYm9vbDIgYikgeworICAgIHJldHVybiBhLnggPT0g
Yi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oYm9vbDMgYSwgYm9vbDMgYikg
eworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30K
K2Jvb2wgb3BlcmF0b3I9PShib29sNCBhLCBib29sNCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBi
LnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9Cit0aHJlYWQg
Ym9vbCogb3BlcmF0b3ImW10odGhyZWFkIGJvb2wyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBp
ZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09
IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9Cit0aHJlYWQgYm9vbCog
b3BlcmF0b3ImW10odGhyZWFkIGJvb2wzKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5k
ZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisg
ICAgICAgIHJldHVybiAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1
cm4gJmZvby0+ejsKKyAgICB0cmFwOworfQordGhyZWFkIGJvb2wqIG9wZXJhdG9yJltdKHRocmVh
ZCBib29sNCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAg
IHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAg
aWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT53OworICAgIHRyYXA7Cit9Citi
b29sIG9wZXJhdG9yPT0odWNoYXIyIGEsIHVjaGFyMiBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBi
LnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1Y2hhcjMgYSwgdWNoYXIzIGIp
IHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYmIGEueiA9PSBiLno7Cit9
Citib29sIG9wZXJhdG9yPT0odWNoYXI0IGEsIHVjaGFyNCBiKSB7CisgICAgcmV0dXJuIGEueCA9
PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBiLnc7Cit9Cit0aHJl
YWQgdWNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCB1Y2hhcjIqIGZvbywgdWludCBpbmRleCkgewor
ICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAgICBpZiAoaW5k
ZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJhcDsKK30KK3RocmVhZCB1
Y2hhciogb3BlcmF0b3ImW10odGhyZWFkIHVjaGFyMyogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9
PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAg
ICAgcmV0dXJuICZmb28tPno7CisgICAgdHJhcDsKK30KK3RocmVhZCB1Y2hhciogb3BlcmF0b3Im
W10odGhyZWFkIHVjaGFyNCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28t
Pno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT53OworICAgIHRy
YXA7Cit9Citib29sIG9wZXJhdG9yPT0odXNob3J0MiBhLCB1c2hvcnQyIGIpIHsKKyAgICByZXR1
cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDMg
YSwgdXNob3J0MyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBh
LnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KHVzaG9ydDQgYSwgdXNob3J0NCBiKSB7Cisg
ICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9
PSBiLnc7Cit9Cit0aHJlYWQgdXNob3J0KiBvcGVyYXRvciZbXSh0aHJlYWQgdXNob3J0MiogZm9v
LCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9v
LT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0
cmFwOworfQordGhyZWFkIHVzaG9ydCogb3BlcmF0b3ImW10odGhyZWFkIHVzaG9ydDMqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYg
KGluZGV4ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIHRyYXA7Cit9Cit0aHJl
YWQgdXNob3J0KiBvcGVyYXRvciZbXSh0aHJlYWQgdXNob3J0NCogZm9vLCB1aW50IGluZGV4KSB7
CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChp
bmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikK
KyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJl
dHVybiAmZm9vLT53OworICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0odWludDIgYSwgdWlu
dDIgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9w
ZXJhdG9yPT0odWludDMgYSwgdWludDMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEu
eSA9PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PSh1aW50NCBhLCB1aW50
NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56
ICYmIGEudyA9PSBiLnc7Cit9Cit0aHJlYWQgdWludCogb3BlcmF0b3ImW10odGhyZWFkIHVpbnQy
KiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJu
ICZmb28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55Owor
ICAgIHRyYXA7Cit9Cit0aHJlYWQgdWludCogb3BlcmF0b3ImW10odGhyZWFkIHVpbnQzKiBmb28s
IHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28t
Png7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIGlm
IChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+ejsKKyAgICB0cmFwOworfQordGhy
ZWFkIHVpbnQqIG9wZXJhdG9yJltdKHRocmVhZCB1aW50NCogZm9vLCB1aW50IGluZGV4KSB7Cisg
ICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRl
eCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAg
ICAgICAgcmV0dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVy
biAmZm9vLT53OworICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0oY2hhcjIgYSwgY2hhcjIg
YikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJh
dG9yPT0oY2hhcjMgYSwgY2hhcjMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9
PSBiLnkgJiYgYS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShjaGFyNCBhLCBjaGFyNCBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYm
IGEudyA9PSBiLnc7Cit9Cit0aHJlYWQgY2hhciogb3BlcmF0b3ImW10odGhyZWFkIGNoYXIyKiBm
b28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZm
b28tPng7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAg
IHRyYXA7Cit9Cit0aHJlYWQgY2hhciogb3BlcmF0b3ImW10odGhyZWFkIGNoYXIzKiBmb28sIHVp
bnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7
CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIGlmIChp
bmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+ejsKKyAgICB0cmFwOworfQordGhyZWFk
IGNoYXIqIG9wZXJhdG9yJltdKHRocmVhZCBjaGFyNCogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9
PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAg
ICAgcmV0dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAm
Zm9vLT53OworICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQyIGEsIHNob3J0MiBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0
b3I9PShzaG9ydDMgYSwgc2hvcnQzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkg
PT0gYi55ICYmIGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oc2hvcnQ0IGEsIHNob3J0
NCBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56
ICYmIGEudyA9PSBiLnc7Cit9Cit0aHJlYWQgc2hvcnQqIG9wZXJhdG9yJltdKHRocmVhZCBzaG9y
dDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1
cm4gJmZvby0+eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7
CisgICAgdHJhcDsKK30KK3RocmVhZCBzaG9ydCogb3BlcmF0b3ImW10odGhyZWFkIHNob3J0Myog
Zm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAm
Zm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAg
ICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgdHJhcDsKK30K
K3RocmVhZCBzaG9ydCogb3BlcmF0b3ImW10odGhyZWFkIHNob3J0NCogZm9vLCB1aW50IGluZGV4
KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlm
IChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0g
MikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAg
IHJldHVybiAmZm9vLT53OworICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0oaW50MiBhLCBp
bnQyIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworfQorYm9vbCBv
cGVyYXRvcj09KGludDMgYSwgaW50MyBiKSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55
ID09IGIueSAmJiBhLnogPT0gYi56OworfQorYm9vbCBvcGVyYXRvcj09KGludDQgYSwgaW50NCBi
KSB7CisgICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYm
IGEudyA9PSBiLnc7Cit9Cit0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgaW50MiogZm9v
LCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9v
LT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICB0
cmFwOworfQordGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIGludDMqIGZvbywgdWludCBp
bmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+eDsKKyAg
ICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgaWYgKGluZGV4
ID09IDIpCisgICAgICAgIHJldHVybiAmZm9vLT56OworICAgIHRyYXA7Cit9Cit0aHJlYWQgaW50
KiBvcGVyYXRvciZbXSh0aHJlYWQgaW50NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGlu
ZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQor
ICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0
dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT53
OworICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjIgYSwgaGFsZjIgYikgeworICAg
IHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnk7Cit9Citib29sIG9wZXJhdG9yPT0oaGFs
ZjMgYSwgaGFsZjMgYikgeworICAgIHJldHVybiBhLnggPT0gYi54ICYmIGEueSA9PSBiLnkgJiYg
YS56ID09IGIuejsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmNCBhLCBoYWxmNCBiKSB7CisgICAg
cmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9PSBi
Lnc7Cit9Cit0aHJlYWQgaGFsZiogb3BlcmF0b3ImW10odGhyZWFkIGhhbGYyKiBmb28sIHVpbnQg
aW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7Cisg
ICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIHRyYXA7Cit9
Cit0aHJlYWQgaGFsZiogb3BlcmF0b3ImW10odGhyZWFkIGhhbGYzKiBmb28sIHVpbnQgaW5kZXgp
IHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgaWYg
KGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT55OworICAgIGlmIChpbmRleCA9PSAy
KQorICAgICAgICByZXR1cm4gJmZvby0+ejsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYqIG9w
ZXJhdG9yJltdKHRocmVhZCBoYWxmNCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4
ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9PSAxKQorICAg
ICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJu
ICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT53Owor
ICAgIHRyYXA7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQyIGEsIGZsb2F0MiBiKSB7CisgICAg
cmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKK30KK2Jvb2wgb3BlcmF0b3I9PShmbG9h
dDMgYSwgZmxvYXQzIGIpIHsKKyAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55ICYm
IGEueiA9PSBiLno7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0IGEsIGZsb2F0NCBiKSB7Cisg
ICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9
PSBiLnc7Cit9Cit0aHJlYWQgZmxvYXQqIG9wZXJhdG9yJltdKHRocmVhZCBmbG9hdDIqIGZvbywg
dWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+
eDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgdHJh
cDsKK30KK3RocmVhZCBmbG9hdCogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0MyogZm9vLCB1aW50
IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54Owor
ICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5k
ZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPno7CisgICAgdHJhcDsKK30KK3RocmVhZCBm
bG9hdCogb3BlcmF0b3ImW10odGhyZWFkIGZsb2F0NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT54OworICAgIGlmIChpbmRleCA9
PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAg
ICAgcmV0dXJuICZmb28tPno7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAm
Zm9vLT53OworICAgIHRyYXA7Cit9Cit0aHJlYWQgaGFsZjIqIG9wZXJhdG9yJltdKHRocmVhZCBo
YWxmMngyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAg
cmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAm
Zm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0aHJlYWQgaGFsZjIqIG9wZXJhdG9yJltdKHRocmVh
ZCBoYWxmM3gyKiBmb28sIHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAg
ICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVy
biAmZm9vLT5yb3cxOworICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+
cm93MjsKKyAgICB0cmFwOworfQordGhyZWFkIGhhbGYyKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFs
ZjR4MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJl
dHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7
CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3czOworICAgIHRy
YXA7Cit9Cit0aHJlYWQgaGFsZjMqIG9wZXJhdG9yJltdKHRocmVhZCBoYWxmMngzKiBmb28sIHVp
bnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJv
dzA7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAg
IHRyYXA7Cit9Cit0aHJlYWQgaGFsZjMqIG9wZXJhdG9yJltdKHRocmVhZCBoYWxmM3gzKiBmb28s
IHVpbnQgaW5kZXgpIHsKKyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28t
PnJvdzA7CisgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOwor
ICAgIGlmIChpbmRleCA9PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MjsKKyAgICB0cmFw
OworfQordGhyZWFkIGhhbGYzKiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjR4MyogZm9vLCB1aW50
IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cw
OworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBp
ZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7CisgICAgaWYgKGluZGV4
ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3czOworICAgIHRyYXA7Cit9Cit0aHJlYWQg
aGFsZjQqIG9wZXJhdG9yJltdKHRocmVhZCBoYWxmMng0KiBmb28sIHVpbnQgaW5kZXgpIHsKKyAg
ICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYgKGlu
ZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIHRyYXA7Cit9Cit0aHJl
YWQgaGFsZjQqIG9wZXJhdG9yJltdKHRocmVhZCBoYWxmM3g0KiBmb28sIHVpbnQgaW5kZXgpIHsK
KyAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzA7CisgICAgaWYg
KGluZGV4ID09IDEpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cxOworICAgIGlmIChpbmRleCA9
PSAyKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MjsKKyAgICB0cmFwOworfQordGhyZWFkIGhh
bGY0KiBvcGVyYXRvciZbXSh0aHJlYWQgaGFsZjR4NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAg
aWYgKGluZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRl
eCA9PSAxKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikK
KyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAg
IHJldHVybiAmZm9vLT5yb3czOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQyKiBvcGVyYXRv
ciZbXSh0aHJlYWQgZmxvYXQyeDIqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9
PSAwKQorICAgICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAg
ICAgICAgcmV0dXJuICZmb28tPnJvdzE7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDIqIG9w
ZXJhdG9yJltdKHRocmVhZCBmbG9hdDN4MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGlu
ZGV4ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAx
KQorICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAg
ICAgcmV0dXJuICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDIqIG9wZXJh
dG9yJltdKHRocmVhZCBmbG9hdDR4MiogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4
ID09IDApCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQor
ICAgICAgICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAg
cmV0dXJuICZmb28tPnJvdzI7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAm
Zm9vLT5yb3czOworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQzKiBvcGVyYXRvciZbXSh0aHJl
YWQgZmxvYXQyeDMqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAg
ICAgICByZXR1cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0
dXJuICZmb28tPnJvdzE7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDMqIG9wZXJhdG9yJltd
KHRocmVhZCBmbG9hdDN4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDAp
CisgICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAg
ICByZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJu
ICZmb28tPnJvdzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDMqIG9wZXJhdG9yJltdKHRo
cmVhZCBmbG9hdDR4MyogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisg
ICAgICAgIHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICBy
ZXR1cm4gJmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZm
b28tPnJvdzI7CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3cz
OworICAgIHRyYXA7Cit9Cit0aHJlYWQgZmxvYXQ0KiBvcGVyYXRvciZbXSh0aHJlYWQgZmxvYXQy
eDQqIGZvbywgdWludCBpbmRleCkgeworICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICByZXR1
cm4gJmZvby0+cm93MDsKKyAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgcmV0dXJuICZmb28t
PnJvdzE7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDQqIG9wZXJhdG9yJltdKHRocmVhZCBm
bG9hdDN4NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAg
IHJldHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4g
JmZvby0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJv
dzI7CisgICAgdHJhcDsKK30KK3RocmVhZCBmbG9hdDQqIG9wZXJhdG9yJltdKHRocmVhZCBmbG9h
dDR4NCogZm9vLCB1aW50IGluZGV4KSB7CisgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgIHJl
dHVybiAmZm9vLT5yb3cwOworICAgIGlmIChpbmRleCA9PSAxKQorICAgICAgICByZXR1cm4gJmZv
by0+cm93MTsKKyAgICBpZiAoaW5kZXggPT0gMikKKyAgICAgICAgcmV0dXJuICZmb28tPnJvdzI7
CisgICAgaWYgKGluZGV4ID09IDMpCisgICAgICAgIHJldHVybiAmZm9vLT5yb3czOworICAgIHRy
YXA7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjJ4MiBhLCBoYWxmMngyIGIpIHsKKyAgICByZXR1
cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlsw
XVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9
PSBiWzFdWzFdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0b3I9PShoYWxmMngzIGEsIGhh
bGYyeDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAg
ICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAm
JgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFd
WzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgIHRydWU7Cit9Citib29s
IG9wZXJhdG9yPT0oaGFsZjJ4NCBhLCBoYWxmMng0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAg
YVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAg
ICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYm
CisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1b
MV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0g
YlsxXVszXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjN4MiBhLCBoYWxm
M3gyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAg
ICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYK
KyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVsw
XSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICB0cnVlOworfQorYm9vbCBv
cGVyYXRvcj09KGhhbGYzeDMgYSwgaGFsZjN4MyBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFb
MF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAg
ICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgor
ICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsyXSA9PSBiWzFdWzJd
ICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJb
Ml1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jv
b2wgb3BlcmF0b3I9PShoYWxmM3g0IGEsIGhhbGYzeDQgYikgeworICAgIHJldHVybgorICAgICAg
ICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisg
ICAgICAgIGFbMF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10g
JiYKKyAgICAgICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsx
XVsxXSAmJgorICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9
PSBiWzFdWzNdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJd
WzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAg
IGFbMl1bM10gPT0gYlsyXVszXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFs
ZjR4MiBhLCBoYWxmNHgyIGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBd
WzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzFdWzBdID09
IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMl1b
MF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAg
YVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0gPT0gYlszXVsxXSAmJgorICAg
IHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oaGFsZjR4MyBhLCBoYWxmNHgzIGIpIHsKKyAgICBy
ZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0g
YlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVsw
XSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBh
WzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAg
ICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYK
KyAgICAgICAgYVszXVswXSA9PSBiWzNdWzBdICYmCisgICAgICAgIGFbM11bMV0gPT0gYlszXVsx
XSAmJgorICAgICAgICBhWzNdWzJdID09IGJbM11bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBv
cGVyYXRvcj09KGhhbGY0eDQgYSwgaGFsZjR4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFb
MF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAg
ICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgor
ICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFd
ICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJb
MV1bM10gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0g
PT0gYlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsy
XVszXSA9PSBiWzJdWzNdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAg
ICBhWzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisg
ICAgICAgIGFbM11bM10gPT0gYlszXVszXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9y
PT0oZmxvYXQyeDIgYSwgZmxvYXQyeDIgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBd
ID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFb
MV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICB0
cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0MngzIGEsIGZsb2F0MngzIGIpIHsKKyAgICBy
ZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBdWzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0g
YlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09IGJbMF1bMl0gJiYKKyAgICAgICAgYVsxXVsw
XSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgorICAgICAgICBh
WzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICB0cnVlOworfQorYm9vbCBvcGVyYXRvcj09KGZsb2F0
Mng0IGEsIGZsb2F0Mng0IGIpIHsKKyAgICByZXR1cm4KKyAgICAgICAgYVswXVswXSA9PSBiWzBd
WzBdICYmCisgICAgICAgIGFbMF1bMV0gPT0gYlswXVsxXSAmJgorICAgICAgICBhWzBdWzJdID09
IGJbMF1bMl0gJiYKKyAgICAgICAgYVswXVszXSA9PSBiWzBdWzNdICYmCisgICAgICAgIGFbMV1b
MF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAg
YVsxXVsyXSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMV1bM10gPT0gYlsxXVszXSAmJgorICAg
IHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQzeDIgYSwgZmxvYXQzeDIgYikgeworICAg
IHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9
PSBiWzBdWzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVswXSAmJgorICAgICAgICBhWzFd
WzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAg
IGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxv
YXQzeDMgYSwgZmxvYXQzeDMgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJb
MF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMF1bMl0g
PT0gYlswXVsyXSAmJgorICAgICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsx
XVsxXSA9PSBiWzFdWzFdICYmCisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAg
ICBhWzJdWzBdID09IGJbMl1bMF0gJiYKKyAgICAgICAgYVsyXVsxXSA9PSBiWzJdWzFdICYmCisg
ICAgICAgIGFbMl1bMl0gPT0gYlsyXVsyXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9y
PT0oZmxvYXQzeDQgYSwgZmxvYXQzeDQgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBd
ID09IGJbMF1bMF0gJiYKKyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFb
MF1bMl0gPT0gYlswXVsyXSAmJgorICAgICAgICBhWzBdWzNdID09IGJbMF1bM10gJiYKKyAgICAg
ICAgYVsxXVswXSA9PSBiWzFdWzBdICYmCisgICAgICAgIGFbMV1bMV0gPT0gYlsxXVsxXSAmJgor
ICAgICAgICBhWzFdWzJdID09IGJbMV1bMl0gJiYKKyAgICAgICAgYVsxXVszXSA9PSBiWzFdWzNd
ICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBhWzJdWzFdID09IGJb
Ml1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAgICAgIGFbMl1bM10g
PT0gYlsyXVszXSAmJgorICAgIHRydWU7Cit9Citib29sIG9wZXJhdG9yPT0oZmxvYXQ0eDIgYSwg
ZmxvYXQ0eDIgYikgeworICAgIHJldHVybgorICAgICAgICBhWzBdWzBdID09IGJbMF1bMF0gJiYK
KyAgICAgICAgYVswXVsxXSA9PSBiWzBdWzFdICYmCisgICAgICAgIGFbMV1bMF0gPT0gYlsxXVsw
XSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsyXVswXSA9PSBi
WzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0gYlsyXVsxXSAmJgorICAgICAgICBhWzNdWzBd
ID09IGJbM11bMF0gJiYKKyAgICAgICAgYVszXVsxXSA9PSBiWzNdWzFdICYmCisgICAgdHJ1ZTsK
K30KK2Jvb2wgb3BlcmF0b3I9PShmbG9hdDR4MyBhLCBmbG9hdDR4MyBiKSB7CisgICAgcmV0dXJu
CisgICAgICAgIGFbMF1bMF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1b
MV0gJiYKKyAgICAgICAgYVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMV1bMF0gPT0g
YlsxXVswXSAmJgorICAgICAgICBhWzFdWzFdID09IGJbMV1bMV0gJiYKKyAgICAgICAgYVsxXVsy
XSA9PSBiWzFdWzJdICYmCisgICAgICAgIGFbMl1bMF0gPT0gYlsyXVswXSAmJgorICAgICAgICBh
WzJdWzFdID09IGJbMl1bMV0gJiYKKyAgICAgICAgYVsyXVsyXSA9PSBiWzJdWzJdICYmCisgICAg
ICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBhWzNdWzFdID09IGJbM11bMV0gJiYK
KyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisgICAgdHJ1ZTsKK30KK2Jvb2wgb3BlcmF0
b3I9PShmbG9hdDR4NCBhLCBmbG9hdDR4NCBiKSB7CisgICAgcmV0dXJuCisgICAgICAgIGFbMF1b
MF0gPT0gYlswXVswXSAmJgorICAgICAgICBhWzBdWzFdID09IGJbMF1bMV0gJiYKKyAgICAgICAg
YVswXVsyXSA9PSBiWzBdWzJdICYmCisgICAgICAgIGFbMF1bM10gPT0gYlswXVszXSAmJgorICAg
ICAgICBhWzFdWzBdID09IGJbMV1bMF0gJiYKKyAgICAgICAgYVsxXVsxXSA9PSBiWzFdWzFdICYm
CisgICAgICAgIGFbMV1bMl0gPT0gYlsxXVsyXSAmJgorICAgICAgICBhWzFdWzNdID09IGJbMV1b
M10gJiYKKyAgICAgICAgYVsyXVswXSA9PSBiWzJdWzBdICYmCisgICAgICAgIGFbMl1bMV0gPT0g
YlsyXVsxXSAmJgorICAgICAgICBhWzJdWzJdID09IGJbMl1bMl0gJiYKKyAgICAgICAgYVsyXVsz
XSA9PSBiWzJdWzNdICYmCisgICAgICAgIGFbM11bMF0gPT0gYlszXVswXSAmJgorICAgICAgICBh
WzNdWzFdID09IGJbM11bMV0gJiYKKyAgICAgICAgYVszXVsyXSA9PSBiWzNdWzJdICYmCisgICAg
ICAgIGFbM11bM10gPT0gYlszXVszXSAmJgorICAgIHRydWU7Cit9Citib29sMiBvcGVyYXRvci54
eChib29sMiB2KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci54
eShib29sMiB2KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci54
eT0oYm9vbDIgdiwgYm9vbDIgYykgeworICAgIGJvb2wyIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wyIG9wZXJhdG9yLnl4KGJvb2wyIHYpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wyIG9wZXJhdG9yLnl4PShib29sMiB2LCBib29sMiBjKSB7CisgICAgYm9vbDIgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueXkoYm9vbDIgdikgeworICAgIGJvb2wyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueHgoYm9vbDMgdikgeworICAgIGJvb2wyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueHkoYm9vbDMgdikgeworICAgIGJvb2wyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHk9KGJvb2wzIHYsIGJvb2wyIGMpIHsKKyAgICBi
b29sMyByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci54eihib29sMyB2KSB7Cisg
ICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54ej0oYm9vbDMgdiwgYm9v
bDIgYykgeworICAgIGJvb2wzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAg
cmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnl4
KGJvb2wzIHYpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl4
PShib29sMyB2LCBib29sMiBjKSB7CisgICAgYm9vbDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDIgb3BlcmF0b3IueXkoYm9vbDMgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDIgb3BlcmF0b3IueXooYm9vbDMgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDMgb3BlcmF0b3IueXo9KGJvb2wzIHYsIGJvb2wyIGMpIHsKKyAgICBib29sMyByZXN1bHQgPSB2
OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci56eChib29sMyB2KSB7CisgICAgYm9vbDIgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56eD0oYm9vbDMgdiwgYm9vbDIgYykgeworICAgIGJv
b2wzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnp5KGJvb2wzIHYpIHsKKyAg
ICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp5PShib29sMyB2LCBib29s
MiBjKSB7CisgICAgYm9vbDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICBy
ZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3Iuenoo
Ym9vbDMgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueHgo
Ym9vbDQgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueHko
Ym9vbDQgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHk9
KGJvb2w0IHYsIGJvb2wyIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54
ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
MiBvcGVyYXRvci54eihib29sNCB2KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
NCBvcGVyYXRvci54ej0oYm9vbDQgdiwgYm9vbDIgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnh3KGJvb2w0IHYpIHsKKyAgICBib29sMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh3PShib29sNCB2LCBib29sMiBjKSB7CisgICAgYm9v
bDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3IueXgoYm9vbDQgdikgeworICAg
IGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXg9KGJvb2w0IHYsIGJvb2wy
IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJl
c3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci55eShi
b29sNCB2KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci55eihi
b29sNCB2KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55ej0o
Ym9vbDQgdiwgYm9vbDIgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wy
IG9wZXJhdG9yLnl3KGJvb2w0IHYpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnl3PShib29sNCB2LCBib29sMiBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDIgb3BlcmF0b3IuengoYm9vbDQgdikgeworICAgIGJvb2wyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3Iueng9KGJvb2w0IHYsIGJvb2wyIGMpIHsKKyAgICBib29s
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBvcGVyYXRvci56eShib29sNCB2KSB7CisgICAg
Ym9vbDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eT0oYm9vbDQgdiwgYm9vbDIg
YykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVz
dWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnp6KGJv
b2w0IHYpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnp3KGJv
b2w0IHYpIHsKKyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp3PShi
b29sNCB2LCBib29sMiBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIg
b3BlcmF0b3Iud3goYm9vbDQgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3Iud3g9KGJvb2w0IHYsIGJvb2wyIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sMiBvcGVyYXRvci53eShib29sNCB2KSB7CisgICAgYm9vbDIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci53eT0oYm9vbDQgdiwgYm9vbDIgYykgeworICAgIGJvb2w0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wyIG9wZXJhdG9yLnd6KGJvb2w0IHYpIHsKKyAgICBi
b29sMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd6PShib29sNCB2LCBib29sMiBj
KSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1
bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgb3BlcmF0b3Iud3coYm9v
bDQgdikgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHh4KGJv
b2wyIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIG9wZXJhdG9yLnh4eShib29sMiB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54eXgoYm9vbDIgdikgeworICAg
IGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0
b3IueHl5KGJvb2wyIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl4eChib29sMiB2KSB7CisgICAgYm9vbDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55eHkoYm9vbDIg
dikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDMgb3BlcmF0b3IueXl4KGJvb2wyIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl5eShib29sMiB2KSB7CisgICAgYm9v
bDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54
eHgoYm9vbDMgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDMgb3BlcmF0b3IueHh5KGJvb2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh4eihib29sMyB2KSB7
CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBv
cGVyYXRvci54eXgoYm9vbDMgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHl5KGJvb2wzIHYpIHsKKyAgICBib29sMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh5eihi
b29sMyB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBvcGVyYXRvci54eXo9KGJvb2wzIHYsIGJvb2wzIGMpIHsKKyAgICBib29sMyByZXN1
bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54engo
Ym9vbDMgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgb3BlcmF0b3IueHp5KGJvb2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh6eT0oYm9vbDMgdiwgYm9v
bDMgYykgeworICAgIGJvb2wzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAg
cmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wzIG9wZXJhdG9yLnh6eihib29sMyB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55eHgoYm9vbDMgdikgewor
ICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3Bl
cmF0b3IueXh5KGJvb2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl4eihib29sMyB2KSB7CisgICAgYm9vbDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55eHo9KGJv
b2wzIHYsIGJvb2wzIGMpIHsKKyAgICBib29sMyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55eXgoYm9vbDMgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXl5KGJv
b2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIG9wZXJhdG9yLnl5eihib29sMyB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55engoYm9vbDMgdikgeworICAg
IGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0
b3IueXp4PShib29sMyB2LCBib29sMyBjKSB7CisgICAgYm9vbDMgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXp5KGJvb2wzIHYpIHsKKyAg
ICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJh
dG9yLnl6eihib29sMyB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56eHgoYm9vbDMgdikgeworICAgIGJvb2wzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenh5KGJvb2wz
IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wzIG9wZXJhdG9yLnp4eT0oYm9vbDMgdiwgYm9vbDMgYykgeworICAgIGJvb2wzIHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0
LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp4eihib29s
MyB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sMyBvcGVyYXRvci56eXgoYm9vbDMgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenl4PShib29sMyB2LCBib29sMyBj
KSB7CisgICAgYm9vbDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1
bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDMgb3BlcmF0b3Iuenl5KGJvb2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp5eihib29sMyB2KSB7CisgICAg
Ym9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRv
ci56engoYm9vbDMgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenp5KGJvb2wzIHYpIHsKKyAgICBib29sMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp6eihib29sMyB2
KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
MyBvcGVyYXRvci54eHgoYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHh5KGJvb2w0IHYpIHsKKyAgICBib29s
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh4
eihib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sMyBvcGVyYXRvci54eHcoYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHl4KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9w
ZXJhdG9yLnh5eShib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54eXooYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl6PShi
b29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHl3KGJvb2w0IHYpIHsKKyAgICBib29sMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5dz0o
Ym9vbDQgdiwgYm9vbDMgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh6eChib29sNCB2KSB7CisgICAgYm9vbDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54enko
Ym9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueHp5PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHp6
KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wzIG9wZXJhdG9yLnh6dyhib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54enc9KGJvb2w0IHYsIGJv
b2wzIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAg
IHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sMyBvcGVyYXRvci54d3goYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueHd5KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnh3eT0oYm9vbDQgdiwgYm9vbDMgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBj
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnh3eihib29sNCB2KSB7
CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci54d3o9KGJvb2w0IHYsIGJvb2wzIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci54d3coYm9vbDQgdikg
eworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMg
b3BlcmF0b3IueXh4KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl4eShib29sNCB2KSB7CisgICAgYm9vbDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55eHoo
Ym9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueXh6PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICBy
ZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXh3
KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnl4dz0oYm9vbDQgdiwgYm9vbDMgYykgeworICAgIGJvb2w0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAg
cmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl5
eChib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sMyBvcGVyYXRvci55eXkoYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXl6KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9w
ZXJhdG9yLnl5dyhib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55engoYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp4PShi
b29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9
IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXp5KGJvb2w0IHYpIHsKKyAgICBib29sMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnl6eihi
b29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBvcGVyYXRvci55encoYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp3PShib29sNCB2LCBib29s
MyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICBy
ZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgb3BlcmF0b3IueXd4KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl3eD0oYm9vbDQgdiwgYm9v
bDMgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAg
cmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wzIG9wZXJhdG9yLnl3eShib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci55d3ooYm9vbDQgdikgewor
ICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3IueXd6PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueiA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3IueXd3KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9w
ZXJhdG9yLnp4eChib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56eHkoYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh5PShi
b29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenh6KGJvb2w0IHYpIHsKKyAgICBib29sMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp4dyhi
b29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci56eHc9KGJvb2w0IHYsIGJvb2wzIGMpIHsKKyAgICBib29sNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJl
c3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56eXgo
Ym9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3Iuenl4PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICBy
ZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenl5
KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wzIG9wZXJhdG9yLnp5eihib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56eXcoYm9vbDQgdikgewor
ICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3Iuenl3PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenp4KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9w
ZXJhdG9yLnp6eShib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci56enooYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iuenp3KGJv
b2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIG9wZXJhdG9yLnp3eChib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56d3g9KGJvb2w0IHYsIGJvb2wz
IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJl
c3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBvcGVyYXRvci56d3koYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend5PShib29sNCB2LCBib29s
MyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICBy
ZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgb3BlcmF0b3Iuend6KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnp3dyhib29sNCB2KSB7Cisg
ICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVy
YXRvci53eHgoYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iud3h5KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd4eT0oYm9v
bDQgdiwgYm9vbDMgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBj
Lng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnd4eihib29sNCB2KSB7CisgICAgYm9vbDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eHo9KGJv
b2w0IHYsIGJvb2wzIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci53eHcoYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iud3l4KGJv
b2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnd5eD0oYm9vbDQgdiwgYm9vbDMgYykgeworICAgIGJvb2w0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVz
dWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnd5eShi
b29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBvcGVyYXRvci53eXooYm9vbDQgdikgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3l6PShib29sNCB2LCBib29s
MyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICBy
ZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDMgb3BlcmF0b3Iud3l3KGJvb2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9wZXJhdG9yLnd6eChib29sNCB2KSB7Cisg
ICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci53eng9KGJvb2w0IHYsIGJvb2wzIGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci53enkoYm9vbDQgdikgewor
ICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3Iud3p5PShib29sNCB2LCBib29sMyBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iud3p6KGJvb2w0IHYpIHsK
KyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIG9w
ZXJhdG9yLnd6dyhib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci53d3goYm9vbDQgdikgeworICAgIGJvb2wzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgb3BlcmF0b3Iud3d5KGJv
b2w0IHYpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wzIG9wZXJhdG9yLnd3eihib29sNCB2KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBvcGVyYXRvci53d3coYm9vbDQgdikgeworICAg
IGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueHh4eChib29sMiB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHh5KGJvb2wy
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4eXgoYm9vbDIgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueHh5eShib29sMiB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci54eXh4KGJvb2wyIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5eHko
Ym9vbDIgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl5eChib29sMiB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXl5KGJvb2wyIHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnl4eHgoYm9vbDIgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
eXh4eShib29sMiB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHl4KGJvb2wyIHYp
IHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4eXkoYm9vbDIgdikgeworICAgIGJvb2w0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueXl4eChib29sMiB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci55eXh5KGJvb2wyIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5eXgoYm9v
bDIgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXl5eShib29sMiB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnh4eHkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh4
eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHl4KGJvb2wzIHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3IueHh5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci54eHp4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4enkoYm9vbDMg
dikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh6eihib29sMyB2KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBvcGVyYXRvci54eXh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnh5eHkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl4eihi
b29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXl4KGJvb2wzIHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3IueHl5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54
eXp4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5enkoYm9vbDMgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl6eihib29sMyB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci54enh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnh6eHkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp4eihib29s
MyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54enl4KGJvb2wzIHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3IueHp5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54enp4
KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6enkoYm9vbDMgdikgewor
ICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBvcGVyYXRvci55eHh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9y
Lnl4eHkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXh4eihib29sMyB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHl4KGJvb2wzIHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnl4eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3IueXh5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHp4KGJv
b2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4enkoYm9vbDMgdikgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3IueXh6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
NCBvcGVyYXRvci55eXh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5
eHkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXl4eihib29sMyB2KSB7
CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXl4KGJvb2wzIHYpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnl5eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueXl5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXp4KGJvb2wz
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5enkoYm9vbDMgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueXl6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci55enh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl6eHko
Ym9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp4eihib29sMyB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55enl4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnl6eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
eXp5eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55enp4KGJvb2wzIHYp
IHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl6enkoYm9vbDMgdikgeworICAgIGJvb2w0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueXp6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci56eHh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp4eHkoYm9v
bDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh4eihib29sMyB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHl4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnp4eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh5
eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHp4KGJvb2wzIHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp4enkoYm9vbDMgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3Iuenh6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci56eXh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5eHkoYm9vbDMg
dikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl4eihib29sMyB2KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBvcGVyYXRvci56eXl4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnp5eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl5eihi
b29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eXp4KGJvb2wzIHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5enkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3Iuenl6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56
enh4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6eHkoYm9vbDMgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenp4eihib29sMyB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci56enl4KGJvb2wzIHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnp6eXkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenp5eihib29s
MyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56enp4KGJvb2wzIHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6enkoYm9vbDMgdikgeworICAgIGJvb2w0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3Iuenp6eihib29sMyB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHh4
KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4eHkoYm9vbDQgdikgewor
ICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBvcGVyYXRvci54eHh3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9y
Lnh4eXgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh5eShib29sNCB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHl6KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnh4eXcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3IueHh6eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHp5KGJv
b2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4enooYm9vbDQgdikgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh6dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
NCBvcGVyYXRvci54eHd4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh4
d3koYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHh3eihib29sNCB2KSB7
CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eHd3KGJvb2w0IHYpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnh5eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueHl4eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXh6KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5eHcoYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueHl5eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci54eXl5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5eXoo
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl5dyhib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXp4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnh5enkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
eHl6eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXp3KGJvb2w0IHYp
IHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh5enc9KGJvb2w0IHYsIGJvb2w0IGMpIHsK
KyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55
ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXd4KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnh5d3koYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3IueHl3eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54eXd6PShi
b29sNCB2LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1
bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHl3dyhi
b29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54enh4KGJvb2w0IHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6eHkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3IueHp4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54
enh3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6eXgoYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp5eShib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci54enl6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnh6eXcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp5dz0oYm9v
bDQgdiwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBj
Lng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0
LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6engoYm9v
bDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp6eShib29sNCB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci54enp6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnh6encoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHp3
eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54end5KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh6d3k9KGJvb2w0IHYsIGJvb2w0IGMpIHsKKyAg
ICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54end6KGJvb2w0IHYpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnh6d3coYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueHd4eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54d3h5KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh3eHooYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueHd4dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci54d3l4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh3eXko
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHd5eihib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54d3l6PShib29sNCB2LCBib29sNCBjKSB7CisgICAg
Ym9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMu
eTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHd5dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBvcGVyYXRvci54d3p4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9y
Lnh3enkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHd6eT0oYm9vbDQg
diwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7
CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0Lnkg
PSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnh3enooYm9vbDQg
dikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHd6dyhib29sNCB2KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBvcGVyYXRvci54d3d4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnh3d3koYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueHd3eihi
b29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci54d3d3KGJvb2w0IHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3IueXh4eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55
eHh6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4eHcoYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXh5eChib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci55eHl5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnl4eXooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXh5dyhib29s
NCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHp4KGJvb2w0IHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4enkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3IueXh6eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHp3
KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4enc9KGJvb2w0IHYsIGJv
b2w0IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAg
IHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eHd4KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl4d3koYm9vbDQgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3IueXh3eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci55eHd6PShib29sNCB2LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsK
KyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueXh3dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXh4KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5eHkoYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueXl4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci55eXh3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5eXgo
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXl5eShib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXl6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnl5eXcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
eXl6eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXp5KGJvb2w0IHYp
IHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5enooYm9vbDQgdikgeworICAgIGJvb2w0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueXl6dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci55eXd4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl5d3koYm9v
bDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXl3eihib29sNCB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci55eXd3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnl6eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp4
eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55enh6KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl6eHcoYm9vbDQgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3IueXp4dz0oYm9vbDQgdiwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVz
dWx0LnggPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnl6eXgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3IueXp5eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55enl6KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl6eXcoYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3IueXp6eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci55enp5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl6enoo
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp6dyhib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55end4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnl6d3g9KGJvb2w0IHYsIGJvb2w0IGMpIHsKKyAgICBib29sNCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3Vs
dC53ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBvcGVyYXRvci55end5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9y
Lnl6d3ooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXp3dyhib29sNCB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55d3h4KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnl3eHkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3IueXd4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55d3h6PShi
b29sNCB2LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9
IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1
bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXd4dyhi
b29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55d3l4KGJvb2w0IHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl3eXkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3IueXd5eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci55
d3l3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl3engoYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXd6eD0oYm9vbDQgdiwgYm9vbDQgYykgewor
ICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0Lncg
PSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl3enkoYm9vbDQgdikgeworICAgIGJvb2w0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3IueXd6eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci55d3p3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnl3d3goYm9v
bDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3IueXd3eShib29sNCB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci55d3d6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnl3d3coYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh4
eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHh5KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp4eHooYm9vbDQgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3Iuenh4dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci56eHl4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp4eXkoYm9vbDQg
dikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh5eihib29sNCB2KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBvcGVyYXRvci56eHl3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnp4eXc9KGJvb2w0IHYsIGJvb2w0IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC55ID0g
Yy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci56eHp4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp4enko
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh6eihib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHp3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnp4d3goYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
enh3eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHd5PShib29sNCB2
LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsK
KyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueSA9
IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenh3eihib29sNCB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eHd3KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnp5eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3Iuenl4eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eXh6KGJv
b2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5eHcoYm9vbDQgdikgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl4dz0oYm9vbDQgdiwgYm9vbDQgYykgeworICAgIGJv
b2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7
CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5eXgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3Iuenl5eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56
eXl6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5eXcoYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl6eChib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci56eXp5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnp5enooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl6dyhib29s
NCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56eXd4KGJvb2w0IHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp5d3g9KGJvb2w0IHYsIGJvb2w0IGMpIHsKKyAgICBib29s
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55Owor
ICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci56eXd5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnp5d3ooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenl3
dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56enh4KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6eHkoYm9vbDQgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3Iuenp4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci56enh3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6eXgoYm9vbDQg
dikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenp5eShib29sNCB2KSB7CisgICAgYm9v
bDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBvcGVyYXRvci56enl6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnp6eXcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenp6eChi
b29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56enp5KGJvb2w0IHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6enooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3Iuenp6dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56
end4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp6d3koYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuenp3eihib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci56end3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnp3eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend4eShib29s
NCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56d3h5PShib29sNCB2LCBib29sNCBj
KSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1
bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend4eihib29sNCB2KSB7CisgICAg
Ym9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sNCBvcGVyYXRvci56d3h3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnp3eXgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend5
eD0oYm9vbDQgdiwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAg
cmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp3
eXkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend5eihib29sNCB2KSB7
CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56d3l3KGJvb2w0IHYpIHsKKyAgICBib29sNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2w0IG9wZXJhdG9yLnp3engoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0
b3Iuend6eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci56d3p6KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp3encoYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3Iuend3eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci56d3d5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnp3d3oo
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iuend3dyhib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eHh4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnd4eHkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
d3h4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eHh3KGJvb2w0IHYp
IHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd4eXgoYm9vbDQgdikgeworICAgIGJvb2w0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgb3BlcmF0b3Iud3h5eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVy
YXRvci53eHl6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd4eXo9KGJv
b2w0IHYsIGJvb2w0IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3Vs
dC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eHl3KGJv
b2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd4engoYm9vbDQgdikgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3h6eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
NCBvcGVyYXRvci53eHp5PShib29sNCB2LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQu
eiA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3Iud3h6eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53
eHp3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd4d3goYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3h3eShib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci53eHd6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnd4d3coYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3l4eChib29s
NCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eXh5KGJvb2w0IHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd5eHooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3Iud3l4ej0oYm9vbDQgdiwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0
IG9wZXJhdG9yLnd5eHcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3l5
eChib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eXl5KGJvb2w0IHYpIHsK
KyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd5eXooYm9vbDQgdikgeworICAgIGJvb2w0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbDQgb3BlcmF0b3Iud3l5dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRv
ci53eXp4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd5eng9KGJvb2w0
IHYsIGJvb2w0IGMpIHsKKyAgICBib29sNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54
OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC54
ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eXp5KGJvb2w0
IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd5enooYm9vbDQgdikgeworICAgIGJv
b2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbDQgb3BlcmF0b3Iud3l6dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBv
cGVyYXRvci53eXd4KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd5d3ko
Ym9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3l3eihib29sNCB2KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53eXd3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2w0IG9wZXJhdG9yLnd6eHgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iu
d3p4eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53enh5PShib29sNCB2
LCBib29sNCBjKSB7CisgICAgYm9vbDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsK
KyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueSA9
IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3p4eihib29sNCB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53enh3KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnd6eXgoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3Iud3p5eD0oYm9vbDQgdiwgYm9vbDQgYykgeworICAgIGJvb2w0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBj
Lno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9w
ZXJhdG9yLnd6eXkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3p5eihi
b29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53enl3KGJvb2w0IHYpIHsKKyAg
ICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd6engoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgb3BlcmF0b3Iud3p6eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53
enp6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd6encoYm9vbDQgdikg
eworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3p3eChib29sNCB2KSB7CisgICAgYm9vbDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sNCBvcGVyYXRvci53end5KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJh
dG9yLnd6d3ooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3p3dyhib29s
NCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53d3h4KGJvb2w0IHYpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd3eHkoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQg
b3BlcmF0b3Iud3d4eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53d3h3
KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd3eXgoYm9vbDQgdikgewor
ICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3d5eShib29sNCB2KSB7CisgICAgYm9vbDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citi
b29sNCBvcGVyYXRvci53d3l6KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9y
Lnd3eXcoYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3d6eChib29sNCB2
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53d3p5KGJvb2w0IHYpIHsKKyAgICBib29s
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2w0IG9wZXJhdG9yLnd3enooYm9vbDQgdikgeworICAgIGJvb2w0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgb3Bl
cmF0b3Iud3d6dyhib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBvcGVyYXRvci53d3d4KGJv
b2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IG9wZXJhdG9yLnd3d3koYm9vbDQgdikgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorYm9vbDQgb3BlcmF0b3Iud3d3eihib29sNCB2KSB7CisgICAgYm9vbDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
NCBvcGVyYXRvci53d3d3KGJvb2w0IHYpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci54
eCh1Y2hhcjIgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRv
ci54eSh1Y2hhcjIgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVy
YXRvci54eT0odWNoYXIyIHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXIyIHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMiBvcGVyYXRvci55eCh1Y2hhcjIgdikgeworICAgIHVjaGFyMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55eD0odWNoYXIyIHYsIHVjaGFyMiBjKSB7CisgICAg
dWNoYXIyIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBj
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55eSh1Y2hhcjIgdikg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci54eCh1Y2hhcjMg
dikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci54eSh1Y2hh
cjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54eT0o
dWNoYXIzIHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyMiBvcGVyYXRvci54eih1Y2hhcjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyMyBvcGVyYXRvci54ej0odWNoYXIzIHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXIzIHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55eCh1Y2hhcjMgdikgeworICAgIHVj
aGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eD0odWNoYXIzIHYsIHVjaGFy
MiBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAg
cmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55
eSh1Y2hhcjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRv
ci55eih1Y2hhcjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVy
YXRvci55ej0odWNoYXIzIHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMiBvcGVyYXRvci56eCh1Y2hhcjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci56eD0odWNoYXIzIHYsIHVjaGFyMiBjKSB7CisgICAg
dWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBj
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci56eSh1Y2hhcjMgdikg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci56eT0odWNoYXIz
IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBj
Lng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBv
cGVyYXRvci56eih1Y2hhcjMgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
MiBvcGVyYXRvci54eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyMiBvcGVyYXRvci54eSh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci54eT0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci54eih1Y2hhcjQgdikgeworICAgIHVj
aGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54ej0odWNoYXI0IHYsIHVjaGFy
MiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAg
cmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci54
dyh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci54dz0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAg
cmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyMiBvcGVyYXRvci55eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci55eD0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNo
YXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55eSh1Y2hhcjQgdikgewor
ICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci55eih1Y2hhcjQgdikg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55ej0odWNoYXI0
IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBj
Lng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBv
cGVyYXRvci55dyh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci55dz0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci56eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMiBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eD0odWNoYXI0IHYsIHVjaGFyMiBjKSB7
CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0
LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci56eSh1Y2hh
cjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eT0o
dWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyMiBvcGVyYXRvci56eih1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyMiBvcGVyYXRvci56dyh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci56dz0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci53eCh1Y2hhcjQgdikgeworICAg
IHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eD0odWNoYXI0IHYsIHVj
aGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7Cisg
ICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRv
ci53eSh1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci53eT0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMiBvcGVyYXRvci53eih1Y2hhcjQgdikgeworICAgIHVjaGFyMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53ej0odWNoYXI0IHYsIHVjaGFyMiBjKSB7CisgICAg
dWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBj
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMiBvcGVyYXRvci53dyh1Y2hhcjQgdikg
eworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54eHgodWNoYXIy
IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjMgb3BlcmF0b3IueHh5KHVjaGFyMiB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnh5eCh1Y2hhcjIgdikgewor
ICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBv
cGVyYXRvci54eXkodWNoYXIyIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXh4KHVjaGFyMiB2KSB7CisgICAgdWNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9y
Lnl4eSh1Y2hhcjIgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eXgodWNoYXIyIHYpIHsKKyAgICB1Y2hhcjMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXl5KHVj
aGFyMiB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXIzIG9wZXJhdG9yLnh4eCh1Y2hhcjMgdikgeworICAgIHVjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54eHkodWNoYXIzIHYp
IHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjMgb3BlcmF0b3IueHh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnh5eCh1Y2hhcjMgdikgeworICAg
IHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVy
YXRvci54eXkodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueHl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnh5
ej0odWNoYXIzIHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54engodWNoYXIzIHYpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3Bl
cmF0b3IueHp5KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnh6eT0odWNoYXIzIHYsIHVjaGFyMyBjKSB7
CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0
LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyMyBvcGVyYXRvci54enoodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXh4KHVjaGFyMyB2KSB7Cisg
ICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9w
ZXJhdG9yLnl4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eHoodWNoYXIzIHYpIHsKKyAgICB1Y2hh
cjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iu
eXh6PSh1Y2hhcjMgdiwgdWNoYXIzIGMpIHsKKyAgICB1Y2hhcjMgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnl5eCh1Y2hhcjMgdikgewor
ICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBv
cGVyYXRvci55eXkodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXl6KHVjaGFyMyB2KSB7CisgICAgdWNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9y
Lnl6eCh1Y2hhcjMgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eng9KHVjaGFyMyB2LCB1Y2hhcjMgYykgeworICAg
IHVjaGFyMyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMg
b3BlcmF0b3IueXp5KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnl6eih1Y2hhcjMgdikgeworICAgIHVj
aGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRv
ci56eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenh5KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnp4eT0o
dWNoYXIzIHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci56eHoodWNoYXIzIHYpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0
b3Iuenl4KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnp5eD0odWNoYXIzIHYsIHVjaGFyMyBjKSB7Cisg
ICAgdWNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lnkg
PSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
MyBvcGVyYXRvci56eXkodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenl6KHVjaGFyMyB2KSB7CisgICAg
dWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJh
dG9yLnp6eCh1Y2hhcjMgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci56enkodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenp6
KHVjaGFyMyB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXIzIG9wZXJhdG9yLnh4eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54eHkodWNoYXI0
IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjMgb3BlcmF0b3IueHh6KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnh4dyh1Y2hhcjQgdikgewor
ICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBv
cGVyYXRvci54eXgodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueHl5KHVjaGFyNCB2KSB7CisgICAgdWNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9y
Lnh5eih1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXo9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAg
IHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0g
Yy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMg
b3BlcmF0b3IueHl3KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5dz0odWNoYXI0IHYsIHVjaGFyMyBj
KSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVz
dWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyMyBvcGVyYXRvci54engodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueHp5KHVjaGFyNCB2KSB7
CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnh6eT0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0
LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54enoodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjMgb3BlcmF0b3IueHp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6dz0odWNoYXI0IHYs
IHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7
CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci54d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueHd5KHVj
aGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnh3eT0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7Cisg
ICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRv
ci54d3oodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHd6PSh1Y2hhcjQgdiwgdWNoYXIzIGMpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9
IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIz
IG9wZXJhdG9yLnh3dyh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eHgodWNoYXI0IHYpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0
b3IueXh5KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnl4eih1Y2hhcjQgdikgeworICAgIHVjaGFyMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHo9
KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXh3KHVjaGFyNCB2KSB7CisgICAg
dWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnl4dz0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBj
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55eXgodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjMgb3BlcmF0b3IueXl5KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnl5eih1Y2hhcjQgdikgeworICAg
IHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVy
YXRvci55eXcodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXp4KHVjaGFyNCB2KSB7CisgICAgdWNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6
eD0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55enkodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3Bl
cmF0b3IueXp6KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnl6dyh1Y2hhcjQgdikgeworICAgIHVjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55
enc9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3IueXd4KHVjaGFyNCB2KSB7Cisg
ICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnl3eD0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci55d3kodWNoYXI0
IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjMgb3BlcmF0b3IueXd6KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl3ej0odWNoYXI0IHYsIHVj
aGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7Cisg
ICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyMyBvcGVyYXRvci55d3codWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenh4KHVjaGFy
NCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXIzIG9wZXJhdG9yLnp4eSh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHk9KHVjaGFyNCB2LCB1
Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54Owor
ICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenh6KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnp4dyh1Y2hh
cjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci56eHc9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iu
enl4KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5eD0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAg
dWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBj
Lnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBv
cGVyYXRvci56eXkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenl6KHVjaGFyNCB2KSB7CisgICAgdWNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9y
Lnp5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXc9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAg
IHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0g
Yy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMg
b3BlcmF0b3Iuenp4KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnp6eSh1Y2hhcjQgdikgeworICAgIHVj
aGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRv
ci56enoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuenp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnp3eCh1
Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci56d3g9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFy
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55Owor
ICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0
b3Iuend5KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp3eT0odWNoYXI0IHYsIHVjaGFyMyBjKSB7Cisg
ICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lncg
PSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
MyBvcGVyYXRvci56d3oodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iuend3KHVjaGFyNCB2KSB7CisgICAg
dWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJh
dG9yLnd4eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci53eHkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h5
PSh1Y2hhcjQgdiwgdWNoYXIzIGMpIHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnd4eih1Y2hhcjQgdikgeworICAg
IHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci53eHo9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iud3h3KHVjaGFyNCB2
KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXIzIG9wZXJhdG9yLnd5eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eXg9KHVjaGFyNCB2LCB1Y2hh
cjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAg
IHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjMgb3BlcmF0b3Iud3l5KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnd5eih1Y2hhcjQg
dikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci53eXo9KHVjaGFyNCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iud3l3
KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXIzIG9wZXJhdG9yLnd6eCh1Y2hhcjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eng9KHVjaGFy
NCB2LCB1Y2hhcjMgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0g
Yy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iud3p5KHVjaGFyNCB2KSB7CisgICAgdWNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd6
eT0odWNoYXI0IHYsIHVjaGFyMyBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci53enoodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgb3Bl
cmF0b3Iud3p3KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnd3eCh1Y2hhcjQgdikgeworICAgIHVjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBvcGVyYXRvci53
d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjMgb3BlcmF0b3Iud3d6KHVjaGFyNCB2KSB7CisgICAgdWNoYXIzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG9wZXJhdG9yLnd3dyh1Y2hh
cjQgdikgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci54eHh4KHVjaGFyMiB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnh4eHkodWNoYXIyIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHh5
eCh1Y2hhcjIgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHl5KHVjaGFyMiB2
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5eHgodWNoYXIyIHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl4eSh1Y2hhcjIgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci54eXl4KHVjaGFyMiB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnh5eXkodWNoYXIyIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh4eCh1
Y2hhcjIgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHh5KHVjaGFyMiB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl4eXgodWNoYXIyIHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh5eSh1Y2hhcjIgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci55eXh4KHVjaGFyMiB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnl5eHkodWNoYXIyIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl5eCh1Y2hh
cjIgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXl5KHVjaGFyMiB2KSB7Cisg
ICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgb3BlcmF0b3IueHh4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci54eHh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4
eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHh5eSh1Y2hhcjMg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHl6KHVjaGFyMyB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4engodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjQgb3BlcmF0b3IueHh6eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci54eHp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5eHgo
dWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl4eSh1Y2hhcjMgdikg
eworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXh6KHVjaGFyMyB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnh5eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3IueHl5eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci54eXl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5engodWNo
YXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl6eSh1Y2hhcjMgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnh6eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3IueHp4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54
enh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6eXgodWNoYXIz
IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHp5eSh1Y2hhcjMgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54enl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnh6engodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3IueHp6eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54enp6
KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl4eHgodWNoYXIzIHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh4eSh1Y2hhcjMgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnl4eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3IueXh5eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHl6KHVj
aGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl4engodWNoYXIzIHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh6eSh1Y2hhcjMgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci55eHp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnl5eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
eXl4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXh6KHVjaGFy
MyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl5eXgodWNoYXIzIHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl5eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci55eXl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnl5engodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl6
eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXp6KHVjaGFyMyB2
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6eHgodWNoYXIzIHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci55enh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnl6eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp5eSh1
Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55enl6KHVjaGFyMyB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6engodWNoYXIzIHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp6eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci55enp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnp4eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh4eSh1Y2hh
cjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHh6KHVjaGFyMyB2KSB7Cisg
ICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgb3BlcmF0b3Iuenh5eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci56eHl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4
engodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh6eSh1Y2hhcjMg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHp6KHVjaGFyMyB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5eHgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjQgb3BlcmF0b3Iuenl4eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci56eXh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5eXgo
dWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenl5eSh1Y2hhcjMgdikg
eworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXl6KHVjaGFyMyB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnp5engodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3Iuenl6eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci56eXp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp6eHgodWNo
YXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenp4eSh1Y2hhcjMgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56enh6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnp6eXgodWNoYXIzIHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3Iuenp5eSh1Y2hhcjMgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56
enl6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp6engodWNoYXIz
IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenp6eSh1Y2hhcjMgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56enp6KHVjaGFyMyB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnh4eHgodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3IueHh4eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHh6
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4eHcodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHh5eCh1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHl5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnh4eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3IueHh5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHp4KHVj
aGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4enkodWNoYXI0IHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHh6eih1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci54eHp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnh4d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
eHh3eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eHd6KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh4d3codWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl4eCh1Y2hhcjQgdikgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci54eXh5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnh5eHoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl4
dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXl4KHVjaGFyNCB2
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5eXkodWNoYXI0IHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl5eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci54eXl3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnh5engodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl6eSh1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXp6KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh5encodWNoYXI0IHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHl6dz0odWNoYXI0IHYsIHVjaGFyNCBjKSB7CisgICAgdWNo
YXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7
CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXd4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnh5d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3IueHl3eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54eXd6
PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAg
ICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnh5d3codWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHp4eCh1Y2hh
cjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54enh5KHVjaGFyNCB2KSB7Cisg
ICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6eHoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgb3BlcmF0b3IueHp4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci54enl4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6
eXkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHp5eih1Y2hhcjQg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54enl3KHVjaGFyNCB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6eXc9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAg
IHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHp6eCh1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci54enp5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnh6enoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
eHp6dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54end4KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh6d3kodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHp3eT0odWNoYXI0IHYsIHVjaGFyNCBjKSB7Cisg
ICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0Lnog
PSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnkgPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54end6KHVjaGFyNCB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnh6d3codWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3IueHd4eCh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci54d3h5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh3eHoodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHd4dyh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54d3l4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnh3eXkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3IueHd5eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54
d3l6PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsK
KyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnh3eXcodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHd6eCh1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54d3p5KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh3enk9KHVjaGFyNCB2LCB1Y2hhcjQgYykg
eworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3Vs
dC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueHd6eih1Y2hhcjQgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54d3p3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnh3d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3IueHd3eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci54d3d6
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnh3d3codWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh4eCh1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHh5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnl4eHoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3IueXh4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHl4KHVj
aGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl4eXkodWNoYXI0IHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh5eih1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci55eHl3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnl4engodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
eXh6eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHp6KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl4encodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXh6dz0odWNoYXI0IHYsIHVjaGFyNCBjKSB7Cisg
ICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0Lngg
PSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eHd4KHVjaGFyNCB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnl4d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3IueXh3eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci55eHd6PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMu
ejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnl4d3codWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl4
eCh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXh5KHVjaGFyNCB2
KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl5eHoodWNoYXI0IHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci55eXl4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnl5eXkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl5eih1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXl3KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl5engodWNoYXI0IHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl6eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci55eXp6KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnl5encodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXl3eCh1Y2hh
cjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55eXd5KHVjaGFyNCB2KSB7Cisg
ICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl5d3oodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1Y2hhcjQgb3BlcmF0b3IueXl3dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci55enh4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6
eHkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp4eih1Y2hhcjQg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55enh3KHVjaGFyNCB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6eHc9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAg
IHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp5eCh1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci55enl5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnl6eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
eXp5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55enp4KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6enkodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp6eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci55enp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnl6d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp3
eD0odWNoYXI0IHYsIHVjaGFyNCBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7Cisg
ICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci55end5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl6d3oodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXp3dyh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55d3h4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnl3eHkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3IueXd4eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55
d3h6PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsK
KyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnl3eHcodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXd5eCh1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55d3l5KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl3eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXd5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci55d3p4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnl3eng9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56
OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3IueXd6eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci55d3p6
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnl3encodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3IueXd3eCh1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci55d3d5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnl3d3oodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3IueXd3dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHh4KHVj
aGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4eHkodWNoYXI0IHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh4eih1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci56eHh3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnp4eXgodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
enh5eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHl6KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4eXcodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh5dz0odWNoYXI0IHYsIHVjaGFyNCBjKSB7Cisg
ICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lngg
PSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHp4KHVjaGFyNCB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnp4enkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3Iuenh6eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci56eHp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4d3godWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh3eSh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eHd5PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQu
eCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp4d3oodWNoYXI0IHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenh3dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci56eXh4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnp5eHkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenl4eih1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXh3KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5eHc9KHVjaGFyNCB2LCB1Y2hhcjQgYykg
eworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3Vs
dC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenl5eCh1Y2hhcjQgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXl5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnp5eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3Iuenl5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXp4
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5enkodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenl6eih1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci56eXp3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnp5d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3Iuenl3eD0odWNoYXI0IHYsIHVjaGFyNCBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBj
Lno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci56eXd5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp5
d3oodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenl3dyh1Y2hhcjQg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56enh4KHVjaGFyNCB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp6eHkodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjQgb3BlcmF0b3Iuenp4eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci56enh3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp6eXgo
dWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenp5eSh1Y2hhcjQgdikg
eworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56enl6KHVjaGFyNCB2KSB7CisgICAgdWNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG9wZXJhdG9yLnp6eXcodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3Iuenp6eCh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci56enp5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp6enoodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuenp6dyh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56end4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnp6d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3Iuenp3eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56
end3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp3eHgodWNoYXI0
IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuend4eSh1Y2hhcjQgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56d3h5PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9
IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp3eHoodWNoYXI0IHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuend4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci56d3l4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnp3eXg9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56
OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3Iuend5eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56d3l6
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp3eXcodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuend6eCh1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci56d3p5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnp3enoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3Iuend6dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci56d3d4KHVj
aGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnp3d3kodWNoYXI0IHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iuend3eih1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci56d3d3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnd4eHgodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
d3h4eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eHh6KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd4eHcodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h5eCh1Y2hhcjQgdikgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci53eHl5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnd4eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h5
ej0odWNoYXI0IHYsIHVjaGFyNCBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7Cisg
ICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci53eHl3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd4engodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h6eSh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eHp5PSh1Y2hhcjQgdiwgdWNoYXI0IGMpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd4enoodWNoYXI0IHYpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h6dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vj
aGFyNCBvcGVyYXRvci53eHd4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJh
dG9yLnd4d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3h3eih1
Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eHd3KHVjaGFyNCB2KSB7
CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd5eHgodWNoYXI0IHYpIHsKKyAgICB1Y2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3l4eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
NCBvcGVyYXRvci53eXh6KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9y
Lnd5eHo9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56
OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3Iud3l4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eXl4
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd5eXkodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3l5eih1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci53eXl3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnd5engodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3Iud3l6eD0odWNoYXI0IHYsIHVjaGFyNCBjKSB7CisgICAgdWNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBj
Lno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBv
cGVyYXRvci53eXp5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd5
enoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3l6dyh1Y2hhcjQg
dikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53eXd4KHVjaGFyNCB2KSB7CisgICAg
dWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd5d3kodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
Y2hhcjQgb3BlcmF0b3Iud3l3eih1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVy
YXRvci53eXd3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd6eHgo
dWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3p4eSh1Y2hhcjQgdikg
eworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53enh5PSh1Y2hhcjQgdiwgdWNoYXI0IGMp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1
bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd6eHoodWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3p4dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VjaGFyNCBvcGVyYXRvci53enl4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9w
ZXJhdG9yLnd6eXg9KHVjaGFyNCB2LCB1Y2hhcjQgYykgeworICAgIHVjaGFyNCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC55
ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgb3BlcmF0b3Iud3p5eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRv
ci53enl6KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd6eXcodWNo
YXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3p6eCh1Y2hhcjQgdikgewor
ICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53enp5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWNoYXI0IG9wZXJhdG9yLnd6enoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
b3BlcmF0b3Iud3p6dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53
end4KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd6d3kodWNoYXI0
IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3p3eih1Y2hhcjQgdikgeworICAg
IHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53end3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWNoYXI0IG9wZXJhdG9yLnd3eHgodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3Bl
cmF0b3Iud3d4eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53d3h6
KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd3eHcodWNoYXI0IHYp
IHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3d5eCh1Y2hhcjQgdikgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VjaGFyNCBvcGVyYXRvci53d3l5KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXI0IG9wZXJhdG9yLnd3eXoodWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0
b3Iud3d5dyh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53d3p4KHVj
aGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd3enkodWNoYXI0IHYpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iud3d6eih1Y2hhcjQgdikgeworICAgIHVjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VjaGFyNCBvcGVyYXRvci53d3p3KHVjaGFyNCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0
IG9wZXJhdG9yLnd3d3godWNoYXI0IHYpIHsKKyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgb3BlcmF0b3Iu
d3d3eSh1Y2hhcjQgdikgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBvcGVyYXRvci53d3d6KHVjaGFy
NCB2KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IG9wZXJhdG9yLnd3d3codWNoYXI0IHYpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnh4KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDIg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnh5KHVzaG9ydDIgdikgeworICAgIHVz
aG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnh5PSh1c2hvcnQyIHYsIHVz
aG9ydDIgYykgeworICAgIHVzaG9ydDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsK
KyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVy
YXRvci55eCh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
MiBvcGVyYXRvci55eD0odXNob3J0MiB2LCB1c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQyIHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IueXkodXNob3J0MiB2KSB7CisgICAgdXNo
b3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IueHgodXNob3J0MyB2KSB7Cisg
ICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IueHkodXNob3J0MyB2
KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueHk9KHVz
aG9ydDMgdiwgdXNob3J0MiBjKSB7CisgICAgdXNob3J0MyByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQyIG9wZXJhdG9yLnh6KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh6PSh1c2hvcnQzIHYsIHVzaG9ydDIgYykgeworICAgIHVz
aG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVyYXRvci55eCh1c2hvcnQzIHYp
IHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55eD0odXNo
b3J0MyB2LCB1c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDIgb3BlcmF0b3IueXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDIgb3BlcmF0b3IueXoodXNob3J0MyB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXo9KHVzaG9ydDMgdiwgdXNob3J0MiBjKSB7Cisg
ICAgdXNob3J0MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56
ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnp4KHVzaG9y
dDMgdikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnp4
PSh1c2hvcnQzIHYsIHVzaG9ydDIgYykgeworICAgIHVzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0MiBvcGVyYXRvci56eSh1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0MyBvcGVyYXRvci56eT0odXNob3J0MyB2LCB1c2hvcnQyIGMpIHsKKyAg
ICB1c2hvcnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lnkg
PSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IuenoodXNob3J0
MyB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IueHgo
dXNob3J0NCB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0
b3IueHkodXNob3J0NCB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3IueHk9KHVzaG9ydDQgdiwgdXNob3J0MiBjKSB7CisgICAgdXNob3J0NCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnh6KHVzaG9ydDQgdikgeworICAgIHVzaG9y
dDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6PSh1c2hvcnQ0IHYsIHVzaG9y
dDIgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAg
ICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVyYXRv
ci54dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci54dz0odXNob3J0NCB2LCB1c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3IueXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0
MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXg9KHVzaG9ydDQgdiwgdXNob3J0
MiBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAg
IHJlc3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9y
Lnl5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9w
ZXJhdG9yLnl6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnl6PSh1c2hvcnQ0IHYsIHVzaG9ydDIgYykgeworICAgIHVzaG9ydDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVyYXRvci55dyh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55dz0odXNob3J0NCB2LCB1
c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7
CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3Bl
cmF0b3IuengodXNob3J0NCB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3Iueng9KHVzaG9ydDQgdiwgdXNob3J0MiBjKSB7CisgICAgdXNob3J0NCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG9wZXJhdG9yLnp5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5PSh1c2hvcnQ0IHYsIHVz
aG9ydDIgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsK
KyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVy
YXRvci56eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
MiBvcGVyYXRvci56dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci56dz0odXNob3J0NCB2LCB1c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgb3BlcmF0b3Iud3godXNob3J0NCB2KSB7Cisg
ICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3g9KHVzaG9ydDQg
diwgdXNob3J0MiBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQy
IG9wZXJhdG9yLnd5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDIgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnd5PSh1c2hvcnQ0IHYsIHVzaG9ydDIgYykgeworICAgIHVzaG9ydDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBvcGVyYXRvci53eih1c2hvcnQ0IHYpIHsKKyAg
ICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53ej0odXNob3J0NCB2
LCB1c2hvcnQyIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBj
Lng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIg
b3BlcmF0b3Iud3codXNob3J0NCB2KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDMgb3BlcmF0b3IueHh4KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh4eSh1c2hvcnQyIHYp
IHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0MyBvcGVyYXRvci54eXgodXNob3J0MiB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueHl5KHVzaG9ydDIgdikg
eworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQzIG9wZXJhdG9yLnl4eCh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55eHkodXNob3J0MiB2KSB7
CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDMgb3BlcmF0b3IueXl4KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnl5eSh1c2hvcnQyIHYpIHsK
KyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
MyBvcGVyYXRvci54eHgodXNob3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueHh5KHVzaG9ydDMgdikgewor
ICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQz
IG9wZXJhdG9yLnh4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54eXgodXNob3J0MyB2KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMg
b3BlcmF0b3IueHl5KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh5eih1c2hvcnQzIHYpIHsKKyAg
ICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBv
cGVyYXRvci54eXo9KHVzaG9ydDMgdiwgdXNob3J0MyBjKSB7CisgICAgdXNob3J0MyByZXN1bHQg
PSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3Vs
dC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh6eCh1
c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0MyBvcGVyYXRvci54enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueHp5PSh1
c2hvcnQzIHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54enoodXNob3J0MyB2KSB7Cisg
ICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMg
b3BlcmF0b3IueXh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnl4eSh1c2hvcnQzIHYpIHsKKyAg
ICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBv
cGVyYXRvci55eHoodXNob3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXh6PSh1c2hvcnQzIHYsIHVzaG9y
dDMgYykgeworICAgIHVzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAg
ICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0MyBvcGVyYXRvci55eXgodXNob3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXl5KHVz
aG9ydDMgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnl5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55engodXNo
b3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDMgb3BlcmF0b3IueXp4PSh1c2hvcnQzIHYsIHVzaG9ydDMgYykgeworICAgIHVz
aG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMu
eTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBv
cGVyYXRvci55enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXp6KHVzaG9ydDMgdikgeworICAg
IHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9w
ZXJhdG9yLnp4eCh1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56eHkodXNob3J0MyB2KSB7CisgICAg
dXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3Bl
cmF0b3Iuenh5PSh1c2hvcnQzIHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDMgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQu
eSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56eHoodXNo
b3J0MyB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDMgb3BlcmF0b3Iuenl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnp5eD0odXNo
b3J0MyB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iuenl5KHVzaG9ydDMgdikgeworICAg
IHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9w
ZXJhdG9yLnp5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56engodXNob3J0MyB2KSB7CisgICAg
dXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3Bl
cmF0b3Iuenp5KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnp6eih1c2hvcnQzIHYpIHsKKyAgICB1
c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci54eHgodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueHh5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnh4eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54eHcodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0
b3IueHl4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hv
cnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRv
ci54eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl6PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykg
eworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1
bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0MyBvcGVyYXRvci54eXcodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl3PSh1c2hvcnQ0
IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54engodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0
b3IueHp5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6eT0odXNob3J0NCB2LCB1c2hvcnQzIGMp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3IueHp6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnh6dyh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci54enc9KHVzaG9ydDQgdiwgdXNob3J0MyBjKSB7CisgICAgdXNob3J0
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55Owor
ICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnh3eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54d3kodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueHd5PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci54d3oodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3IueHd6PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9y
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsK
KyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci54d3codXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXh4KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnl4eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55eHoodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueXh6PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55eHcodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3IueXh3PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9y
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsK
KyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci55eXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXl5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnl5eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55eXcodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0
b3IueXp4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6eD0odXNob3J0NCB2LCB1c2hvcnQzIGMp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3IueXp5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnl6eih1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0MyBvcGVyYXRvci55encodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXp3PSh1c2hvcnQ0
IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9
IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55d3godXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueXd4PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci55d3kodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3IueXd6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3ej0odXNob3J0
NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3IueXd3KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnp4eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56eHkodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3Iuenh5PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9ydDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56eHoodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3Iuenh3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4dz0odXNob3J0
NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iuenl4KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnp5eD0odXNob3J0NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iuenl5KHVzaG9y
dDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQzIG9wZXJhdG9yLnp5eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56eXcodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3Iuenl3PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9y
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci56engodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iuenp5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnp6eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci56encodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0
b3Iuend4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3eD0odXNob3J0NCB2LCB1c2hvcnQzIGMp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVz
dWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3Iuend5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3eT0odXNob3J0
NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iuend6KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnp3dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci53eHgodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0
b3Iud3h5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4eT0odXNob3J0NCB2LCB1c2hvcnQzIGMp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVz
dWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgb3BlcmF0b3Iud3h6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4ej0odXNob3J0
NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lncg
PSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iud3h3KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnd5eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eXg9KHVzaG9ydDQgdiwgdXNob3J0MyBj
KSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJl
c3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQzIG9wZXJhdG9yLnd5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci53eXoodXNob3J0
NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3Iud3l6PSh1c2hvcnQ0IHYsIHVzaG9ydDMgYykgeworICAgIHVzaG9y
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci53eXcodXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iud3p4KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnd6eD0odXNob3J0NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iud3p5KHVzaG9y
dDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnd6eT0odXNob3J0NCB2LCB1c2hvcnQzIGMpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7
CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3Bl
cmF0b3Iud3p6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJhdG9yLnd6dyh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVy
YXRvci53d3godXNob3J0NCB2KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgb3BlcmF0b3Iud3d5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG9wZXJh
dG9yLnd3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBvcGVyYXRvci53d3codXNob3J0NCB2KSB7CisgICAgdXNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueHh4eCh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eHh5
KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4eXgodXNob3J0
MiB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh5eSh1c2hvcnQyIHYpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXh4KHVzaG9ydDIgdikgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5eHkodXNob3J0MiB2KSB7CisgICAgdXNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3IueHl5eCh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci54eXl5KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnl4eHgodXNob3J0MiB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXh4
eSh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eHl4KHVzaG9y
dDIgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4eXkodXNob3J0MiB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl4eCh1c2hvcnQyIHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci55eXh5KHVzaG9ydDIgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnl5eXgodXNob3J0MiB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3IueXl5eSh1c2hvcnQyIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci54eHh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4
eHkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh4eih1c2hv
cnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eHl4KHVzaG9ydDMgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4eXkodXNob3J0MyB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci54eHp4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnh4enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3IueHh6eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54
eXh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5eHkodXNo
b3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl4eih1c2hvcnQzIHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXl4KHVzaG9ydDMgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3IueHl5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci54eXp4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnh5enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
eHl6eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54enh4KHVz
aG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6eHkodXNob3J0MyB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHp4eih1c2hvcnQzIHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54enl4KHVzaG9ydDMgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3IueHp5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci54enp4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnh6enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHp6eih1
c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eHh4KHVzaG9ydDMg
dikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4eHkodXNob3J0MyB2KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXh4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0NCBvcGVyYXRvci55eHl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnl4eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3IueXh5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci55eHp4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4enko
dXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXh6eih1c2hvcnQz
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eXh4KHVzaG9ydDMgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl5eHkodXNob3J0MyB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci55eXl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnl5eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueXl5eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eXp4
KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl5enkodXNob3J0
MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl6eih1c2hvcnQzIHYpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55enh4KHVzaG9ydDMgdikgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6eHkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3IueXp4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci55enl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnl6eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXp5
eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55enp4KHVzaG9y
dDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6enkodXNob3J0MyB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXp6eih1c2hvcnQzIHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci56eHh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnp4eHkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3Iuenh4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci56eHl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4
eXkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenh5eih1c2hv
cnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eHp4KHVzaG9ydDMgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4enkodXNob3J0MyB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenh6eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci56eXh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnp5eHkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3Iuenl4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56
eXl4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5eXkodXNo
b3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenl5eih1c2hvcnQzIHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eXp4KHVzaG9ydDMgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3Iuenl6eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci56enh4KHVzaG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnp6eHkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
enp4eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56enl4KHVz
aG9ydDMgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp6eXkodXNob3J0MyB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenp5eih1c2hvcnQzIHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56enp4KHVzaG9ydDMgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp6enkodXNob3J0MyB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3Iuenp6eih1c2hvcnQzIHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci54eHh4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnh4eHkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh4eih1
c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eHh3KHVzaG9ydDQg
dikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4eXgodXNob3J0NCB2KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0NCBvcGVyYXRvci54eHl6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnh4eXcodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3IueHh6eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci54eHp5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4enoo
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh6dyh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eHd4KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh4d3kodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHh3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci54eHd3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnh5eHgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueHl4eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXh6
KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5eHcodXNob3J0
NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl5eCh1c2hvcnQ0IHYpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXl5KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3IueHl5dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci54eXp4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnh5enkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl6
eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXp3KHVzaG9y
dDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5enc9KHVzaG9ydDQgdiwg
dXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54
OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC53
ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5d3godXNo
b3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHl3eSh1c2hvcnQ0IHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54eXd6KHVzaG9ydDQgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5d3o9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7
CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3Vs
dC55ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh5d3codXNob3J0NCB2KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHp4eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0NCBvcGVyYXRvci54enh5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnh6eHoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3IueHp4dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci54enl4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6eXko
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHp5eih1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54enl3KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6eXc9KHVzaG9ydDQgdiwgdXNob3J0NCBj
KSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJl
c3VsdC56ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6engodXNob3J0NCB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHp6eSh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci54enp6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnh6encodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3IueHp3eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci54end5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh6
d3k9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56
OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnh6d3oodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
eHp3dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54d3h4KHVz
aG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh3eHkodXNob3J0NCB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHd4eih1c2hvcnQ0IHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54d3h3KHVzaG9ydDQgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh3eXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3IueHd5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci54d3l6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnh3eXo9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0g
Yy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnh3eXcodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueHd6eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54d3p5
KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh3enk9KHVzaG9y
dDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54
ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJl
c3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh3
enoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHd6dyh1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci54d3d4KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnh3d3kodXNob3J0NCB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueHd3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci54d3d3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnl4eHgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3IueXh4eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55
eHh6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4eHcodXNo
b3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXh5eCh1c2hvcnQ0IHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eHl5KHVzaG9ydDQgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3IueXh5dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci55eHp4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnl4enkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
eXh6eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eHp3KHVz
aG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4enc9KHVzaG9ydDQg
diwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3Vs
dC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4d3go
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXh3eSh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eHd6KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4d3o9KHVzaG9ydDQgdiwgdXNob3J0NCBj
KSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJl
c3VsdC54ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl4d3codXNob3J0NCB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl4eCh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci55eXh5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnl5eHoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3IueXl4dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci55eXl4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl5
eXkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl5eih1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55eXl3KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl5engodXNob3J0NCB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl6eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci55eXp6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnl5encodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3IueXl3eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55
eXd5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl5d3oodXNo
b3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXl3dyh1c2hvcnQ0IHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55enh4KHVzaG9ydDQgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6eHkodXNob3J0NCB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3IueXp4eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci55enh3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnl6eHc9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3Vs
dC54ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnl6eXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3IueXp5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci55enl6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6eXco
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXp6eCh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55enp5KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl6enoodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXp6dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci55end4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnl6d3g9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJl
c3VsdC53ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnl6d3kodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3IueXp3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci55end3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3
eHgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXd4eSh1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55d3h6KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3eHo9KHVzaG9ydDQgdiwgdXNob3J0
NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAg
IHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3eHcodXNob3J0NCB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXd5eCh1c2hvcnQ0IHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55d3l5KHVzaG9ydDQgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3IueXd5dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci55d3p4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnl3eng9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0g
Yy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnl3enkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3IueXd6eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55d3p3
KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3d3godXNob3J0
NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3IueXd3eSh1c2hvcnQ0IHYpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci55d3d6KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnl3d3codXNob3J0NCB2KSB7CisgICAgdXNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3Iuenh4eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci56eHh5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnp4eHoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenh4
dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eHl4KHVzaG9y
dDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4eXkodXNob3J0NCB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenh5eih1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci56eHl3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnp4eXc9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNo
b3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4engodXNob3J0NCB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3Iuenh6eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci56eHp6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnp4encodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
enh3eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eHd5KHVz
aG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4d3k9KHVzaG9ydDQg
diwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3Vs
dC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp4d3oo
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenh3dyh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eXh4KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5eHkodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenl4eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci56eXh3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnp5eHc9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC54ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnp5eXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3Iuenl5eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci56eXl6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5
eXcodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenl6eCh1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56eXp5KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5enoodXNob3J0NCB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenl6dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci56eXd4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnp5d3g9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAg
IHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp5d3kodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3Iuenl3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci56eXd3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnp6eHgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenp4eSh1
c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56enh6KHVzaG9ydDQg
dikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp6eHcodXNob3J0NCB2KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenp5eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0NCBvcGVyYXRvci56enl5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnp6eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3Iuenp5dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci56enp4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp6enko
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenp6eih1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56enp3KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp6d3godXNob3J0NCB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuenp3eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci56end6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnp6d3codXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3Iuend4eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56d3h5
KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3eHk9KHVzaG9y
dDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56
ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJl
c3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3
eHoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuend4dyh1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56d3l4KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3eXg9KHVzaG9ydDQgdiwgdXNob3J0
NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAg
IHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3eXkodXNob3J0NCB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuend5eih1c2hvcnQ0IHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56d3l3KHVzaG9ydDQgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3engodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vz
aG9ydDQgb3BlcmF0b3Iuend6eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBv
cGVyYXRvci56d3p6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnp3encodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuend3eCh1
c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci56d3d5KHVzaG9ydDQg
dikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnp3d3oodXNob3J0NCB2KSB7Cisg
ICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iuend3dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordXNob3J0NCBvcGVyYXRvci53eHh4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
c2hvcnQ0IG9wZXJhdG9yLnd4eHkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
b3BlcmF0b3Iud3h4eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRv
ci53eHh3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4eXgo
dXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3h5eSh1c2hvcnQ0
IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eHl6KHVzaG9ydDQgdikgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4eXo9KHVzaG9ydDQgdiwgdXNob3J0NCBj
KSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJl
c3VsdC54ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4eXcodXNob3J0NCB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3h6eCh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci53eHp5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnd4enk9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNo
b3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd4enoodXNob3J0NCB2KSB7CisgICAgdXNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VzaG9ydDQgb3BlcmF0b3Iud3h6dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0NCBvcGVyYXRvci53eHd4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9w
ZXJhdG9yLnd4d3kodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iu
d3h3eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eHd3KHVz
aG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5eHgodXNob3J0NCB2
KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3l4eSh1c2hvcnQ0IHYpIHsKKyAg
ICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eXh6KHVzaG9ydDQgdikgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5eHo9KHVzaG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAg
dXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5eHcodXNob3J0NCB2KSB7CisgICAgdXNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3l5eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0NCBvcGVyYXRvci53eXl5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0
IG9wZXJhdG9yLnd5eXoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0
b3Iud3l5dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eXp4
KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5eng9KHVzaG9y
dDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53
ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJl
c3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5
enkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3l6eih1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53eXp3KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd5d3godXNob3J0NCB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3l3eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci53eXd6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnd5d3codXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3Iud3p4eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53
enh5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd6eHk9KHVz
aG9ydDQgdiwgdXNob3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAg
IHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9y
Lnd6eHoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3p4dyh1
c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53enl4KHVzaG9ydDQg
dikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd6eXg9KHVzaG9ydDQgdiwgdXNo
b3J0NCBjKSB7CisgICAgdXNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54Owor
ICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC54ID0g
Yy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd6eXkodXNob3J0
NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3p5eih1c2hvcnQ0IHYpIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53enl3KHVzaG9ydDQgdikgeworICAgIHVz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd6engodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDQgb3BlcmF0b3Iud3p6eSh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0
NCBvcGVyYXRvci53enp6KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJh
dG9yLnd6encodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3p3
eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53end5KHVzaG9y
dDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd6d3oodXNob3J0NCB2KSB7
CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3p3dyh1c2hvcnQ0IHYpIHsKKyAgICB1
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordXNob3J0NCBvcGVyYXRvci53d3h4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1c2hvcnQ0IG9wZXJhdG9yLnd3eHkodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgb3BlcmF0b3Iud3d4eih1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVy
YXRvci53d3h3KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd3
eXgodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3d5eSh1c2hv
cnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53d3l6KHVzaG9ydDQgdikg
eworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd3eXcodXNob3J0NCB2KSB7CisgICAg
dXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3d6eCh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0NCBvcGVyYXRvci53d3p5KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hv
cnQ0IG9wZXJhdG9yLnd3enoodXNob3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3Bl
cmF0b3Iud3d6dyh1c2hvcnQ0IHYpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53
d3d4KHVzaG9ydDQgdikgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG9wZXJhdG9yLnd3d3kodXNo
b3J0NCB2KSB7CisgICAgdXNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgb3BlcmF0b3Iud3d3eih1c2hvcnQ0IHYp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBvcGVyYXRvci53d3d3KHVzaG9ydDQgdikgeworICAg
IHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci54eCh1aW50MiB2KSB7CisgICAgdWludDIgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci54eSh1aW50MiB2KSB7CisgICAgdWludDIgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci54eT0odWludDIgdiwgdWludDIgYykgeworICAgIHVp
bnQyIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLnl4KHVpbnQyIHYpIHsKKyAg
ICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLnl4PSh1aW50MiB2LCB1aW50
MiBjKSB7CisgICAgdWludDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICBy
ZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IueXko
dWludDIgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IueHgo
dWludDMgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IueHko
dWludDMgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueHk9
KHVpbnQzIHYsIHVpbnQyIGMpIHsKKyAgICB1aW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC54
ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MiBvcGVyYXRvci54eih1aW50MyB2KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBvcGVyYXRvci54ej0odWludDMgdiwgdWludDIgYykgeworICAgIHVpbnQzIHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLnl4KHVpbnQzIHYpIHsKKyAgICB1aW50MiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl4PSh1aW50MyB2LCB1aW50MiBjKSB7CisgICAgdWlu
dDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IueXkodWludDMgdikgeworICAg
IHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IueXoodWludDMgdikgeworICAg
IHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXo9KHVpbnQzIHYsIHVpbnQy
IGMpIHsKKyAgICB1aW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJl
c3VsdC56ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci56eCh1
aW50MyB2KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56eD0o
dWludDMgdiwgdWludDIgYykgeworICAgIHVpbnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQy
IG9wZXJhdG9yLnp5KHVpbnQzIHYpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQz
IG9wZXJhdG9yLnp5PSh1aW50MyB2LCB1aW50MiBjKSB7CisgICAgdWludDMgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDIgb3BlcmF0b3IuenoodWludDMgdikgeworICAgIHVpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDIgb3BlcmF0b3IueHgodWludDQgdikgeworICAgIHVpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDIgb3BlcmF0b3IueHkodWludDQgdikgeworICAgIHVpbnQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3IueHk9KHVpbnQ0IHYsIHVpbnQyIGMpIHsKKyAgICB1aW50
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci54eih1aW50NCB2KSB7CisgICAg
dWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54ej0odWludDQgdiwgdWludDIg
YykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLnh3KHVp
bnQ0IHYpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh3PSh1
aW50NCB2LCB1aW50MiBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9
IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIg
b3BlcmF0b3IueXgodWludDQgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueXg9KHVpbnQ0IHYsIHVpbnQyIGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MiBvcGVyYXRvci55eSh1aW50NCB2KSB7CisgICAgdWludDIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MiBvcGVyYXRvci55eih1aW50NCB2KSB7CisgICAgdWludDIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55ej0odWludDQgdiwgdWludDIgYykgeworICAgIHVpbnQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9wZXJhdG9yLnl3KHVpbnQ0IHYpIHsKKyAgICB1
aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl3PSh1aW50NCB2LCB1aW50MiBj
KSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1
bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3IuengodWlu
dDQgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iueng9KHVp
bnQ0IHYsIHVpbnQyIGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0g
Yy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBv
cGVyYXRvci56eSh1aW50NCB2KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci56eT0odWludDQgdiwgdWludDIgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQyIG9wZXJhdG9yLnp6KHVpbnQ0IHYpIHsKKyAgICB1aW50MiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQyIG9wZXJhdG9yLnp3KHVpbnQ0IHYpIHsKKyAgICB1aW50MiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3PSh1aW50NCB2LCB1aW50MiBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDIgb3BlcmF0b3Iud3godWludDQgdikgeworICAgIHVp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3g9KHVpbnQ0IHYsIHVpbnQyIGMp
IHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3Vs
dC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBvcGVyYXRvci53eSh1aW50
NCB2KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eT0odWlu
dDQgdiwgdWludDIgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBj
Lng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG9w
ZXJhdG9yLnd6KHVpbnQ0IHYpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnd6PSh1aW50NCB2LCB1aW50MiBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDIgb3BlcmF0b3Iud3codWludDQgdikgeworICAgIHVpbnQyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgb3BlcmF0b3IueHh4KHVpbnQyIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnh4eSh1aW50MiB2KSB7
CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBv
cGVyYXRvci54eXgodWludDIgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueHl5KHVpbnQyIHYpIHsKKyAgICB1aW50MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl4eCh1
aW50MiB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MyBvcGVyYXRvci55eHkodWludDIgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXl4KHVpbnQyIHYpIHsKKyAg
ICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJh
dG9yLnl5eSh1aW50MiB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54eHgodWludDMgdikgeworICAgIHVpbnQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueHh5KHVpbnQz
IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzIG9wZXJhdG9yLnh4eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54eXgodWludDMgdikgeworICAgIHVp
bnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iu
eHl5KHVpbnQzIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQzIG9wZXJhdG9yLnh5eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54eXo9KHVpbnQzIHYs
IHVpbnQzIGMpIHsKKyAgICB1aW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54Owor
ICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54engodWludDMgdikgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueHp5KHVpbnQzIHYp
IHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQz
IG9wZXJhdG9yLnh6eT0odWludDMgdiwgdWludDMgYykgeworICAgIHVpbnQzIHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0Lnkg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnh6eih1aW50MyB2
KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBvcGVyYXRvci55eHgodWludDMgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXh5KHVpbnQzIHYpIHsKKyAgICB1aW50
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl4
eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50MyBvcGVyYXRvci55eHo9KHVpbnQzIHYsIHVpbnQzIGMpIHsKKyAgICB1aW50MyBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci55
eXgodWludDMgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgb3BlcmF0b3IueXl5KHVpbnQzIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl5eih1aW50MyB2KSB7
CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBv
cGVyYXRvci55engodWludDMgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXp4PSh1aW50MyB2LCB1aW50MyBjKSB7Cisg
ICAgdWludDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9
IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMg
b3BlcmF0b3IueXp5KHVpbnQzIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl6eih1aW50MyB2KSB7CisgICAgdWludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56eHgo
dWludDMgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDMgb3BlcmF0b3Iuenh5KHVpbnQzIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnp4eT0odWludDMgdiwgdWlu
dDMgYykgeworICAgIHVpbnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAg
cmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQzIG9wZXJhdG9yLnp4eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56eXgodWludDMgdikgewor
ICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3Bl
cmF0b3Iuenl4PSh1aW50MyB2LCB1aW50MyBjKSB7CisgICAgdWludDMgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iuenl5KHVpbnQzIHYpIHsK
KyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9w
ZXJhdG9yLnp5eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56engodWludDMgdikgeworICAgIHVpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iuenp5KHVp
bnQzIHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQzIG9wZXJhdG9yLnp6eih1aW50MyB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54eHgodWludDQgdikgeworICAg
IHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0
b3IueHh5KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnh4eih1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54eHcodWludDQg
dikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3IueHl4KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnh5eSh1aW50NCB2KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54
eXoodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueHl6PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iu
eHl3KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5dz0odWludDQgdiwgdWludDMgYykgeworICAgIHVpbnQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7Cisg
ICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9y
Lnh6eCh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54enkodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHp5PSh1aW50NCB2
LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsK
KyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDMgb3BlcmF0b3IueHp6KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnh6dyh1aW50NCB2
KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci54enc9KHVpbnQ0IHYsIHVpbnQzIGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53
ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci54d3godWludDQg
dikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3IueHd5KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh3eT0odWludDQgdiwgdWludDMgYykg
eworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0
LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQzIG9wZXJhdG9yLnh3eih1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54d3o9KHVpbnQ0IHYsIHVpbnQzIGMp
IHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3Vs
dC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50MyBvcGVyYXRvci54d3codWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXh4KHVpbnQ0IHYpIHsKKyAgICB1
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9y
Lnl4eSh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBvcGVyYXRvci55eHoodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh6PSh1aW50NCB2
LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsK
KyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDMgb3BlcmF0b3IueXh3KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4dz0odWludDQg
diwgdWludDMgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7
CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl5eCh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci55eXkodWludDQg
dikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3IueXl6KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl5dyh1aW50NCB2KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci55
engodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueXp4PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAg
ICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iu
eXp5KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQzIG9wZXJhdG9yLnl6eih1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci55encodWludDQgdikg
eworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueXp3PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQudyA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3IueXd4KHVpbnQ0IHYp
IHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IG9wZXJhdG9yLnl3eD0odWludDQgdiwgdWludDMgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnl3eSh1aW50NCB2
KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBvcGVyYXRvci55d3oodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXd6PSh1aW50NCB2LCB1aW50MyBjKSB7
CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQu
dyA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3IueXd3KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnp4eCh1aW50NCB2KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56
eHkodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3Iuenh5PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAg
ICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iu
enh6KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQzIG9wZXJhdG9yLnp4dyh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHc9KHVpbnQ0IHYs
IHVpbnQzIGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54Owor
ICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56eXgodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl4PSh1aW50NCB2
LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsK
KyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDMgb3BlcmF0b3Iuenl5KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnp5eih1aW50NCB2
KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBvcGVyYXRvci56eXcodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl3PSh1aW50NCB2LCB1aW50MyBjKSB7
CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3Iuenp4KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnp6eSh1aW50NCB2KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56
enoodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgb3BlcmF0b3Iuenp3KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnp3eCh1aW50NCB2KSB7
CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci56d3g9KHVpbnQ0IHYsIHVpbnQzIGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci56d3kodWludDQgdikg
eworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3Iuend5PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iuend6KHVpbnQ0IHYp
IHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQz
IG9wZXJhdG9yLnp3dyh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci53eHgodWludDQgdikgeworICAgIHVpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iud3h5
KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnd4eT0odWludDQgdiwgdWludDMgYykgeworICAgIHVpbnQ0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAg
cmVzdWx0LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnd4
eih1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci53eHo9KHVpbnQ0IHYsIHVpbnQzIGMpIHsKKyAgICB1aW50NCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci53
eHcodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgb3BlcmF0b3Iud3l4KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd5eD0odWludDQgdiwg
dWludDMgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7Cisg
ICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQzIG9wZXJhdG9yLnd5eSh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci53eXoodWludDQgdikg
eworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3Iud3l6PSh1aW50NCB2LCB1aW50MyBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMgb3BlcmF0b3Iud3l3KHVpbnQ0IHYp
IHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQz
IG9wZXJhdG9yLnd6eCh1aW50NCB2KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eng9KHVpbnQ0IHYsIHVpbnQzIGMpIHsK
KyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56
ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBvcGVyYXRvci53enkodWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3p5PSh1aW50NCB2LCB1aW50MyBjKSB7
CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgb3BlcmF0b3Iud3p6KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnd6dyh1aW50NCB2KSB7CisgICAgdWlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBvcGVyYXRvci53
d3godWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgb3BlcmF0b3Iud3d5KHVpbnQ0IHYpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG9wZXJhdG9yLnd3eih1aW50NCB2KSB7
CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBv
cGVyYXRvci53d3codWludDQgdikgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh4eCh1aW50MiB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci54eHh5KHVpbnQyIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnh4eXgodWludDIgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh5eSh1aW50
MiB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXh4KHVpbnQyIHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5eHkodWludDIgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueHl5eCh1aW50MiB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXl5
KHVpbnQyIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4eHgodWludDIgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh4eSh1aW50MiB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci55eHl4KHVpbnQyIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnl4eXkodWludDIgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl4eCh1aW50MiB2
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXh5KHVpbnQyIHYpIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnl5eXgodWludDIgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3IueXl5eSh1aW50MiB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eHh4KHVp
bnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh4eHkodWludDMgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3IueHh4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci54eHl4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh4
eXkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh5eih1aW50MyB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eHp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnh4enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0
b3IueHh6eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXh4KHVpbnQz
IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5eHkodWludDMgdikgeworICAgIHVp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueHl4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci54eXl4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5eXko
dWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHl5eih1aW50MyB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnh5enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
eHl6eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54enh4KHVpbnQzIHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6eHkodWludDMgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3IueHp4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci54enl4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6eXkodWlu
dDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHp5eih1aW50MyB2KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54enp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IG9wZXJhdG9yLnh6enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHp6
eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eHh4KHVpbnQzIHYpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4eHkodWludDMgdikgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3IueXh4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci55eHl4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4eXkodWludDMg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh5eih1aW50MyB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci55eHp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnl4enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh6eih1
aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXh4KHVpbnQzIHYpIHsKKyAg
ICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl5eHkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDQgb3BlcmF0b3IueXl4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55
eXl4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl5eXkodWludDMgdikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl5eih1aW50MyB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci55eXp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnl5enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl6eih1aW50
MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55enh4KHVpbnQzIHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6eHkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueXp4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55enl4
KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6eXkodWludDMgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXp5eih1aW50MyB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci55enp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnl6enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXp6eih1aW50MyB2
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHh4KHVpbnQzIHYpIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnp4eHkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3Iuenh4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHl4KHVp
bnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4eXkodWludDMgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3Iuenh5eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci56eHp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4
enkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenh6eih1aW50MyB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eXh4KHVpbnQzIHYpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnp5eHkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0
b3Iuenl4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eXl4KHVpbnQz
IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5eXkodWludDMgdikgeworICAgIHVp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3Iuenl5eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci56eXp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5enko
dWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl6eih1aW50MyB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56enh4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnp6eHkodWludDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
enp4eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56enl4KHVpbnQzIHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp6eXkodWludDMgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3Iuenp5eih1aW50MyB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci56enp4KHVpbnQzIHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp6enkodWlu
dDMgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenp6eih1aW50MyB2KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eHh4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IG9wZXJhdG9yLnh4eHkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh4
eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eHh3KHVpbnQ0IHYpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh4eXgodWludDQgdikgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3IueHh5eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci54eHl6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh4eXcodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh6eCh1aW50NCB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci54eHp5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnh4enoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHh6dyh1
aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eHd4KHVpbnQ0IHYpIHsKKyAg
ICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh4d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDQgb3BlcmF0b3IueHh3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54
eHd3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5eHgodWludDQgdikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHl4eSh1aW50NCB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci54eXh6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnh5eHcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHl5eCh1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXl5KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5eXoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueHl5dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54eXp4
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5enkodWludDQgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHl6eih1aW50NCB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci54eXp3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnh5enc9KHVpbnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56Owor
ICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci54eXd4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh5d3kodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHl3eih1aW50NCB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci54eXd6PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueHl3dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci54enh4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6eHko
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHp4eih1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54enh3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnh6eXgodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
eHp5eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54enl6KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6eXcodWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3IueHp5dz0odWludDQgdiwgdWludDQgYykgeworICAgIHVpbnQ0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAg
cmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnh6engodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3IueHp6eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54enp6KHVp
bnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6encodWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3IueHp3eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci54end5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6
d3k9KHVpbnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC54ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAg
IHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54
end6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh6d3codWludDQgdikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHd4eCh1aW50NCB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci54d3h5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnh3eHoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHd4dyh1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54d3l4KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh3eXkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueHd5eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54d3l6
PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICBy
ZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueHd5
dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54d3p4KHVpbnQ0IHYpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh3enkodWludDQgdikgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3IueHd6eT0odWludDQgdiwgdWludDQgYykgeworICAgIHVpbnQ0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVz
dWx0LnogPSBjLno7CisgICAgcmVzdWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnh3enoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0
b3IueHd6dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci54d3d4KHVpbnQ0
IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnh3d3kodWludDQgdikgeworICAgIHVp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueHd3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci54d3d3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4eHgo
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh4eSh1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eHh6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnl4eHcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
eXh5eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eHl5KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4eXoodWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3IueXh5dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci55eHp4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4enkodWlu
dDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh6eih1aW50NCB2KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eHp3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IG9wZXJhdG9yLnl4enc9KHVpbnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56
ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci55eHd4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl4
d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh3eih1aW50NCB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eHd6PSh1aW50NCB2LCB1aW50NCBjKSB7Cisg
ICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9
IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXh3dyh1aW50NCB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci55eXh4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnl5eHkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl4eih1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXh3KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl5eXgodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueXl5eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXl6
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl5eXcodWludDQgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl6eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci55eXp5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnl5enoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXl6dyh1aW50NCB2
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXd4KHVpbnQ0IHYpIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnl5d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3IueXl3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55eXd3KHVp
bnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6eHgodWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3IueXp4eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci55enh6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6
eHcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXp4dz0odWludDQgdiwg
dWludDQgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7Cisg
ICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LncgPSBj
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6eXgodWludDQgdikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXp5eSh1aW50NCB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci55enl6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnl6eXcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXp6eCh1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55enp5KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6enoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3IueXp6dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55end4
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6d3g9KHVpbnQ0IHYsIHVp
bnQ0IGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAg
IHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55end5KHVpbnQ0IHYpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl6d3oodWludDQgdikgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3IueXp3dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci55d3h4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl3eHkodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXd4eih1aW50NCB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci55d3h6PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAg
ICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3IueXd4dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci55d3l4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl3eXko
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXd5eih1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55d3l3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnl3engodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
eXd6eD0odWludDQgdiwgdWludDQgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnkgPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7Cisg
ICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnl3enkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3IueXd6eih1aW50NCB2
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55d3p3KHVpbnQ0IHYpIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnl3d3godWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3IueXd3eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci55d3d6KHVp
bnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnl3d3codWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3Iuenh4eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci56eHh5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4
eHoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenh4dyh1aW50NCB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHl4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnp4eXkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0
b3Iuenh5eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHl3KHVpbnQ0
IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4eXc9KHVpbnQ0IHYsIHVpbnQ0IGMp
IHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3Vs
dC54ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC53ID0gYy53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHp4KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4enkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3Iuenh6eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eHp3
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp4d3godWludDQgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenh3eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci56eHd5PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1
bHQudyA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3Iuenh3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci56eHd3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5eHgodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl4eSh1aW50NCB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci56eXh6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnp5eHcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl4dz0o
dWludDQgdiwgdWludDQgYykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVz
dWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5eXgo
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenl5eSh1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eXl6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnp5eXcodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
enl6eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eXp5KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5enoodWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3Iuenl6dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci56eXd4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5d3g9KHVp
bnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0g
Yy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3Vs
dC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56eXd5KHVp
bnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp5d3oodWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3Iuenl3dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci56enh4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp6
eHkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenp4eih1aW50NCB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56enh3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnp6eXgodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0
b3Iuenp5eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56enl6KHVpbnQ0
IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp6eXcodWludDQgdikgeworICAgIHVp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3Iuenp6eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci56enp5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp6enoo
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuenp6dyh1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56end4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnp6d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
enp3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56end3KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3eHgodWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3Iuend4eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci56d3h5PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMu
ejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3Bl
cmF0b3Iuend4eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56d3h3KHVp
bnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3eXgodWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3Iuend5eD0odWludDQgdiwgdWludDQgYykgeworICAgIHVp
bnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7
CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3eXkodWludDQgdikgeworICAgIHVpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDQgb3BlcmF0b3Iuend5eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56
d3l3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3engodWludDQgdikg
eworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuend6eSh1aW50NCB2KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci56d3p6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnp3encodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iuend3eCh1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci56d3d5KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnp3d3oodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3Iuend3dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eHh4
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd4eHkodWludDQgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3h4eih1aW50NCB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci53eHh3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9y
Lnd4eXgodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3h5eSh1aW50NCB2
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eHl6KHVpbnQ0IHYpIHsKKyAgICB1aW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQ0IG9wZXJhdG9yLnd4eXo9KHVpbnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci53eHl3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnd4engodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3h6eSh1
aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eHp5PSh1aW50NCB2LCB1aW50
NCBjKSB7CisgICAgdWludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICBy
ZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3h6eih1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eHp3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnd4d3godWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
d3h3eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eHd6KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd4d3codWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3Iud3l4eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci53eXh5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd5eHoodWlu
dDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3l4ej0odWludDQgdiwgdWludDQg
YykgeworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVz
dWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd5eHcodWludDQgdikgeworICAg
IHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDQgb3BlcmF0b3Iud3l5eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
NCBvcGVyYXRvci53eXl5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd5
eXoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3l5dyh1aW50NCB2KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eXp4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VpbnQ0IG9wZXJhdG9yLnd5eng9KHVpbnQ0IHYsIHVpbnQ0IGMpIHsKKyAgICB1aW50NCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC56ID0gYy56OworICAgIHJlc3VsdC54ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBvcGVyYXRvci53eXp5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJh
dG9yLnd5enoodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3l6dyh1aW50
NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eXd4KHVpbnQ0IHYpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd5d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
b3BlcmF0b3Iud3l3eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53eXd3
KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd6eHgodWludDQgdikgewor
ICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3p4eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBvcGVyYXRvci53enh5PSh1aW50NCB2LCB1aW50NCBjKSB7CisgICAgdWludDQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1
bHQueCA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3Iud3p4eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci53enh3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd6eXgodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3p5eD0odWludDQgdiwgdWludDQgYykg
eworICAgIHVpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0
LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd6eXkodWludDQgdikgeworICAgIHVp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDQgb3BlcmF0b3Iud3p5eih1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBv
cGVyYXRvci53enl3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd6engo
dWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3p6eSh1aW50NCB2KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53enp6KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Vp
bnQ0IG9wZXJhdG9yLnd6encodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iu
d3p3eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53end5KHVpbnQ0IHYp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd6d3oodWludDQgdikgeworICAgIHVpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgb3BlcmF0b3Iud3p3dyh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVy
YXRvci53d3h4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd3eHkodWlu
dDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3d4eih1aW50NCB2KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53d3h3KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IG9wZXJhdG9yLnd3eXgodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3d5
eSh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53d3l6KHVpbnQ0IHYpIHsK
KyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd3eXcodWludDQgdikgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgb3BlcmF0b3Iud3d6eCh1aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRv
ci53d3p5KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9wZXJhdG9yLnd3enoodWludDQg
dikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3d6dyh1aW50NCB2KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1aW50NCBvcGVyYXRvci53d3d4KHVpbnQ0IHYpIHsKKyAgICB1aW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IG9w
ZXJhdG9yLnd3d3kodWludDQgdikgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgb3BlcmF0b3Iud3d3eih1
aW50NCB2KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBvcGVyYXRvci53d3d3KHVpbnQ0IHYpIHsKKyAg
ICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnh4KGNoYXIyIHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnh5KGNoYXIyIHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnh5PShjaGFyMiB2LCBjaGFyMiBjKSB7CisgICAgY2hh
cjIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgb3BlcmF0b3IueXgoY2hhcjIgdikgeworICAg
IGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgb3BlcmF0b3IueXg9KGNoYXIyIHYsIGNoYXIy
IGMpIHsKKyAgICBjaGFyMiByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJl
c3VsdC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci55eShj
aGFyMiB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci54eChj
aGFyMyB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci54eShj
aGFyMyB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54eT0o
Y2hhcjMgdiwgY2hhcjIgYykgeworICAgIGNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIy
IG9wZXJhdG9yLnh6KGNoYXIzIHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIz
IG9wZXJhdG9yLnh6PShjaGFyMyB2LCBjaGFyMiBjKSB7CisgICAgY2hhcjMgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjIgb3BlcmF0b3IueXgoY2hhcjMgdikgeworICAgIGNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjMgb3BlcmF0b3IueXg9KGNoYXIzIHYsIGNoYXIyIGMpIHsKKyAgICBjaGFy
MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci55eShjaGFyMyB2KSB7CisgICAg
Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci55eihjaGFyMyB2KSB7CisgICAg
Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55ej0oY2hhcjMgdiwgY2hhcjIg
YykgeworICAgIGNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnp4KGNo
YXIzIHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp4PShj
aGFyMyB2LCBjaGFyMiBjKSB7CisgICAgY2hhcjMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIg
b3BlcmF0b3IuenkoY2hhcjMgdikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMg
b3BlcmF0b3Iuenk9KGNoYXIzIHYsIGNoYXIyIGMpIHsKKyAgICBjaGFyMyByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMiBvcGVyYXRvci56eihjaGFyMyB2KSB7CisgICAgY2hhcjIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMiBvcGVyYXRvci54eChjaGFyNCB2KSB7CisgICAgY2hhcjIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMiBvcGVyYXRvci54eShjaGFyNCB2KSB7CisgICAgY2hhcjIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eT0oY2hhcjQgdiwgY2hhcjIgYykgeworICAgIGNoYXI0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnh6KGNoYXI0IHYpIHsKKyAgICBj
aGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6PShjaGFyNCB2LCBjaGFyMiBj
KSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1
bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgb3BlcmF0b3IueHcoY2hh
cjQgdikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHc9KGNo
YXI0IHYsIGNoYXIyIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0g
Yy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBv
cGVyYXRvci55eChjaGFyNCB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci55eD0oY2hhcjQgdiwgY2hhcjIgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIyIG9wZXJhdG9yLnl5KGNoYXI0IHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIyIG9wZXJhdG9yLnl6KGNoYXI0IHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6PShjaGFyNCB2LCBjaGFyMiBjKSB7CisgICAgY2hhcjQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgb3BlcmF0b3IueXcoY2hhcjQgdikgeworICAgIGNo
YXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXc9KGNoYXI0IHYsIGNoYXIyIGMp
IHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3Vs
dC53ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci56eChjaGFy
NCB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eD0oY2hh
cjQgdiwgY2hhcjIgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBj
Lng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9w
ZXJhdG9yLnp5KGNoYXI0IHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnp5PShjaGFyNCB2LCBjaGFyMiBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjIgb3BlcmF0b3IuenooY2hhcjQgdikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjIgb3BlcmF0b3IuencoY2hhcjQgdikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3Iuenc9KGNoYXI0IHYsIGNoYXIyIGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBvcGVyYXRvci53eChjaGFyNCB2KSB7CisgICAgY2hh
cjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eD0oY2hhcjQgdiwgY2hhcjIgYykg
eworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0
LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIyIG9wZXJhdG9yLnd5KGNoYXI0
IHYpIHsKKyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd5PShjaGFy
NCB2LCBjaGFyMiBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMu
eDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgb3Bl
cmF0b3Iud3ooY2hhcjQgdikgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3Iud3o9KGNoYXI0IHYsIGNoYXIyIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMiBvcGVyYXRvci53dyhjaGFyNCB2KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvci54eHgoY2hhcjIgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueHh5KGNoYXIyIHYpIHsK
KyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9w
ZXJhdG9yLnh5eChjaGFyMiB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54eXkoY2hhcjIgdikgeworICAgIGNoYXIzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXh4KGNo
YXIyIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXIzIG9wZXJhdG9yLnl4eShjaGFyMiB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55eXgoY2hhcjIgdikgeworICAg
IGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0
b3IueXl5KGNoYXIyIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh4eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54eHkoY2hhcjMg
dikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjMgb3BlcmF0b3IueHh6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh5eChjaGFyMyB2KSB7CisgICAgY2hh
cjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54
eXkoY2hhcjMgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjMgb3BlcmF0b3IueHl6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh5ej0oY2hhcjMgdiwg
Y2hhcjMgYykgeworICAgIGNoYXIzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7Cisg
ICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzIG9wZXJhdG9yLnh6eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54enkoY2hhcjMgdikg
eworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMg
b3BlcmF0b3IueHp5PShjaGFyMyB2LCBjaGFyMyBjKSB7CisgICAgY2hhcjMgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueHp6KGNoYXIzIHYp
IHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIz
IG9wZXJhdG9yLnl4eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55eHkoY2hhcjMgdikgeworICAgIGNoYXIz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXh6
KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXIzIG9wZXJhdG9yLnl4ej0oY2hhcjMgdiwgY2hhcjMgYykgeworICAgIGNoYXIzIHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAg
cmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnl5
eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvci55eXkoY2hhcjMgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXl6KGNoYXIzIHYpIHsK
KyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9w
ZXJhdG9yLnl6eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55eng9KGNoYXIzIHYsIGNoYXIzIGMpIHsKKyAg
ICBjaGFyMyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBv
cGVyYXRvci55enkoY2hhcjMgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXp6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp4eChj
aGFyMyB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMyBvcGVyYXRvci56eHkoY2hhcjMgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iuenh5PShjaGFyMyB2LCBjaGFy
MyBjKSB7CisgICAgY2hhcjMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICBy
ZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjMgb3BlcmF0b3Iuenh6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp5eChjaGFyMyB2KSB7Cisg
ICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVy
YXRvci56eXg9KGNoYXIzIHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyMyByZXN1bHQgPSB2OworICAg
IHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci56eXkoY2hhcjMgdikgewor
ICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3Bl
cmF0b3Iuenl6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp6eChjaGFyMyB2KSB7CisgICAgY2hhcjMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci56enkoY2hh
cjMgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjMgb3BlcmF0b3Iuenp6KGNoYXIzIHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh4eChjaGFyNCB2KSB7CisgICAg
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRv
ci54eHkoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjMgb3BlcmF0b3IueHh6KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh4dyhjaGFyNCB2
KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci54eXgoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueHl5KGNoYXI0IHYpIHsKKyAgICBjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh5
eihjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci54eXo9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAg
IHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54
eXcoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueHl3PShjaGFyNCB2LCBjaGFyMyBjKSB7CisgICAgY2hhcjQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iu
eHp4KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzIG9wZXJhdG9yLnh6eShjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54enk9KGNoYXI0IHYs
IGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54Owor
ICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMyBvcGVyYXRvci54enooY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueHp3KGNoYXI0IHYp
IHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnh6dz0oY2hhcjQgdiwgY2hhcjMgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0Lncg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnh3eChjaGFyNCB2
KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci54d3koY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHd5PShjaGFyNCB2LCBjaGFyMyBjKSB7
CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQu
dyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjMgb3BlcmF0b3IueHd6KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh3ej0oY2hhcjQgdiwgY2hhcjMgYykg
eworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0
LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXIzIG9wZXJhdG9yLnh3dyhjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55eHgoY2hhcjQgdikgeworICAgIGNo
YXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iu
eXh5KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzIG9wZXJhdG9yLnl4eihjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHo9KGNoYXI0IHYs
IGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54Owor
ICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55eHcoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh3PShjaGFyNCB2
LCBjaGFyMyBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsK
KyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjMgb3BlcmF0b3IueXl4KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnl5eShjaGFyNCB2
KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci55eXooY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXl3KGNoYXI0IHYpIHsKKyAgICBjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnl6
eChjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci55eng9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAg
IHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55
enkoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjMgb3BlcmF0b3IueXp6KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnl6dyhjaGFyNCB2KSB7
CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci55enc9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci55d3goY2hhcjQgdikg
eworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3IueXd4PShjaGFyNCB2LCBjaGFyMyBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3IueXd5KGNoYXI0IHYp
IHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIz
IG9wZXJhdG9yLnl3eihjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55d3o9KGNoYXI0IHYsIGNoYXIzIGMpIHsK
KyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53
ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci55d3coY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iuenh4KGNoYXI0IHYpIHsKKyAgICBjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp4
eShjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci56eHk9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci56
eHooY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjMgb3BlcmF0b3Iuenh3KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4dz0oY2hhcjQgdiwg
Y2hhcjMgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7Cisg
ICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXIzIG9wZXJhdG9yLnp5eChjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXg9KGNoYXI0IHYs
IGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54Owor
ICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyMyBvcGVyYXRvci56eXkoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iuenl6KGNoYXI0IHYp
IHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIz
IG9wZXJhdG9yLnp5dyhjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXc9KGNoYXI0IHYsIGNoYXIzIGMpIHsK
KyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55
ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci56engoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iuenp5KGNoYXI0IHYpIHsKKyAgICBjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp6
eihjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvci56encoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iuend4KGNoYXI0IHYpIHsK
KyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnp3eD0oY2hhcjQgdiwgY2hhcjMgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBj
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnp3eShjaGFyNCB2KSB7
CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci56d3k9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci56d3ooY2hhcjQgdikg
eworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMg
b3BlcmF0b3Iuend3KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnd4eChjaGFyNCB2KSB7CisgICAgY2hhcjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci53eHko
Y2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3Iud3h5PShjaGFyNCB2LCBjaGFyMyBjKSB7CisgICAgY2hhcjQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICBy
ZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iud3h6
KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnd4ej0oY2hhcjQgdiwgY2hhcjMgYykgeworICAgIGNoYXI0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAg
cmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnd4
dyhjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvci53eXgoY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3l4PShjaGFyNCB2LCBj
aGFyMyBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAg
ICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjMgb3BlcmF0b3Iud3l5KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnd5eihjaGFyNCB2KSB7
CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci53eXo9KGNoYXI0IHYsIGNoYXIzIGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBvcGVyYXRvci53eXcoY2hhcjQgdikg
eworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMg
b3BlcmF0b3Iud3p4KGNoYXI0IHYpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd6eD0oY2hhcjQgdiwgY2hhcjMgYykgewor
ICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0Lnog
PSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIz
IG9wZXJhdG9yLnd6eShjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53enk9KGNoYXI0IHYsIGNoYXIzIGMpIHsK
KyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56
ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MyBvcGVyYXRvci53enooY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iud3p3KGNoYXI0IHYpIHsKKyAgICBjaGFy
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9wZXJhdG9yLnd3
eChjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyMyBvcGVyYXRvci53d3koY2hhcjQgdikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgb3BlcmF0b3Iud3d6KGNoYXI0IHYpIHsK
KyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIzIG9w
ZXJhdG9yLnd3dyhjaGFyNCB2KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHh4KGNoYXIyIHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnh4eHkoY2hhcjIgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueHh5eChjaGFyMiB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHl5KGNoYXIy
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5eHgoY2hhcjIgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueHl4eShjaGFyMiB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci54eXl4KGNoYXIyIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5eXko
Y2hhcjIgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh4eChjaGFyMiB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHh5KGNoYXIyIHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnl4eXgoY2hhcjIgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
eXh5eShjaGFyMiB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXh4KGNoYXIyIHYp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5eHkoY2hhcjIgdikgeworICAgIGNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3IueXl5eChjaGFyMiB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci55eXl5KGNoYXIyIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4eHgoY2hh
cjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHh4eShjaGFyMyB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnh4eXgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHh5
eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHl6KGNoYXIzIHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4engoY2hhcjMgdikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3IueHh6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRv
ci54eHp6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5eHgoY2hhcjMg
dikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHl4eShjaGFyMyB2KSB7CisgICAgY2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci54eXh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnh5eXgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHl5eShj
aGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eXl6KGNoYXIzIHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3IueHl6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54
eXp6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6eHgoY2hhcjMgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp4eShjaGFyMyB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci54enh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnh6eXgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp5eShjaGFy
MyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54enl6KGNoYXIzIHYpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3IueHp6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54enp6
KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl4eHgoY2hhcjMgdikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci55eHh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnl4eXgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh5eShjaGFyMyB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHl6KGNoYXIzIHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnl4engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3IueXh6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHp6KGNo
YXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5eHgoY2hhcjMgdikgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjQgb3BlcmF0b3IueXl4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NCBvcGVyYXRvci55eXh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5
eXgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXl5eShjaGFyMyB2KSB7
CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXl6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnl5engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueXl6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXp6KGNoYXIz
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6eHgoY2hhcjMgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueXp4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci55enh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6eXgo
Y2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp5eShjaGFyMyB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enl6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnl6engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
eXp6eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enp6KGNoYXIzIHYp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4eHgoY2hhcjMgdikgeworICAgIGNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3Iuenh4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci56eHh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4eXgoY2hh
cjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenh5eShjaGFyMyB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eHl6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnp4engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenh6
eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eHp6KGNoYXIzIHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp5eHgoY2hhcjMgdikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3Iuenl4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRv
ci56eXh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp5eXgoY2hhcjMg
dikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl5eShjaGFyMyB2KSB7CisgICAgY2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci56eXl6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnp5engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl6eShj
aGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXp6KGNoYXIzIHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6eHgoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3Iuenp4eShjaGFyMyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56
enh6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6eXgoY2hhcjMgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenp5eShjaGFyMyB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci56enl6KGNoYXIzIHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnp6engoY2hhcjMgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenp6eShjaGFy
MyB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56enp6KGNoYXIzIHYpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3IueHh4eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHh6
KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4eHcoY2hhcjQgdikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHh5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci54eHl5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnh4eXooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHh5dyhjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHp4KGNoYXI0IHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnh4enkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3IueHh6eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eHp3KGNo
YXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4d3goY2hhcjQgdikgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjQgb3BlcmF0b3IueHh3eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NCBvcGVyYXRvci54eHd6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh4
d3coY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHl4eChjaGFyNCB2KSB7
CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eXh5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnh5eHooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueHl4dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eXl4KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5eXkoY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueHl5eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci54eXl3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh5engo
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHl6eShjaGFyNCB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eXp6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnh5encoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
eHl6dz0oY2hhcjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7Cisg
ICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnh5d3goY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHl3eShjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54eXd6KGNoYXI0IHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnh5d3o9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAg
IHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci54eXd3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnh6eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp4eShj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54enh6KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6eHcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3IueHp5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54
enl5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6eXooY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp5dyhjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci54enl3PShjaGFyNCB2LCBjaGFyNCBjKSB7CisgICAgY2hhcjQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3IueHp6eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci54enp5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6enooY2hh
cjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp6dyhjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54end4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnh6d3koY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp3
eT0oY2hhcjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAg
cmVzdWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh6
d3ooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHp3dyhjaGFyNCB2KSB7
CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54d3h4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnh3eHkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueHd4eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54d3h3KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh3eXgoY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueHd5eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci54d3l6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh3eXo9
KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54
ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJl
c3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci54d3l3
KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh3engoY2hhcjQgdikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHd6eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci54d3p5PShjaGFyNCB2LCBjaGFyNCBjKSB7CisgICAgY2hhcjQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1
bHQueiA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3IueHd6eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRv
ci54d3p3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnh3d3goY2hhcjQg
dikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueHd3eShjaGFyNCB2KSB7CisgICAgY2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci54d3d6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnh3d3coY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh4eChj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHh5KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl4eHooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3IueXh4dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55
eHl4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl4eXkoY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh5eihjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci55eHl3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnl4engoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh6eShjaGFy
NCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHp6KGNoYXI0IHYpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXI0IG9wZXJhdG9yLnl4encoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3IueXh6dz0oY2hhcjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0Lnog
PSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnl4d3goY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXh3
eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHd6KGNoYXI0IHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl4d3o9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAg
ICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0g
Yy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eHd3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnl5eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueXl4eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXh6KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5eHcoY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueXl5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci55eXl5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5eXoo
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXl5dyhjaGFyNCB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXp4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnl5enkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
eXl6eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55eXp3KGNoYXI0IHYp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5d3goY2hhcjQgdikgeworICAgIGNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3IueXl3eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci55eXd6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl5d3coY2hh
cjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp4eChjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enh5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnl6eHooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp4
dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enh3PShjaGFyNCB2LCBj
aGFyNCBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAg
ICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQudyA9IGMu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp5eChjaGFyNCB2KSB7
CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enl5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnl6eXooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3IueXp5dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55enp4KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6enkoY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3IueXp6eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci55enp3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6d3go
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp3eD0oY2hhcjQgdiwgY2hh
cjQgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAg
cmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl6d3koY2hhcjQgdikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXp3eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci55end3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnl3eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXd4eShjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55d3h6KGNoYXI0IHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnl3eHo9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAg
IHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci55d3h3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnl3eXgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXd5eShj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55d3l6KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl3eXcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3IueXd6eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55
d3p4PShjaGFyNCB2LCBjaGFyNCBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAg
ICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
eXd6eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci55d3p6KGNoYXI0IHYp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl3encoY2hhcjQgdikgeworICAgIGNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3IueXd3eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci55d3d5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnl3d3ooY2hh
cjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3IueXd3dyhjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eHh4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnp4eHkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenh4
eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eHh3KGNoYXI0IHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4eXgoY2hhcjQgdikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3Iuenh5eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRv
ci56eHl6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4eXcoY2hhcjQg
dikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenh5dz0oY2hhcjQgdiwgY2hhcjQgYykg
eworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0
LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4engoY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3Iuenh6eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci56eHp6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp4enco
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenh3eChjaGFyNCB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eHd5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnp4d3k9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3Vs
dC53ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci56eHd6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnp4d3coY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl4eChjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXh5KGNoYXI0IHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnp5eHooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3Iuenl4dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXh3PShj
aGFyNCB2LCBjaGFyNCBjKSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1
bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl5eChj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXl5KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp5eXooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3Iuenl5dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56
eXp4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp5enkoY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl6eihjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci56eXp3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnp5d3goY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl3eD0oY2hh
cjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBj
Lng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0
LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp5d3koY2hh
cjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenl3eihjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56eXd3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnp6eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenp4
eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56enh6KGNoYXI0IHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6eHcoY2hhcjQgdikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3Iuenp5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRv
ci56enl5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6eXooY2hhcjQg
dikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenp5dyhjaGFyNCB2KSB7CisgICAgY2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci56enp4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnp6enkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuenp6eihj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56enp3KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6d3goY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3Iuenp3eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56
end6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp6d3coY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuend4eChjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci56d3h5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnp3eHk9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56
OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVy
YXRvci56d3h6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp3eHcoY2hh
cjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuend5eChjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56d3l4PShjaGFyNCB2LCBjaGFyNCBjKSB7CisgICAgY2hh
cjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsK
KyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorY2hhcjQgb3BlcmF0b3Iuend5eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
NCBvcGVyYXRvci56d3l6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp3
eXcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iuend6eChjaGFyNCB2KSB7
CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56d3p5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnp3enooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3Iuend6dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci56d3d4KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnp3d3koY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3Iuend3eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci56d3d3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd4eHgo
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3h4eShjaGFyNCB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eHh6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnd4eHcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iu
d3h5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eHl5KGNoYXI0IHYp
IHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd4eXooY2hhcjQgdikgeworICAgIGNoYXI0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorY2hhcjQgb3BlcmF0b3Iud3h5ej0oY2hhcjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAg
cmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnd4eXcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3Iud3h6eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eHp5KGNo
YXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd4enk9KGNoYXI0IHYsIGNoYXI0
IGMpIHsKKyAgICBjaGFyNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJl
c3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eHp6KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd4encoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3Iud3h3eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53
eHd5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd4d3ooY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3h3dyhjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci53eXh4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnd5eHkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3l4eihjaGFy
NCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eXh6PShjaGFyNCB2LCBjaGFyNCBj
KSB7CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1
bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3l4dyhjaGFyNCB2KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eXl4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0
IG9wZXJhdG9yLnd5eXkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3l5
eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eXl3KGNoYXI0IHYpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd5engoY2hhcjQgdikgeworICAgIGNoYXI0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhcjQgb3BlcmF0b3Iud3l6eD0oY2hhcjQgdiwgY2hhcjQgYykgeworICAgIGNoYXI0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVz
dWx0LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2NoYXI0IG9wZXJhdG9yLnd5enkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0
b3Iud3l6eihjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53eXp3KGNoYXI0
IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd5d3goY2hhcjQgdikgeworICAgIGNo
YXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorY2hhcjQgb3BlcmF0b3Iud3l3eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBv
cGVyYXRvci53eXd6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd5d3co
Y2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3p4eChjaGFyNCB2KSB7Cisg
ICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53enh5KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2No
YXI0IG9wZXJhdG9yLnd6eHk9KGNoYXI0IHYsIGNoYXI0IGMpIHsKKyAgICBjaGFyNCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3Vs
dC54ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci53enh6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnd6eHcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3p5eChjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53enl4PShjaGFyNCB2LCBjaGFyNCBjKSB7
CisgICAgY2hhcjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3p5eShjaGFyNCB2KSB7CisgICAgY2hh
cjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitjaGFyNCBvcGVyYXRvci53enl6KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9w
ZXJhdG9yLnd6eXcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3p6eChj
aGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53enp5KGNoYXI0IHYpIHsKKyAg
ICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd6enooY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hh
cjQgb3BlcmF0b3Iud3p6dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53
end4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd6d3koY2hhcjQgdikg
eworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3p3eihjaGFyNCB2KSB7CisgICAgY2hhcjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyNCBvcGVyYXRvci53end3KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJh
dG9yLnd3eHgoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3d4eShjaGFy
NCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53d3h6KGNoYXI0IHYpIHsKKyAgICBj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2NoYXI0IG9wZXJhdG9yLnd3eHcoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
b3BlcmF0b3Iud3d5eChjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53d3l5
KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd3eXooY2hhcjQgdikgewor
ICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3d5dyhjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citj
aGFyNCBvcGVyYXRvci53d3p4KGNoYXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9y
Lnd3enkoY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3BlcmF0b3Iud3d6eihjaGFyNCB2
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53d3p3KGNoYXI0IHYpIHsKKyAgICBjaGFy
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXI0IG9wZXJhdG9yLnd3d3goY2hhcjQgdikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgb3Bl
cmF0b3Iud3d3eShjaGFyNCB2KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBvcGVyYXRvci53d3d6KGNo
YXI0IHYpIHsKKyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IG9wZXJhdG9yLnd3d3coY2hhcjQgdikgeworICAg
IGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh4KHNob3J0MiB2KSB7CisgICAgc2hvcnQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh5KHNob3J0MiB2KSB7CisgICAgc2hvcnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh5PShzaG9ydDIgdiwgc2hvcnQyIGMpIHsK
KyAgICBzaG9ydDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl4KHNob3J0
MiB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl4PShz
aG9ydDIgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQyIG9wZXJhdG9yLnl5KHNob3J0MiB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQyIG9wZXJhdG9yLnh4KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQyIG9wZXJhdG9yLnh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQzIG9wZXJhdG9yLnh5PShzaG9ydDMgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9y
dDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh6KHNob3J0MyB2KSB7Cisg
ICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh6PShzaG9ydDMgdiwg
c2hvcnQyIGMpIHsKKyAgICBzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsK
KyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJh
dG9yLnl4KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9w
ZXJhdG9yLnl4PShzaG9ydDMgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDMgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl6KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl6PShzaG9ydDMgdiwgc2hvcnQyIGMpIHsK
KyAgICBzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQu
eiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnp4KHNob3J0
MyB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp4PShz
aG9ydDMgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQyIG9wZXJhdG9yLnp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQzIG9wZXJhdG9yLnp5PShzaG9ydDMgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDMgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnp6KHNob3J0MyB2KSB7CisgICAgc2hv
cnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh4KHNob3J0NCB2KSB7CisgICAg
c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh5KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5PShzaG9ydDQgdiwg
c2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsK
KyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJh
dG9yLnh6KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnh6PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnh3KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9
IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl4KHNob3J0NCB2
KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4PShzaG9y
dDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9
IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQy
IG9wZXJhdG9yLnl5KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQyIG9wZXJhdG9yLnl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnl6PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnl3KHNob3J0NCB2KSB7CisgICAgc2hv
cnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3PShzaG9ydDQgdiwgc2hvcnQy
IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICBy
ZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnp4
KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnp4PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQyIG9wZXJhdG9yLnp5KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9y
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnp6KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnp3KHNob3J0NCB2KSB7
CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3PShzaG9ydDQg
diwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMu
eDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9w
ZXJhdG9yLnd4KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnd4PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnd5KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5PShzaG9ydDQgdiwgc2hvcnQyIGMpIHsK
KyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG9wZXJhdG9yLnd6KHNob3J0
NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6PShz
aG9ydDQgdiwgc2hvcnQyIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
dyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQyIG9wZXJhdG9yLnd3KHNob3J0NCB2KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQzIG9wZXJhdG9yLnh4eChzaG9ydDIgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54eHkoc2hvcnQyIHYpIHsK
KyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
b3BlcmF0b3IueHl4KHNob3J0MiB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh5eShzaG9ydDIgdikgeworICAgIHNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRv
ci55eHgoc2hvcnQyIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueXh5KHNob3J0MiB2KSB7CisgICAgc2hvcnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl5eChz
aG9ydDIgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0MyBvcGVyYXRvci55eXkoc2hvcnQyIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueHh4KHNob3J0MyB2
KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQzIG9wZXJhdG9yLnh4eShzaG9ydDMgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54eHooc2hvcnQzIHYpIHsKKyAg
ICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3Bl
cmF0b3IueHl4KHNob3J0MyB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh5eShzaG9ydDMgdikgeworICAgIHNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54
eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueHl6PShzaG9ydDMgdiwgc2hvcnQzIGMpIHsKKyAgICBz
aG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMu
eTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9w
ZXJhdG9yLnh6eChzaG9ydDMgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54enkoc2hvcnQzIHYpIHsKKyAgICBzaG9y
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iu
eHp5PShzaG9ydDMgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh6eihzaG9ydDMgdikgewor
ICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBv
cGVyYXRvci55eHgoc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueXh5KHNob3J0MyB2KSB7CisgICAgc2hv
cnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9y
Lnl4eihzaG9ydDMgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55eHo9KHNob3J0MyB2LCBzaG9ydDMgYykgeworICAg
IHNob3J0MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0g
Yy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
b3BlcmF0b3IueXl4KHNob3J0MyB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl5eShzaG9ydDMgdikgeworICAgIHNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRv
ci55eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueXp4KHNob3J0MyB2KSB7CisgICAgc2hvcnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl6eD0o
c2hvcnQzIHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55enkoc2hvcnQzIHYpIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0
b3IueXp6KHNob3J0MyB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp4eChzaG9ydDMgdikgeworICAgIHNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56eHko
c2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDMgb3BlcmF0b3Iuenh5PShzaG9ydDMgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9y
dDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsK
KyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJh
dG9yLnp4eihzaG9ydDMgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56eXgoc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iuenl4
PShzaG9ydDMgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDMgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp5eShzaG9ydDMgdikgeworICAg
IHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVy
YXRvci56eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iuenp4KHNob3J0MyB2KSB7CisgICAgc2hvcnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp6
eShzaG9ydDMgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0MyBvcGVyYXRvci56enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueHh4KHNob3J0
NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQzIG9wZXJhdG9yLnh4eShzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54eHooc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMg
b3BlcmF0b3IueHh3KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh5eChzaG9ydDQgdikgeworICAgIHNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRv
ci54eXkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueHl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5ej0o
c2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54eXcoc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3IueHl3PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh6eChzaG9ydDQgdikg
eworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
MyBvcGVyYXRvci54enkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp5PShzaG9ydDQgdiwgc2hvcnQz
IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICBy
ZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQzIG9wZXJhdG9yLnh6eihzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci54encoc2hvcnQ0IHYp
IHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3IueHp3PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1
bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh3eChz
aG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0MyBvcGVyYXRvci54d3koc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHd5PShzaG9ydDQg
diwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMu
eDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnh3eihzaG9ydDQgdikgeworICAgIHNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54d3o9
KHNob3J0NCB2LCBzaG9ydDMgYykgeworICAgIHNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC54ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueHd3KHNob3J0NCB2KSB7CisgICAg
c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJh
dG9yLnl4eChzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55eHkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3IueXh6
KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4ej0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hv
cnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7
CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVy
YXRvci55eHcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh3PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsK
KyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQu
eCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQzIG9wZXJhdG9yLnl5eChzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55eXkoc2hvcnQ0IHYpIHsKKyAg
ICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3Bl
cmF0b3IueXl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl5dyhzaG9ydDQgdikgeworICAgIHNob3J0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55
engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp4PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBz
aG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMu
eTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9w
ZXJhdG9yLnl6eShzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55enooc2hvcnQ0IHYpIHsKKyAgICBzaG9y
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iu
eXp3KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6dz0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAg
c2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBj
Lnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBv
cGVyYXRvci55d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXd4PShzaG9ydDQgdiwgc2hvcnQzIGMp
IHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1
bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQzIG9wZXJhdG9yLnl3eShzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci55d3ooc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3IueXd6PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQu
eiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnl3dyhzaG9y
dDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0MyBvcGVyYXRvci56eHgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iuenh5KHNob3J0NCB2KSB7
CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnp4eT0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0
LnkgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56eHooc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDMgb3BlcmF0b3Iuenh3KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp4dz0oc2hvcnQ0IHYs
IHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7
CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56eXgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl4PShz
aG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp5eShzaG9ydDQgdikgeworICAgIHNo
b3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRv
ci56eXooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iuenl3KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5dz0o
c2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56engoc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0
b3Iuenp5KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp6eihzaG9ydDQgdikgeworICAgIHNob3J0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56enco
c2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDMgb3BlcmF0b3Iuend4KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3eD0oc2hvcnQ0
IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBj
Lng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci56d3koc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuend5
PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnp3eihzaG9ydDQgdikgeworICAg
IHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVy
YXRvci56d3coc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iud3h4KHNob3J0NCB2KSB7CisgICAgc2hvcnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnd4
eShzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci53eHk9KHNob3J0NCB2LCBzaG9ydDMgYykgeworICAgIHNo
b3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3Bl
cmF0b3Iud3h6KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd4ej0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7
CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0
LnggPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0MyBvcGVyYXRvci53eHcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iud3l4KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnd5eD0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci53eXkoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDMgb3BlcmF0b3Iud3l6KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5ej0oc2hvcnQ0IHYsIHNo
b3J0MyBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7Cisg
ICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0MyBvcGVyYXRvci53eXcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iud3p4KHNob3J0
NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnd6eD0oc2hvcnQ0IHYsIHNob3J0MyBjKSB7CisgICAgc2hvcnQ0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAg
cmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci53
enkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3p5PShzaG9ydDQgdiwgc2hvcnQzIGMpIHsKKyAgICBz
aG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMu
eTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIG9w
ZXJhdG9yLnd6eihzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci53encoc2hvcnQ0IHYpIHsKKyAgICBzaG9y
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDMgb3BlcmF0b3Iu
d3d4KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQzIG9wZXJhdG9yLnd3eShzaG9ydDQgdikgeworICAgIHNob3J0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBvcGVyYXRvci53d3ooc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDMgb3BlcmF0b3Iud3d3KHNob3J0NCB2KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4eHgoc2hvcnQyIHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh4eShzaG9ydDIgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHl4KHNob3J0MiB2KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQ0IG9wZXJhdG9yLnh4eXkoc2hvcnQyIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3IueHl4eChzaG9ydDIgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXh5KHNo
b3J0MiB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5eXgoc2hvcnQyIHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl5eShzaG9ydDIgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci55eHh4KHNob3J0MiB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnl4eHkoc2hvcnQyIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eXh5eChzaG9ydDIgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHl5KHNob3J0
MiB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl5eHgoc2hvcnQyIHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl4eShzaG9ydDIgdikgeworICAgIHNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0NCBvcGVyYXRvci55eXl4KHNob3J0MiB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnl5eXkoc2hvcnQyIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh4
eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHh5KHNob3J0MyB2
KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4eHooc2hvcnQzIHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh5eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci54eHl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnh4eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh6eChz
aG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHp5KHNob3J0MyB2KSB7
CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4enooc2hvcnQzIHYpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDQgb3BlcmF0b3IueHl4eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
NCBvcGVyYXRvci54eXh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnh5eHooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl5eChzaG9y
dDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXl5KHNob3J0MyB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3IueHl6eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci54eXp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5
enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp4eChzaG9ydDMg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54enh5KHNob3J0MyB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh6eHooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDQgb3BlcmF0b3IueHp5eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci54enl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh6eXoo
c2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp6eChzaG9ydDMgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54enp5KHNob3J0MyB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnh6enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3IueXh4eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci55eHh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4eHooc2hv
cnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh5eChzaG9ydDMgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnl4eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3IueXh6eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55
eHp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4enooc2hvcnQz
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl4eChzaG9ydDMgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnl5eHooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3IueXl5eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXl5
KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl5eXooc2hvcnQzIHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl6eChzaG9ydDMgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQ0IG9wZXJhdG9yLnl5enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3IueXp4eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55enh5KHNo
b3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6eHooc2hvcnQzIHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp5eChzaG9ydDMgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci55enl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnl6eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eXp6eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55enp5KHNob3J0
MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6enooc2hvcnQzIHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenh4eChzaG9ydDMgdikgeworICAgIHNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0NCBvcGVyYXRvci56eHh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnp4eHooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenh5
eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eHl5KHNob3J0MyB2
KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp4eXooc2hvcnQzIHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenh6eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci56eHp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnp4enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl4eChz
aG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eXh5KHNob3J0MyB2KSB7
CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5eHooc2hvcnQzIHYpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl5eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
NCBvcGVyYXRvci56eXl5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnp5eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl6eChzaG9y
dDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eXp5KHNob3J0MyB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5enooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3Iuenp4eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci56enh5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6
eHooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenp5eChzaG9ydDMg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56enl5KHNob3J0MyB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6eXooc2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDQgb3BlcmF0b3Iuenp6eChzaG9ydDMgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci56enp5KHNob3J0MyB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6enoo
c2hvcnQzIHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh4eChzaG9ydDQgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHh5KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4eHooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3IueHh4dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci54eHl4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4eXkoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh5eihzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHl3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnh4engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3IueHh6eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54
eHp6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh4encoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHh3eChzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eHd5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnh4d3ooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3IueHh3dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXh4
KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5eHkoc2hvcnQ0IHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl4eihzaG9ydDQgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXh3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQ0IG9wZXJhdG9yLnh5eXgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3IueHl5eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXl6KHNo
b3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5eXcoc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl6eChzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci54eXp5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnh5enooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eHl6dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXp3PShzaG9y
dDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1
bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5d3go
c2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl3eShzaG9ydDQgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54eXd6KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnh5d3o9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAgIHNo
b3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55
OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHl3dyhzaG9ydDQgdikgeworICAgIHNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0NCBvcGVyYXRvci54enh4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnh6eHkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp4
eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54enh3KHNob3J0NCB2
KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh6eXgoc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp5eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci54enl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnh6eXcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp5dz0o
c2hvcnQ0IHYsIHNob3J0NCBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAg
cmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54
enp4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh6enkoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp6eihzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54enp3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnh6d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3IueHp3eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54end5
PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAg
ICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnh6d3ooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHp3dyhzaG9y
dDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54d3h4KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3eHkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3IueHd4eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci54d3h3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3
eXgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHd5eShzaG9ydDQg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54d3l6KHNob3J0NCB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3eXo9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAg
IHNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC53ID0g
Yy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHd5dyhzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci54d3p4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnh3enkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eHd6eT0oc2hvcnQ0IHYsIHNob3J0NCBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAg
cmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7
CisgICAgcmVzdWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci54d3p6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3enco
c2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueHd3eChzaG9ydDQgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci54d3d5KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnh3d3ooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3IueHd3dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci55eHh4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4eHkoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh4eihzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHh3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnl4eXgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3IueXh5eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55
eHl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4eXcoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh6eChzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHp5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnl4enooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3IueXh6dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHp3
PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAg
ICByZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnl4d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh3eShzaG9y
dDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eHd6KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl4d3o9KHNob3J0NCB2LCBzaG9ydDQgYykgewor
ICAgIHNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54
ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXh3dyhzaG9ydDQgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXh4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hv
cnQ0IG9wZXJhdG9yLnl5eHkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3IueXl4eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXh3KHNo
b3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl5eXgoc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl5eShzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci55eXl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnl5eXcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eXl6eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXp5KHNob3J0
NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl5enooc2hvcnQ0IHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl6dyhzaG9ydDQgdikgeworICAgIHNob3J0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0NCBvcGVyYXRvci55eXd4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9w
ZXJhdG9yLnl5d3koc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXl3
eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55eXd3KHNob3J0NCB2
KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6eHgoc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp4eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci55enh6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnl6eHcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp4dz0o
c2hvcnQ0IHYsIHNob3J0NCBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAg
cmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55
enl4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6eXkoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp5eihzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55enl3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnl6engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3IueXp6eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55enp6
KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6encoc2hvcnQ0IHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXp3eChzaG9ydDQgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci55end4PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBz
aG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMu
eTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl6d3koc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3IueXp3eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci55end3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3
eHgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXd4eShzaG9ydDQg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55d3h6KHNob3J0NCB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3eHo9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAg
IHNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXd4dyhzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci55d3l4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnl3eXkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
eXd5eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55d3l3KHNob3J0
NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3engoc2hvcnQ0IHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXd6eD0oc2hvcnQ0IHYsIHNob3J0NCBjKSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0Lncg
PSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55d3p5KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3enooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3IueXd6dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci55d3d4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnl3d3koc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3IueXd3eihzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci55d3d3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnp4eHgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3Iuenh4eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56
eHh6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp4eHcoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenh5eChzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eHl5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnp4eXooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3Iuenh5dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eHl3
PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAg
ICByZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnp4engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenh6eShzaG9y
dDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eHp6KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp4encoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3Iuenh3eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci56eHd5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp4
d3k9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAgIHNob3J0NCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56Owor
ICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3Iuenh3eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eHd3KHNo
b3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5eHgoc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl4eShzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci56eXh6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnp5eHcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
enl4dz0oc2hvcnQ0IHYsIHNob3J0NCBjKSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAg
cmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7
CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci56eXl4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5eXko
c2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl5eihzaG9ydDQgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eXl3KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3Iuenl6eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci56eXp6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5encoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl3eChzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56eXd4PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsK
KyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp5d3koc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenl3eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci56eXd3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnp6eHgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenp4eShz
aG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56enh6KHNob3J0NCB2KSB7
CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6eHcoc2hvcnQ0IHYpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDQgb3BlcmF0b3Iuenp5eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
NCBvcGVyYXRvci56enl5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnp6eXooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenp5dyhzaG9y
dDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56enp4KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6enkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3Iuenp6eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci56enp3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6
d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuenp3eShzaG9ydDQg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56end6KHNob3J0NCB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp6d3coc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDQgb3BlcmF0b3Iuend4eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci56d3h5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3eHk9
KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAgIHNob3J0NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAg
IHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
end4eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56d3h3KHNob3J0
NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3eXgoc2hvcnQ0IHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuend5eD0oc2hvcnQ0IHYsIHNob3J0NCBjKSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lncg
PSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56d3l5KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3eXooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3Iuend5dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci56d3p4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3enkoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iuend6eihzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56d3p3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnp3d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3Iuend3eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci56
d3d6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnp3d3coc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3h4eChzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eHh5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnd4eHooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3Iud3h4dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eHl4
KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd4eXkoc2hvcnQ0IHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3h5eihzaG9ydDQgdikgeworICAgIHNo
b3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3Nob3J0NCBvcGVyYXRvci53eHl6PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsKKyAgICBz
aG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMu
eTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd4eXcoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3Iud3h6eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci53eHp5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd4
enk9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAgIHNob3J0NCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56Owor
ICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0
b3Iud3h6eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eHp3KHNo
b3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd4d3goc2hvcnQ0IHYpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3h3eShzaG9ydDQgdikgeworICAgIHNob3J0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0NCBvcGVyYXRvci53eHd6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0
IG9wZXJhdG9yLnd4d3coc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iu
d3l4eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eXh5KHNob3J0
NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5eHooc2hvcnQ0IHYpIHsKKyAg
ICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3l4ej0oc2hvcnQ0IHYsIHNob3J0NCBjKSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0Lnkg
PSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eXh3KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5eXgoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3Iud3l5eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci53eXl6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5eXcoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3l6eChzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eXp4PShzaG9ydDQgdiwgc2hvcnQ0IGMpIHsK
KyAgICBzaG9ydDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5enkoc2hvcnQ0IHYpIHsKKyAgICBz
aG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3l6eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3No
b3J0NCBvcGVyYXRvci53eXp3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJh
dG9yLnd5d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3l3eShz
aG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53eXd6KHNob3J0NCB2KSB7
CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd5d3coc2hvcnQ0IHYpIHsKKyAgICBzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitzaG9ydDQgb3BlcmF0b3Iud3p4eChzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
NCBvcGVyYXRvci53enh5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9y
Lnd6eHk9KHNob3J0NCB2LCBzaG9ydDQgYykgeworICAgIHNob3J0NCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56
OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3Iud3p4eihzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53enh3
KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6eXgoc2hvcnQ0IHYp
IHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3p5eD0oc2hvcnQ0IHYsIHNob3J0NCBj
KSB7CisgICAgc2hvcnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53enl5KHNob3J0NCB2KSB7Cisg
ICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6eXooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDQgb3BlcmF0b3Iud3p5dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBv
cGVyYXRvci53enp4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6
enkoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3p6eihzaG9ydDQg
dikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53enp3KHNob3J0NCB2KSB7CisgICAg
c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6d3goc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citz
aG9ydDQgb3BlcmF0b3Iud3p3eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVy
YXRvci53end6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd6d3co
c2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3d4eChzaG9ydDQgdikg
eworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53d3h5KHNob3J0NCB2KSB7CisgICAgc2hv
cnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorc2hvcnQ0IG9wZXJhdG9yLnd3eHooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9y
dDQgb3BlcmF0b3Iud3d4dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRv
ci53d3l4KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd3eXkoc2hv
cnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3d5eihzaG9ydDQgdikgewor
ICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53d3l3KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQ0IG9wZXJhdG9yLnd3engoc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQg
b3BlcmF0b3Iud3d6eShzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53
d3p6KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG9wZXJhdG9yLnd3encoc2hvcnQ0
IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3BlcmF0b3Iud3d3eChzaG9ydDQgdikgeworICAg
IHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK3Nob3J0NCBvcGVyYXRvci53d3d5KHNob3J0NCB2KSB7CisgICAgc2hvcnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG9wZXJhdG9yLnd3d3ooc2hvcnQ0IHYpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgb3Bl
cmF0b3Iud3d3dyhzaG9ydDQgdikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IueHgoaW50
MiB2KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IueHkoaW50MiB2
KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IueHk9KGludDIgdiwg
aW50MiBjKSB7CisgICAgaW50MiByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAg
IHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnl4
KGludDIgdikgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnl4PShp
bnQyIHYsIGludDIgYykgeworICAgIGludDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMu
eDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVy
YXRvci55eShpbnQyIHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRv
ci54eChpbnQzIHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci54
eShpbnQzIHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54eT0o
aW50MyB2LCBpbnQyIGMpIHsKKyAgICBpbnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBj
Lng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3Bl
cmF0b3IueHooaW50MyB2KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0
b3IueHo9KGludDMgdiwgaW50MiBjKSB7CisgICAgaW50MyByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC54ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQyIG9wZXJhdG9yLnl4KGludDMgdikgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
IG9wZXJhdG9yLnl4PShpbnQzIHYsIGludDIgYykgeworICAgIGludDMgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50MiBvcGVyYXRvci55eShpbnQzIHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50MiBvcGVyYXRvci55eihpbnQzIHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci55ej0oaW50MyB2LCBpbnQyIGMpIHsKKyAgICBpbnQzIHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDIgb3BlcmF0b3IuengoaW50MyB2KSB7CisgICAgaW50MiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDMgb3BlcmF0b3Iueng9KGludDMgdiwgaW50MiBjKSB7CisgICAgaW50MyByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnp5KGludDMgdikgeworICAgIGludDIgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnp5PShpbnQzIHYsIGludDIgYykgeworICAgIGlu
dDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci56eihpbnQzIHYpIHsKKyAgICBp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci54eChpbnQ0IHYpIHsKKyAgICBpbnQy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci54eShpbnQ0IHYpIHsKKyAgICBpbnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eT0oaW50NCB2LCBpbnQyIGMpIHsKKyAgICBp
bnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3IueHooaW50NCB2KSB7CisgICAg
aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHo9KGludDQgdiwgaW50MiBjKSB7
CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC56
ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnh3KGludDQgdikg
eworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh3PShpbnQ0IHYsIGlu
dDIgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICBy
ZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci55eChp
bnQ0IHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eD0oaW50
NCB2LCBpbnQyIGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7
CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0
b3IueXkoaW50NCB2KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3Iu
eXooaW50NCB2KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXo9
KGludDQgdiwgaW50MiBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0g
Yy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9w
ZXJhdG9yLnl3KGludDQgdikgeworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnl3PShpbnQ0IHYsIGludDIgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MiBvcGVyYXRvci56eChpbnQ0IHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci56eD0oaW50NCB2LCBpbnQyIGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDIgb3BlcmF0b3IuenkoaW50NCB2KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3Iuenk9KGludDQgdiwgaW50MiBjKSB7CisgICAgaW50NCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnp6KGludDQgdikgeworICAgIGludDIgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnp3KGludDQgdikgeworICAgIGludDIgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp3PShpbnQ0IHYsIGludDIgYykgeworICAgIGludDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci53eChpbnQ0IHYpIHsKKyAgICBpbnQyIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53eD0oaW50NCB2LCBpbnQyIGMpIHsKKyAgICBp
bnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgb3BlcmF0b3Iud3koaW50NCB2KSB7CisgICAg
aW50MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3k9KGludDQgdiwgaW50MiBjKSB7
CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55
ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQyIG9wZXJhdG9yLnd6KGludDQgdikg
eworICAgIGludDIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd6PShpbnQ0IHYsIGlu
dDIgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICBy
ZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MiBvcGVyYXRvci53dyhp
bnQ0IHYpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54eHgoaW50
MiB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDMgb3BlcmF0b3IueHh5KGludDIgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh5eChpbnQyIHYpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54eXkoaW50
MiB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDMgb3BlcmF0b3IueXh4KGludDIgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnl4eShpbnQyIHYpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eXgoaW50
MiB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDMgb3BlcmF0b3IueXl5KGludDIgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh4eChpbnQzIHYpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54eHkoaW50
MyB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDMgb3BlcmF0b3IueHh6KGludDMgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh5eChpbnQzIHYpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54eXkoaW50
MyB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDMgb3BlcmF0b3IueHl6KGludDMgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh5ej0oaW50MyB2LCBpbnQzIGMpIHsKKyAg
ICBpbnQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBj
Lnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3Bl
cmF0b3IueHp4KGludDMgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh6eShpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54enk9KGludDMgdiwg
aW50MyBjKSB7CisgICAgaW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAg
IHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQzIG9wZXJhdG9yLnh6eihpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eHgoaW50MyB2KSB7CisgICAg
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iu
eXh5KGludDMgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQzIG9wZXJhdG9yLnl4eihpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eHo9KGludDMgdiwgaW50MyBj
KSB7CisgICAgaW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3Vs
dC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQzIG9wZXJhdG9yLnl5eChpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eXkoaW50MyB2KSB7CisgICAgaW50MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueXl6KGlu
dDMgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQzIG9wZXJhdG9yLnl6eChpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eng9KGludDMgdiwgaW50MyBjKSB7Cisg
ICAgaW50MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9w
ZXJhdG9yLnl6eShpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50MyBvcGVyYXRvci55enooaW50MyB2KSB7CisgICAgaW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuenh4KGludDMgdikg
eworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9w
ZXJhdG9yLnp4eShpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50MyBvcGVyYXRvci56eHk9KGludDMgdiwgaW50MyBjKSB7CisgICAgaW50
MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55Owor
ICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9y
Lnp4eihpbnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50MyBvcGVyYXRvci56eXgoaW50MyB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuenl4PShpbnQzIHYsIGludDMg
YykgeworICAgIGludDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1
bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci56eXkoaW50MyB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuenl6KGludDMgdikgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnp6eChp
bnQzIHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci56enkoaW50MyB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuenp6KGludDMgdikgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh4eChp
bnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci54eHkoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueHh6KGludDQgdikgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh4dyhp
bnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci54eXgoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueHl5KGludDQgdikgeworICAgIGludDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh5eihp
bnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci54eXo9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56
ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh5dyhpbnQ0IHYp
IHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci54eXc9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh6eChpbnQ0IHYpIHsKKyAg
ICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRv
ci54enkoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueHp5PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci54enoo
aW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDMgb3BlcmF0b3IueHp3KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh6dz0oaW50NCB2LCBpbnQzIGMpIHsK
KyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0Lnog
PSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMg
b3BlcmF0b3IueHd4KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh3eShpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54d3k9KGludDQg
diwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54Owor
ICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnh3eihpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54d3o9KGludDQgdiwgaW50
MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJl
c3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQzIG9wZXJhdG9yLnh3dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55eHgoaW50NCB2KSB7CisgICAgaW50
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueXh5
KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQzIG9wZXJhdG9yLnl4eihpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eHo9KGludDQgdiwgaW50MyBjKSB7
CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54
ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQz
IG9wZXJhdG9yLnl4dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eHc9KGludDQgdiwgaW50MyBjKSB7CisgICAg
aW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJh
dG9yLnl5eChpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50MyBvcGVyYXRvci55eXkoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueXl6KGludDQgdikgewor
ICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJh
dG9yLnl5dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50MyBvcGVyYXRvci55engoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp4PShpbnQ0IHYsIGlu
dDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICBy
ZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50MyBvcGVyYXRvci55enkoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3IueXp6KGludDQgdikgeworICAgIGlu
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnl6
dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci55enc9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQg
PSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3Vs
dC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnl3eChpbnQ0
IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci55d3g9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2Owor
ICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0g
Yy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnl3eShpbnQ0IHYpIHsK
KyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVy
YXRvci55d3ooaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd6PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAg
ICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci55
d3coaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDMgb3BlcmF0b3Iuenh4KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnp4eShpbnQ0IHYpIHsKKyAgICBp
bnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56
eHk9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56
ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnp4eihpbnQ0IHYpIHsKKyAgICBpbnQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci56eHcoaW50
NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iuenh3PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci56eXgoaW50NCB2KSB7
CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3Iuenl4PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci56eXkoaW50NCB2KSB7CisgICAg
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iu
enl6KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQzIG9wZXJhdG9yLnp5dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eXc9KGludDQgdiwgaW50MyBj
KSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3Vs
dC55ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQzIG9wZXJhdG9yLnp6eChpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci56enkoaW50NCB2KSB7CisgICAgaW50MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuenp6KGlu
dDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQzIG9wZXJhdG9yLnp6dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci56d3goaW50NCB2KSB7CisgICAgaW50MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend4PShp
bnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMu
eDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50MyBvcGVyYXRvci56d3koaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend5PShpbnQ0IHYs
IGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAg
ICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50MyBvcGVyYXRvci56d3ooaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iuend3KGludDQgdikgeworICAg
IGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9y
Lnd4eChpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50MyBvcGVyYXRvci53eHkoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h5PShpbnQ0IHYsIGludDMg
YykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1
bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50MyBvcGVyYXRvci53eHooaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h6PShpbnQ0IHYsIGludDMgYykgewor
ICAgIGludDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9
IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBv
cGVyYXRvci53eHcoaW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDMgb3BlcmF0b3Iud3l4KGludDQgdikgeworICAgIGludDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd5eD0oaW50NCB2
LCBpbnQzIGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7Cisg
ICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDMgb3BlcmF0b3Iud3l5KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnd5eihpbnQ0IHYpIHsKKyAg
ICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci53eXo9KGludDQgdiwgaW50MyBjKSB7CisgICAgaW50NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnd5dyhpbnQ0IHYpIHsKKyAgICBpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci53engo
aW50NCB2KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3Iud3p4PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQu
eCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci53enkoaW50NCB2
KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3Iud3p5PShpbnQ0IHYsIGludDMgYykgeworICAgIGludDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci53enooaW50NCB2KSB7Cisg
ICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0
b3Iud3p3KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnd3eChpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBvcGVyYXRvci53d3koaW50NCB2KSB7Cisg
ICAgaW50MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgb3BlcmF0
b3Iud3d6KGludDQgdikgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIG9wZXJhdG9yLnd3dyhpbnQ0IHYpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHh4KGludDIgdikgewor
ICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4eHkoaW50MiB2KSB7CisgICAgaW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3IueHh5eChpbnQyIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHl5KGlu
dDIgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eHgoaW50MiB2KSB7CisgICAgaW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3IueHl4eShpbnQyIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci54eXl4KGludDIgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eXkoaW50MiB2KSB7
CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh4eChpbnQyIHYpIHsKKyAgICBpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci55eHh5KGludDIgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4eXgo
aW50MiB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh5eShpbnQyIHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci55eXh4KGludDIgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnl5eHkoaW50MiB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXl5eChpbnQyIHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXl5KGludDIgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnh4eHgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHh4
eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHh6KGludDMgdikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4eXgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3IueHh5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHl6KGludDMg
dikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4engoaW50MyB2KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3IueHh6eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54
eHp6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eHgoaW50MyB2KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl4eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci54eXh6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eXgoaW50
MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl5eShpbnQzIHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci54eXl6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnh5engoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl6eShpbnQzIHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eXp6KGludDMgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnh6eHgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHp4eShp
bnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enh6KGludDMgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnh6eXgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3IueHp5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enl6KGludDMgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh6engoaW50MyB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3IueHp6eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enp6
KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4eHgoaW50MyB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueXh4eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci55eHh6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4eXgoaW50MyB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci55eHl6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4
engoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh6eShpbnQzIHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci55eHp6KGludDMgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnl5eHgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXl4eShpbnQz
IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXh6KGludDMgdikgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0IG9wZXJhdG9yLnl5eXgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iu
eXl5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXl6KGludDMgdikgewor
ICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl5engoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3IueXl6eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXp6KGlu
dDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6eHgoaW50MyB2KSB7CisgICAgaW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3IueXp4eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci55enh6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6eXgoaW50MyB2KSB7
CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci55enl6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6engo
aW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp6eShpbnQzIHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci55enp6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnp4eHgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh4eShpbnQzIHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHh6KGludDMgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnp4eXgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh5
eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHl6KGludDMgdikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp4engoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3Iuenh6eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHp6KGludDMg
dikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5eHgoaW50MyB2KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3Iuenl4eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56
eXh6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5eXgoaW50MyB2KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenl5eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci56eXl6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5engoaW50
MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenl6eShpbnQzIHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci56eXp6KGludDMgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnp6eHgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenp4eShpbnQzIHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enh6KGludDMgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnp6eXgoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenp5eShp
bnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enl6KGludDMgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnp6engoaW50MyB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iuenp6eShpbnQzIHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enp6KGludDMgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4eHgoaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3IueHh4eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHh6
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4eHcoaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueHh5eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci54eHl5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4eXooaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHh5dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci54eHp4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh4
enkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHh6eihpbnQ0IHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci54eHp3KGludDQgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnh4d3goaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHh3eShpbnQ0
IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eHd6KGludDQgdikgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0IG9wZXJhdG9yLnh4d3coaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iu
eHl4eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eXh5KGludDQgdikgewor
ICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eHooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3IueHl4dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54eXl4KGlu
dDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5eXkoaW50NCB2KSB7CisgICAgaW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3IueHl5eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci54eXl3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5engoaW50NCB2KSB7
CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl6eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci54eXp6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh5enco
aW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl6dz0oaW50NCB2LCBpbnQ0IGMp
IHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0
LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl3eChpbnQ0IHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci54eXd5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnh5d3ooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl3ej0oaW50NCB2LCBp
bnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAg
cmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHl3dyhpbnQ0IHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci54enh4KGludDQgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnh6eHkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHp4eihpbnQ0
IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enh3KGludDQgdikgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0IG9wZXJhdG9yLnh6eXgoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iu
eHp5eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enl6KGludDQgdikgewor
ICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh6eXcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3IueHp5dz0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBj
Lno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3IueHp6eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54enp5KGludDQg
dikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh6enooaW50NCB2KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3IueHp6dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54
end4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh6d3koaW50NCB2KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHp3eT0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7Cisg
ICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueHp3eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci54end3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh3eHgoaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd4eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci54d3h6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh3
eHcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd5eChpbnQ0IHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci54d3l5KGludDQgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnh3eXooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd5ej0oaW50
NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7
CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0Lnog
PSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd5dyhpbnQ0IHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54d3p4KGludDQgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnh3enkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd6
eT0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVz
dWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueHd6eihp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54d3p3KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnh3d3goaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3IueHd3eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci54d3d6KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnh3d3coaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3IueXh4eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eHh5
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4eHooaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueXh4dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci55eHl4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4eXkoaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh5eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci55eHl3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl4
engoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh6eShpbnQ0IHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci55eHp6KGludDQgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnl4encoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh6dz0oaW50
NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7
CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0Lncg
PSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh3eChpbnQ0IHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eHd5KGludDQgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnl4d3ooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh3
ej0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVz
dWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXh3dyhp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXh4KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnl5eHkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3IueXl4eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXh3KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl5eXgoaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3IueXl5eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55eXl6
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl5eXcoaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueXl6eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci55eXp5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl5enooaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXl6dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci55eXd4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl5
d3koaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXl3eihpbnQ0IHYpIHsKKyAg
ICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50NCBvcGVyYXRvci55eXd3KGludDQgdikgeworICAgIGludDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9w
ZXJhdG9yLnl6eHgoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp4eShpbnQ0
IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55enh6KGludDQgdikgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0IG9wZXJhdG9yLnl6eHcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iu
eXp4dz0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAg
cmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp5
eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55enl5KGludDQgdikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6eXooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3IueXp5dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55enp4KGludDQg
dikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6enkoaW50NCB2KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3IueXp6eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55
enp3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6d3goaW50NCB2KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXp3eD0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7Cisg
ICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3IueXp3eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci55end6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl6d3coaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd4eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci55d3h5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl3
eHooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd4ej0oaW50NCB2LCBpbnQ0
IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVz
dWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd4dyhpbnQ0IHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci55d3l4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnl3eXkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd5eihpbnQ0IHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55d3l3KGludDQgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnl3engoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd6
eD0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVz
dWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3IueXd6eShp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55d3p6KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnl3encoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3IueXd3eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci55d3d5KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnl3d3ooaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3IueXd3dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHh4
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp4eHkoaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3Iuenh4eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci56eHh3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp4eXgoaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh5eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci56eHl6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp4
eXcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh5dz0oaW50NCB2LCBpbnQ0
IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVz
dWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh6eChpbnQ0IHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci56eHp5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnp4enooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh6dyhpbnQ0IHYp
IHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHd4KGludDQgdikgeworICAgIGludDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Citp
bnQ0IG9wZXJhdG9yLnp4d3koaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh3
eT0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVz
dWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenh3eihp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eHd3KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnp5eHgoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iuenl4eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eXh6KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5eHcoaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iuenl4dz0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3Iuenl5eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56eXl5KGlu
dDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5eXooaW50NCB2KSB7CisgICAgaW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3Iuenl5dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci56eXp4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5enkoaW50NCB2KSB7
CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenl6eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBvcGVyYXRvci56eXp3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp5d3go
aW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenl3eD0oaW50NCB2LCBpbnQ0IGMp
IHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0
LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenl3eShpbnQ0IHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci56eXd6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnp5d3coaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenp4eChpbnQ0IHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enh5KGludDQgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnp6eHooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenp4dyhp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enl4KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnp6eXkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iuenp5eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enl3KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp6engoaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iuenp6eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56enp6
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp6encoaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3Iuenp3eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci56end5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp6d3ooaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuenp3dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci56d3h4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp3
eHkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend4eT0oaW50NCB2LCBpbnQ0
IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVz
dWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LnkgPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend4eihpbnQ0IHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci56d3h3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnp3eXgoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend5eD0oaW50NCB2
LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7Cisg
ICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBj
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend5eShpbnQ0IHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci56d3l6KGludDQgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnp3eXcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iuend6eChp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56d3p5KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnp3enooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iuend6dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56d3d4KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnp3d3koaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iuend3eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci56d3d3
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd4eHgoaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDQgb3BlcmF0b3Iud3h4eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVy
YXRvci53eHh6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd4eHcoaW50NCB2
KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h5eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aW50NCBvcGVyYXRvci53eHl5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd4
eXooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h5ej0oaW50NCB2LCBpbnQ0
IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVz
dWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h5dyhpbnQ0IHYpIHsKKyAgICBp
bnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraW50NCBvcGVyYXRvci53eHp4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJh
dG9yLnd4enkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h6eT0oaW50NCB2
LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7Cisg
ICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LnkgPSBj
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h6eihpbnQ0IHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci53eHp3KGludDQgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnd4d3goaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3h3eShp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53eHd6KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnd4d3coaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iud3l4eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53eXh5KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd5eHooaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iud3l4ej0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0Lngg
PSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQg
b3BlcmF0b3Iud3l4dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53eXl4KGlu
dDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd5eXkoaW50NCB2KSB7CisgICAgaW50
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2ludDQgb3BlcmF0b3Iud3l5eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRv
ci53eXl3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd5engoaW50NCB2KSB7
CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3l6eD0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBp
bnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7
CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3l6eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci53eXp6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd5encoaW50
NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3l3eChpbnQ0IHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci53eXd5KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnd5d3ooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3l3dyhpbnQ0IHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci53enh4KGludDQgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnd6eHkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3p4eT0o
aW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBj
Lng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0
LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3p4eihpbnQ0
IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53enh3KGludDQgdikgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitpbnQ0IG9wZXJhdG9yLnd6eXgoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iu
d3p5eD0oaW50NCB2LCBpbnQ0IGMpIHsKKyAgICBpbnQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAg
cmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3p5
eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53enl6KGludDQgdikgeworICAg
IGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd6eXcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3Bl
cmF0b3Iud3p6eChpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53enp5KGludDQg
dikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd6enooaW50NCB2KSB7CisgICAgaW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2ludDQgb3BlcmF0b3Iud3p6dyhpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53
end4KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd6d3koaW50NCB2KSB7Cisg
ICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3p3eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBv
cGVyYXRvci53end3KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd3eHgoaW50
NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3d4eShpbnQ0IHYpIHsKKyAgICBpbnQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraW50NCBvcGVyYXRvci53d3h6KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9y
Lnd3eHcoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3d5eChpbnQ0IHYpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraW50NCBvcGVyYXRvci53d3l5KGludDQgdikgeworICAgIGludDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IG9wZXJhdG9yLnd3eXooaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0b3Iud3d5dyhp
bnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53d3p4KGludDQgdikgeworICAgIGlu
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitpbnQ0IG9wZXJhdG9yLnd3enkoaW50NCB2KSB7CisgICAgaW50NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgb3BlcmF0
b3Iud3d6eihpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53d3p3KGludDQgdikg
eworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd3d3goaW50NCB2KSB7CisgICAgaW50NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgb3BlcmF0b3Iud3d3eShpbnQ0IHYpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBvcGVyYXRvci53d3d6
KGludDQgdikgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IG9wZXJhdG9yLnd3d3coaW50NCB2KSB7CisgICAg
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyIG9wZXJhdG9yLnh4KGhhbGYyIHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyIG9wZXJhdG9yLnh5KGhhbGYyIHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyIG9wZXJhdG9yLnh5PShoYWxmMiB2LCBoYWxmMiBjKSB7CisgICAgaGFsZjIg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0b3IueXgoaGFsZjIgdikgeworICAgIGhh
bGYyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0b3IueXg9KGhhbGYyIHYsIGhhbGYyIGMp
IHsKKyAgICBoYWxmMiByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3Vs
dC54ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci55eShoYWxm
MiB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci54eChoYWxm
MyB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci54eShoYWxm
MyB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54eT0oaGFs
ZjMgdiwgaGFsZjIgYykgeworICAgIGhhbGYzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBj
Lng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9w
ZXJhdG9yLnh6KGhhbGYzIHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9w
ZXJhdG9yLnh6PShoYWxmMyB2LCBoYWxmMiBjKSB7CisgICAgaGFsZjMgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjIgb3BlcmF0b3IueXgoaGFsZjMgdikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjMgb3BlcmF0b3IueXg9KGhhbGYzIHYsIGhhbGYyIGMpIHsKKyAgICBoYWxmMyBy
ZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci55eShoYWxmMyB2KSB7CisgICAgaGFs
ZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci55eihoYWxmMyB2KSB7CisgICAgaGFs
ZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55ej0oaGFsZjMgdiwgaGFsZjIgYykg
eworICAgIGhhbGYzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0
LnogPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yLnp4KGhhbGYz
IHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp4PShoYWxm
MyB2LCBoYWxmMiBjKSB7CisgICAgaGFsZjMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMu
eDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3Bl
cmF0b3IuenkoaGFsZjMgdikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3Bl
cmF0b3Iuenk9KGhhbGYzIHYsIGhhbGYyIGMpIHsKKyAgICBoYWxmMyByZXN1bHQgPSB2OworICAg
IHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBvcGVyYXRvci56eihoYWxmMyB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBvcGVyYXRvci54eChoYWxmNCB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMiBvcGVyYXRvci54eShoYWxmNCB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci54eT0oaGFsZjQgdiwgaGFsZjIgYykgeworICAgIGhhbGY0IHJl
c3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yLnh6KGhhbGY0IHYpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6PShoYWxmNCB2LCBoYWxmMiBjKSB7
CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQu
eiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0b3IueHcoaGFsZjQg
dikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHc9KGhhbGY0
IHYsIGhhbGYyIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54
OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVy
YXRvci55eChoYWxmNCB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci55eD0oaGFsZjQgdiwgaGFsZjIgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAg
cmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIG9wZXJhdG9yLnl5KGhhbGY0IHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIG9wZXJhdG9yLnl6KGhhbGY0IHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLnl6PShoYWxmNCB2LCBoYWxmMiBjKSB7CisgICAgaGFsZjQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0b3IueXcoaGFsZjQgdikgeworICAgIGhhbGYy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXc9KGhhbGY0IHYsIGhhbGYyIGMpIHsK
KyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53
ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci56eChoYWxmNCB2
KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eD0oaGFsZjQg
diwgaGFsZjIgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7
CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJh
dG9yLnp5KGhhbGY0IHYpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnp5PShoYWxmNCB2LCBoYWxmMiBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjIgb3BlcmF0b3IuenooaGFsZjQgdikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjIgb3BlcmF0b3IuencoaGFsZjQgdikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3Iuenc9KGhhbGY0IHYsIGhhbGYyIGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBvcGVyYXRvci53eChoYWxmNCB2KSB7CisgICAgaGFsZjIg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eD0oaGFsZjQgdiwgaGFsZjIgYykgewor
ICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0Lngg
PSBjLnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG9wZXJhdG9yLnd5KGhhbGY0IHYp
IHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd5PShoYWxmNCB2
LCBoYWxmMiBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsK
KyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjIgb3BlcmF0
b3Iud3ooaGFsZjQgdikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3Iud3o9KGhhbGY0IHYsIGhhbGYyIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMiBvcGVyYXRvci53dyhoYWxmNCB2KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci54eHgoaGFsZjIgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueHh5KGhhbGYyIHYpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJh
dG9yLnh5eChoYWxmMiB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54eXkoaGFsZjIgdikgeworICAgIGhhbGYzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXh4KGhhbGYy
IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzIG9wZXJhdG9yLnl4eShoYWxmMiB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55eXgoaGFsZjIgdikgeworICAgIGhh
bGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iu
eXl5KGhhbGYyIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzIG9wZXJhdG9yLnh4eChoYWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54eHkoaGFsZjMgdikg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMg
b3BlcmF0b3IueHh6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh5eChoYWxmMyB2KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54eXko
aGFsZjMgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjMgb3BlcmF0b3IueHl6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh5ej0oaGFsZjMgdiwgaGFs
ZjMgYykgeworICAgIGhhbGYzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAg
cmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIG9wZXJhdG9yLnh6eChoYWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54enkoaGFsZjMgdikgewor
ICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3Bl
cmF0b3IueHp5PShoYWxmMyB2LCBoYWxmMyBjKSB7CisgICAgaGFsZjMgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueHp6KGhhbGYzIHYpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9w
ZXJhdG9yLnl4eChoYWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55eHkoaGFsZjMgdikgeworICAgIGhhbGYzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXh6KGhh
bGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzIG9wZXJhdG9yLnl4ej0oaGFsZjMgdiwgaGFsZjMgYykgeworICAgIGhhbGYzIHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVz
dWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnl5eCho
YWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci55eXkoaGFsZjMgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXl6KGhhbGYzIHYpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJh
dG9yLnl6eChoYWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55eng9KGhhbGYzIHYsIGhhbGYzIGMpIHsKKyAgICBo
YWxmMyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55
OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVy
YXRvci55enkoaGFsZjMgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXp6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp4eChoYWxm
MyB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMyBvcGVyYXRvci56eHkoaGFsZjMgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iuenh5PShoYWxmMyB2LCBoYWxmMyBj
KSB7CisgICAgaGFsZjMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1
bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjMgb3BlcmF0b3Iuenh6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp5eChoYWxmMyB2KSB7CisgICAg
aGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRv
ci56eXg9KGhhbGYzIHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmMyByZXN1bHQgPSB2OworICAgIHJl
c3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci56eXkoaGFsZjMgdikgeworICAg
IGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0
b3Iuenl6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp6eChoYWxmMyB2KSB7CisgICAgaGFsZjMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci56enkoaGFsZjMg
dikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjMgb3BlcmF0b3Iuenp6KGhhbGYzIHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh4eChoYWxmNCB2KSB7CisgICAgaGFs
ZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54
eHkoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjMgb3BlcmF0b3IueHh6KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh4dyhoYWxmNCB2KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci54eXgoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueHl5KGhhbGY0IHYpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh5eiho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci54eXo9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci54eXco
aGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueHl3PShoYWxmNCB2LCBoYWxmMyBjKSB7CisgICAgaGFsZjQgcmVz
dWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICBy
ZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueHp4
KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIG9wZXJhdG9yLnh6eShoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54enk9KGhhbGY0IHYsIGhh
bGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAg
IHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBvcGVyYXRvci54enooaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueHp3KGhhbGY0IHYpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnh6dz0oaGFsZjQgdiwgaGFsZjMgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBj
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnh3eChoYWxmNCB2KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci54d3koaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHd5PShoYWxmNCB2LCBoYWxmMyBjKSB7Cisg
ICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9
IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMg
b3BlcmF0b3IueHd6KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh3ej0oaGFsZjQgdiwgaGFsZjMgYykgewor
ICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnggPSBjLng7CisgICAgcmVzdWx0Lncg
PSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
IG9wZXJhdG9yLnh3dyhoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55eHgoaGFsZjQgdikgeworICAgIGhhbGYz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXh5
KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIG9wZXJhdG9yLnl4eihoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHo9KGhhbGY0IHYsIGhh
bGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAg
IHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBvcGVyYXRvci55eHcoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh3PShoYWxmNCB2LCBo
YWxmMyBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAg
ICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjMgb3BlcmF0b3IueXl4KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnl5eShoYWxmNCB2KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci55eXooaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXl3KGhhbGY0IHYpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnl6eCho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci55eng9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJl
c3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55enko
aGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjMgb3BlcmF0b3IueXp6KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnl6dyhoYWxmNCB2KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci55enc9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci55d3goaGFsZjQgdikgewor
ICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3Bl
cmF0b3IueXd4PShoYWxmNCB2LCBoYWxmMyBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3IueXd5KGhhbGY0IHYpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9w
ZXJhdG9yLnl3eihoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55d3o9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAg
ICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0g
Yy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci55d3coaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iuenh4KGhhbGY0IHYpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp4eSho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci56eHk9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJl
c3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci56eHoo
aGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjMgb3BlcmF0b3Iuenh3KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4dz0oaGFsZjQgdiwgaGFs
ZjMgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAg
cmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIG9wZXJhdG9yLnp5eChoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXg9KGhhbGY0IHYsIGhh
bGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAg
IHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBvcGVyYXRvci56eXkoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iuenl6KGhhbGY0IHYpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9w
ZXJhdG9yLnp5dyhoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXc9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAg
ICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC55ID0g
Yy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci56engoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iuenp5KGhhbGY0IHYpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp6eiho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci56encoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iuend4KGhhbGY0IHYpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnp3eD0oaGFsZjQgdiwgaGFsZjMgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAg
cmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnp3eShoYWxmNCB2KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci56d3k9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci56d3ooaGFsZjQgdikgewor
ICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3Bl
cmF0b3Iuend3KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnd4eChoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci53eHkoaGFs
ZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3Iud3h5PShoYWxmNCB2LCBoYWxmMyBjKSB7CisgICAgaGFsZjQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1
bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iud3h6KGhh
bGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnd4ej0oaGFsZjQgdiwgaGFsZjMgYykgeworICAgIGhhbGY0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVz
dWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnd4dyho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci53eXgoaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3l4PShoYWxmNCB2LCBoYWxm
MyBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICBy
ZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjMgb3BlcmF0b3Iud3l5KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnd5eihoYWxmNCB2KSB7Cisg
ICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci53eXo9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAg
IHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBvcGVyYXRvci53eXcoaGFsZjQgdikgewor
ICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3Bl
cmF0b3Iud3p4KGhhbGY0IHYpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd6eD0oaGFsZjQgdiwgaGFsZjMgYykgeworICAg
IGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBj
Lnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9w
ZXJhdG9yLnd6eShoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53enk9KGhhbGY0IHYsIGhhbGYzIGMpIHsKKyAg
ICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0g
Yy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBv
cGVyYXRvci53enooaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iud3p3KGhhbGY0IHYpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJhdG9yLnd3eCho
YWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBvcGVyYXRvci53d3koaGFsZjQgdikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgb3BlcmF0b3Iud3d6KGhhbGY0IHYpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIG9wZXJh
dG9yLnd3dyhoYWxmNCB2KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHh4KGhhbGYyIHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnh4eHkoaGFsZjIgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eHh5eChoYWxmMiB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHl5KGhhbGYyIHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5eHgoaGFsZjIgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueHl4eShoYWxmMiB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci54eXl4KGhhbGYyIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5eXkoaGFs
ZjIgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh4eChoYWxmMiB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHh5KGhhbGYyIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnl4eXgoaGFsZjIgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh5
eShoYWxmMiB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXh4KGhhbGYyIHYpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5eHkoaGFsZjIgdikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3IueXl5eChoYWxmMiB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci55eXl5KGhhbGYyIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4eHgoaGFsZjMg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHh4eShoYWxmMyB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci54eHh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnh4eXgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHh5eSho
YWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHl6KGhhbGYzIHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3IueHh6eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54
eHp6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5eHgoaGFsZjMgdikg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl4eShoYWxmMyB2KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci54eXh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnh5eXgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl5eShoYWxm
MyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXl6KGhhbGYzIHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3IueHl6eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXp6
KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6eHgoaGFsZjMgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci54enh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnh6eXgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp5eShoYWxmMyB2
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54enl6KGhhbGYzIHYpIHsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLnh6engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3Bl
cmF0b3IueHp6eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54enp6KGhh
bGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl4eHgoaGFsZjMgdikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci55eHh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl4
eXgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh5eShoYWxmMyB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnl4engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3IueXh6eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHp6KGhhbGYz
IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5eHgoaGFsZjMgdikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjQgb3BlcmF0b3IueXl4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBv
cGVyYXRvci55eXh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5eXgo
aGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXl5eShoYWxmMyB2KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnl5engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eXl6eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXp6KGhhbGYzIHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl6eHgoaGFsZjMgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueXp4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci55enh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl6eXgoaGFs
ZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp5eShoYWxmMyB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55enl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnl6engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp6
eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55enp6KGhhbGYzIHYpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4eHgoaGFsZjMgdikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3Iuenh4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci56eHh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4eXgoaGFsZjMg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenh5eShoYWxmMyB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci56eHl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnp4engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenh6eSho
YWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eHp6KGhhbGYzIHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp5eHgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3Iuenl4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56
eXh6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp5eXgoaGFsZjMgdikg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl5eShoYWxmMyB2KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci56eXl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnp5engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl6eShoYWxm
MyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXp6KGhhbGYzIHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6eHgoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3Iuenp4eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56enh6
KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6eXgoaGFsZjMgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenp5eShoYWxmMyB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci56enl6KGhhbGYzIHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnp6engoaGFsZjMgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenp6eShoYWxmMyB2
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56enp6KGhhbGYzIHYpIHsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLnh4eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3Bl
cmF0b3IueHh4eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHh6KGhh
bGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4eHcoaGFsZjQgdikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgb3BlcmF0b3IueHh5eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci54eHl5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4
eXooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHh5dyhoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHp4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnh4enkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3IueHh6eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eHp3KGhhbGY0
IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4d3goaGFsZjQgdikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjQgb3BlcmF0b3IueHh3eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBv
cGVyYXRvci54eHd6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh4d3co
aGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl4eChoYWxmNCB2KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXh5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnh5eHooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eHl4dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXl4KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5eXkoaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueHl5eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci54eXl3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5engoaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl6eShoYWxmNCB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXp6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnh5encoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl6
dz0oaGFsZjQgdiwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0
LnggPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAg
cmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh5
d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHl3eShoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54eXd6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnh5d3o9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55OworICAgIHJl
c3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci54eXd3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnh6eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp4eShoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54enh6KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6eHcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3IueHp5eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54enl5
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6eXooaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp5dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci54enl3PShoYWxmNCB2LCBoYWxmNCBjKSB7CisgICAgaGFsZjQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1
bHQueSA9IGMuejsKKyAgICByZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3IueHp6eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci54enp5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6enooaGFsZjQg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp6dyhoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci54end4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnh6d3koaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp3eT0o
aGFsZjQgdiwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVz
dWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh6d3oo
aGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHp3dyhoYWxmNCB2KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54d3h4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnh3eHkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eHd4eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54d3h3KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh3eXgoaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueHd5eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci54d3l6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh3eXo9KGhh
bGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0g
Yy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3Vs
dC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54d3l3KGhh
bGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh3engoaGFsZjQgdikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgb3BlcmF0b3IueHd6eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci54d3p5PShoYWxmNCB2LCBoYWxmNCBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQu
eiA9IGMuejsKKyAgICByZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3IueHd6eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci54
d3p3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnh3d3goaGFsZjQgdikg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueHd3eShoYWxmNCB2KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci54d3d6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnh3d3coaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh4eChoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHh5KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnl4eHooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3IueXh4dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHl4
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl4eXkoaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh5eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci55eHl3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnl4engoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh6eShoYWxmNCB2
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHp6KGhhbGY0IHYpIHsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLnl4encoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3Bl
cmF0b3IueXh6dz0oaGFsZjQgdiwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LnogPSBj
Lno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnl4d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXh3eSho
YWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHd6KGhhbGY0IHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl4d3o9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBo
YWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eHd3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnl5eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eXl4eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXh6KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5eHcoaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueXl5eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci55eXl5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5eXooaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXl5dyhoYWxmNCB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXp4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnl5enkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXl6
eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55eXp3KGhhbGY0IHYpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3IueXl3eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci55eXd6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl5d3coaGFsZjQg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp4eChoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci55enh5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnl6eHooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp4dyho
YWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55enh3PShoYWxmNCB2LCBoYWxm
NCBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICBy
ZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQudyA9IGMudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp5eChoYWxmNCB2KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55enl5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnl6eXooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
eXp5dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55enp4KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl6enkoaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3IueXp6eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci55enp3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl6d3goaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp3eD0oaGFsZjQgdiwgaGFsZjQg
YykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVz
dWx0LnogPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl6d3koaGFsZjQgdikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgb3BlcmF0b3IueXp3eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci55end3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl3
eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXd4eShoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55d3h6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnl3eHo9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1
bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJl
c3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci55d3h3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnl3eXgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXd5eShoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55d3l6KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnl3eXcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3IueXd6eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55d3p4
PShoYWxmNCB2LCBoYWxmNCBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICBy
ZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXd6
eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci55d3p6KGhhbGY0IHYpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl3encoaGFsZjQgdikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3IueXd3eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci55d3d5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnl3d3ooaGFsZjQg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3IueXd3dyhoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci56eHh4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnp4eHkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenh4eiho
YWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eHh3KGhhbGY0IHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4eXgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3Iuenh5eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56
eHl6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4eXcoaGFsZjQgdikg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenh5dz0oaGFsZjQgdiwgaGFsZjQgYykgewor
ICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0Lngg
PSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4engoaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3Iuenh6eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci56eHp6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4encoaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenh3eChoYWxmNCB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eHd5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnp4d3k9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC53
ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci56eHd6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp4
d3coaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl4eChoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXh5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnp5eHooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3Iuenl4dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXh3PShoYWxm
NCB2LCBoYWxmNCBjKSB7CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMu
eDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQu
dyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl5eChoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXl5KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnp5eXooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3Iuenl5dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56eXp4
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp5enkoaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl6eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci56eXp3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnp5d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl3eD0oaGFsZjQg
diwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7
CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmVzdWx0Lngg
PSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp5d3koaGFsZjQg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenl3eihoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci56eXd3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnp6eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenp4eSho
YWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56enh6KGhhbGY0IHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6eHcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3Iuenp5eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56
enl5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6eXooaGFsZjQgdikg
eworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenp5dyhoYWxmNCB2KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci56enp4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnp6enkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuenp6eihoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56enp3KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3Iuenp3eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56end6
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp6d3coaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuend4eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci56d3h5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnp3eHk9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC56ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56Owor
ICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRv
ci56d3h6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp3eHcoaGFsZjQg
dikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuend5eChoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci56d3l4PShoYWxmNCB2LCBoYWxmNCBjKSB7CisgICAgaGFsZjQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAg
ICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjQgb3BlcmF0b3Iuend5eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBv
cGVyYXRvci56d3l6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp3eXco
aGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iuend6eChoYWxmNCB2KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56d3p5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnp3enooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
end6dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci56d3d4KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnp3d3koaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3Iuend3eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci56d3d3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd4eHgoaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3h4eShoYWxmNCB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eHh6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnd4eHcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3h5
eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eHl5KGhhbGY0IHYpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd4eXooaGFsZjQgdikgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgb3BlcmF0b3Iud3h5ej0oaGFsZjQgdiwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVz
dWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnd4eXcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3Iud3h6eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eHp5KGhhbGY0
IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd4enk9KGhhbGY0IHYsIGhhbGY0IGMp
IHsKKyAgICBoYWxmNCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3Vs
dC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eHp6KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnd4encoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3Iud3h3eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eHd5
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd4d3ooaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3h3dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci53eXh4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnd5eHkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3l4eihoYWxmNCB2
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eXh6PShoYWxmNCB2LCBoYWxmNCBjKSB7
CisgICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQu
eSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3l4dyhoYWxmNCB2KSB7CisgICAgaGFs
ZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNCBvcGVyYXRvci53eXl4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9w
ZXJhdG9yLnd5eXkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3l5eiho
YWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eXl3KGhhbGY0IHYpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd5engoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgb3BlcmF0b3Iud3l6eD0oaGFsZjQgdiwgaGFsZjQgYykgeworICAgIGhhbGY0IHJlc3VsdCA9
IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0
LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IG9wZXJhdG9yLnd5enkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iu
d3l6eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53eXp3KGhhbGY0IHYp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd5d3goaGFsZjQgdikgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjQgb3BlcmF0b3Iud3l3eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVy
YXRvci53eXd6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd5d3coaGFs
ZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3p4eChoYWxmNCB2KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53enh5KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
IG9wZXJhdG9yLnd6eHk9KGhhbGY0IHYsIGhhbGY0IGMpIHsKKyAgICBoYWxmNCByZXN1bHQgPSB2
OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54
ID0gYy56OworICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci53enh6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd6
eHcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3p5eChoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53enl4PShoYWxmNCB2LCBoYWxmNCBjKSB7Cisg
ICAgaGFsZjQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9
IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3p5eShoYWxmNCB2KSB7CisgICAgaGFsZjQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBvcGVyYXRvci53enl6KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJh
dG9yLnd6eXcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3p6eChoYWxm
NCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53enp5KGhhbGY0IHYpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IG9wZXJhdG9yLnd6enooaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
b3BlcmF0b3Iud3p6dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53end4
KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd6d3koaGFsZjQgdikgewor
ICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3p3eihoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNCBvcGVyYXRvci53end3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9y
Lnd3eHgoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3d4eShoYWxmNCB2
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53d3h6KGhhbGY0IHYpIHsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0IG9wZXJhdG9yLnd3eHcoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3Bl
cmF0b3Iud3d5eChoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53d3l5KGhh
bGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd3eXooaGFsZjQgdikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3d5dyhoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NCBvcGVyYXRvci53d3p4KGhhbGY0IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd3
enkoaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0b3Iud3d6eihoYWxmNCB2KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53d3p3KGhhbGY0IHYpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0IG9wZXJhdG9yLnd3d3goaGFsZjQgdikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgb3BlcmF0
b3Iud3d3eShoYWxmNCB2KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBvcGVyYXRvci53d3d6KGhhbGY0
IHYpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG9wZXJhdG9yLnd3d3coaGFsZjQgdikgeworICAgIGhh
bGY0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyIG9wZXJhdG9yLnh4KGZsb2F0MiB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnh5KGZsb2F0MiB2KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnh5PShmbG9hdDIgdiwgZmxvYXQyIGMpIHsKKyAg
ICBmbG9hdDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9
IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnl4KGZsb2F0MiB2
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnl4PShmbG9h
dDIgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDIgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9
IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
IG9wZXJhdG9yLnl5KGZsb2F0MiB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyIG9wZXJhdG9yLnh4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyIG9wZXJhdG9yLnh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzIG9wZXJhdG9yLnh5PShmbG9hdDMgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDMg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnh6KGZsb2F0MyB2KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh6PShmbG9hdDMgdiwgZmxv
YXQyIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAg
ICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9y
Lnl4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJh
dG9yLnl4PShmbG9hdDMgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyIG9wZXJhdG9yLnl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnl6KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl6PShmbG9hdDMgdiwgZmxvYXQyIGMpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9
IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnp4KGZsb2F0MyB2
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp4PShmbG9h
dDMgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
IG9wZXJhdG9yLnp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzIG9wZXJhdG9yLnp5PShmbG9hdDMgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnp6KGZsb2F0MyB2KSB7CisgICAgZmxvYXQy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnh4KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnh5KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5PShmbG9hdDQgdiwgZmxv
YXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAg
ICByZXN1bHQueSA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9y
Lnh6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnh6PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAg
ICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyIG9wZXJhdG9yLnh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh3PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBm
bG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQudyA9IGMu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnl4KGZsb2F0NCB2KSB7
CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4PShmbG9hdDQg
diwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMu
eDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9w
ZXJhdG9yLnl5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
IG9wZXJhdG9yLnl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnl6PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0
ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnl3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQy
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl3PShmbG9hdDQgdiwgZmxvYXQyIGMp
IHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1
bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnp4KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4
PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyIG9wZXJhdG9yLnp5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnp5PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnp6KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnp3KGZsb2F0NCB2KSB7Cisg
ICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
dzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3PShmbG9hdDQgdiwg
ZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsK
KyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJh
dG9yLnd4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnd4PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnd5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5PShmbG9hdDQgdiwgZmxvYXQyIGMpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueSA9
IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG9wZXJhdG9yLnd6KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6PShmbG9h
dDQgdiwgZmxvYXQyIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9
IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQy
IG9wZXJhdG9yLnd3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzIG9wZXJhdG9yLnh4eChmbG9hdDIgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54eHkoZmxvYXQyIHYpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3Bl
cmF0b3IueHl4KGZsb2F0MiB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh5eShmbG9hdDIgdikgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55
eHgoZmxvYXQyIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueXh5KGZsb2F0MiB2KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl5eChmbG9h
dDIgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MyBvcGVyYXRvci55eXkoZmxvYXQyIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueHh4KGZsb2F0MyB2KSB7
CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
IG9wZXJhdG9yLnh4eShmbG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54eHooZmxvYXQzIHYpIHsKKyAgICBm
bG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0
b3IueHl4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh5eShmbG9hdDMgdikgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54eXoo
ZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDMgb3BlcmF0b3IueHl6PShmbG9hdDMgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9h
dDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsK
KyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJh
dG9yLnh6eChmbG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54enkoZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueHp5
PShmbG9hdDMgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAgICByZXN1
bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh6eihmbG9hdDMgdikgeworICAg
IGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVy
YXRvci55eHgoZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueXh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQz
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl4
eihmbG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MyBvcGVyYXRvci55eHo9KGZsb2F0MyB2LCBmbG9hdDMgYykgeworICAgIGZs
b2F0MyByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55
OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3Bl
cmF0b3IueXl4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl5eShmbG9hdDMgdikgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55
eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueXp4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl6eD0oZmxv
YXQzIHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQzIHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55enkoZmxvYXQzIHYpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iu
eXp6KGZsb2F0MyB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp4eChmbG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56eHkoZmxv
YXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgb3BlcmF0b3Iuenh5PShmbG9hdDMgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDMg
cmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAg
ICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9y
Lnp4eihmbG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56eXgoZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iuenl4PShm
bG9hdDMgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDMgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eiA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp5eShmbG9hdDMgdikgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRv
ci56eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iuenp4KGZsb2F0MyB2KSB7CisgICAgZmxvYXQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp6eShm
bG9hdDMgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MyBvcGVyYXRvci56enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueHh4KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzIG9wZXJhdG9yLnh4eShmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54eHooZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3Bl
cmF0b3IueHh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh5eChmbG9hdDQgdikgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54
eXkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueHl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5ej0oZmxv
YXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54eXcoZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
eHl3PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICBy
ZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh6eChmbG9hdDQgdikgewor
ICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBv
cGVyYXRvci54enkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp5PShmbG9hdDQgdiwgZmxvYXQzIGMp
IHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1
bHQueiA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzIG9wZXJhdG9yLnh6eihmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci54encoZmxvYXQ0IHYpIHsK
KyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IueHp3PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0g
djsKKyAgICByZXN1bHQueCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQu
dyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh3eChmbG9h
dDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MyBvcGVyYXRvci54d3koZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHd5PShmbG9hdDQgdiwg
ZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMueDsK
KyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnh3eihmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54d3o9KGZs
b2F0NCB2LCBmbG9hdDMgYykgeworICAgIGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54
ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueHd3KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9y
Lnl4eChmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55eHkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueXh6KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnl4ej0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0
IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7Cisg
ICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRv
ci55eHcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh3PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueCA9
IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
IG9wZXJhdG9yLnl5eChmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55eXkoZmxvYXQ0IHYpIHsKKyAgICBm
bG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0
b3IueXl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl5dyhmbG9hdDQgdikgeworICAgIGZsb2F0MyBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55engo
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3IueXp4PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9h
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsK
KyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJh
dG9yLnl6eShmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55enooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3IueXp3
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6dz0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxv
YXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7
CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVy
YXRvci55d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd4PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsK
KyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQu
dyA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzIG9wZXJhdG9yLnl3eShmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci55d3ooZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53
OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3IueXd6PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsK
KyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueiA9
IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnl3dyhmbG9hdDQg
dikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MyBvcGVyYXRvci56eHgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iuenh5KGZsb2F0NCB2KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnp4eT0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7
CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0Lnkg
PSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56eHooZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgb3BlcmF0b3Iuenh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4dz0oZmxvYXQ0IHYsIGZs
b2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7Cisg
ICAgcmVzdWx0LnggPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MyBvcGVyYXRvci56eXgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl4PShmbG9h
dDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9
IGMueDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueCA9IGMuejsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp5eShmbG9hdDQgdikgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56
eXooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iuenl3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5dz0oZmxv
YXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnog
PSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LncgPSBjLno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56engoZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iu
enp5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp6eihmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56encoZmxv
YXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgb3BlcmF0b3Iuend4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3eD0oZmxvYXQ0IHYs
IGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7
CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci56d3koZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuend5PShm
bG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eiA9IGMueDsKKyAgICByZXN1bHQudyA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnp3eihmbG9hdDQgdikgeworICAgIGZs
b2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRv
ci56d3coZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iud3h4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJhdG9yLnd4eShm
bG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci53eHk9KGZsb2F0NCB2LCBmbG9hdDMgYykgeworICAgIGZsb2F0
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55Owor
ICAgIHJlc3VsdC55ID0gYy56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0
b3Iud3h6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd4ej0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0Lngg
PSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MyBvcGVyYXRvci53eHcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iud3l4KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnd5eD0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7Cisg
ICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBj
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci53eXkoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgb3BlcmF0b3Iud3l6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5ej0oZmxvYXQ0IHYsIGZsb2F0
MyBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAg
cmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MyBvcGVyYXRvci53eXcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iud3p4KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnd6eD0oZmxvYXQ0IHYsIGZsb2F0MyBjKSB7CisgICAgZmxvYXQ0IHJlc3Vs
dCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVz
dWx0LnggPSBjLno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci53enko
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3Iud3p5PShmbG9hdDQgdiwgZmxvYXQzIGMpIHsKKyAgICBmbG9h
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsK
KyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG9wZXJh
dG9yLnd6eihmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci53encoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDMg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgb3BlcmF0b3Iud3d4
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzIG9wZXJhdG9yLnd3eShmbG9hdDQgdikgeworICAgIGZsb2F0MyByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBvcGVyYXRvci53d3ooZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgb3BlcmF0b3Iud3d3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh4eHgoZmxvYXQyIHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh4eShmbG9hdDIgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci54eHl4KGZsb2F0MiB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9
IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IG9wZXJhdG9yLnh4eXkoZmxvYXQyIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
eHl4eChmbG9hdDIgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXh5KGZsb2F0
MiB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5eXgoZmxvYXQyIHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl5eShmbG9hdDIgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci55eHh4KGZsb2F0MiB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnl4eHkoZmxvYXQyIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh5
eChmbG9hdDIgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHl5KGZsb2F0MiB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl5eHgoZmxvYXQyIHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl4eShmbG9hdDIgdikgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBvcGVyYXRvci55eXl4KGZsb2F0MiB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnl5eXkoZmxvYXQyIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh4eChm
bG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHh5KGZsb2F0MyB2KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh4eHooZmxvYXQzIHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3IueHh5eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci54eHl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnh4eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh6eChmbG9h
dDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVz
dWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHp5KGZsb2F0MyB2KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYu
eDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh4enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJl
c3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgb3BlcmF0b3IueHl4eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBv
cGVyYXRvci54eXh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5
eHooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl5eChmbG9hdDMg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXl5KGZsb2F0MyB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3IueHl6eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci54eXp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5enoo
ZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp4eChmbG9hdDMgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54enh5KGZsb2F0MyB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnh6eHooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgb3BlcmF0b3IueHp5eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci54enl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh6eXooZmxv
YXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp6eChmbG9hdDMgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54enp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnh6enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IueXh4eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55
eHh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4eHooZmxvYXQz
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh5eChmbG9hdDMgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnl4eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3IueXh6eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHp5
KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
eTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4enooZmxvYXQzIHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl4eChmbG9hdDMgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eXh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnl5eHooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IueXl5eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eXl5KGZs
b2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl5eXooZmxvYXQzIHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl6eChmbG9hdDMgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci55eXp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IG9wZXJhdG9yLnl5enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAg
IHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
eXp4eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55enh5KGZsb2F0
MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6eHooZmxvYXQzIHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXp5eChmbG9hdDMgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci55enl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnl6eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXp6
eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55enp5KGZsb2F0MyB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6enooZmxvYXQzIHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenh4eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0
LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBvcGVyYXRvci56eHh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnp4eHooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenh5eChm
bG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAg
cmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHl5KGZsb2F0MyB2KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9
IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4eXooZmxvYXQzIHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3Iuenh6eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci56eHp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnp4enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53
ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl4eChmbG9h
dDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eXh5KGZsb2F0MyB2KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5eHooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgb3BlcmF0b3Iuenl5eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBv
cGVyYXRvci56eXl5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5
eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl6eChmbG9hdDMg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eXp5KGZsb2F0MyB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5enooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3Iuenp4eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci56enh5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6eHoo
ZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenp5eChmbG9hdDMgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56enl5KGZsb2F0MyB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6eXooZmxvYXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgb3BlcmF0b3Iuenp6eChmbG9hdDMgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci56enp5KGZsb2F0MyB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6enooZmxv
YXQzIHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh4eChmbG9hdDQgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHh5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnh4eHooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IueHh4dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54
eHl4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh4eXkoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh5eihmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHl3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnh4engoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3IueHh6eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHp6
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh4encoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHh3eChmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eHd5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnh4d3ooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IueHh3dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXh4KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICBy
ZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5eHkoZmxvYXQ0IHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0g
di55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl4eihmbG9hdDQgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAg
cmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci54eXh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IG9wZXJhdG9yLnh5eXgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAg
IHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
eHl5eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0Lncg
PSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXl6KGZsb2F0
NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5eXcoZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl6eChmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci54eXp5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnh5enooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl6
dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXp3PShmbG9hdDQg
diwgZmxvYXQ0IGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueCA9IGMu
eDsKKyAgICByZXN1bHQueSA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1bHQu
dyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh5d3goZmxv
YXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl3eShmbG9hdDQgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54eXd6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnh5d3o9KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZsb2F0
NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC55ID0gYy55Owor
ICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHl3dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBvcGVyYXRvci54enh4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnh6eHkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp4eihm
bG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAg
cmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54enh3KGZsb2F0NCB2KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9
IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh6eXgoZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3IueHp5eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci54enl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnh6eXcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp5dz0oZmxv
YXQ0IHYsIGZsb2F0NCBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lngg
PSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVz
dWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54enp4
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh6enkoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp6eihmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci54enp3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnh6d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IueHp3eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lng7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54end5PShm
bG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eCA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICBy
ZXN1bHQueSA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh6
d3ooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHp3dyhmbG9hdDQg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54d3h4KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsK
KyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh3eHkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3Vs
dC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3IueHd4eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci54d3h3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh3eXgo
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHd5eShmbG9hdDQgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54d3l6KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnh3eXo9KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZs
b2F0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC54ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55
OworICAgIHJlc3VsdC55ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHd5dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci54d3p4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
ejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnh3enkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHd6
eT0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnggPSBjLng7CisgICAgcmVzdWx0LncgPSBjLnk7CisgICAgcmVzdWx0LnogPSBjLno7Cisg
ICAgcmVzdWx0LnkgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci54d3p6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
eDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnh3encoZmxv
YXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi54OworICAgIHJl
c3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueHd3eChmbG9hdDQgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci54d3d5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueDsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnh3d3ooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi54OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di53OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IueHd3dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lng7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55
eHh4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4eHkoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh4eihmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7
CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1
bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnl4eXgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3IueXh5eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHl6
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4eXcoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh6eChmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHp5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnl4enooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IueXh6dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHp3PShm
bG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eSA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICBy
ZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4
d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh3eShmbG9hdDQg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eHd6KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl4d3o9KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAg
IGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC54ID0g
Yy55OworICAgIHJlc3VsdC53ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXh3dyhmbG9hdDQgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci55eXh4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9
IHYueDsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IG9wZXJhdG9yLnl5eHkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3Vs
dC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAg
IHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
eXl4eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7
CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eXh3KGZsb2F0
NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1
bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl5eXgoZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl5eShmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci55eXl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnl5eXcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl6
eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eXp5KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl5enooZmxvYXQ0IHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl6dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0
LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBvcGVyYXRvci55eXd4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsK
KyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJh
dG9yLnl5d3koZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
di55OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3Vs
dC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXl3eihm
bG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAg
cmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55eXd3KGZsb2F0NCB2KSB7
CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9
IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6eHgoZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAg
IHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3IueXp4eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0Lnog
PSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci55enh6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAg
ICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnl6eHcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXp4dz0oZmxv
YXQ0IHYsIGZsb2F0NCBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0Lnkg
PSBjLng7CisgICAgcmVzdWx0LnogPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVz
dWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55enl4
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAg
ICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYu
eDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6eXkoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55
ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXp5eihmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci55enl3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnl6engoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56Owor
ICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3IueXp6eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0
LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55enp6KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6encoZmxvYXQ0IHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXp3eChmbG9hdDQgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAg
cmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci55end4PShmbG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAgICBmbG9h
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueSA9IGMueDsKKyAgICByZXN1bHQueiA9IGMueTsK
KyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl6d3koZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3IueXp3eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci55end3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYueTsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl3eHgo
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAg
IHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd4eShmbG9hdDQgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0Lnkg
PSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55d3h6KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAg
ICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnl3eHo9KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZs
b2F0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC55ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55
OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJlc3VsdC56ID0gYy53OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd4dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci55d3l4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYu
eTsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnl3eXkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJl
c3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd5
eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55d3l3KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl3engoZmxvYXQ0IHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd6eD0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7CisgICAg
ZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnkgPSBjLng7CisgICAgcmVzdWx0LncgPSBj
Lnk7CisgICAgcmVzdWx0LnogPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55d3p5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnl3enooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3IueXd6dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55
d3d4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnl3d3koZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi55OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3IueXd3eihmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnk7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci55d3d3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYueTsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnp4eHgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3Iuenh4eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHh6
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4eHcoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenh5eChmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHl5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnp4eXooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi55Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3Iuenh5dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHl3PShm
bG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAgICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQu
eiA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsKKyAgICByZXN1bHQueSA9IGMuejsKKyAgICBy
ZXN1bHQudyA9IGMudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4
engoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0g
di54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenh6eShmbG9hdDQg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHp6KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4encoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3Iuenh3eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci56eHd5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp4d3k9
KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC56ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC53ID0gYy56OworICAg
IHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
enh3eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eHd3KGZsb2F0
NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5eHgoZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55
OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl4eShmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVz
dWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci56eXh6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYu
eDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnp5eHcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl4
dz0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVz
dWx0LnogPSBjLng7CisgICAgcmVzdWx0LnkgPSBjLnk7CisgICAgcmVzdWx0LnggPSBjLno7Cisg
ICAgcmVzdWx0LncgPSBjLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci56eXl4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQu
dyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5eXkoZmxv
YXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJl
c3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl5eihmbG9hdDQgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2
Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eXl3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnp5engoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di56OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3Iuenl6eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56
eXp6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5encoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl3eChmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56eXd4PShmbG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQueiA9IGMueDsKKyAgICByZXN1bHQueSA9
IGMueTsKKyAgICByZXN1bHQudyA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp5d3koZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3Iuenl3eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci56eXd3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnp6eHgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56
OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenp4eShmbG9h
dDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVz
dWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56enh6KGZsb2F0NCB2KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYu
ejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6eHcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJl
c3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgb3BlcmF0b3Iuenp5eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lnk7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBv
cGVyYXRvci56enl5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6
eXooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56Owor
ICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0g
di56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenp5dyhmbG9hdDQg
dikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0
LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56enp4KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6enkoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3Iuenp6eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci56enp3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6d3go
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuenp3eShmbG9hdDQgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56end6KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnp6d3coZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgb3BlcmF0b3Iuend4eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7Cisg
ICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci56d3h5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
ejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQu
dyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3eHk9KGZs
b2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJlc3VsdC56
ID0gYy54OworICAgIHJlc3VsdC53ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56OworICAgIHJl
c3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuend4
eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7Cisg
ICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56d3h3KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQu
eSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3eXgoZmxvYXQ0IHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53Owor
ICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuend5eD0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7CisgICAg
ZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LnogPSBjLng7CisgICAgcmVzdWx0LncgPSBj
Lnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56d3l5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnp3eXooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3Iuend5dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56
d3p4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3enkoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iuend6eihmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56d3p3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnp3d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3Iuend3eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lno7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci56d3d6
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYuejsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnp3d3coZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi56OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3h4eChmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7Cisg
ICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eHh5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQu
eiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnd4eHooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi54Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3Iud3h4dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eHl4KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueDsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd4eXkoZmxvYXQ0IHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di54OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3h5eihmbG9hdDQgdikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAg
cmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NCBvcGVyYXRvci53eHl6PShmbG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAgICBmbG9h
dDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueCA9IGMueTsK
KyAgICByZXN1bHQueSA9IGMuejsKKyAgICByZXN1bHQueiA9IGMudzsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd4eXcoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3Iud3h6eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7
CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci53eHp5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd4enk9
KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJlc3Vs
dC53ID0gYy54OworICAgIHJlc3VsdC54ID0gYy55OworICAgIHJlc3VsdC56ID0gYy56OworICAg
IHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iu
d3h6eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7
CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0Lncg
PSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eHp3KGZsb2F0
NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1
bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd4d3goZmxvYXQ0IHYpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54
OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3h3eShmbG9hdDQgdikgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lng7CisgICAgcmVz
dWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0NCBvcGVyYXRvci53eHd6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueDsKKyAgICByZXN1bHQueiA9IHYu
dzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9w
ZXJhdG9yLnd4d3coZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54
ID0gdi53OworICAgIHJlc3VsdC55ID0gdi54OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJl
c3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3l4
eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7Cisg
ICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2
Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eXh5KGZsb2F0NCB2
KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQu
eSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5eHooZmxvYXQ0IHYpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55Owor
ICAgIHJlc3VsdC56ID0gdi54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3l4ej0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7CisgICAg
ZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0LnkgPSBj
Lnk7CisgICAgcmVzdWx0LnggPSBjLno7CisgICAgcmVzdWx0LnogPSBjLnc7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eXh3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnd5eXgoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0g
di55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3Iud3l5eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAg
cmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53
eXl6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5eXcoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi53OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3l6eChmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7
CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eXp4PShmbG9hdDQgdiwgZmxvYXQ0IGMpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0ID0gdjsKKyAgICByZXN1bHQudyA9IGMueDsKKyAgICByZXN1bHQueSA9
IGMueTsKKyAgICByZXN1bHQueiA9IGMuejsKKyAgICByZXN1bHQueCA9IGMudzsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5enkoZmxvYXQ0IHYpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAg
IHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDQgb3BlcmF0b3Iud3l6eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0Lnog
PSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBvcGVyYXRvci53eXp3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYueTsKKyAgICByZXN1bHQueiA9IHYuejsKKyAg
ICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9y
Lnd5d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53
OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53
ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3l3eShmbG9h
dDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVz
dWx0LnkgPSB2Lnk7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lnk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53eXd6KGZsb2F0NCB2KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYu
eTsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYuejsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd5d3coZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi55OworICAgIHJl
c3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgb3BlcmF0b3Iud3p4eChmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2
Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBv
cGVyYXRvci53enh5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQu
eCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICBy
ZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6
eHk9KGZsb2F0NCB2LCBmbG9hdDQgYykgeworICAgIGZsb2F0NCByZXN1bHQgPSB2OworICAgIHJl
c3VsdC53ID0gYy54OworICAgIHJlc3VsdC56ID0gYy55OworICAgIHJlc3VsdC54ID0gYy56Owor
ICAgIHJlc3VsdC55ID0gYy53OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3Iud3p4eihmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0
LncgPSB2Lno7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53enh3KGZs
b2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICBy
ZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6eXgoZmxvYXQ0IHYpIHsK
KyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0g
di56OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3p5eD0oZmxvYXQ0IHYsIGZsb2F0NCBjKSB7
CisgICAgZmxvYXQ0IHJlc3VsdCA9IHY7CisgICAgcmVzdWx0LncgPSBjLng7CisgICAgcmVzdWx0
LnogPSBjLnk7CisgICAgcmVzdWx0LnkgPSBjLno7CisgICAgcmVzdWx0LnggPSBjLnc7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53enl5KGZsb2F0NCB2KSB7CisgICAg
ZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsK
KyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6eXooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVz
dWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3Vs
dC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgb3BlcmF0b3Iud3p5dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnk7
CisgICAgcmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVy
YXRvci53enp4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9
IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1
bHQudyA9IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6enko
ZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAg
IHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi55
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3p6eihmbG9hdDQgdikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0Lnkg
PSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53enp3KGZsb2F0NCB2KSB7CisgICAgZmxv
YXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAg
ICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6d3goZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi56OworICAgIHJlc3VsdC56
ID0gdi53OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgb3BlcmF0b3Iud3p3eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lno7CisgICAgcmVzdWx0LnogPSB2Lnc7Cisg
ICAgcmVzdWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRv
ci53end6KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYu
dzsKKyAgICByZXN1bHQueSA9IHYuejsKKyAgICByZXN1bHQueiA9IHYudzsKKyAgICByZXN1bHQu
dyA9IHYuejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd6d3coZmxv
YXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJl
c3VsdC55ID0gdi56OworICAgIHJlc3VsdC56ID0gdi53OworICAgIHJlc3VsdC53ID0gdi53Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3d4eChmbG9hdDQgdikgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2
Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53d3h5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICBy
ZXN1bHQueiA9IHYueDsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IG9wZXJhdG9yLnd3eHooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0g
di54OworICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
b3BlcmF0b3Iud3d4dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lng7CisgICAg
cmVzdWx0LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53
d3l4KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsK
KyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9
IHYueDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd3eXkoZmxvYXQ0
IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3Vs
dC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi55OworICAgIHJlc3VsdC53ID0gdi55OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3d5eihmbG9hdDQgdikgeworICAg
IGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7
CisgICAgcmVzdWx0LnogPSB2Lnk7CisgICAgcmVzdWx0LncgPSB2Lno7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53d3l3KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1
bHQueiA9IHYueTsKKyAgICByZXN1bHQudyA9IHYudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG9wZXJhdG9yLnd3engoZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56
OworICAgIHJlc3VsdC53ID0gdi54OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3Bl
cmF0b3Iud3d6eShmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0Lngg
PSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lno7CisgICAgcmVz
dWx0LncgPSB2Lnk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBvcGVyYXRvci53d3p6
KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAg
ICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQueiA9IHYuejsKKyAgICByZXN1bHQudyA9IHYu
ejsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IG9wZXJhdG9yLnd3encoZmxvYXQ0IHYp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gdi53OworICAgIHJlc3VsdC55
ID0gdi53OworICAgIHJlc3VsdC56ID0gdi56OworICAgIHJlc3VsdC53ID0gdi53OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0b3Iud3d3eChmbG9hdDQgdikgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7Cisg
ICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0LncgPSB2Lng7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBvcGVyYXRvci53d3d5KGZsb2F0NCB2KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHQueCA9IHYudzsKKyAgICByZXN1bHQueSA9IHYudzsKKyAgICByZXN1bHQu
eiA9IHYudzsKKyAgICByZXN1bHQudyA9IHYueTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IG9wZXJhdG9yLnd3d3ooZmxvYXQ0IHYpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gdi53OworICAgIHJlc3VsdC55ID0gdi53OworICAgIHJlc3VsdC56ID0gdi53Owor
ICAgIHJlc3VsdC53ID0gdi56OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgb3BlcmF0
b3Iud3d3dyhmbG9hdDQgdikgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB2
Lnc7CisgICAgcmVzdWx0LnkgPSB2Lnc7CisgICAgcmVzdWx0LnogPSB2Lnc7CisgICAgcmVzdWx0
LncgPSB2Lnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworbmF0aXZlIGZsb2F0IGNvcyhmbG9h
dCk7CitoYWxmIGNvcyhoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihjb3MoZmxvYXQoeCkpKTsK
K30KK25hdGl2ZSBmbG9hdCBzaW4oZmxvYXQpOworaGFsZiBzaW4oaGFsZiB4KSB7CisgICAgcmV0
dXJuIGhhbGYoc2luKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgdGFuKGZsb2F0KTsKK2hh
bGYgdGFuKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKHRhbihmbG9hdCh4KSkpOworfQorbmF0
aXZlIGZsb2F0IGFjb3MoZmxvYXQpOworaGFsZiBhY29zKGhhbGYgeCkgeworICAgIHJldHVybiBo
YWxmKGFjb3MoZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBhc2luKGZsb2F0KTsKK2hhbGYg
YXNpbihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihhc2luKGZsb2F0KHgpKSk7Cit9CituYXRp
dmUgZmxvYXQgYXRhbihmbG9hdCk7CitoYWxmIGF0YW4oaGFsZiB4KSB7CisgICAgcmV0dXJuIGhh
bGYoYXRhbihmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IGNvc2goZmxvYXQpOworaGFsZiBj
b3NoKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKGNvc2goZmxvYXQoeCkpKTsKK30KK25hdGl2
ZSBmbG9hdCBzaW5oKGZsb2F0KTsKK2hhbGYgc2luaChoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFs
ZihzaW5oKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgdGFuaChmbG9hdCk7CitoYWxmIHRh
bmgoaGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYodGFuaChmbG9hdCh4KSkpOworfQorbmF0aXZl
IGZsb2F0IGNlaWwoZmxvYXQpOworaGFsZiBjZWlsKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxm
KGNlaWwoZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBleHAoZmxvYXQpOworaGFsZiBleHAo
aGFsZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoZXhwKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxv
YXQgZmxvb3IoZmxvYXQpOworaGFsZiBmbG9vcihoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihm
bG9vcihmbG9hdCh4KSkpOworfQorbmF0aXZlIGZsb2F0IGxvZyhmbG9hdCk7CitoYWxmIGxvZyho
YWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihsb2coZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9h
dCByb3VuZChmbG9hdCk7CitoYWxmIHJvdW5kKGhhbGYgeCkgeworICAgIHJldHVybiBoYWxmKHJv
dW5kKGZsb2F0KHgpKSk7Cit9CituYXRpdmUgZmxvYXQgdHJ1bmMoZmxvYXQpOworaGFsZiB0cnVu
YyhoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZih0cnVuYyhmbG9hdCh4KSkpOworfQorbmF0aXZl
IGZsb2F0IGRkeChmbG9hdCk7CitoYWxmIGRkeChoYWxmIHgpIHsKKyAgICByZXR1cm4gaGFsZihk
ZHgoZmxvYXQoeCkpKTsKK30KK25hdGl2ZSBmbG9hdCBkZHkoZmxvYXQpOworaGFsZiBkZHkoaGFs
ZiB4KSB7CisgICAgcmV0dXJuIGhhbGYoZGR5KGZsb2F0KHgpKSk7Cit9CitoYWxmIHNxcnQoaGFs
ZiB4KSB7CisgICAgcmV0dXJuIHBvdyh4LCAwLjUpOworfQoraGFsZiBsb2cyKGhhbGYgeCkgewor
ICAgIHJldHVybiBsb2coeCkgLyBsb2coMik7Cit9CitoYWxmIGxvZzEwKGhhbGYgeCkgeworICAg
IHJldHVybiBsb2coeCkgLyBsb2coMTApOworfQoraGFsZiBmcmFjKGhhbGYgeCkgeworICAgIHJl
dHVybiB4IC0gZmxvb3IoeCk7Cit9CitoYWxmIGV4cDIoaGFsZiB4KSB7CisgICAgcmV0dXJuIGV4
cCh4ICogbG9nKDIpKTsKK30KK2hhbGYgZGVncmVlcyhoYWxmIHgpIHsKKyAgICByZXR1cm4geCAq
IDE4MCAvIDMuMTQxNTk7Cit9CitoYWxmIHJhZGlhbnMoaGFsZiB4KSB7CisgICAgcmV0dXJuIHgg
KiAzLjE0MTU5IC8gMTgwOworfQoraGFsZiByY3AoaGFsZiB4KSB7CisgICAgcmV0dXJuIDEgLyB4
OworfQoraGFsZiByc3FydChoYWxmIHgpIHsKKyAgICByZXR1cm4gMSAvIHNxcnQoeCk7Cit9Cito
YWxmIHNhdHVyYXRlKGhhbGYgeCkgeworICAgIHJldHVybiBjbGFtcCh4LCAwLCAxKTsKK30KK2hh
bGYgZGR4X2NvYXJzZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR4KHgpOworfQoraGFsZiBkZHhf
ZmluZShoYWxmIHgpIHsKKyAgICByZXR1cm4gZGR4KHgpOworfQoraGFsZiBkZHlfY29hcnNlKGhh
bGYgeCkgeworICAgIHJldHVybiBkZHkoeCk7Cit9CitoYWxmIGRkeV9maW5lKGhhbGYgeCkgewor
ICAgIHJldHVybiBkZHkoeCk7Cit9CitoYWxmIGZ3aWR0aChoYWxmIHgpIHsKKyAgICByZXR1cm4g
YWJzKGRkeCh4KSkgKyBhYnMoZGR5KHgpKTsKK30KK2hhbGYyIGNvcyhoYWxmMiB4KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNvcyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBjb3MoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGNvcyhoYWxmMyB4KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNvcyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBjb3MoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY29zKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBjb3MoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGNvcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3MoeFszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgY29zKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBjb3MoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgY29zKGhh
bGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvcyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBjb3MoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgY29zKGhh
bGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGNvcyhoYWxmM3gzIHgpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvcyh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvcyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4NCBjb3MoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3MoeFsy
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgY29zKGhhbGY0eDIgeCkgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IGNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3MoeFsz
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgY29zKGhhbGY0eDMgeCkgewor
ICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3MoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjb3MoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gY29zKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHg0IGNvcyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3MoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gY29zKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGNvcyh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGNvcyh4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY29zKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBjb3MoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHNpbihoYWxmMiB4
KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpbih4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBzaW4oeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHNpbiho
YWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpbih4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBzaW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2luKHhbMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBzaW4oaGFsZjQgeCkgeworICAgIGhhbGY0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IHNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBzaW4oeFsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc2luKGhhbGYyeDIgeCkgeworICAg
IGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjJ4MyBzaW4oaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDQgc2luKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbih4WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bM10gPSBzaW4oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgc2luKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gc2luKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHNpbihoYWxm
M3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBzaW4oaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gc2luKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbih4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10g
PSBzaW4oeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgc2luKGhhbGY0
eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1b
MV0pOworICAgIHJlc3VsdFszXVswXSA9IHNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBzaW4oeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgc2luKGhhbGY0
eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2luKHhbMl1bMl0pOworICAgIHJl
c3VsdFszXVswXSA9IHNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW4oeFszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2luKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHg0IHNpbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IHNpbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzaW4oeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gc2luKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNpbih4WzJdWzNd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
c2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbih4WzNdWzJdKTsKKyAgICByZXN1
bHRbM11bM10gPSBzaW4oeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHRh
bihoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRhbih4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSB0YW4oeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzIHRhbihoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRh
bih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdGFu
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCB0YW4oaGFsZjQgeCkgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gdGFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRhbih4WzJdKTsKKyAgICByZXN1bHRbM10g
PSB0YW4oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgdGFuKGhhbGYyeDIg
eCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
dGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjJ4MyB0YW4oaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgdGFuKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IHRhbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSB0YW4oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDIgdGFuKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gz
IHRhbihoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCB0YW4oaGFsZjN4NCB4KSB7CisgICAg
aGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
dGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
dGFuKGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
dGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHRhbih4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSB0YW4oeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMg
dGFuKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
dGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHRhbih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSB0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuKHhbMl1bMl0p
OworICAgIHJlc3VsdFszXVswXSA9IHRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0
YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuKHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHg0IHRhbihoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0
YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IHRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW4oeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gdGFuKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHRh
bih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW4oeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRhbih4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSB0YW4oeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyIGFjb3MoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFjb3MoeFsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzIGFjb3MoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFjb3MoeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgYWNv
cyhoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFjb3MoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gYWNvcyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhY29zKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IGFjb3MoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDIgYWNvcyhoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhY29zKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGFjb3MoaGFs
ZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGFjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFj
b3MoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgYWNvcyhoYWxmMng0
IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhY29zKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGFjb3MoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgYWNv
cyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
Y29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhY29zKHhbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IGFjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gYWNvcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBhY29zKGhh
bGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3Mo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
Y29zKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFjb3MoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhY29zKHhbMl1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGFjb3MoaGFsZjN4NCB4KSB7Cisg
ICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3Mo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBh
Y29zKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFjb3MoeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYWNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhY29zKHhbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IGFjb3MoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDIgYWNvcyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3Mo
eFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGFjb3MoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gYWNvcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBh
Y29zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgYWNvcyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3Mo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBh
Y29zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gYWNvcyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4
NCBhY29zKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3Mo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gYWNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBh
Y29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1b
M10pOworICAgIHJlc3VsdFszXVswXSA9IGFjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gYWNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhY29zKHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFjb3MoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyIGFzaW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBh
c2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzIGFzaW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gYXNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgYXNpbiho
YWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzaW4oeFswXSk7
CisgICAgcmVzdWx0WzFdID0gYXNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2luKHhbMl0p
OworICAgIHJlc3VsdFszXSA9IGFzaW4oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDIgYXNpbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBh
c2luKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGFzaW4oaGFsZjJ4
MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4o
eFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgYXNpbihoYWxmMng0IHgp
IHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
YXNpbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGFzaW4oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgYXNpbiho
YWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2lu
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGFzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
YXNpbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBhc2luKGhhbGYz
eDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFzaW4oeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2lu
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc2luKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGFzaW4oaGFsZjN4NCB4KSB7CisgICAg
aGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2lu
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gYXNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhc2luKHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGFzaW4oeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDIgYXNpbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGFzaW4oeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gYXNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhc2lu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4oeFszXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDMgYXNpbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhc2lu
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4oeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gYXNpbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBh
c2luKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGFzaW4oeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2luKHhbMl1bM10p
OworICAgIHJlc3VsdFszXVswXSA9IGFzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
YXNpbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhc2luKHhbM11bMl0pOworICAgIHJl
c3VsdFszXVszXSA9IGFzaW4oeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
IGF0YW4oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhdGFu
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIGF0YW4oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBhdGFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gYXRhbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgYXRhbihoYWxm
NCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4oeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gYXRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhdGFuKHhbMl0pOwor
ICAgIHJlc3VsdFszXSA9IGF0YW4oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDIgYXRhbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFu
KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGF0YW4oaGFsZjJ4MyB4
KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGF0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgYXRhbihoYWxmMng0IHgpIHsK
KyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRh
bih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBhdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGF0YW4oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgYXRhbihoYWxm
M3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFuKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGF0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRh
bih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBhdGFuKGhhbGYzeDMg
eCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhdGFuKHhb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhdGFuKHhbMl1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGF0YW4oaGFsZjN4NCB4KSB7CisgICAgaGFs
ZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0YW4oeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhdGFuKHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhdGFuKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGF0YW4oeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDIgYXRhbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4oeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gYXRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDMgYXRhbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0
YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gYXRhbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBhdGFu
KGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0
YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBhdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gYXRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOwor
ICAgIHJlc3VsdFszXVswXSA9IGF0YW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRh
bih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhdGFuKHhbM11bMl0pOworICAgIHJlc3Vs
dFszXVszXSA9IGF0YW4oeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGNv
c2goaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjb3NoKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2goeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzIGNvc2goaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2goeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gY29zaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgY29zaChoYWxmNCB4
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNvc2goeFswXSk7CisgICAg
cmVzdWx0WzFdID0gY29zaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjb3NoKHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGNvc2goeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIg
Y29zaChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhb
MV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGNvc2goaGFsZjJ4MyB4KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNv
c2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgY29zaChoYWxmMng0IHgpIHsKKyAg
ICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3NoKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNv
c2goeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgY29zaChoYWxmM3gy
IHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGNvc2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zaCh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBjb3NoKGhhbGYzeDMgeCkg
eworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
b3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGNvc2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gY29zaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3NoKHhbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGNvc2goaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gY29zaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
b3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGNvc2goeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gY29zaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3NoKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGNvc2goeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDIgY29zaChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGNvc2goeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY29zaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvc2goeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0eDMgY29zaChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2go
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjb3NoKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvc2goeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gY29zaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBjb3NoKGhh
bGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvc2go
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNvc2goeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
b3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gY29zaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3NoKHhbMl1bM10pOworICAg
IHJlc3VsdFszXVswXSA9IGNvc2goeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY29zaCh4
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3NoKHhbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IGNvc2goeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHNpbmgo
aGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaW5oKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzIHNpbmgoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBz
aW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
c2luaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc2luaChoYWxmNCB4KSB7
CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpbmgoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gc2luaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW5oKHhbMl0pOworICAgIHJl
c3VsdFszXSA9IHNpbmgoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc2lu
aChoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBz
aW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5oKHhbMV1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHNpbmgoaGFsZjJ4MyB4KSB7Cisg
ICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbmgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgc2luaChoYWxmMng0IHgpIHsKKyAgICBo
YWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbmgo
eFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc2luaChoYWxmM3gyIHgp
IHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IHNpbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luaCh4WzJd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBzaW5oKGhhbGYzeDMgeCkgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW5o
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW5oKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IHNpbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW5oKHhbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHNpbmgoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbmgoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gc2luaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5o
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaW5oKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IHNpbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
c2luaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaW5oKHhbMl1bMl0pOworICAgIHJl
c3VsdFsyXVszXSA9IHNpbmgoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgc2luaChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5o
KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpbmgoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gc2luaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW5oKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDMgc2luaChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5o
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW5oKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
c2luaCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzaW5oKGhhbGY0
eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbmgoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW5o
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHNpbmgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luaCh4WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzaW5oKHhbM11bMl0pOworICAgIHJlc3VsdFszXVsz
XSA9IHNpbmgoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHRhbmgoaGFs
ZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW5oKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHRhbmgoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
IHRhbmgoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW5o
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdGFu
aCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgdGFuaChoYWxmNCB4KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRhbmgoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gdGFuaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW5oKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IHRhbmgoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgdGFuaCho
YWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5o
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHRhbmgoaGFsZjJ4MyB4KSB7CisgICAg
aGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgdGFuaChoYWxmMng0IHgpIHsKKyAgICBoYWxm
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSB0YW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsx
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgdGFuaChoYWxmM3gyIHgpIHsK
KyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFu
aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHRhbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuaCh4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyB0YW5oKGhhbGYzeDMgeCkgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5oKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHRhbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFu
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSB0YW5oKHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3g0IHRhbmgoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSB0YW5oKHhbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHRhbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFu
aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSB0YW5oKHhbMl1bMl0pOworICAgIHJlc3Vs
dFsyXVszXSA9IHRhbmgoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
dGFuaChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHRhbmgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gdGFuaCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDMgdGFuaChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gdGFuaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFu
aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCB0YW5oKGhhbGY0eDQg
eCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSB0YW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gdGFuaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFu
aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJlc3Vs
dFszXVswXSA9IHRhbmgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuaCh4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSB0YW5oKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9
IHRhbmgoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGNlaWwoaGFsZjIg
eCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjZWlsKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGNl
aWwoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjZWlsKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY2VpbCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgY2VpbChoYWxmNCB4KSB7CisgICAg
aGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNlaWwoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gY2VpbCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjZWlsKHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGNlaWwoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgY2VpbChoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGNlaWwoaGFsZjJ4MyB4KSB7CisgICAgaGFs
ZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgY2VpbChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBjZWlsKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNl
aWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNlaWwoeFsxXVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgY2VpbChoYWxmM3gyIHgpIHsKKyAg
ICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsy
XVswXSA9IGNlaWwoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2VpbCh4WzJdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBjZWlsKGhhbGYzeDMgeCkgeworICAgIGhh
bGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGNlaWwoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2VpbCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjZWlsKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3g0IGNlaWwoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBj
ZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gY2VpbCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAg
IHJlc3VsdFsyXVswXSA9IGNlaWwoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2VpbCh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjZWlsKHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IGNlaWwoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgY2Vp
bChoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
ZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IGNlaWwoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gY2VpbCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGNlaWwoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDMgY2VpbChoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBj
ZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjZWlsKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGNlaWwoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2VpbCh4
WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBjZWlsKGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNlaWwoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBj
ZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNlaWwoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2VpbCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjZWlsKHhbMl1bM10pOworICAgIHJlc3VsdFsz
XVswXSA9IGNlaWwoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY2VpbCh4WzNdWzFdKTsK
KyAgICByZXN1bHRbM11bMl0gPSBjZWlsKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGNl
aWwoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGV4cChoYWxmMiB4KSB7
CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGV4cCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBleHAoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGV4cChoYWxm
MyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGV4cCh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBleHAoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZXhwKHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBleHAoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGV4cCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAoeFszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgZXhwKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4MyBleHAoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
ZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
ZXhwKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZXhwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBleHAoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
ZXhwKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
ZXhwKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGV4cChoYWxmM3gz
IHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZXhwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
ZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4NCBleHAoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cCh4WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBl
eHAoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZXhwKGhhbGY0eDIg
eCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
ZXhwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IGV4cCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBl
eHAoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZXhwKGhhbGY0eDMg
eCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGV4cCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBl
eHAoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZXhwKHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IGV4cCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBleHAoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZXhwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHg0IGV4cChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBl
eHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGV4
cCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBleHAoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZXhwKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGV4cCh4WzJdWzNdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZXhw
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cCh4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSBleHAoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGZsb29y
KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmxvb3IoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZmxvb3IoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzIGZsb29yKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZmxvb3IoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmxvb3IoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gZmxvb3IoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGZsb29yKGhh
bGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmxvb3IoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gZmxvb3IoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZmxvb3IoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZmxvb3IoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDIgZmxvb3IoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmxvb3IoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZmxv
b3IoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Zmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmxvb3IoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3Io
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmxvb3IoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
Zmxvb3IoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmxvb3IoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZmxv
b3IoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmxvb3IoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmxvb3IoeFsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDIgZmxvb3IoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmxvb3IoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmxvb3Io
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmxvb3IoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgZmxvb3IoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZmxvb3IoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmxv
b3IoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmxvb3IoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZmxvb3IoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmxvb3IoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZmxvb3IoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgZmxvb3IoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmxvb3IoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZmxvb3IoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3Io
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmxvb3IoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmxvb3IoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmxvb3IoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZmxvb3IoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZmxvb3IoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZmxvb3IoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDIgZmxvb3IoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZmxvb3IoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmxvb3IoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZmxvb3IoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
Zmxvb3IoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmxvb3IoeFszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZmxvb3IoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZmxvb3IoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3IoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZmxvb3IoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZmxvb3IoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZmxv
b3IoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZmxvb3IoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gZmxvb3IoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmxvb3IoeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZmxvb3IoeFszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgZmxvb3IoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZmxvb3IoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zmxvb3IoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZmxvb3IoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZmxvb3IoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZmxvb3Io
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZmxvb3IoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZmxvb3IoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZmxvb3IoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZmxvb3IoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZmxvb3IoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZmxvb3IoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZmxvb3IoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZmxv
b3IoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZmxvb3IoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZmxvb3IoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZmxvb3IoeFsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGxvZyhoYWxmMiB4KSB7CisgICAg
aGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBsb2coeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxvZyhoYWxmMyB4KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxvZyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBsb2coeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNCBsb2coaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBsb2coeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGxvZyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBsb2coeFszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbG9nKGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBsb2coaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsb2coeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbG9nKGhh
bGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBsb2coeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbG9nKGhh
bGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbG9nKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGxvZyhoYWxmM3gzIHgpIHsK
KyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4NCBsb2coaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gbG9nKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhb
MV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2coeFsy
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbG9nKGhhbGY0eDIgeCkgewor
ICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAg
IHJlc3VsdFszXVswXSA9IGxvZyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2coeFsz
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbG9nKGhhbGY0eDMgeCkgewor
ICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGxvZyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2coeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGxvZyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2coeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gbG9nKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHg0IGxvZyhoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsb2coeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZyh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2coeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbG9nKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxvZyh4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11b
MV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxvZyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBsb2coeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHJvdW5kKGhhbGYy
IHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcm91bmQoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcm91bmQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
IHJvdW5kKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcm91
bmQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcm91bmQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
cm91bmQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHJvdW5kKGhhbGY0IHgp
IHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcm91bmQoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gcm91bmQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcm91bmQoeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gcm91bmQoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDIgcm91bmQoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQoeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cm91bmQoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgcm91bmQoaGFs
ZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcm91bmQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gcm91bmQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcm91bmQoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgcm91bmQo
aGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcm91
bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcm91bmQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcm91bmQoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcm91bmQoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gcm91bmQoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDIgcm91bmQoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcm91bmQoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gcm91bmQoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDMgcm91bmQoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91
bmQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcm91bmQoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcm91bmQoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcm91bmQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gcm91bmQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcm91bmQoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gcm91bmQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDQgcm91bmQoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcm91bmQoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gcm91bmQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcm91bmQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcm91bmQoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gcm91bmQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcm91
bmQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcm91bmQoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gcm91bmQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgcm91bmQoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQoeFswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcm91bmQoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gcm91bmQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcm91bmQo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcm91bmQoeFszXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDMgcm91bmQoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gcm91bmQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcm91bmQoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcm91
bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcm91bmQoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gcm91bmQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcm91bmQoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcm91bmQoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gcm91bmQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcm91bmQoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gcm91bmQoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDQgcm91bmQoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcm91bmQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcm91bmQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcm91bmQoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gcm91bmQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcm91bmQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcm91bmQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gcm91bmQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcm91bmQoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gcm91bmQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcm91
bmQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcm91bmQoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gcm91bmQoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcm91bmQoeFsz
XVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcm91bmQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gcm91bmQoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcm91bmQoeFszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHRydW5jKGhhbGYyIHgpIHsKKyAgICBoYWxm
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdHJ1bmMoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
dHJ1bmMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHRydW5jKGhhbGYzIHgp
IHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdHJ1bmMoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gdHJ1bmMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdHJ1bmMoeFsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHRydW5jKGhhbGY0IHgpIHsKKyAgICBoYWxmNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdHJ1bmMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gdHJ1
bmMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gdHJ1bmMoeFsyXSk7CisgICAgcmVzdWx0WzNdID0g
dHJ1bmMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgdHJ1bmMoaGFsZjJ4
MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdHJ1bmMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgdHJ1bmMoaGFsZjJ4MyB4KSB7CisgICAg
aGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdHJ1bmMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdHJ1bmMo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgdHJ1bmMoaGFsZjJ4NCB4KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdHJ1bmMoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdHJ1
bmMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdHJ1bmMoeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gdHJ1bmMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgdHJ1
bmMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
dHJ1bmMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdHJ1bmMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gdHJ1bmMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMg
dHJ1bmMoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gdHJ1bmMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gdHJ1bmMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdHJ1
bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdHJ1bmMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdHJ1bmMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gdHJ1bmMoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgdHJ1
bmMoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
dHJ1bmMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gdHJ1bmMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdHJ1bmMo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gdHJ1bmMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gdHJ1bmMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdHJ1bmMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gdHJ1bmMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdHJ1
bmMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgdHJ1bmMoaGFsZjR4
MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdHJ1bmMoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gdHJ1bmMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
dHJ1bmMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdHJ1bmMoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gdHJ1bmMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDMgdHJ1bmMoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gdHJ1bmMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gdHJ1bmMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdHJ1
bmMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdHJ1bmMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gdHJ1bmMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdHJ1bmMoeFsz
XVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdHJ1bmMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gdHJ1bmMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgdHJ1
bmMoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
dHJ1bmMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdHJ1bmMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gdHJ1bmMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdHJ1bmMo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdHJ1bmMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gdHJ1bmMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdHJ1bmMoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gdHJ1bmMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gdHJ1bmMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdHJ1bmMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gdHJ1bmMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdHJ1
bmMoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdHJ1bmMoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gdHJ1bmMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdHJ1bmMoeFsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gdHJ1bmMoeFszXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyIGRkeChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGRkeCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHgoeFsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzIGRkeChoYWxmMyB4KSB7CisgICAgaGFsZjMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGRkeCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHgoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gZGR4KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBk
ZHgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZGR4KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJd
KTsKKyAgICByZXN1bHRbM10gPSBkZHgoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDIgZGR4KGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4
WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHgoaGFsZjJ4MyB4KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR4KGhhbGYyeDQgeCkgeworICAgIGhhbGYy
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBkZHgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZGR4KGhhbGYzeDIgeCkgeworICAgIGhhbGYz
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBkZHgoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gzIGRkeChoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBkZHgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBkZHgo
aGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4KHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGRkeCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4
WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHgoeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDIgZGR4KGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHgoeFszXVsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDMgZGR4KGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZGR4KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeCh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gZGR4KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeCh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBkZHgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGR4KHhb
M11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeChoYWxmNHg0IHgpIHsK
KyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR4KHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBkZHgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4KHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGRkeCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFsz
XVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGRkeCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHgoeFszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGRkeShoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHkoeFsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGRkeShoYWxmMyB4KSB7CisgICAgaGFsZjMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHko
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNCBkZHkoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IGRkeSh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZHkoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDIgZGR5KGhhbGYyeDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBkZHkoaGFs
ZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsx
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR5KGhhbGYyeDQgeCkgewor
ICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBkZHkoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsx
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZGR5KGhhbGYzeDIgeCkgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGRkeShoYWxmM3gzIHgpIHsKKyAgICBoYWxmM3gz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeSh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5KHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4NCBkZHkoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5KHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHkoeFsyXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZGR5KGhhbGY0eDIgeCkgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHkoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IGRkeSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHkoeFszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZGR5KGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHkoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGR5KHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeSh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHkoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gZGR5KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGRkeShoYWxm
NHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR5KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeSh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBkZHkoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5KHhbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHkoeFszXVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHNxcnQoaGFsZjIgeCkgeworICAgIGhh
bGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IHNxcnQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHNxcnQoaGFsZjMgeCkg
eworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzcXJ0KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc3FydCh4WzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc3FydChoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IHNxcnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gc3FydCh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBzcXJ0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNxcnQoeFsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc3FydChoYWxmMngyIHgpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIHNxcnQoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBz
cXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDQgc3FydChoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBz
cXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNxcnQoeFsxXVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc3FydChoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNxcnQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3FydCh4WzJdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjN4MyBzcXJ0KGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IHNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3FydCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzcXJ0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmM3g0IHNxcnQoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
c3FydCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzcXJ0KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IHNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3FydCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNxcnQo
eFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgc3FydChoYWxmNHgyIHgp
IHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IHNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3FydCh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHNxcnQoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgc3FydCho
YWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHNxcnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc3FydCh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBzcXJ0KGhhbGY0eDQgeCkgeworICAgIGhhbGY0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzcXJ0KHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IHNxcnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3FydCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc3FydCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbMl1bM10gPSBzcXJ0KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHNxcnQo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3FydCh4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBzcXJ0KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHNxcnQoeFszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGxvZzIoaGFsZjIgeCkgeworICAgIGhhbGYy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxv
ZzIoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxvZzIoaGFsZjMgeCkgewor
ICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGxvZzIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjQgbG9nMihoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGxvZzIoeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nMih4WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBsb2cyKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGxvZzIoeFszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbG9nMihoYWxmMngyIHgpIHsKKyAgICBo
YWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMih4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngzIGxvZzIoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cy
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDQgbG9nMihoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBsb2cyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cy
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDIgbG9nMihoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzIoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4MyBsb2cyKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9n
Mih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IGxvZzIoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBsb2cyKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3g0IGxvZzIoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9n
Mih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2cyKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGxvZzIoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBsb2cyKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxvZzIoeFsy
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbG9nMihoYWxmNHgyIHgpIHsK
KyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGxvZzIoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMih4WzJdWzFd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGxvZzIoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbG9nMihoYWxm
NHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9n
Mih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGxvZzIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBsb2cyKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzIoeFsz
XVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nMih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBsb2cyKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzIoeFszXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGxvZzEwKGhhbGYyIHgpIHsKKyAgICBoYWxmMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMTAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9n
MTAoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxvZzEwKGhhbGYzIHgpIHsK
KyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMTAoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gbG9nMTAoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMTAoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxvZzEwKGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMTAoeFswXSk7CisgICAgcmVzdWx0WzFdID0gbG9nMTAo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gbG9nMTAoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gbG9n
MTAoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbG9nMTAoaGFsZjJ4MiB4
KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMTAoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsxXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbG9nMTAoaGFsZjJ4MyB4KSB7CisgICAgaGFs
ZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMTAoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMTAoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nMTAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbG9nMTAoaGFsZjJ4NCB4KSB7CisgICAg
aGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMTAoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMTAo
eFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMTAoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gbG9nMTAoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbG9nMTAo
aGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9n
MTAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nMTAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbG9nMTAoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbG9n
MTAoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
bG9nMTAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbG9nMTAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMTAo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nMTAoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMTAoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gbG9nMTAoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbG9nMTAo
aGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9n
MTAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gbG9nMTAoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMTAoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nMTAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMTAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bG9nMTAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMTAoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gbG9nMTAoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nMTAo
eFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbG9nMTAoaGFsZjR4MiB4
KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMTAoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbG9nMTAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9n
MTAoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMTAoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gbG9nMTAoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDMgbG9nMTAoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbG9nMTAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMTAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMTAoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nMTAo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMTAoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gbG9nMTAoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMTAoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nMTAoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gbG9nMTAoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbG9nMTAo
aGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9n
MTAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nMTAoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gbG9nMTAoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nMTAoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nMTAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nMTAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMTAoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMTAoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bG9nMTAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nMTAoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gbG9nMTAoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nMTAo
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMTAoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gbG9nMTAoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMTAoeFszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gbG9nMTAoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyIGZyYWMoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZyYWMoeFsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzIGZyYWMoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZyYWMoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjQgZnJhYyhoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZy
YWMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZnJhYyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBm
cmFjKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZyYWMoeFszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDIgZnJhYyhoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMo
eFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGZy
YWMoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZnJhYyho
YWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFj
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmcmFjKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGZyYWMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgZnJhYyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFj
KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZyYWMoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gZnJhYyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBm
cmFjKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZyYWMoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZnJhYyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmcmFj
KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGZyYWMoaGFsZjN4NCB4
KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBmcmFjKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZyYWMoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZnJhYyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmcmFj
KHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZyYWMoeFsyXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDIgZnJhYyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZyYWMoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZnJhYyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBmcmFjKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZyYWMoeFszXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZnJhYyhoYWxmNHgzIHgpIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBmcmFjKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZyYWMoeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gZnJhYyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4NCBmcmFjKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZnJhYyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJhYyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmcmFj
KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZyYWMoeFszXVswXSk7CisgICAgcmVzdWx0
WzNdWzFdID0gZnJhYyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmcmFjKHhbM11bMl0p
OworICAgIHJlc3VsdFszXVszXSA9IGZyYWMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIGV4cDIoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzIGV4cDIoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBleHAyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gZXhwMih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
ZXhwMihoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGV4cDIo
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZXhwMih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBleHAy
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGV4cDIoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDIgZXhwMihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGV4cDIo
aGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhw
Mih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGV4cDIoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZXhwMihoYWxm
Mng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhw
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGV4cDIoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
ZXhwMihoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGV4cDIoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZXhwMih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBleHAy
KGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4
cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGV4cDIoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZXhwMih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAyKHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGV4cDIoaGFsZjN4NCB4KSB7
CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4
cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZXhwMih4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBleHAyKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGV4cDIoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZXhwMih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAyKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGV4cDIoeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDIgZXhwMihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4
cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGV4cDIoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwMih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBleHAyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZXhwMihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4
cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBleHAyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjR4NCBleHAyKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4
cDIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAyKHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGV4cDIoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZXhwMih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBleHAyKHhbM11bMl0pOwor
ICAgIHJlc3VsdFszXVszXSA9IGV4cDIoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyIGRlZ3JlZXMoaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBkZWdyZWVzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGRlZ3JlZXMoaGFsZjMgeCkgeworICAgIGhhbGYzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZWdyZWVzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRl
Z3JlZXMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGVncmVlcyh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgZGVncmVlcyhoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGRlZ3JlZXMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGVncmVlcyh4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBkZWdyZWVzKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRl
Z3JlZXMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgZGVncmVlcyhoYWxm
MngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVz
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVz
KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGRlZ3JlZXMoaGFsZjJ4
MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDQgZGVncmVlcyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBkZWdyZWVzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsx
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZGVncmVlcyhoYWxmM3gyIHgp
IHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRlZ3JlZXMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZGVncmVlcyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBk
ZWdyZWVzKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRlZ3JlZXMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGVncmVlcyh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZWdyZWVzKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3g0IGRlZ3JlZXMoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gZGVncmVlcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBkZWdyZWVzKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRlZ3JlZXMoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZGVncmVlcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBkZWdyZWVzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRlZ3JlZXMoeFsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZGVncmVlcyhoYWxmNHgyIHgpIHsKKyAg
ICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
ZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGRlZ3JlZXMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
ZGVncmVlcyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZWdyZWVzKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDMgZGVncmVlcyhoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRl
Z3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRl
Z3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRl
Z3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZWdyZWVzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRl
Z3JlZXMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGVncmVlcyh4WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBkZWdyZWVzKGhhbGY0eDQgeCkgeworICAgIGhh
bGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdy
ZWVzKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdy
ZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gZGVncmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdy
ZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZWdy
ZWVzKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRlZ3JlZXMoeFszXVswXSk7CisgICAg
cmVzdWx0WzNdWzFdID0gZGVncmVlcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZWdy
ZWVzKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRlZ3JlZXMoeFszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHJhZGlhbnMoaGFsZjIgeCkgeworICAgIGhhbGYyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSByYWRpYW5zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJh
ZGlhbnMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHJhZGlhbnMoaGFsZjMg
eCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByYWRpYW5zKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmFkaWFucyh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgcmFkaWFucyhoYWxmNCB4KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJhZGlhbnMoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gcmFkaWFucyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSByYWRpYW5zKHhbMl0pOwor
ICAgIHJlc3VsdFszXSA9IHJhZGlhbnMoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDIgcmFkaWFucyhoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMo
eFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngzIHJhZGlhbnMoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYyeDQgcmFkaWFucyhoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFkaWFucyh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IHJhZGlhbnMoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
cmFkaWFucyhoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJhZGlhbnMoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmFkaWFucyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4MyByYWRpYW5zKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IHJhZGlhbnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gcmFkaWFucyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByYWRpYW5zKHhbMl1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHJhZGlhbnMoaGFsZjN4NCB4KSB7Cisg
ICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmFkaWFucyh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IHJhZGlhbnMoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmFkaWFucyh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSByYWRpYW5zKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHJhZGlhbnMoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgcmFkaWFu
cyhoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBy
YWRpYW5zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBy
YWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJhZGlhbnMoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gcmFkaWFucyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBy
YWRpYW5zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJhZGlhbnMoeFszXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgcmFkaWFucyhoYWxmNHgzIHgpIHsKKyAgICBo
YWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFk
aWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFk
aWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFk
aWFucyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHJhZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmFk
aWFucyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCByYWRpYW5zKGhh
bGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlh
bnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJhZGlh
bnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlh
bnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmFkaWFucyh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlh
bnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHJhZGlh
bnMoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmFkaWFucyh4WzNdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSByYWRpYW5zKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHJhZGlh
bnMoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHJjcChoYWxmMiB4KSB7
CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJjcCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSByY3AoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHJjcChoYWxm
MyB4KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJjcCh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSByY3AoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmNwKHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCByY3AoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHJjcCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByY3AoeFszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgcmNwKGhhbGYyeDIgeCkgeworICAgIGhh
bGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4MyByY3AoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
cmNwKGhhbGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cmNwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSByY3AoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
cmNwKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
cmNwKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHJjcChoYWxmM3gz
IHgpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByY3AoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJjcCh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
cmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjN4NCByY3AoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
cmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBy
Y3AoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgcmNwKGhhbGY0eDIg
eCkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
cmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0p
OworICAgIHJlc3VsdFszXVswXSA9IHJjcCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBy
Y3AoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgcmNwKGhhbGY0eDMg
eCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
cmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmNwKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IHJjcCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBy
Y3AoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmNwKHhbMl1bMl0pOworICAgIHJlc3Vs
dFszXVswXSA9IHJjcCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByY3AoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gcmNwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmNHg0IHJjcChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBy
Y3AoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByY3AoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJj
cCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByY3AoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gcmNwKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJjcCh4WzJdWzNdKTsK
KyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcmNw
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNdWzJdKTsKKyAgICByZXN1bHRb
M11bM10gPSByY3AoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHJzcXJ0
KGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcnNxcnQoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gcnNxcnQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzIHJzcXJ0KGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gcnNxcnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcnNxcnQoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gcnNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHJzcXJ0KGhh
bGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcnNxcnQoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gcnNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcnNxcnQoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gcnNxcnQoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDIgcnNxcnQoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcnNxcnQoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgcnNx
cnQoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
cnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcnNxcnQoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcnNxcnQoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
cnNxcnQoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcnNxcnQoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcnNx
cnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcnNxcnQoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcnNxcnQoeFsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDIgcnNxcnQoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cnNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcnNxcnQo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcnNxcnQoeFsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgcnNxcnQoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gcnNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcnNx
cnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcnNxcnQoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gcnNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcnNxcnQoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcnNxcnQoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDQgcnNxcnQoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cnNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gcnNxcnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcnNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcnNxcnQoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcnNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gcnNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcnNxcnQoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gcnNxcnQoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDIgcnNxcnQoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcnNxcnQoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcnNxcnQoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gcnNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
cnNxcnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcnNxcnQoeFszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgcnNxcnQoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gcnNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcnNxcnQoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gcnNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcnNx
cnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcnNxcnQoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gcnNxcnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcnNxcnQoeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcnNxcnQoeFszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgcnNxcnQoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gcnNxcnQoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cnNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcnNxcnQoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gcnNxcnQoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcnNxcnQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcnNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcnNxcnQoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcnNxcnQoeFsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcnNxcnQoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gcnNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcnNxcnQoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gcnNxcnQoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcnNx
cnQoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcnNxcnQoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gcnNxcnQoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcnNxcnQoeFsz
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHNhdHVyYXRlKGhhbGYyIHgpIHsK
KyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2F0dXJhdGUoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gc2F0dXJhdGUoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
IHNhdHVyYXRlKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
c2F0dXJhdGUoeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2F0dXJhdGUoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gc2F0dXJhdGUoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IHNh
dHVyYXRlKGhhbGY0IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2F0
dXJhdGUoeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2F0dXJhdGUoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gc2F0dXJhdGUoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gc2F0dXJhdGUoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc2F0dXJhdGUoaGFsZjJ4MiB4KSB7CisgICAg
aGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2F0dXJhdGUoeFsxXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgc2F0dXJhdGUoaGFsZjJ4MyB4KSB7Cisg
ICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gc2F0dXJhdGUoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gc2F0dXJhdGUoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
c2F0dXJhdGUoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc2F0dXJhdGUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2F0dXJhdGUoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gc2F0dXJhdGUoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gc2F0dXJhdGUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2F0dXJh
dGUoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc2F0dXJhdGUoaGFs
ZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2F0dXJh
dGUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2F0
dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2F0dXJhdGUoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gc2F0dXJhdGUoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDMgc2F0dXJhdGUoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2F0dXJhdGUoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2F0dXJhdGUoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2F0dXJhdGUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gc2F0dXJhdGUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2F0dXJhdGUoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgc2F0dXJhdGUoaGFsZjN4NCB4
KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gc2F0dXJhdGUoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2F0dXJhdGUo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2F0dXJh
dGUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2F0dXJhdGUoeFsxXVszXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc2F0dXJhdGUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2F0
dXJhdGUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2F0dXJhdGUoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gc2F0dXJhdGUoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGY0eDIgc2F0dXJhdGUoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gc2F0dXJhdGUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2F0dXJhdGUoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2F0dXJhdGUoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc2F0dXJhdGUoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMg
c2F0dXJhdGUoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc2F0dXJhdGUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2F0dXJhdGUoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2F0dXJhdGUo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2F0dXJhdGUoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc2F0dXJhdGUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2F0dXJh
dGUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2F0dXJhdGUoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gc2F0dXJhdGUoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2F0
dXJhdGUoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2F0dXJhdGUoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgc2F0dXJhdGUoaGFsZjR4NCB4KSB7CisgICAg
aGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2F0dXJhdGUoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc2F0dXJhdGUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
c2F0dXJhdGUoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2F0dXJhdGUoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc2F0dXJhdGUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gc2F0dXJhdGUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2F0dXJhdGUoeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2F0dXJhdGUoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc2F0dXJhdGUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2F0dXJhdGUoeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2F0dXJhdGUoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gc2F0dXJhdGUoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc2F0dXJhdGUo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2F0dXJhdGUoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gc2F0dXJhdGUoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc2F0dXJh
dGUoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGRkeF9jb2Fyc2UoaGFs
ZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9jb2Fyc2UoeFsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzIGRkeF9jb2Fyc2UoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBkZHhfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9jb2Fy
c2UoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4X2NvYXJzZSh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjQgZGR4X2NvYXJzZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGRkeF9jb2Fyc2UoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR4
X2NvYXJzZSh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBkZHhfY29hcnNlKHhbMl0pOworICAgIHJl
c3VsdFszXSA9IGRkeF9jb2Fyc2UoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYy
eDIgZGR4X2NvYXJzZShoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9j
b2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMngzIGRkeF9jb2Fyc2UoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fy
c2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR4
X2NvYXJzZShoYWxmMng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2Uo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRk
eF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
eDIgZGR4X2NvYXJzZShoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9j
b2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeF9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2NvYXJzZSh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHhfY29hcnNlKGhhbGYz
eDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fy
c2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGRkeF9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2Nv
YXJzZSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHhfY29hcnNlKHhbMl1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGRkeF9jb2Fyc2UoaGFsZjN4NCB4KSB7Cisg
ICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2NvYXJz
ZSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHhfY29hcnNlKHhbMV1b
M10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0
WzJdWzFdID0gZGR4X2NvYXJzZSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHhfY29h
cnNlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeF9jb2Fyc2UoeFsyXVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZGR4X2NvYXJzZShoYWxmNHgyIHgpIHsKKyAg
ICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9jb2Fyc2UoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gZGR4X2NvYXJzZSh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBk
ZHhfY29hcnNlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZGR4X2NvYXJzZShoYWxmNHgzIHgp
IHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHhfY29hcnNlKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHhf
Y29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2Uo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBkZHhfY29hcnNlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRk
eF9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGR4X2NvYXJzZSh4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBkZHhfY29hcnNlKGhhbGY0eDQgeCkg
eworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2UoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9j
b2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR4X2NvYXJzZSh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4
X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHhfY29hcnNlKHhbMl1bM10p
OworICAgIHJlc3VsdFszXVswXSA9IGRkeF9jb2Fyc2UoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZGR4X2NvYXJzZSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHhfY29hcnNl
KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeF9jb2Fyc2UoeFszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGRkeF9maW5lKGhhbGYyIHgpIHsKKyAgICBoYWxmMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2ZpbmUoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
ZGR4X2ZpbmUoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGRkeF9maW5lKGhh
bGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2ZpbmUoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZGR4X2ZpbmUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4
X2ZpbmUoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeF9maW5lKGhhbGY0
IHgpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2ZpbmUoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gZGR4X2ZpbmUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR4X2Zp
bmUoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4X2ZpbmUoeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyeDIgZGR4X2ZpbmUoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2ZpbmUoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYyeDMgZGR4X2ZpbmUoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2ZpbmUo
eFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2Zp
bmUoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR4X2ZpbmUoaGFs
ZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2Zp
bmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZGR4X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4
X2ZpbmUoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZGR4X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR4X2ZpbmUoeFsxXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZGR4X2ZpbmUoaGFsZjN4MiB4KSB7Cisg
ICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2ZpbmUoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZGR4X2ZpbmUoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMg
ZGR4X2ZpbmUoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGR4X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2Zp
bmUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2ZpbmUoeFsyXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgZGR4X2ZpbmUoaGFsZjN4NCB4KSB7CisgICAgaGFs
ZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4
X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2ZpbmUoeFswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGR4X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2ZpbmUoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gZGR4X2ZpbmUoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZGR4X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2ZpbmUoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gZGR4X2ZpbmUoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIg
ZGR4X2ZpbmUoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2ZpbmUo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2ZpbmUoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gZGR4X2ZpbmUoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4X2Zp
bmUoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZGR4X2ZpbmUoaGFs
ZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2Zp
bmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZGR4X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4
X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZGR4X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGR4X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2ZpbmUoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gZGR4X2ZpbmUoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4X2ZpbmUoeFszXVsx
XSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGR4X2ZpbmUoeFszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDQgZGR4X2ZpbmUoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gZGR4X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2ZpbmUoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR4X2ZpbmUoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZGR4X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2ZpbmUo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gZGR4X2ZpbmUoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2Zp
bmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4X2ZpbmUoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGR4X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR4
X2ZpbmUoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2ZpbmUoeFszXVswXSk7Cisg
ICAgcmVzdWx0WzNdWzFdID0gZGR4X2ZpbmUoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
ZGR4X2ZpbmUoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZGR4X2ZpbmUoeFszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGRkeV9jb2Fyc2UoaGFsZjIgeCkgeworICAg
IGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGRkeV9jb2Fyc2UoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYz
IGRkeV9jb2Fyc2UoaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9jb2Fyc2UoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjQgZGR5X2NvYXJzZShoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGRkeV9jb2Fyc2UoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5X2NvYXJzZSh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBkZHlfY29hcnNlKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRk
eV9jb2Fyc2UoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgZGR5X2NvYXJz
ZShoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBk
ZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngzIGRkeV9jb2Fyc2UoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2Uo
eFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR5X2NvYXJzZShoYWxm
Mng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlfY29h
cnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeV9j
b2Fyc2UoeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgZGR5X2NvYXJz
ZShoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBk
ZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsx
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9jb2Fy
c2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2NvYXJzZSh4WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBkZHlfY29hcnNlKGhhbGYzeDMgeCkgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2Uo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRk
eV9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2NvYXJzZSh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHlfY29hcnNlKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3g0IGRkeV9jb2Fyc2UoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9j
b2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGRkeV9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IGRkeV9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5
X2NvYXJzZSh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHlfY29hcnNlKHhbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGRkeV9jb2Fyc2UoeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDIgZGR5X2NvYXJzZShoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2Nv
YXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGRkeV9jb2Fyc2UoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZGR5X2NvYXJzZSh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29hcnNlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZGR5X2NvYXJzZShoYWxmNHgzIHgpIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHlfY29hcnNlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fyc2UoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29h
cnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBkZHlfY29hcnNlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjR4NCBkZHlfY29hcnNlKGhhbGY0eDQgeCkgeworICAgIGhhbGY0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9jb2Fyc2UoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fy
c2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5X2NvYXJzZSh4WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlfY29hcnNlKHhbMl1bM10pOworICAgIHJlc3Vs
dFszXVswXSA9IGRkeV9jb2Fyc2UoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5X2Nv
YXJzZSh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHlfY29hcnNlKHhbM11bMl0pOwor
ICAgIHJlc3VsdFszXVszXSA9IGRkeV9jb2Fyc2UoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyIGRkeV9maW5lKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gZGR5X2ZpbmUoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5X2ZpbmUoeFsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGRkeV9maW5lKGhhbGYzIHgpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2ZpbmUoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZGR5X2ZpbmUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2ZpbmUoeFsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRkeV9maW5lKGhhbGY0IHgpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2ZpbmUoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZGR5X2ZpbmUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2ZpbmUoeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gZGR5X2ZpbmUoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDIgZGR5X2ZpbmUoaGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2Zp
bmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUoeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYyeDMgZGR5X2ZpbmUoaGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5
X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2ZpbmUoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGR5X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2ZpbmUoeFsxXVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZGR5X2ZpbmUoaGFsZjJ4NCB4KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZGR5X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2ZpbmUoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2ZpbmUoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5X2ZpbmUoeFsxXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDIgZGR5X2ZpbmUoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGR5X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2Zp
bmUoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZGR5X2ZpbmUoaGFs
ZjN4MyB4KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2Zp
bmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZGR5X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5
X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZGR5X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGR5X2ZpbmUoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2ZpbmUoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2ZpbmUoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDQgZGR5X2ZpbmUoaGFsZjN4NCB4KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2ZpbmUoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5X2ZpbmUoeFswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR5X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gZGR5X2ZpbmUoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2ZpbmUo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2ZpbmUoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gZGR5X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5X2Zp
bmUoeFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZGR5X2ZpbmUoaGFs
ZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2Zp
bmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5
X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2ZpbmUoeFsyXVswXSk7Cisg
ICAgcmVzdWx0WzJdWzFdID0gZGR5X2ZpbmUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
ZGR5X2ZpbmUoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5X2ZpbmUoeFszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgZGR5X2ZpbmUoaGFsZjR4MyB4KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2ZpbmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZGR5X2ZpbmUoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2ZpbmUoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZGR5X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2ZpbmUoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2ZpbmUoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZGR5X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2ZpbmUo
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5X2ZpbmUoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gZGR5X2ZpbmUoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDQgZGR5X2ZpbmUoaGFsZjR4NCB4KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2ZpbmUoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2Zp
bmUoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2ZpbmUoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZGR5X2ZpbmUoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5
X2ZpbmUoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2ZpbmUoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZGR5X2ZpbmUoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
ZGR5X2ZpbmUoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2ZpbmUoeFsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZGR5X2ZpbmUoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gZGR5X2ZpbmUoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5X2ZpbmUoeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2ZpbmUoeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gZGR5X2ZpbmUoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZGR5X2ZpbmUoeFsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZGR5X2ZpbmUoeFszXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYyIGZ3aWR0aChoYWxmMiB4KSB7CisgICAgaGFsZjIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZ3aWR0aCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmd2lkdGgoeFsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGZ3aWR0aChoYWxmMyB4KSB7CisgICAg
aGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZ3aWR0aCh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmd2lkdGgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZndpZHRoKHhbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBmd2lkdGgoaGFsZjQgeCkgeworICAgIGhhbGY0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZndpZHRo
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZ3aWR0aCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBm
d2lkdGgoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgZndpZHRoKGhhbGYy
eDIgeCkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBmd2lkdGgoaGFsZjJ4MyB4KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBm
d2lkdGgoeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZndpZHRoKGhh
bGYyeDQgeCkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0
aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZ3aWR0aCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmd2lkdGgoeFsxXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDIgZndpZHRoKGhhbGYzeDIgeCkgeworICAgIGhhbGYzeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRoKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBm
d2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIGZ3aWR0aChoYWxmM3gzIHgpIHsKKyAgICBoYWxm
M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZ3aWR0aCh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmd2lkdGgoaGFsZjN4NCB4KSB7Cisg
ICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZndpZHRoKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBm
d2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZndpZHRoKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lk
dGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgo
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmd2lkdGgoeFsy
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgZndpZHRoKGhhbGY0eDIgeCkg
eworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
ZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZ3aWR0aCh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBmd2lkdGgoeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGY0eDMgZndpZHRoKGhhbGY0eDMgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IGZ3aWR0aCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmd2lkdGgoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZndpZHRoKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVsw
XSA9IGZ3aWR0aCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmd2lkdGgoeFszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gZndpZHRoKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHg0IGZ3aWR0aChoYWxmNHg0IHgpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndp
ZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndpZHRo
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZndpZHRoKHhb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZ3aWR0aCh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBmd2lkdGgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZndpZHRoKHhbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IGZ3aWR0aCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGZ3aWR0aCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBmd2lkdGgoeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZmxvYXQgc3FydChm
bG9hdCB4KSB7CisgICAgcmV0dXJuIHBvdyh4LCAwLjUpOworfQorZmxvYXQgbG9nMihmbG9hdCB4
KSB7CisgICAgcmV0dXJuIGxvZyh4KSAvIGxvZygyKTsKK30KK2Zsb2F0IGxvZzEwKGZsb2F0IHgp
IHsKKyAgICByZXR1cm4gbG9nKHgpIC8gbG9nKDEwKTsKK30KK2Zsb2F0IGZyYWMoZmxvYXQgeCkg
eworICAgIHJldHVybiB4IC0gZmxvb3IoeCk7Cit9CitmbG9hdCBleHAyKGZsb2F0IHgpIHsKKyAg
ICByZXR1cm4gZXhwKHggKiBsb2coMikpOworfQorZmxvYXQgZGVncmVlcyhmbG9hdCB4KSB7Cisg
ICAgcmV0dXJuIHggKiAxODAgLyAzLjE0MTU5OworfQorZmxvYXQgcmFkaWFucyhmbG9hdCB4KSB7
CisgICAgcmV0dXJuIHggKiAzLjE0MTU5IC8gMTgwOworfQorZmxvYXQgcmNwKGZsb2F0IHgpIHsK
KyAgICByZXR1cm4gMSAvIHg7Cit9CitmbG9hdCByc3FydChmbG9hdCB4KSB7CisgICAgcmV0dXJu
IDEgLyBzcXJ0KHgpOworfQorZmxvYXQgc2F0dXJhdGUoZmxvYXQgeCkgeworICAgIHJldHVybiBj
bGFtcCh4LCAwLCAxKTsKK30KK2Zsb2F0IGRkeF9jb2Fyc2UoZmxvYXQgeCkgeworICAgIHJldHVy
biBkZHgoeCk7Cit9CitmbG9hdCBkZHhfZmluZShmbG9hdCB4KSB7CisgICAgcmV0dXJuIGRkeCh4
KTsKK30KK2Zsb2F0IGRkeV9jb2Fyc2UoZmxvYXQgeCkgeworICAgIHJldHVybiBkZHkoeCk7Cit9
CitmbG9hdCBkZHlfZmluZShmbG9hdCB4KSB7CisgICAgcmV0dXJuIGRkeSh4KTsKK30KK2Zsb2F0
IGZ3aWR0aChmbG9hdCB4KSB7CisgICAgcmV0dXJuIGFicyhkZHgoeCkpICsgYWJzKGRkeSh4KSk7
Cit9CitmbG9hdDIgY29zKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgY29zKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBjb3MoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY29zKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGNvcyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
IGNvcyhmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29z
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvcyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjb3Mo
eFsyXSk7CisgICAgcmVzdWx0WzNdID0gY29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBjb3MoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBjb3MoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGNvcyhmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNvcyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBjb3MoZmxvYXQyeDQgeCkg
eworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNv
cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3MoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNvcyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29z
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBjb3MoZmxvYXQzeDIg
eCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgY29zKGZsb2F0M3gzIHgpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3MoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3g0IGNvcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3Mo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvcyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3MoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY29zKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjb3MoZmxvYXQ0eDIgeCkg
eworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNv
cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvcyh4WzJdWzFdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY29z
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBjb3MoZmxvYXQ0eDMg
eCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3MoeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3MoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY29zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNvcyh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
Y29zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1
bHRbM11bMF0gPSBjb3MoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY29zKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGNvcyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0eDQgY29zKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvcyh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3MoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gY29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGNvcyh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGNvcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBjb3MoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY29zKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGNvcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjb3MoeFsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGNvcyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjb3MoeFszXVsyXSk7CisgICAgcmVz
dWx0WzNdWzNdID0gY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
c2luKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaW4o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgc2luKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2luKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHNpbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHNpbihmbG9hdDQg
eCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2luKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHNpbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaW4oeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gc2luKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBz
aW4oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsx
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHNpbihmbG9hdDJ4MyB4KSB7Cisg
ICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzaW4oZmxvYXQyeDQgeCkgeworICAgIGZsb2F0
Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lu
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2luKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBzaW4oZmxvYXQzeDIgeCkgeworICAgIGZs
b2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
c2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDMgc2luKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNpbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbih4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
M3g0IHNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW4oeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbih4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBzaW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc2luKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW4oZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2lu
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbih4WzJdWzFdKTsKKyAgICByZXN1bHRb
M11bMF0gPSBzaW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW4oZmxvYXQ0eDMgeCkgeworICAgIGZs
b2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW4oeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNpbih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBz
aW4oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2luKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHNpbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
c2luKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IHNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW4oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IHNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW4oeFsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpbih4WzNdWzFd
KTsKKyAgICByZXN1bHRbM11bMl0gPSBzaW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
c2luKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgdGFuKGZsb2F0MiB4
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW4oeFswXSk7CisgICAg
cmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdGFu
KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB0YW4oeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gdGFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRhbih4WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHRhbihmbG9hdDQgeCkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IHRhbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSB0YW4oeFsyXSk7CisgICAgcmVzdWx0WzNdID0g
dGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0YW4oZmxvYXQyeDIg
eCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIHRhbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCB0YW4oZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFu
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSB0YW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFuKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW4o
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW4oZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDMgdGFuKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSB0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSB0YW4oeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHRhbihmbG9h
dDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gdGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRhbih4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSB0YW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSB0YW4oeFsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiB0YW4oZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gdGFu
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSB0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFuKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHRhbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW4o
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyB0YW4oZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
dGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSB0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0
YW4oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRhbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW4oeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gdGFuKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRh
bih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgdGFuKGZsb2F0NHg0
IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSB0YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gdGFuKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW4oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IHRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW4oeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gdGFuKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRhbih4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSB0YW4oeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
dGFuKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRhbih4WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSB0YW4oeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gdGFuKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYWNvcyhmbG9hdDIgeCkgeworICAgIGZs
b2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhY29zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYWNvcyhmbG9hdDMg
eCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWNvcyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBhY29zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFjb3MoeFsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhY29zKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhY29zKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFj
b3MoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWNvcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBh
Y29zKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBhY29zKGZsb2F0Mngy
IHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYWNvcyhmbG9hdDJ4MyB4KSB7CisgICAgZmxv
YXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhY29zKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9h
dDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3MoeFswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWNvcyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhY29zKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYWNvcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhY29zKHhb
MV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhY29zKGZsb2F0M3gyIHgp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFjb3MoZmxvYXQzeDMgeCkg
eworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhY29zKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
YWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhY29zKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFjb3MoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWNvcyh4WzFd
WzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYWNvcyhmbG9hdDN4NCB4KSB7CisgICAgZmxv
YXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFjb3MoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYWNvcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhY29zKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGFjb3MoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhY29zKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWNvcyh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWNvcyh4WzJdWzJdKTsK
KyAgICByZXN1bHRbMl1bM10gPSBhY29zKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MiBhY29zKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhY29zKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhY29zKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFjb3MoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYWNv
cyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4MyBhY29zKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWNvcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBhY29zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFjb3MoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYWNvcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhY29z
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFjb3MoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhY29zKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
YWNvcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhY29zKHhbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IGFjb3MoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NHg0IGFjb3MoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBhY29zKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFjb3MoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gYWNvcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBh
Y29zKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFjb3MoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYWNvcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhY29zKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IGFjb3MoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gYWNvcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhY29zKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGFjb3MoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYWNvcyh4
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhY29zKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGFjb3MoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWNvcyh4WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBhY29zKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDIgYXNpbihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhbMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDMgYXNpbihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYXNpbih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2luKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGFzaW4oeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBhc2luKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBhc2luKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW4oeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gYXNpbih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2luKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4MiBhc2luKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyeDMgYXNpbihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4NCBhc2luKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXNpbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhc2luKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MiBhc2luKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBh
c2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gzIGFzaW4oZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFz
aW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNpbih4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhc2luKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFzaW4oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXNpbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDQgYXNpbihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFzaW4oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXNpbih4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBhc2luKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGFzaW4oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFzaW4oeFsx
XVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXNpbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4oeFsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gYXNpbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhc2lu
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBhc2luKGZsb2F0NHgy
IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXNpbih4WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBhc2luKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFzaW4o
eFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBh
c2luKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gYXNpbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhc2luKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGFzaW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXNpbih4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhc2luKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGFzaW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFz
aW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXNpbih4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBhc2luKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGFzaW4oeFszXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGFzaW4oZmxvYXQ0eDQgeCkgewor
ICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhc2luKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGFzaW4oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXNp
bih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhc2luKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGFzaW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXNpbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBhc2luKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFzaW4oeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXNpbih4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBhc2luKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGFzaW4oeFsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXNpbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBhc2luKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFzaW4oeFszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gYXNpbih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhc2lu
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgYXRhbihmbG9hdDIgeCkg
eworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXRh
bihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbih4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGF0YW4o
eFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBhdGFuKGZsb2F0NCB4KSB7Cisg
ICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhdGFuKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGF0YW4oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbih4WzJdKTsKKyAgICByZXN1
bHRbM10gPSBhdGFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBhdGFu
KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgYXRhbihmbG9hdDJ4MyB4KSB7
CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBh
dGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhdGFuKHhbMV1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBhdGFuKGZsb2F0Mng0IHgpIHsK
KyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0
YW4oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbih4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBhdGFuKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBhdGFuKGZs
b2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRh
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGF0YW4oeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGF0YW4oZmxv
YXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFu
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4oeFswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
YXRhbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbih4WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgYXRhbihmbG9hdDN4NCB4KSB7
CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4oeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBh
dGFuKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGF0YW4oeFswXVszXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFuKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gYXRhbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbih4
WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBhdGFuKHhbMl1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MiBhdGFuKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0YW4oeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBhdGFuKGZsb2F0NHgzIHgpIHsKKyAgICBm
bG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbih4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBhdGFuKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0YW4oeFsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBhdGFuKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4oeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFu
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gYXRhbih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuKHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4oeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NHg0IGF0YW4oZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBhdGFuKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4o
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbih4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBhdGFuKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4oeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
dGFuKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGF0YW4oeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gYXRhbih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFuKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4oeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gYXRhbih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGF0YW4oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbih4
WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBhdGFuKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgY29zaChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3NoKHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgY29zaChmbG9hdDMgeCkgeworICAgIGZsb2F0
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY29zaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3NoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvc2goeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBjb3NoKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBjb3NoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvc2goeFsxXSk7CisgICAg
cmVzdWx0WzJdID0gY29zaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjb3NoKHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBjb3NoKGZsb2F0MngyIHgpIHsKKyAgICBmbG9h
dDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgY29zaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29z
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4NCBjb3NoKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3No
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gY29zaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGNvc2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
Y29zaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjb3NoKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBjb3NoKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
b3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGNvc2goZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY29zaCh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBjb3NoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNv
c2goeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY29zaCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDQgY29zaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGNvc2goeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY29z
aCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjb3NoKHhbMF1bMl0pOworICAgIHJlc3Vs
dFswXVszXSA9IGNvc2goeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY29zaCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY29zaCh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNvc2goeFsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY29zaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBjb3NoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjb3No
KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Y29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29zaCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjb3NoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGNvc2goeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyBjb3NoKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gY29zaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjb3NoKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNvc2goeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gY29zaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjb3NoKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGNvc2goeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zaCh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY29zaCh4WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBjb3NoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNv
c2goeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGNvc2goZmxvYXQ0
eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjb3NoKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNvc2goeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gY29zaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjb3NoKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGNvc2goeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY29z
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjb3NoKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IGNvc2goeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY29zaCh4WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBjb3NoKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGNvc2goeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY29zaCh4WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBjb3NoKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNvc2goeFsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY29zaCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11b
M10gPSBjb3NoKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgc2luaChm
bG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc2luaCh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgc2luaChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc2luaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzaW5oKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHNpbmgoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBzaW5oKGZsb2F0
NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaW5oKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHNpbmgoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2luaCh4WzJdKTsK
KyAgICByZXN1bHRbM10gPSBzaW5oKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBzaW5oKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c2luaCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgc2luaChmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBz
aW5oKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzaW5oKGZsb2F0
Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2luaCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBzaW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNp
bmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBzaW5oKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MiBzaW5oKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lu
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gz
IHNpbmgoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpbmgoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaW5o
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc2luaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c2luaCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgc2luaChmbG9h
dDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpbmgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2luaCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzaW5oKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpbmgoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBz
aW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gc2luaCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaW5oKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc2luaCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaW5oKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzaW5oKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9h
dDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpbmgoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5oKHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzaW5oKGZsb2F0NHgzIHgp
IHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2luaCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNpbmgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2luaCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaW5oKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpbmgoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzaW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gc2luaCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzaW5o
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNpbmgoeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNpbmgoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNpbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2luaCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBzaW5oKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpbmgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2luaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzaW5oKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpbmgoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc2luaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
aW5oKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNpbmgoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gc2luaCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaW5oKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gc2luaCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzaW5oKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgdGFuaChmbG9hdDIgeCkgeworICAgIGZsb2F0MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSB0YW5o
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgdGFuaChmbG9hdDMgeCkgewor
ICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gdGFuaCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSB0YW5oKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHRhbmgoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCB0YW5oKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSB0YW5oKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRhbmgoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gdGFuaCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSB0YW5oKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiB0YW5oKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRh
bmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDMgdGFuaChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5oKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFu
aCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCB0YW5oKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gdGFuaCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5o
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSB0YW5oKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0YW5oKGZsb2F0M3gyIHgpIHsKKyAg
ICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHRhbmgoZmxvYXQzeDMgeCkgeworICAg
IGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB0YW5oKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gdGFuaCh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSB0YW5oKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHRhbmgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gdGFuaCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRh
bmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDQgdGFuaChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRhbmgoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gdGFuaCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSB0YW5oKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IHRhbmgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gdGFu
aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gdGFuaCh4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gdGFuaCh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSB0YW5oKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MiB0YW5oKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0YW5oKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
dGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSB0YW5oKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHRhbmgoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdGFuaCh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MyB0YW5oKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gdGFuaCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSB0
YW5oKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRhbmgoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gdGFuaCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSB0YW5oKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRhbmgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gdGFuaCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gdGFuaCh4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSB0YW5oKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IHRhbmgoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHRh
bmgoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB0YW5oKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRhbmgoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gdGFuaCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSB0YW5oKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRhbmgoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gdGFuaCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSB0YW5oKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHRhbmgoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gdGFu
aCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSB0YW5oKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRhbmgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gdGFuaCh4WzJdWzNd
KTsKKyAgICByZXN1bHRbM11bMF0gPSB0YW5oKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHRhbmgoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gdGFuaCh4WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSB0YW5oKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDIgY2VpbChmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
Y2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgY2VpbChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gY2VpbCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjZWlsKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGNlaWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBj
ZWlsKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjZWls
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNlaWwoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY2Vp
bCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBjZWlsKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4MiBjZWlsKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWls
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMg
Y2VpbChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBj
ZWlsKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2VpbCh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGNlaWwoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBjZWlsKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBjZWlsKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3gzIGNlaWwoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNlaWwoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBjZWlsKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNlaWwoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gY2VpbCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjZWls
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQg
Y2VpbChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IGNlaWwoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2VpbCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBjZWlsKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGNlaWwo
eFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNlaWwoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gY2VpbCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBj
ZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gY2VpbCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjZWlsKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBjZWlsKGZsb2F0NHgyIHgpIHsK
KyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2VpbCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGNl
aWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBjZWlsKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNlaWwoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBjZWlsKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBjZWlsKGZs
b2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2Vp
bCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjZWlsKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGNlaWwoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2VpbCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBjZWlsKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGNlaWwoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2VpbCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBjZWlsKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNlaWwoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGNlaWwoZmxvYXQ0eDQgeCkgeworICAgIGZs
b2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBjZWlsKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGNlaWwoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2VpbCh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjZWlsKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNlaWwoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2VpbCh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBjZWlsKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGNlaWwo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2VpbCh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBjZWlsKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNlaWwoeFsyXVsyXSk7
CisgICAgcmVzdWx0WzJdWzNdID0gY2VpbCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBj
ZWlsKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNlaWwoeFszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gY2VpbCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjZWlsKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZXhwKGZsb2F0MiB4KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gZXhwKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZXhwKGZsb2F0MyB4
KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gZXhwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGV4cCh4WzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGV4cChmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZXhwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGV4cCh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBleHAoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZXhwKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBleHAoZmxvYXQyeDIgeCkgeworICAg
IGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MngzIGV4cChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDJ4NCBleHAoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBl
eHAoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBleHAoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gZXhwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBleHAoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBleHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDMgZXhwKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZXhwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBleHAoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBleHAoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAoeFsy
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGV4cChmbG9hdDN4NCB4KSB7
CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGV4cCh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBleHAoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhw
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cCh4WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBleHAo
eFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBleHAoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZXhwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBleHAoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBl
eHAoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGV4cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MyBleHAoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBleHAoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGV4cCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBleHAoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGV4cCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGV4cCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gZXhwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cCh4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZXhwKGZsb2F0NHg0IHgpIHsKKyAg
ICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGV4cCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBleHAoeFsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZXhwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGV4cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBleHAoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZXhwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cCh4WzFd
WzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZXhwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cCh4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBleHAoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0g
PSBleHAoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZXhwKHhbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZmxvb3IoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZsb29y
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZmxvb3IoZmxvYXQzIHgpIHsK
KyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZsb29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgZmxvb3IoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZsb29yKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZs
b29yKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZsb29yKHhbMl0pOworICAgIHJlc3VsdFszXSA9
IGZsb29yKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBmbG9vcihmbG9h
dDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29y
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbG9vcihmbG9hdDJ4MyB4KSB7
CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29y
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBmbG9vcihmbG9hdDJ4
NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZsb29yKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4MiBmbG9vcihmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4MyBmbG9vcihmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZs
b29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsy
XVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDN4NCBmbG9vcihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZs
b29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29yKHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MiBmbG9vcihmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZsb29yKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29yKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmbG9vcihmbG9hdDR4MyB4KSB7CisgICAgZmxv
YXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1bMl0pOworICAg
IHJlc3VsdFszXVswXSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29y
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDR4NCBmbG9vcihmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZsb29yKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZsb29yKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZsb29yKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGZsb29yKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGZsb29yKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZsb29yKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGZsb29yKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZsb29y
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZsb29yKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZsb29yKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZsb29yKHhbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IGZsb29yKHhbMl1bM10pOworICAgIHJlc3VsdFszXVsw
XSA9IGZsb29yKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZsb29yKHhbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGZsb29yKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZs
b29yKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbG9nKGZsb2F0MiB4
KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2coeFswXSk7CisgICAg
cmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9n
KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsb2coeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gbG9nKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZyh4WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGxvZyhmbG9hdDQgeCkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nKHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IGxvZyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBsb2coeFsyXSk7CisgICAgcmVzdWx0WzNdID0g
bG9nKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2coZmxvYXQyeDIg
eCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGxvZyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCBsb2coZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9n
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBsb2coeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9nKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2co
eFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nKHhbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2coZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDMgbG9nKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbG9nKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbG9nKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBsb2coeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBsb2coeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGxvZyhmbG9h
dDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2coeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gbG9nKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZyh4WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBsb2coeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsb2coeFsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiBsb2coZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbG9n
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsb2coeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9nKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGxvZyh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2co
eFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyBsb2coZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2coeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bG9nKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBsb2coeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGxvZyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBs
b2coeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGxvZyh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2coeFszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gbG9nKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxv
Zyh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbG9nKGZsb2F0NHg0
IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBsb2coeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbG9nKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGxvZyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2coeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGxvZyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2coeFsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gbG9nKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZyh4WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBsb2coeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
bG9nKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZyh4WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBsb2coeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbG9nKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcm91bmQoZmxvYXQyIHgpIHsKKyAgICBm
bG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IHJvdW5kKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcm91bmQoZmxv
YXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgcm91bmQoZmxvYXQ0IHgpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJvdW5kKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IHJvdW5kKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJvdW5kKHhbMl0pOworICAgIHJl
c3VsdFszXSA9IHJvdW5kKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBy
b3VuZChmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJv
dW5kKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyByb3VuZChmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5k
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByb3Vu
ZChmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5k
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDN4MiByb3VuZChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5k
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MyByb3VuZChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0p
OworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5k
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4NCByb3VuZChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5kKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJvdW5k
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiByb3VuZChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5k
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3Vs
dFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5kKHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyByb3VuZChmbG9hdDR4MyB4KSB7
CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHJvdW5kKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5k
KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJvdW5kKHhbMl1b
Ml0pOworICAgIHJlc3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHJvdW5kKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCByb3VuZChmbG9hdDR4NCB4KSB7CisgICAg
ZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJvdW5kKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJvdW5kKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJvdW5k
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJvdW5kKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IHJvdW5kKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJvdW5kKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJvdW5kKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHJvdW5kKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHJvdW5kKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHJvdW5kKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJv
dW5kKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHJvdW5kKHhbMl1bM10pOworICAgIHJl
c3VsdFszXVswXSA9IHJvdW5kKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJvdW5kKHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJvdW5kKHhbM11bMl0pOworICAgIHJlc3VsdFsz
XVszXSA9IHJvdW5kKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgdHJ1
bmMoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRydW5j
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDMgdHJ1bmMoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHRydW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHRydW5jKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQg
dHJ1bmMoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHRy
dW5jKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHRydW5jKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IHRydW5jKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHRydW5jKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4MiB0cnVuYyhmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MyB0cnVuYyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5j
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCB0cnVuYyhmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5j
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiB0cnVuYyhmbG9hdDN4MiB4KSB7
CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5j
KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyB0cnVuYyhmbG9hdDN4
MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHRydW5j
KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCB0cnVuYyhmbG9hdDN4
NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRydW5jKHhbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5j
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHRydW5jKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiB0cnVuYyhmbG9hdDR4MiB4KSB7
CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHRydW5jKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5j
KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyB0cnVuYyhmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHRydW5j
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IHRydW5jKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCB0cnVu
YyhmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHRydW5jKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHRydW5jKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHRydW5jKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHRydW5j
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHRydW5jKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHRydW5jKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHRydW5jKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IHRydW5jKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IHRydW5jKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHRydW5jKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IHRydW5jKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHRy
dW5jKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHRydW5jKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IHRydW5jKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHRydW5jKHhb
M11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHRydW5jKHhbM11bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDIgZGR4KGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR4KHhbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR4KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZHgoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR4KHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGRkeCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IGRkeChmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZGR4KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeCh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBkZHgoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZGR4KHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MiBkZHgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4
KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGRk
eChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHgoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
ZGR4KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHgoZmxvYXQy
eDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHgoeFswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeCh4WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gZGR4KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHgoZmxv
YXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4
WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR4KGZsb2F0M3gzIHgp
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBk
ZHgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4KHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IGRkeCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHgoeFsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3g0IGRkeChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBkZHgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGRkeCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IGRkeCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHgoeFsxXVszXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBkZHgoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
ZGR4KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHgoZmxvYXQ0
eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR4KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeCh4WzJd
WzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gZGR4KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHgoZmxv
YXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHgoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR4KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeCh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gZGR4KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBkZHgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR4KHhb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0eDQgZGR4KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gZGR4KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHgoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZGR4KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGRkeCh4WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBkZHgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR4KHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRkeCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHgo
eFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4KHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGRkeCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHgoeFszXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gZGR4KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDIgZGR5KGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDMgZGR5KGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBkZHkoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZGR5KHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGRkeSh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGRkeShm
bG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5KHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGRkeSh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBkZHkoeFsyXSk7
CisgICAgcmVzdWx0WzNdID0gZGR5KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBkZHkoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHko
eFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGRkeShmbG9hdDJ4MyB4
KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeSh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHkoZmxvYXQyeDQgeCkgeworICAg
IGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeSh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZHkoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeSh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5KHhbMV1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZHkoZmxvYXQzeDIgeCkgewor
ICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgZGR5KGZsb2F0M3gzIHgpIHsKKyAgICBmbG9h
dDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gZGR5KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHkoeFsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3g0IGRkeShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGRkeSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHkoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGRkeSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFdWzJd
KTsKKyAgICByZXN1bHRbMV1bM10gPSBkZHkoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBkZHkoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5KHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHkoZmxvYXQ0eDIgeCkgeworICAg
IGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZGR5KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeSh4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhbM11b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHkoZmxvYXQ0eDMgeCkgewor
ICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHkoeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZGR5KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeSh4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHkoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZGR5KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeSh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZHkoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11b
MF0gPSBkZHkoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZGR5KHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGRkeSh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDQgZGR5KGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR5KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeSh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBkZHkoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGR5
KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeSh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBkZHkoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5KHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRkeSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHko
eFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZGR5KHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHkoeFsyXVszXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gZGR5KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeSh4
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBkZHkoeFszXVsyXSk7CisgICAgcmVzdWx0WzNd
WzNdID0gZGR5KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgc3FydChm
bG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3FydCh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgc3FydChmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gc3FydCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IHNxcnQoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBzcXJ0KGZsb2F0
NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzcXJ0KHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IHNxcnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc3FydCh4WzJdKTsK
KyAgICByZXN1bHRbM10gPSBzcXJ0KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBzcXJ0KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c3FydCh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgc3FydChmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBz
cXJ0KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBzcXJ0KGZsb2F0
Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3FydCh4WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNx
cnQoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MiBzcXJ0KGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3Fy
dCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gz
IHNxcnQoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNxcnQoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzcXJ0
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNxcnQoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gc3FydCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
c3FydCh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgc3FydChmbG9h
dDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNxcnQo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3FydCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNxcnQoeFswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBz
cXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gc3FydCh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzcXJ0KHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc3FydCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzcXJ0KHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzcXJ0KGZsb2F0NHgyIHgpIHsKKyAgICBmbG9h
dDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQoeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNxcnQoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0KHhb
M11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzcXJ0KGZsb2F0NHgzIHgp
IHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3FydCh4WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNxcnQoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3FydCh4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNxcnQoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gc3FydCh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBzcXJ0
KHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNxcnQoeFszXVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NHg0IHNxcnQoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNxcnQoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3FydCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNxcnQo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3FydCh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHNxcnQoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gc3FydCh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBz
cXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNxcnQoeFsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gc3FydCh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzcXJ0KHhbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNxcnQoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gc3FydCh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBzcXJ0KHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbG9nMihmbG9hdDIgeCkgeworICAgIGZsb2F0MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsb2cy
KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbG9nMihmbG9hdDMgeCkgewor
ICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbG9nMih4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBsb2cyKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGxvZzIoeFsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBsb2cyKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBsb2cyKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzIoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gbG9nMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBsb2cyKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cyKGZsb2F0MngyIHgpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxv
ZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbG9nMihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9n
Mih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cyKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gbG9nMih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cy
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbG9nMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsb2cyKHhbMV1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2cyKGZsb2F0M3gyIHgpIHsKKyAg
ICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGxvZzIoZmxvYXQzeDMgeCkgeworICAg
IGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsb2cyKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbG9nMih4
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsb2cyKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxvZzIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbG9nMih4WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxv
ZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbG9nMihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzIoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gbG9nMih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsb2cyKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGxvZzIoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbG9n
Mih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbG9nMih4WzFdWzNd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbG9nMih4WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBsb2cyKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4MiBsb2cyKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsb2cyKHhbMF1bMV0p
OworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsb2cyKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGxvZzIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MyBsb2cyKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbG9nMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBs
b2cyKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzIoeFswXVsyXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbG9nMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsb2cyKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbG9nMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbG9nMih4
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsb2cyKHhbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IGxvZzIoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGxv
ZzIoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsb2cyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzIoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbG9nMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsb2cyKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbG9nMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsb2cyKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGxvZzIoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbG9n
Mih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsb2cyKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGxvZzIoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbG9nMih4WzJdWzNd
KTsKKyAgICByZXN1bHRbM11bMF0gPSBsb2cyKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGxvZzIoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbG9nMih4WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBsb2cyKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDIgbG9nMTAoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgbG9nMTAoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgbG9nMTAoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGxvZzEwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGxvZzEwKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGxvZzEwKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGxvZzEwKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBsb2cxMChmbG9hdDJ4MiB4KSB7CisgICAgZmxvYXQy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4MyBsb2cxMChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEw
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4NCBsb2cxMChmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEw
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBsb2cxMChmbG9hdDN4
MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBsb2cxMChm
bG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxv
ZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGxvZzEwKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBsb2cxMChm
bG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxv
ZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxvZzEwKHhb
MF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxvZzEw
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBsb2cxMChmbG9hdDR4
MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxvZzEwKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IGxvZzEwKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEwKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyBsb2cxMChmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFsx
XVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEwKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEw
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IGxvZzEwKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
NCBsb2cxMChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGxvZzEwKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxvZzEwKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxvZzEwKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IGxvZzEwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGxvZzEwKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxvZzEwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxvZzEw
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxvZzEwKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGxvZzEwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGxvZzEwKHhbMl1b
MV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxvZzEwKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IGxvZzEwKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGxvZzEwKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGxvZzEwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxv
ZzEwKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGxvZzEwKHhbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZnJhYyhmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmcmFjKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZnJhYyhmbG9hdDMgeCkgeworICAg
IGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZnJhYyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmcmFjKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZyYWMoeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0NCBmcmFjKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBmcmFjKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZyYWMoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gZnJhYyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBmcmFjKHhbM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBmcmFjKGZsb2F0MngyIHgpIHsKKyAg
ICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDMgZnJhYyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAg
IHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBmcmFjKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzBdWzNdID0gZnJhYyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gZnJhYyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmcmFjKHhbMV1bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBmcmFjKGZsb2F0M3gyIHgpIHsKKyAgICBm
bG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGZyYWMoZmxvYXQzeDMgeCkgeworICAgIGZs
b2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmcmFjKHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZnJhYyh4WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmcmFjKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGZyYWMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZnJhYyh4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZyYWMo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgZnJhYyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZyYWMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZnJhYyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmcmFjKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGZyYWMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZnJhYyh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZnJhYyh4WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZy
YWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZnJhYyh4WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBmcmFjKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MiBmcmFjKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFjKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZnJh
Yyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmcmFjKHhbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IGZyYWMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4MyBmcmFjKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZnJhYyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmcmFj
KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZyYWMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZnJhYyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmcmFjKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZyYWMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZnJhYyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZnJhYyh4WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmcmFjKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGZyYWMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGZyYWMo
ZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBm
cmFjKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZyYWMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gZnJhYyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmcmFjKHhbMF1b
M10pOworICAgIHJlc3VsdFsxXVswXSA9IGZyYWMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZnJhYyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmcmFjKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGZyYWMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZnJhYyh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmcmFjKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZyYWMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZnJhYyh4WzJdWzNdKTsK
KyAgICByZXN1bHRbM11bMF0gPSBmcmFjKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZy
YWMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZnJhYyh4WzNdWzJdKTsKKyAgICByZXN1
bHRbM11bM10gPSBmcmFjKHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIg
ZXhwMihmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZXhw
Mih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDMgZXhwMihmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZXhwMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBleHAyKHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGV4cDIoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBleHAy
KGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBleHAyKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGV4cDIoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZXhwMih4
WzJdKTsKKyAgICByZXN1bHRbM10gPSBleHAyKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDJ4MiBleHAyKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZXhw
MihmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBleHAyKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBleHAy
KGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZXhwMih4WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGV4cDIoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBleHAyKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4MiBleHAyKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3gzIGV4cDIoZmxvYXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGV4cDIoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBleHAyKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGV4cDIoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZXhwMih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAyKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZXhw
MihmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGV4cDIoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZXhwMih4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBleHAyKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGV4cDIoeFsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4cDIoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gZXhwMih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBleHAy
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzJdWzJdID0gZXhwMih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBleHAyKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBleHAyKGZsb2F0NHgyIHgpIHsKKyAg
ICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGV4cDIo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBleHAyKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGV4cDIoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBl
eHAyKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBleHAyKGZsb2F0
NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZXhwMih4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBleHAyKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGV4cDIoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZXhwMih4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBleHAyKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGV4
cDIoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZXhwMih4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0g
PSBleHAyKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGV4cDIoeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGV4cDIoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0
NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBleHAyKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGV4cDIoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZXhwMih4WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBleHAyKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGV4cDIoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZXhwMih4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBleHAyKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGV4cDIoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZXhwMih4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBleHAyKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGV4cDIoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gZXhwMih4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBleHAy
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGV4cDIoeFszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gZXhwMih4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBleHAyKHhbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGVncmVlcyhmbG9hdDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVncmVlcyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGVn
cmVlcyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGVn
cmVlcyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZWdyZWVzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGRlZ3JlZXMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBkZWdyZWVz
KGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBkZWdyZWVz
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRlZ3JlZXMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
ZGVncmVlcyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZWdyZWVzKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZWdyZWVzKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDMgZGVncmVlcyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQy
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZGVncmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVz
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVz
KHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZWdyZWVzKGZsb2F0
Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVl
cyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZGVncmVl
cyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdyZWVzKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGVncmVl
cyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBkZWdyZWVzKHhbMV1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBkZWdyZWVzKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9h
dDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRlZ3Jl
ZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3Jl
ZXMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRlZ3JlZXMoZmxv
YXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdy
ZWVzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZWdy
ZWVzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRlZ3JlZXMoeFsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gZGVncmVlcyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdy
ZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gZGVncmVlcyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDQgZGVncmVlcyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRlZ3JlZXMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGVn
cmVlcyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZWdyZWVzKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IGRlZ3JlZXMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGVn
cmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZWdyZWVzKHhbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGVn
cmVlcyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRlZ3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGVn
cmVlcyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZWdyZWVzKHhbMl1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZWdyZWVzKGZsb2F0NHgyIHgpIHsKKyAgICBm
bG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBkZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRl
Z3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGVncmVlcyh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBkZWdyZWVzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRl
Z3JlZXMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBkZWdyZWVzKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4MyBkZWdyZWVzKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZGVncmVlcyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBk
ZWdyZWVzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRlZ3JlZXMoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gZGVncmVlcyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBk
ZWdyZWVzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRlZ3JlZXMoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZWdyZWVzKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gZGVncmVlcyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBk
ZWdyZWVzKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRlZ3JlZXMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGRlZ3JlZXMoZmxvYXQ0eDQgeCkgeworICAg
IGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZWdyZWVzKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGRlZ3JlZXMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
ZGVncmVlcyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBkZWdyZWVzKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGRlZ3JlZXMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGVncmVlcyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZWdyZWVzKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IGRlZ3JlZXMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZGVncmVlcyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZWdyZWVzKHhbMl1bMV0pOwor
ICAgIHJlc3VsdFsyXVsyXSA9IGRlZ3JlZXMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
ZGVncmVlcyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZWdyZWVzKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGRlZ3JlZXMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0g
ZGVncmVlcyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZWdyZWVzKHhbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmFkaWFucyhmbG9hdDIgeCkgeworICAgIGZs
b2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFucyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcmFkaWFu
cyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gcmFkaWFu
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByYWRpYW5zKHhbMV0pOworICAgIHJlc3VsdFsyXSA9
IHJhZGlhbnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCByYWRpYW5zKGZs
b2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByYWRpYW5zKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IHJhZGlhbnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gcmFk
aWFucyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByYWRpYW5zKHhbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4MiByYWRpYW5zKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDMgcmFkaWFucyhmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gcmFkaWFucyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhb
MV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByYWRpYW5zKGZsb2F0Mng0
IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcmFkaWFucyh4
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5zKHhbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcmFkaWFucyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByYWRpYW5zKHhbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MiByYWRpYW5zKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlhbnMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHJhZGlhbnMoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5z
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcmFkaWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByYWRpYW5z
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJhZGlhbnMoeFsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gcmFkaWFucyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5z
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gcmFkaWFucyh4WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQzeDQgcmFkaWFucyhmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHJhZGlhbnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmFkaWFu
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByYWRpYW5zKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHJhZGlhbnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmFkaWFu
cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRpYW5zKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gcmFkaWFu
cyh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJhZGlhbnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcmFkaWFu
cyh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSByYWRpYW5zKHhbMl1bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiByYWRpYW5zKGZsb2F0NHgyIHgpIHsKKyAgICBmbG9h
dDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSByYWRpYW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJhZGlh
bnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFkaWFucyh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSByYWRpYW5zKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJhZGlh
bnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSByYWRpYW5zKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4MyByYWRpYW5zKGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcmFkaWFucyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByYWRp
YW5zKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJhZGlhbnMoeFswXVsyXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gcmFkaWFucyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByYWRp
YW5zKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJhZGlhbnMoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gcmFkaWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRp
YW5zKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gcmFkaWFucyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSByYWRp
YW5zKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJhZGlhbnMoeFszXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHJhZGlhbnMoZmxvYXQ0eDQgeCkgeworICAgIGZs
b2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByYWRpYW5zKHhbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHJhZGlhbnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmFk
aWFucyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSByYWRpYW5zKHhbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHJhZGlhbnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmFk
aWFucyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByYWRpYW5zKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IHJhZGlhbnMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmFk
aWFucyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSByYWRpYW5zKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHJhZGlhbnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gcmFk
aWFucyh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSByYWRpYW5zKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHJhZGlhbnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gcmFk
aWFucyh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSByYWRpYW5zKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgcmNwKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJl
c3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFdID0gcmNwKHhb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcmNwKGZsb2F0MyB4KSB7CisgICAg
ZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByY3AoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gcmNwKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJjcCh4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IHJjcChmbG9hdDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gcmNwKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJjcCh4WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSByY3AoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gcmNwKHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByY3AoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0Mngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MngzIHJjcChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJj
cCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBy
Y3AoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSByY3AoeFswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByY3AoeFsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gcmNwKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MiByY3AoZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgcmNwKGZs
b2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNw
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSByY3AoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcmNwKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJjcCh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSByY3Ao
eFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHJjcChmbG9hdDN4NCB4KSB7CisgICAgZmxv
YXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJjcCh4WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSByY3AoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gcmNwKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IHJjcCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBy
Y3AoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSByY3AoeFsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJj
cCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSByY3AoeFsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gcmNwKHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBy
Y3AoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IHJjcCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gcmNwKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHJjcCh4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAgcmVz
dWx0WzNdWzFdID0gcmNwKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4
MyByY3AoZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSByY3AoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcmNwKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHJjcCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSByY3AoeFsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcmNwKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHJjcCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gcmNwKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJd
WzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSByY3AoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gcmNwKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHJjcCh4WzNdWzJdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgcmNwKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcmNwKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHJjcCh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSByY3AoeFswXVsyXSk7Cisg
ICAgcmVzdWx0WzBdWzNdID0gcmNwKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJjcCh4
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSByY3AoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gcmNwKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJjcCh4WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSByY3AoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcmNwKHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJjcCh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSByY3AoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcmNwKHhbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHJjcCh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSByY3AoeFsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gcmNwKHhbM11bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDIgcnNxcnQoZmxvYXQyIHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgcnNxcnQoZmxvYXQzIHgpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9
IHJzcXJ0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDQgcnNxcnQoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHJzcXJ0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHJzcXJ0KHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IHJzcXJ0KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHJzcXJ0KHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiByc3FydChmbG9hdDJ4MiB4KSB7
CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9
IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyByc3FydChmbG9hdDJ4MyB4KSB7CisgICAgZmxv
YXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCByc3FydChmbG9hdDJ4NCB4KSB7Cisg
ICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJz
cXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBy
c3FydChmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJz
cXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MyByc3FydChmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHJz
cXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCByc3FydChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVsz
XSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJz
cXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1bM10pOworICAgIHJl
c3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBy
c3FydChmbG9hdDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJzcXJ0KHhbMF1bMV0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJz
cXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0KHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDR4MyByc3FydChmbG9hdDR4MyB4KSB7CisgICAgZmxvYXQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHJzcXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJz
cXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJl
c3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHJzcXJ0KHhb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAgIHJlc3VsdFsz
XVswXSA9IHJzcXJ0KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDR4NCByc3FydChmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHJzcXJ0KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHJz
cXJ0KHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHJzcXJ0KHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IHJzcXJ0KHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHJzcXJ0KHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHJzcXJ0KHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHJzcXJ0KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHJzcXJ0KHhbMV1bM10p
OworICAgIHJlc3VsdFsyXVswXSA9IHJzcXJ0KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IHJzcXJ0KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHJzcXJ0KHhbMl1bMl0pOworICAg
IHJlc3VsdFsyXVszXSA9IHJzcXJ0KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHJzcXJ0
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHJzcXJ0KHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHJzcXJ0KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHJzcXJ0KHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgc2F0dXJhdGUoZmxvYXQyIHgpIHsK
KyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNhdHVyYXRlKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDMgc2F0dXJhdGUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgc2F0dXJhdGUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHNhdHVyYXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNhdHVyYXRlKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IHNhdHVyYXRlKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNhdHVyYXRlKHhb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBzYXR1cmF0ZShmbG9hdDJ4MiB4
KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBzYXR1cmF0ZShmbG9h
dDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVy
YXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNh
dHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4NCBzYXR1cmF0ZShmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4MiBzYXR1cmF0ZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVy
YXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNh
dHVyYXRlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBzYXR1cmF0ZShmbG9hdDN4MyB4KSB7Cisg
ICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBzYXR1cmF0ZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVy
YXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNh
dHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBzYXR1cmF0ZShmbG9hdDR4MiB4
KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVy
YXRlKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBzYXR1cmF0ZShmbG9hdDR4MyB4KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IHNhdHVyYXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHNhdHVyYXRlKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNhdHVyYXRlKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3Vs
dFszXVsyXSA9IHNhdHVyYXRlKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDR4NCBzYXR1cmF0ZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHNhdHVyYXRlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNhdHVy
YXRlKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNhdHVyYXRlKHhbMF1bMl0pOworICAg
IHJlc3VsdFswXVszXSA9IHNhdHVyYXRlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNh
dHVyYXRlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNhdHVyYXRlKHhbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHNhdHVyYXRlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IHNhdHVyYXRlKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNhdHVyYXRlKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHNhdHVyYXRlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsy
XSA9IHNhdHVyYXRlKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNhdHVyYXRlKHhbMl1b
M10pOworICAgIHJlc3VsdFszXVswXSA9IHNhdHVyYXRlKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHNhdHVyYXRlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHNhdHVyYXRlKHhb
M11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHNhdHVyYXRlKHhbM11bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2NvYXJzZShmbG9hdDIgeCkgeworICAgIGZsb2F0MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR4X2Nv
YXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR4
X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHhfY29hcnNlKHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGRkeF9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBkZHhfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBkZHhfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9jb2Fyc2UoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gZGR4X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBkZHhf
Y29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHhfY29hcnNl
KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1b
MV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyeDMgZGR4X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1b
Ml0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHhfY29h
cnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHhfY29hcnNl
KGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gZGR4X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHhfY29h
cnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2UoeFsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBkZHhfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBk
ZHhfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gZGR4X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29h
cnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRkeF9jb2Fyc2UoZmxvYXQz
eDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHhfY29h
cnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2UoeFswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBkZHhfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9jb2Fyc2UoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR4X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9j
b2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4X2NvYXJzZSh4WzJdWzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR4X2NvYXJzZShmbG9hdDN4NCB4KSB7
CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9jb2Fyc2UoeFsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR4X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBkZHhfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9j
b2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR4X2NvYXJzZSh4
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR4
X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHhfY29hcnNlKHhbMl1bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhfY29hcnNlKGZsb2F0NHgyIHgp
IHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4X2NvYXJzZSh4
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4
X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHhfY29hcnNlKHhbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHhfY29hcnNl
KHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHhfY29hcnNlKGZs
b2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR4
X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHhfY29hcnNlKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gZGR4X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHhfY29hcnNl
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9jb2Fyc2UoeFsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBk
ZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR4X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBkZHhfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9jb2Fy
c2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGRkeF9jb2Fyc2Uo
ZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBk
ZHhfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9jb2Fyc2UoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR4X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBkZHhfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9jb2Fy
c2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR4X2NvYXJzZSh4WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBkZHhfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGRkeF9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR4X2NvYXJzZSh4WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHhfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGRkeF9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR4X2Nv
YXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHhfY29hcnNlKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGRkeF9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gZGR4X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHhfY29hcnNlKHhb
M11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR4X2ZpbmUoZmxvYXQyIHgp
IHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeF9maW5lKHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgZGR4X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgZGR4X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGRkeF9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeF9maW5lKHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGRkeF9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeF9maW5l
KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHhfZmluZShmbG9hdDJ4
MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBkZHhfZmluZShm
bG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRk
eF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDJ4NCBkZHhfZmluZShmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5l
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4MiBkZHhfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9
IGRkeF9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHhfZmluZShmbG9hdDN4MyB4KSB7
CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5l
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDN4NCBkZHhfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhb
Ml1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHhfZmluZShmbG9hdDR4
MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5l
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGRk
eF9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHhfZmluZShmbG9hdDR4MyB4KSB7Cisg
ICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGRkeF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGRkeF9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeF9maW5lKHhbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5l
KHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IGRkeF9maW5lKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCBkZHhfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGRkeF9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRk
eF9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeF9maW5lKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGRkeF9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IGRkeF9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeF9maW5lKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGRkeF9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGRkeF9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeF9maW5lKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeF9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGRkeF9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeF9maW5lKHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeF9maW5lKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IGRkeF9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeF9maW5l
KHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeF9maW5lKHhbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5X2NvYXJzZShmbG9hdDIgeCkgeworICAgIGZsb2F0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZGR5
X2NvYXJzZShmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
ZGR5X2NvYXJzZSh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBkZHlfY29hcnNlKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGRkeV9jb2Fyc2UoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBkZHlfY29hcnNlKGZsb2F0NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBkZHlfY29hcnNlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9jb2Fyc2UoeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gZGR5X2NvYXJzZSh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBk
ZHlfY29hcnNlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHlfY29h
cnNlKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDMgZGR5X2NvYXJzZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2UoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBkZHlf
Y29hcnNlKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHlfY29h
cnNlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhb
MF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gZGR5X2NvYXJzZSh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBkZHlf
Y29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fyc2UoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBkZHlfY29hcnNlKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
MiBkZHlfY29hcnNlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlf
Y29hcnNlKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2Uo
eFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGRkeV9jb2Fyc2UoZmxv
YXQzeDMgeCkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBkZHlf
Y29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBkZHlfY29hcnNlKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9jb2Fyc2Uo
eFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZGR5X2NvYXJzZSh4WzFdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRk
eV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZGR5X2NvYXJzZSh4WzJdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgZGR5X2NvYXJzZShmbG9hdDN4NCB4
KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9jb2Fyc2Uo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZGR5X2NvYXJzZSh4WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBkZHlfY29hcnNlKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRk
eV9jb2Fyc2UoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29hcnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZGR5X2NvYXJz
ZSh4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
ZGR5X2NvYXJzZSh4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBkZHlfY29hcnNlKHhbMl1b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHlfY29hcnNlKGZsb2F0NHgy
IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZGR5X2NvYXJz
ZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9jb2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
ZGR5X2NvYXJzZSh4WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBkZHlfY29hcnNlKHhbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9jb2Fyc2UoeFsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBkZHlfY29h
cnNlKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHlfY29hcnNl
KGZsb2F0NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
ZGR5X2NvYXJzZSh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBkZHlfY29hcnNlKHhbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9jb2Fyc2UoeFswXVsyXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gZGR5X2NvYXJzZSh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBkZHlfY29h
cnNlKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9jb2Fyc2UoeFsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZGR5X2NvYXJzZSh4WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBkZHlfY29hcnNlKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9j
b2Fyc2UoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGRkeV9jb2Fy
c2UoZmxvYXQ0eDQgeCkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBkZHlfY29hcnNlKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9jb2Fyc2UoeFsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZGR5X2NvYXJzZSh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBkZHlfY29hcnNlKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9j
b2Fyc2UoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZGR5X2NvYXJzZSh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBkZHlfY29hcnNlKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGRkeV9jb2Fyc2UoeFsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZGR5X2NvYXJzZSh4
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBkZHlfY29hcnNlKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGRkeV9jb2Fyc2UoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZGR5
X2NvYXJzZSh4WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBkZHlfY29hcnNlKHhbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9jb2Fyc2UoeFszXVsxXSk7CisgICAgcmVzdWx0WzNd
WzJdID0gZGR5X2NvYXJzZSh4WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBkZHlfY29hcnNl
KHhbM11bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZGR5X2ZpbmUoZmxvYXQy
IHgpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGRkeV9maW5lKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgZGR5X2ZpbmUoZmxvYXQzIHgpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDQgZGR5X2ZpbmUoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGRkeV9maW5lKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGRkeV9maW5lKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGRkeV9maW5lKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGRkeV9m
aW5lKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MiBkZHlfZmluZShmbG9h
dDJ4MiB4KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9m
aW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBkZHlfZmlu
ZShmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDJ4NCBkZHlfZmluZShmbG9hdDJ4NCB4KSB7CisgICAgZmxvYXQyeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5l
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9m
aW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAg
IHJlc3VsdFsxXVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MiBkZHlfZmluZShmbG9hdDN4MiB4KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVsw
XSA9IGRkeV9maW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBkZHlfZmluZShmbG9hdDN4MyB4
KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5l
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9m
aW5lKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4NCBkZHlfZmluZShmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeV9maW5l
KHhbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBkZHlfZmluZShmbG9h
dDR4MiB4KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9m
aW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAg
IHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRk
eV9maW5lKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9
IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBkZHlfZmluZShmbG9hdDR4MyB4KSB7
CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGRkeV9maW5lKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGRkeV9maW5lKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5l
KHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJl
c3VsdFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9m
aW5lKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IGRkeV9maW5lKHhbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDR4NCBkZHlfZmluZShmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGRkeV9maW5lKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IGRkeV9maW5lKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGRkeV9maW5lKHhbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGRkeV9maW5lKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGRkeV9maW5lKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGRkeV9maW5lKHhbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGRkeV9maW5lKHhbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IGRkeV9maW5lKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGRkeV9maW5lKHhb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGRkeV9maW5lKHhbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IGRkeV9maW5lKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGRkeV9maW5l
KHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGRkeV9maW5lKHhbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IGRkeV9maW5lKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGRkeV9m
aW5lKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGRkeV9maW5lKHhbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgZndpZHRoKGZsb2F0MiB4KSB7CisgICAgZmxvYXQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
ZndpZHRoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgZndpZHRoKGZsb2F0
MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmd2lkdGgoeFswXSk7
CisgICAgcmVzdWx0WzFdID0gZndpZHRoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZ3aWR0aCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGZ3aWR0aChmbG9hdDQgeCkgewor
ICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZndpZHRoKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZ3aWR0aCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmd2lkdGgoeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gZndpZHRoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MiBmd2lkdGgoZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhb
MF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IGZ3aWR0aChmbG9hdDJ4MyB4KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lkdGgoeFswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZndpZHRoKHhbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitmbG9hdDJ4NCBmd2lkdGgoZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
ZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAg
ICByZXN1bHRbMF1bM10gPSBmd2lkdGgoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZndp
ZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZndpZHRo
KHhbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBmd2lkdGgoZmxvYXQz
eDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgo
eFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMg
ZndpZHRoKGZsb2F0M3gzIHgpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZndpZHRoKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZ3aWR0aCh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBmd2lkdGgoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3g0IGZ3aWR0aChmbG9hdDN4NCB4KSB7CisgICAgZmxvYXQzeDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGZ3aWR0aCh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmd2lk
dGgoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZndpZHRoKHhbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZ3aWR0aCh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmd2lkdGgoeFsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmd2lkdGgoeFsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gZndpZHRoKHhbMl1bM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitmbG9hdDR4MiBmd2lkdGgoZmxvYXQ0eDIgeCkgeworICAgIGZsb2F0NHgyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lkdGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
ZndpZHRoKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZ3aWR0aCh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndp
ZHRoKHhbM11bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBmd2lkdGgoZmxv
YXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmd2lk
dGgoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZndpZHRoKHhbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZ3aWR0aCh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmd2lkdGgo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZndpZHRoKHhbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZ3aWR0aCh4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRoKHhbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBmd2lkdGgoeFszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gZndpZHRoKHhbM11bMV0pOworICAgIHJlc3VsdFszXVsy
XSA9IGZ3aWR0aCh4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgZndp
ZHRoKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZndpZHRoKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZ3aWR0aCh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBmd2lkdGgoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
ZndpZHRoKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZ3aWR0aCh4WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmd2lkdGgoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZndp
ZHRoKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZ3aWR0aCh4WzFdWzNdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBmd2lkdGgoeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZndpZHRo
KHhbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZ3aWR0aCh4WzJdWzJdKTsKKyAgICByZXN1
bHRbMl1bM10gPSBmd2lkdGgoeFsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZndpZHRoKHhb
M11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZ3aWR0aCh4WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBmd2lkdGgoeFszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gZndpZHRoKHhbM11b
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK25hdGl2ZSBmbG9hdCBwb3coZmxvYXQsIGZs
b2F0KTsKK2hhbGYgcG93KGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGhhbGYocG93KGZs
b2F0KHgpLCBmbG9hdCh5KSkpOworfQoraGFsZiBzdGVwKGhhbGYgeSwgaGFsZiB4KSB7CisgICAg
cmV0dXJuIHggPj0geSA/IDEgOiAwOworfQoraGFsZiBsZGV4cChoYWxmIHgsIGhhbGYgZSkgewor
ICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQoraGFsZiBmbW9kKGhhbGYgeCwgaGFsZiB5KSB7
CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGhhbGYgbXVsdGlwbGUgPSBoYWxm
KHdob2xlKSAqIHk7CisgICAgcmV0dXJuIHggLSBtdWx0aXBsZTsKK30KK2hhbGYyIHBvdyhoYWxm
MiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHBvdyh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzIHBvdyhoYWxmMyB4LCBoYWxmMyB5KSB7CisgICAgaGFsZjMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBw
b3coeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gcG93KHhbMl0sIHlbMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmNCBwb3coaGFsZjQgeCwgaGFsZjQgeSkgeworICAgIGhhbGY0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IHBvdyh4WzJdLCB5WzJdKTsKKyAg
ICByZXN1bHRbM10gPSBwb3coeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYyeDIgcG93KGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHBvdyhoYWxmMngzIHgsIGhhbGYyeDMgeSkg
eworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9
IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IHBvdyhoYWxmMng0IHgsIGhhbGYyeDQgeSkgewor
ICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHBv
dyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBw
b3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgcG93
KGhhbGYzeDIgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3Vs
dFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3co
eFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgcG93KGhh
bGYzeDMgeCwgaGFsZjN4MyB5KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsyXSwgeVswXVsyXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsx
XVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhbMl1bMF0sIHlbMl1bMF0p
OworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDQgcG93KGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsy
XSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10sIHlbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNdLCB5WzFdWzNdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBwb3coeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gcG93KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHBvdyh4WzJd
WzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBwb3coeFsyXVszXSwgeVsyXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgcG93KGhhbGY0eDIgeCwgaGFsZjR4MiB5
KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IHBvdyh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4
MyBwb3coaGFsZjR4MyB4LCBoYWxmNHgzIHkpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBwb3coeFsyXVswXSwg
eVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gcG93KHhbMl1bMV0sIHlbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHBvdyh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBwb3coeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcG93KHhbM11bMV0s
IHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5WzNdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBwb3coaGFsZjR4NCB4LCBoYWxmNHg0IHkpIHsK
KyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBw
b3coeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
cG93KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gcG93KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBwb3coeFszXVswXSwg
eVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gcG93KHhbM11bMV0sIHlbM11bMV0pOworICAg
IHJlc3VsdFszXVsyXSA9IHBvdyh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXN1bHRbM11bM10g
PSBwb3coeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIHN0
ZXAoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsxXSwgeVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIHN0ZXAoaGFsZjMgeCwgaGFsZjMgeSkgeworICAg
IGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJl
c3VsdFsxXSA9IHN0ZXAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gc3RlcCh4WzJdLCB5
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgc3RlcChoYWxmNCB4LCBoYWxmNCB5
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHN0ZXAoeFswXSwgeVswXSk7
CisgICAgcmVzdWx0WzFdID0gc3RlcCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzdGVw
KHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHN0ZXAoeFszXSwgeVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgc3RlcChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAg
IGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0
ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgc3Rl
cChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3Rl
cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0
IHN0ZXAoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10sIHlbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhb
MV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsxXVszXSwgeVsxXVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgc3RlcChoYWxmM3gyIHgsIGhhbGYz
eDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3Rl
cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlb
Ml1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHN0ZXAoaGFsZjN4MyB4LCBo
YWxmM3gzIHkpIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVw
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3RlcCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJd
WzJdID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjN4NCBzdGVwKGhhbGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAoeFsw
XVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBdWzNdLCB5WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3Rl
cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVwKHhbMV1bM10sIHlb
MV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0g
PSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHN0ZXAoeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgc3RlcChoYWxmNHgy
IHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFd
LCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhb
Ml1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQoraGFsZjR4MyBzdGVwKGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAg
aGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3Rl
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBdLCB5WzNdWzBdKTsK
KyAgICByZXN1bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFsz
XVsyXSA9IHN0ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDQgc3RlcChoYWxmNHg0IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVwKHhb
MF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHN0ZXAoeFswXVszXSwgeVswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHN0
ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc3RlcCh4WzFdWzNdLCB5
WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzdGVwKHhbMl1bMF0sIHlbMl1bMF0pOworICAg
IHJlc3VsdFsyXVsxXSA9IHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gc3RlcCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzdGVwKHhbMl1b
M10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBzdGVwKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHN0ZXAo
eFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGxkZXhwKGhh
bGYyIHgsIGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRl
eHAoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzIGxkZXhwKGhhbGYzIHgsIGhhbGYzIHkpIHsKKyAgICBo
YWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRleHAoeFswXSwgeVswXSk7CisgICAgcmVz
dWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbGRleHAoeFsyXSwg
eVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGxkZXhwKGhhbGY0IHgsIGhhbGY0
IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRleHAoeFswXSwgeVsw
XSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
bGRleHAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbGRleHAoeFszXSwgeVszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbGRleHAoaGFsZjJ4MiB4LCBoYWxmMngyIHkp
IHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjJ4MyBsZGV4cChoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGxk
ZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxkZXhwKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMng0IGxkZXhwKGhhbGYyeDQgeCwgaGFsZjJ4NCB5KSB7CisgICAgaGFs
ZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGRl
eHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRleHAoeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzeDIgbGRleHAoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4MyBsZGV4cChoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1bMF0sIHlbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxkZXhw
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxkZXhwKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxkZXhwKHhb
Ml1bMl0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGxkZXhwKGhh
bGYzeDQgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbGRleHAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAo
eFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbGRleHAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbGRleHAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsx
XVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGRleHAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gbGRleHAoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bGRleHAoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGRleHAoeFsyXVsz
XSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbGRleHAoaGFsZjR4
MiB4LCBoYWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBd
WzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBs
ZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBd
LCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBsZGV4cChoYWxmNHgzIHgsIGhhbGY0eDMg
eSkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxkZXhwKHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxkZXhwKHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IGxkZXhwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IGxkZXhwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxk
ZXhwKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxkZXhwKHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGxkZXhwKHhbMl1bMF0sIHlbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGxkZXhwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGxkZXhwKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGxkZXhw
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxkZXhwKHhbM11bMV0sIHlb
M11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGxkZXhwKHhbM11bMl0sIHlbM11bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGxkZXhwKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7
CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGRleHAoeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGRleHAoeFswXVsxXSwgeVswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gbGRleHAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gbGRleHAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGRleHAo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGRleHAoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGRleHAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gbGRleHAoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gbGRleHAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGRleHAoeFsy
XVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbGRleHAoeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGRleHAoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbGRleHAoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
bGRleHAoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbGRleHAoeFszXVsy
XSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbGRleHAoeFszXVszXSwgeVszXVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIGZtb2QoaGFsZjIgeCwgaGFsZjIgeSkgewor
ICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGYzIGZtb2QoaGFsZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtb2QoeFsxXSwgeVsx
XSk7CisgICAgcmVzdWx0WzJdID0gZm1vZCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjQgZm1vZChoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZtb2QoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gZm1vZCh4
WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbW9kKHhbMl0sIHlbMl0pOworICAgIHJlc3Vs
dFszXSA9IGZtb2QoeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIg
Zm1vZChoYWxmMngyIHgsIGhhbGYyeDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Zm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgZm1vZChoYWxmMngzIHgsIGhhbGYyeDMgeSkg
eworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1vZCh4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlbMV1bMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGZtb2QoaGFsZjJ4NCB4LCBoYWxmMng0
IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBmbW9kKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZtb2Qo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1vZCh4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IGZtb2QoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzeDIgZm1vZChoYWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
bW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gzIGZtb2QoaGFsZjN4MyB4LCBoYWxmM3gzIHkpIHsKKyAgICBoYWxmM3gz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtb2Qo
eFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4NCBmbW9kKGhhbGYzeDQgeCwgaGFs
ZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gZm1vZCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBm
bW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwg
eVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBmbW9kKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1vZCh4WzJd
WzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IGZtb2QoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGY0eDIgZm1vZChoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAgIGhh
bGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2Qo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
c3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
Zm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBm
bW9kKGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBm
bW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwg
eVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJd
WzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGZtb2QoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gZm1vZCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbW9k
KHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGZtb2QoeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgZm1vZChoYWxmNHg0IHgsIGhh
bGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2Qo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Zm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBmbW9kKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtb2QoeFsy
XVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1vZCh4WzJdWzJdLCB5WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBmbW9kKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3Vs
dFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gZm1v
ZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbW9kKHhbM11bMl0sIHlb
M11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGZtb2QoeFszXVszXSwgeVszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworZmxvYXQgc3RlcChmbG9hdCB5LCBmbG9hdCB4KSB7CisgICAg
cmV0dXJuIHggPj0geSA/IDEgOiAwOworfQorZmxvYXQgbGRleHAoZmxvYXQgeCwgZmxvYXQgZSkg
eworICAgIHJldHVybiB4ICogcG93KDIsIGUpOworfQorZmxvYXQgZm1vZChmbG9hdCB4LCBmbG9h
dCB5KSB7CisgICAgdWludCB3aG9sZSA9IHVpbnQoeCAvIHkpOworICAgIGZsb2F0IG11bHRpcGxl
ID0gZmxvYXQod2hvbGUpICogeTsKKyAgICByZXR1cm4geCAtIG11bHRpcGxlOworfQorZmxvYXQy
IHBvdyhmbG9hdDIgeCwgZmxvYXQyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IHBvdyh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBwb3coZmxvYXQzIHgsIGZsb2F0MyB5KSB7
CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBwb3coeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gcG93KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IHBvdyh4WzJd
LCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IHBvdyhmbG9hdDQgeCwgZmxv
YXQ0IHkpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHBvdyh4WzBdLCB5
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBwb3coeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
cG93KHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IHBvdyh4WzNdLCB5WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgcG93KGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsK
KyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
cG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBw
b3coZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
cG93KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQg
cG93KGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsyXSwg
eVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gcG93KHhbMF1bM10sIHlbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBwb3coeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IHBvdyh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgcG93KGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkp
IHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHBvdyhmbG9hdDN4MyB4LCBmbG9hdDN4MyB5
KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4WzBdWzBd
LCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IHBvdyh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBwb3coeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gcG93KHhbMV1bMl0sIHlbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBwb3coZmxvYXQz
eDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSBwb3coeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gcG93KHhbMF1b
MV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHBvdyh4WzBdWzJdLCB5WzBdWzJdKTsK
KyAgICByZXN1bHRbMF1bM10gPSBwb3coeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHBvdyh4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3coeFsxXVsyXSwgeVsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gcG93KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsy
XVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsy
XVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gcG93KHhbMl1bMl0sIHlbMl1bMl0p
OworICAgIHJlc3VsdFsyXVszXSA9IHBvdyh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0eDIgcG93KGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBm
bG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBwb3coeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHBvdyh4WzJdWzBdLCB5WzJdWzBd
KTsKKyAgICByZXN1bHRbMl1bMV0gPSBwb3coeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gcG93KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHBvdyh4
WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgcG93KGZs
b2F0NHgzIHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gcG93KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHBvdyh4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBwb3coeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gcG93KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3Vs
dFsxXVsxXSA9IHBvdyh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBwb3co
eFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhbMl1bMF0sIHlbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1
bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gcG93
KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHBvdyh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBwb3coeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IHBvdyhmbG9hdDR4NCB4LCBmbG9hdDR4NCB5KSB7Cisg
ICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHBvdyh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBwb3coeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gcG93KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHBv
dyh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBwb3coeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gcG93KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHBvdyh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBw
b3coeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gcG93KHhbMl1bMF0sIHlb
Ml1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHBvdyh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBwb3coeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
cG93KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHBvdyh4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBwb3coeFszXVsxXSwgeVszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gcG93KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9
IHBvdyh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIHN0
ZXAoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzdGVwKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IHN0ZXAoeFsxXSwgeVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBzdGVwKGZsb2F0MyB4LCBmbG9hdDMgeSkg
eworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3RlcCh4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IHN0ZXAo
eFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBzdGVwKGZsb2F0NCB4
LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc3RlcCh4
WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzdGVwKHhbMV0sIHlbMV0pOworICAgIHJlc3Vs
dFsyXSA9IHN0ZXAoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gc3RlcCh4WzNdLCB5WzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgc3RlcChmbG9hdDJ4MiB4LCBmbG9h
dDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngzIHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0Mngz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVwKHhbMF1bMF0sIHlbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gc3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gc3RlcCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDQgc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4NCB5KSB7CisgICAg
ZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBzdGVwKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHN0
ZXAoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3RlcCh4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gc3RlcCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQz
eDIgc3RlcChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzdGVwKHhb
MV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHN0ZXAoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MyBzdGVwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9hdDN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBzdGVwKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IHN0ZXAoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc3RlcCh4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzdGVwKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsxXVsyXSA9IHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhb
Ml1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHN0ZXAoZmxvYXQzeDQgeCwgZmxv
YXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzdGVw
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHN0ZXAoeFswXVsxXSwgeVsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc3RlcCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBzdGVwKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9
IHN0ZXAoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOwor
ICAgIHJlc3VsdFsxXVszXSA9IHN0ZXAoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc3RlcCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhb
Ml1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHN0ZXAoeFsyXVsyXSwgeVsyXVsy
XSk7CisgICAgcmVzdWx0WzJdWzNdID0gc3RlcCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgc3RlcChmbG9hdDR4MiB4LCBmbG9hdDR4MiB5KSB7Cisg
ICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc3RlcCh4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzdGVwKHhbMl1bMV0sIHlbMl1bMV0pOwor
ICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgc3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHN0ZXAoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gc3RlcCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzdGVw
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHN0ZXAoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc3RlcCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBzdGVwKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc3RlcCh4WzJdWzFd
LCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzdGVwKHhbMl1bMl0sIHlbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IHN0ZXAoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc3RlcCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzdGVwKHhb
M11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBzdGVwKGZs
b2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc3RlcCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzdGVw
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHN0ZXAoeFswXVsyXSwgeVsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc3RlcCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBzdGVwKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc3RlcCh4WzFdWzJd
LCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzdGVwKHhbMV1bM10sIHlbMV1bM10pOwor
ICAgIHJlc3VsdFsyXVswXSA9IHN0ZXAoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gc3RlcCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzdGVwKHhb
Ml1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHN0ZXAoeFsyXVszXSwgeVsyXVsz
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gc3RlcCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBzdGVwKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IHN0
ZXAoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gc3RlcCh4WzNdWzNdLCB5
WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxkZXhwKGZsb2F0MiB4LCBm
bG9hdDIgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGRleHAoeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbGRleHAoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBsZGV4cChmbG9hdDMgeCwgZmxvYXQzIHkpIHsKKyAgICBmbG9h
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGxkZXhwKHhbMF0sIHlbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGxkZXhwKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IGxkZXhwKHhbMl0sIHlb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbGRleHAoZmxvYXQ0IHgsIGZsb2F0
NCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsZGV4cCh4WzBdLCB5
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZGV4cCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBsZGV4cCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZGV4cCh4WzNdLCB5WzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGRleHAoZmxvYXQyeDIgeCwgZmxvYXQy
eDIgeSkgeworICAgIGZsb2F0MngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4
WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgbGRleHAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkgeworICAgIGZsb2F0
MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4
cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbGRleHAoZmxvYXQyeDQgeCwgZmxvYXQyeDQg
eSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBsZGV4cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBs
ZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsK
KyAgICByZXN1bHRbMV1bM10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDIgbGRleHAoZmxvYXQzeDIgeCwgZmxvYXQzeDIgeSkgeworICAg
IGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJd
WzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbGRleHAoZmxvYXQzeDMgeCwgZmxv
YXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4
cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDQgbGRleHAoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0
M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBsZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsZGV4
cCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBsZGV4cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4
WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICBy
ZXN1bHRbMl1bM10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0eDIgbGRleHAoZmxvYXQ0eDIgeCwgZmxvYXQ0eDIgeSkgeworICAgIGZsb2F0
NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4
cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgbGRleHAoZmxvYXQ0eDMgeCwgZmxvYXQ0eDMgeSkgeworICAgIGZsb2F0NHgzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBs
ZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4
cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5
WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBsZGV4cCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDQgbGRleHAoZmxvYXQ0eDQgeCwgZmxvYXQ0eDQgeSkgeworICAgIGZsb2F0NHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZGV4cCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBsZGV4cCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBs
ZGV4cCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBsZGV4cCh4WzBdWzNd
LCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZGV4cCh4WzFdWzBdLCB5WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsZGV4cCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBsZGV4cCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsZGV4
cCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBsZGV4cCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZGV4cCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBsZGV4cCh4WzJdWzJdLCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1b
M10gPSBsZGV4cCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZGV4cCh4
WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBsZGV4cCh4WzNdWzFdLCB5WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZGV4cCh4WzNdWzJdLCB5WzNdWzJdKTsKKyAgICBy
ZXN1bHRbM11bM10gPSBsZGV4cCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyIGZtb2QoZmxvYXQyIHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBmbW9kKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGZt
b2QoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBmbW9kKGZsb2F0
MyB4LCBmbG9hdDMgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZm1v
ZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbW9kKHhbMV0sIHlbMV0pOworICAgIHJl
c3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NCBmbW9kKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVz
dWx0WzBdID0gZm1vZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbW9kKHhbMV0sIHlb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZtb2QoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0g
Zm1vZCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgZm1vZChm
bG9hdDJ4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1v
ZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIGZtb2QoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSkg
eworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtb2QoeFswXVsxXSwgeVswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgZm1vZChmbG9hdDJ4NCB4LCBmbG9h
dDJ4NCB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2Qo
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJl
c3VsdFswXVszXSA9IGZtb2QoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Zm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1bMV0s
IHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzNdID0gZm1vZCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzeDIgZm1vZChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5KSB7CisgICAgZmxv
YXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtb2Qo
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBmbW9kKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsK
KyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGZtb2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZm1vZCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbW9kKHhbMV1b
MV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtb2QoeFsxXVsyXSwgeVsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZtb2Qo
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGZtb2Qo
ZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBmbW9kKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZt
b2QoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1vZCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbW9kKHhbMF1bM10sIHlbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IGZtb2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZm1vZCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1b
Ml0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtb2QoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBmbW9kKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZtb2Qo
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1vZCh4WzJdWzNdLCB5WzJd
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1vZChmbG9hdDR4MiB4LCBm
bG9hdDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZt
b2QoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBd
ID0gZm1vZCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbW9kKHhbMl1b
MV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0eDMgZm1vZChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5KSB7CisgICAg
ZmxvYXQ0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtb2QoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1vZCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBmbW9kKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZt
b2QoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1vZCh4WzFdWzFdLCB5
WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbW9kKHhbMV1bMl0sIHlbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbW9kKHhbMl1b
Ml0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGZtb2QoeFszXVswXSwgeVszXVswXSk7
CisgICAgcmVzdWx0WzNdWzFdID0gZm1vZCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBmbW9kKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCBmbW9kKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1vZCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBmbW9kKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZt
b2QoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1vZCh4WzBdWzNdLCB5
WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbW9kKHhbMV1bMF0sIHlbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGZtb2QoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gZm1vZCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBmbW9kKHhbMV1b
M10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtb2QoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gZm1vZCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBmbW9kKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtb2Qo
eFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1vZCh4WzNdWzBdLCB5WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbW9kKHhbM11bMV0sIHlbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IGZtb2QoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
Zm1vZCh4WzNdWzNdLCB5WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxmIHNt
b290aHN0ZXAoaGFsZiBlZGdlMCwgaGFsZiBlZGdlMSwgaGFsZiB4KSB7CisgICAgaGFsZiB0ID0g
Y2xhbXAoKHggLSBlZGdlMCkgLyAoZWRnZTEgLSBlZGdlMCksIDAsIDEpOworICAgIHJldHVybiB0
ICogdCAqICgzIC0gMiAqIHQpOworfQoraGFsZiBsZXJwKGhhbGYgeCwgaGFsZiB5LCBoYWxmIHMp
IHsKKyAgICByZXR1cm4geCAqICgxIC0gcykgKyB5ICogczsKK30KK2hhbGYgZm1hKGhhbGYgeCwg
aGFsZiB5LCBoYWxmIHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQoraGFsZiBtYWQoaGFs
ZiB4LCBoYWxmIHksIGhhbGYgeikgeworICAgIHJldHVybiB4ICogeSArIHo7Cit9CitoYWxmMiBz
bW9vdGhzdGVwKGhhbGYyIHgsIGhhbGYyIHksIGhhbGYyIHopIHsKKyAgICBoYWxmMiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMyBzbW9vdGhzdGVwKGhhbGYzIHgsIGhhbGYzIHksIGhhbGYzIHopIHsKKyAgICBo
YWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJl
c3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGY0IHNtb290aHN0ZXAoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZjQgeikgeworICAg
IGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10g
PSBzbW9vdGhzdGVwKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngyIHNtb290aHN0ZXAoaGFsZjJ4MiB4LCBoYWxmMngyIHksIGhhbGYyeDIgeikgeworICAg
IGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwg
eVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1b
MF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMg
c21vb3Roc3RlcChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBd
LCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1b
MV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFswXVsyXSwgeVsw
XVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0s
IHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsy
XSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgc21v
b3Roc3RlcChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7CisgICAgaGFsZjJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0s
IHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsy
XSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc21vb3Roc3RlcCh4WzBdWzNdLCB5WzBd
WzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwg
eVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc21vb3Roc3RlcCh4WzFdWzJd
LCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzbW9vdGhzdGVwKHhbMV1b
M10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHNt
b290aHN0ZXAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgeworICAgIGhhbGYzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsx
XVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5
WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0s
IHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIHNtb290
aHN0ZXAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhhbGYzeDMgeikgeworICAgIGhhbGYzeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1bMl0sIHlbMF1bMl0s
IHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVsw
XSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlb
MV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290aHN0ZXAoeFsyXVswXSwg
eVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21vb3Roc3RlcCh4WzJdWzFd
LCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzbW9vdGhzdGVwKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHNt
b290aHN0ZXAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgeworICAgIGhhbGYzeDQg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1bMl0sIHlbMF1b
Ml0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNtb290aHN0ZXAoeFswXVszXSwgeVsw
XVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5
WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0s
IHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsy
XSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gc21vb3Roc3RlcCh4WzFd
WzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzbW9vdGhzdGVwKHhb
Ml1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNtb290aHN0ZXAo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc21vb3Roc3Rl
cCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzbW9vdGhz
dGVwKHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIHNtb290aHN0ZXAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0eDIgeikgeworICAg
IGhhbGY0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwg
eVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1b
MF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVw
KHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNtb290aHN0
ZXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc21vb3Ro
c3RlcCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBzbW9vdGhzdGVwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxmNHgzIHopIHsKKyAg
ICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhzdGVwKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNtb290aHN0ZXAoeFswXVsx
XSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21vb3Roc3RlcCh4WzBd
WzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhb
MV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAo
eFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc21vb3Roc3Rl
cCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzbW9vdGhz
dGVwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNtb290
aHN0ZXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc21v
b3Roc3RlcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBz
bW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJd
ID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjR4NCBzbW9vdGhzdGVwKGhhbGY0eDQgeCwgaGFsZjR4NCB5LCBoYWxmNHg0
IHopIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhzdGVw
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNtb290aHN0
ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21vb3Ro
c3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzbW9v
dGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNt
b290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
c21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVz
dWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsKKyAgICBy
ZXN1bHRbM11bMF0gPSBzbW9vdGhzdGVwKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IHNtb290aHN0ZXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7Cisg
ICAgcmVzdWx0WzNdWzJdID0gc21vb3Roc3RlcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsK
KyAgICByZXN1bHRbM11bM10gPSBzbW9vdGhzdGVwKHhbM11bM10sIHlbM11bM10sIHpbM11bM10p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBsZXJwKGhhbGYyIHgsIGhhbGYyIHksIGhh
bGYyIHopIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5
WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBsZXJwKGhhbGYzIHgsIGhhbGYzIHksIGhhbGYzIHop
IHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGxlcnAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0IGxlcnAoaGFsZjQgeCwgaGFsZjQgeSwgaGFsZjQgeikgeworICAgIGhhbGY0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBsZXJwKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9
IGxlcnAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbGVycCh4WzJdLCB5WzJd
LCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBsZXJwKHhbM10sIHlbM10sIHpbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMngyIGxlcnAoaGFsZjJ4MiB4LCBoYWxmMngyIHksIGhhbGYy
eDIgeikgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFsw
XVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlb
MV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsx
XSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbGVycChoYWxmMngz
IHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
bGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJw
KHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsx
XVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQg
bGVycChoYWxmMng0IHgsIGhhbGYyeDQgeSwgaGFsZjJ4NCB6KSB7CisgICAgaGFsZjJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
bGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsZXJw
KHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
M3gyIGxlcnAoaGFsZjN4MiB4LCBoYWxmM3gyIHksIGhhbGYzeDIgeikgeworICAgIGhhbGYzeDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3gzIGxlcnAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhhbGYzeDMgeikgewor
ICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlbMF1bMl0sIHpb
MF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAg
IHJlc3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRb
Ml1bMl0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmM3g0IGxlcnAoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVsw
XVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlbMF1bMl0sIHpb
MF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFswXVszXSwgeVswXVszXSwgelswXVsz
XSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBsZXJw
KHhbMl1bM10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHgyIGxlcnAoaGFsZjR4MiB4LCBoYWxmNHgyIHksIGhhbGY0eDIgeikgeworICAgIGhhbGY0eDIg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVsw
XSA9IGxlcnAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0g
bGVycCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBsZXJwKGhhbGY0eDMgeCwgaGFsZjR4MyB5LCBoYWxmNHgzIHopIHsKKyAgICBoYWxm
NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRb
Ml1bMF0gPSBsZXJwKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGxlcnAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bGVycCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZXJw
KHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxlcnAoeFsz
XVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbGVycCh4WzNdWzJd
LCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBsZXJw
KGhhbGY0eDQgeCwgaGFsZjR4NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAg
IHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBsZXJw
KHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxlcnAoeFsx
XVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBd
LCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlb
Ml1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAoeFsyXVsyXSwgeVsyXVsy
XSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJdWzNdLCB5WzJdWzNdLCB6
WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBsZXJwKHhbM11bMF0sIHlbM11bMF0sIHpbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGxlcnAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7
CisgICAgcmVzdWx0WzNdWzJdID0gbGVycCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNdWzJdKTsKKyAg
ICByZXN1bHRbM11bM10gPSBsZXJwKHhbM11bM10sIHlbM11bM10sIHpbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBmbWEoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZjIgeikgewor
ICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwgeVswXSwgelswXSk7
CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMyBmbWEoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMgeikgeworICAgIGhhbGYz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVz
dWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGZtYSh4WzJd
LCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgZm1hKGhhbGY0IHgs
IGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
Zm1hKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGZtYSh4WzFdLCB5WzFdLCB6
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmbWEoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0
WzNdID0gZm1hKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngyIGZtYShoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7CisgICAgaGFsZjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0p
OworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMngzIGZtYShoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6KSB7
CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlb
MF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgZm1hKGhhbGYyeDQgeCwgaGFsZjJ4NCB5LCBoYWxmMng0
IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlb
MF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBmbWEoeFswXVszXSwgeVswXVszXSwgelsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gZm1hKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gyIGZtYShoYWxmM3gyIHgsIGhhbGYzeDIgeSwgaGFsZjN4MiB6KSB7
CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlb
MF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAg
ICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgZm1hKGhhbGYzeDMgeCwgaGFsZjN4MyB5LCBoYWxmM3gz
IHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlb
MF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJd
LCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBmbWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gZm1hKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsy
XVsyXSA9IGZtYSh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjN4NCBmbWEoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgeworICAg
IGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBdWzBd
LCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0p
OworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAg
ICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1h
KHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtYSh4WzJd
WzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbWEoeFsyXVsyXSwg
eVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1hKHhbMl1bM10sIHlbMl1b
M10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIGZtYShoYWxmNHgy
IHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1h
KHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwg
eVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11b
MF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6
WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBmbWEoaGFsZjR4MyB4LCBo
YWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGZtYSh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBmbWEoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1h
KHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFd
WzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwg
eVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1b
Ml0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJdWzBdLCB6
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOwor
ICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICBy
ZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0
WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmNHg0IGZtYShoYWxmNHg0IHgsIGhhbGY0eDQgeSwgaGFsZjR4NCB6KSB7Cisg
ICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1b
MF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6
WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gZm1hKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVsz
XSA9IGZtYSh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBm
bWEoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gZm1hKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGZtYSh4WzJdWzJd
LCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBmbWEoeFsyXVszXSwgeVsy
XVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11bMF0s
IHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBmbWEoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7
CisgICAgcmVzdWx0WzNdWzNdID0gZm1hKHhbM11bM10sIHlbM11bM10sIHpbM11bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYWQoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZjIgeikg
eworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFswXSwgeVswXSwgelsw
XSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmMyBtYWQoaGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMgeikgeworICAgIGhh
bGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFswXSwgeVswXSwgelswXSk7CisgICAg
cmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IG1hZCh4
WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbWFkKGhhbGY0
IHgsIGhhbGY0IHksIGhhbGY0IHopIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gbWFkKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IG1hZCh4WzFdLCB5WzFd
LCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYWQoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVz
dWx0WzNdID0gbWFkKHhbM10sIHlbM10sIHpbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngyIG1hZChoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7CisgICAgaGFsZjJ4
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngzIG1hZChoYWxmMngzIHgsIGhhbGYyeDMgeSwgaGFsZjJ4MyB6
KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBd
WzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwg
elswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbWFkKGhhbGYyeDQgeCwgaGFsZjJ4NCB5LCBoYWxm
Mng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFsw
XVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0s
IHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBd
WzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYWQoeFswXVszXSwgeVswXVszXSwg
elswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAg
cmVzdWx0WzFdWzNdID0gbWFkKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIG1hZChoYWxmM3gyIHgsIGhhbGYzeDIgeSwgaGFsZjN4MiB6
KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBd
WzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwg
elsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbWFkKGhhbGYzeDMgeCwgaGFsZjN4MyB5LCBoYWxm
M3gzIHopIHsKKyAgICBoYWxmM3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFsw
XVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0s
IHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBd
WzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwg
elsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gbWFkKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3Vs
dFsyXVsyXSA9IG1hZCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraGFsZjN4NCBtYWQoaGFsZjN4NCB4LCBoYWxmM3g0IHksIGhhbGYzeDQgeikgewor
ICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBdLCB5WzBd
WzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVswXVsxXSwg
elswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1hZCh4
WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYWQoeFsyXVsy
XSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWFkKHhbMl1bM10sIHlb
Ml1bM10sIHpbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIG1hZChoYWxm
NHgyIHgsIGhhbGY0eDIgeSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
bWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsx
XSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlb
M11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFd
LCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBtYWQoaGFsZjR4MyB4
LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtYWQoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWFkKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4
WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlb
MV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsyXVsxXSwgelsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0p
OworICAgIHJlc3VsdFszXVswXSA9IG1hZCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBtYWQoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gbWFkKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNHg0IG1hZChoYWxmNHg0IHgsIGhhbGY0eDQgeSwgaGFsZjR4NCB6KSB7
CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlb
MF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelsw
XVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10p
OworICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsx
XVszXSA9IG1hZCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBtYWQoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWFk
KHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1hZCh4WzJd
WzJdLCB5WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYWQoeFsyXVszXSwg
eVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlbM11b
MF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFdLCB6
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVszXVsyXSwgelszXVsy
XSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWFkKHhbM11bM10sIHlbM11bM10sIHpbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IHNtb290aHN0ZXAoZmxvYXQgZWRnZTAsIGZs
b2F0IGVkZ2UxLCBmbG9hdCB4KSB7CisgICAgZmxvYXQgdCA9IGNsYW1wKCh4IC0gZWRnZTApIC8g
KGVkZ2UxIC0gZWRnZTApLCAwLCAxKTsKKyAgICByZXR1cm4gdCAqIHQgKiAoMyAtIDIgKiB0KTsK
K30KK2Zsb2F0IGxlcnAoZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQgcykgeworICAgIHJldHVybiB4
ICogKDEgLSBzKSArIHkgKiBzOworfQorZmxvYXQgZm1hKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0
IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxvYXQgbWFkKGZsb2F0IHgsIGZsb2F0
IHksIGZsb2F0IHopIHsKKyAgICByZXR1cm4geCAqIHkgKyB6OworfQorZmxvYXQyIHNtb290aHN0
ZXAoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9hdDIgeikgeworICAgIGZsb2F0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDMgc21vb3Roc3RlcChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0MyB6KSB7CisgICAg
ZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzbW9vdGhzdGVwKHhbMF0sIHlbMF0sIHpb
MF0pOworICAgIHJlc3VsdFsxXSA9IHNtb290aHN0ZXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmVzdWx0WzJdID0gc21vb3Roc3RlcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IHNtb290aHN0ZXAoZmxvYXQ0IHgsIGZsb2F0NCB5LCBmbG9hdDQgeikg
eworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gc21vb3Roc3RlcCh4WzBdLCB5
WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBzbW9vdGhzdGVwKHhbMV0sIHlbMV0sIHpbMV0p
OworICAgIHJlc3VsdFsyXSA9IHNtb290aHN0ZXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVz
dWx0WzNdID0gc21vb3Roc3RlcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDIgc21vb3Roc3RlcChmbG9hdDJ4MiB4LCBmbG9hdDJ4MiB5LCBmbG9hdDJ4
MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MngzIHNtb290aHN0ZXAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMg
eikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzbW9vdGhzdGVw
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNtb290aHN0
ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc21vb3Ro
c3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9v
dGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNt
b290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0g
c21vb3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDQgc21vb3Roc3RlcChmbG9hdDJ4NCB4LCBmbG9hdDJ4NCB5LCBmbG9hdDJ4
NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0
ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Ro
c3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9v
dGhzdGVwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNt
b290aHN0ZXAoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gc21vb3Roc3RlcCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDIgc21vb3Roc3RlcChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5LCBm
bG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNt
b290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
c21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitmbG9hdDN4MyBzbW9vdGhzdGVwKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHks
IGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
c21vb3Roc3RlcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBzbW9vdGhzdGVwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IHNtb290aHN0ZXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gc21vb3Roc3RlcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBzbW9vdGhzdGVwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IHNtb290aHN0ZXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAg
IHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IHNtb290aHN0ZXAoZmxvYXQzeDQgeCwgZmxv
YXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzbW9vdGhzdGVwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IHNtb290aHN0ZXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gc21vb3Roc3RlcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBzbW9vdGhzdGVwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0p
OworICAgIHJlc3VsdFsxXVszXSA9IHNtb290aHN0ZXAoeFsxXVszXSwgeVsxXVszXSwgelsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJd
WzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1bMV0sIHpb
Ml1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IHNtb290aHN0ZXAoeFsyXVsyXSwgeVsyXVsyXSwg
elsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gc21vb3Roc3RlcCh4WzJdWzNdLCB5WzJdWzNd
LCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgc21vb3Roc3RlcChm
bG9hdDR4MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBd
WzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhzdGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwg
elsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gc21vb3Roc3RlcCh4WzJdWzBdLCB5WzJdWzBd
LCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBzbW9vdGhzdGVwKHhbMl1bMV0sIHlbMl1b
MV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IHNtb290aHN0ZXAoeFszXVswXSwgeVsz
XVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc21vb3Roc3RlcCh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgc21vb3Ro
c3RlcChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7CisgICAgZmxvYXQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNtb290aHN0ZXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc21vb3Roc3RlcCh4WzBdWzFdLCB5WzBdWzFd
LCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzbW9vdGhzdGVwKHhbMF1bMl0sIHlbMF1b
Ml0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNtb290aHN0ZXAoeFsxXVswXSwgeVsx
XVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc21vb3Roc3RlcCh4WzFdWzFdLCB5
WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzbW9vdGhzdGVwKHhbMV1bMl0s
IHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNtb290aHN0ZXAoeFsyXVsw
XSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc21vb3Roc3RlcCh4WzJd
WzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzbW9vdGhzdGVwKHhb
Ml1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IHNtb290aHN0ZXAo
eFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc21vb3Roc3Rl
cCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzbW9vdGhz
dGVwKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCBzbW9vdGhzdGVwKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZsb2F0NHg0IHopIHsK
KyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc21vb3Roc3RlcCh4WzBd
WzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzbW9vdGhzdGVwKHhb
MF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNtb290aHN0ZXAo
eFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc21vb3Roc3Rl
cCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzbW9vdGhz
dGVwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNtb290
aHN0ZXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc21v
b3Roc3RlcCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBz
bW9vdGhzdGVwKHhbMV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9
IHNtb290aHN0ZXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gc21vb3Roc3RlcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1b
Ml0gPSBzbW9vdGhzdGVwKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFsy
XVszXSA9IHNtb290aHN0ZXAoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0
WzNdWzBdID0gc21vb3Roc3RlcCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBzbW9vdGhzdGVwKHhbM11bMV0sIHlbM11bMV0sIHpbM11bMV0pOworICAgIHJl
c3VsdFszXVsyXSA9IHNtb290aHN0ZXAoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAg
cmVzdWx0WzNdWzNdID0gc21vb3Roc3RlcCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIGxlcnAoZmxvYXQyIHgsIGZsb2F0MiB5LCBmbG9h
dDIgeikgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5
WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbGVycChmbG9hdDMgeCwgZmxvYXQzIHksIGZsb2F0
MyB6KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBsZXJwKHhbMF0sIHlb
MF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGxlcnAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmVzdWx0WzJdID0gbGVycCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQ0IGxlcnAoZmxvYXQ0IHgsIGZsb2F0NCB5LCBmbG9hdDQgeikgeworICAgIGZsb2F0
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbGVycCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBsZXJwKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGxlcnAo
eFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0WzNdID0gbGVycCh4WzNdLCB5WzNdLCB6WzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbGVycChmbG9hdDJ4MiB4LCBmbG9h
dDJ4MiB5LCBmbG9hdDJ4MiB6KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBs
ZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAo
eFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
MngzIGxlcnAoZmxvYXQyeDMgeCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0
MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbGVycCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQyeDQgbGVycChmbG9hdDJ4NCB4LCBmbG9hdDJ4NCB5LCBmbG9hdDJ4
NCB6KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFsw
XVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IGxlcnAoeFswXVszXSwgeVswXVsz
XSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1b
MV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxlcnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7
CisgICAgcmVzdWx0WzFdWzNdID0gbGVycCh4WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbGVycChmbG9hdDN4MiB4LCBmbG9hdDN4MiB5
LCBmbG9hdDN4MiB6KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbGVy
cCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBsZXJwKHhb
MV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxlcnAoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJdWzBdLCB5
WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0sIHlbMl1b
MV0sIHpbMl1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBsZXJwKGZsb2F0
M3gzIHgsIGZsb2F0M3gzIHksIGZsb2F0M3gzIHopIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbGVycCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBsZXJwKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGxl
cnAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4
WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1b
MV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAoeFsyXVsyXSwg
eVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGxlcnAo
ZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBsZXJwKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IGxlcnAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbGVycCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBsZXJwKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsx
XVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBs
ZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGxlcnAo
eFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbGVycCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJwKHhbMl1bMV0s
IHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGxlcnAoeFsyXVsyXSwgeVsy
XVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbGVycCh4WzJdWzNdLCB5WzJdWzNd
LCB6WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbGVycChmbG9hdDR4
MiB4LCBmbG9hdDR4MiB5LCBmbG9hdDR4MiB6KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IGxlcnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
bGVycCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBsZXJw
KHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IGxlcnAoeFsz
XVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbGVycCh4WzNdWzFd
LCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbGVy
cChmbG9hdDR4MyB4LCBmbG9hdDR4MyB5LCBmbG9hdDR4MyB6KSB7CisgICAgZmxvYXQ0eDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGxlcnAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gbGVycCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBsZXJwKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGxlcnAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbGVycCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1b
Ml0gPSBsZXJwKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IGxlcnAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVy
cCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhb
Ml1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGxlcnAoeFszXVsw
XSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gbGVycCh4WzNdWzFdLCB5
WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBsZXJwKHhbM11bMl0sIHlbM11b
Ml0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBsZXJwKGZsb2F0
NHg0IHgsIGZsb2F0NHg0IHksIGZsb2F0NHg0IHopIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbGVycCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBsZXJwKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGxlcnAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBd
WzNdID0gbGVycCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBsZXJwKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGxl
cnAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbGVycCh4
WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBsZXJwKHhbMV1b
M10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGxlcnAoeFsyXVswXSwg
eVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbGVycCh4WzJdWzFdLCB5WzJd
WzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBsZXJwKHhbMl1bMl0sIHlbMl1bMl0s
IHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGxlcnAoeFsyXVszXSwgeVsyXVszXSwgelsy
XVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbGVycCh4WzNdWzBdLCB5WzNdWzBdLCB6WzNdWzBd
KTsKKyAgICByZXN1bHRbM11bMV0gPSBsZXJwKHhbM11bMV0sIHlbM11bMV0sIHpbM11bMV0pOwor
ICAgIHJlc3VsdFszXVsyXSA9IGxlcnAoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAg
cmVzdWx0WzNdWzNdID0gbGVycCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyIGZtYShmbG9hdDIgeCwgZmxvYXQyIHksIGZsb2F0MiB6KSB7
CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmbWEoeFswXSwgeVswXSwgelsw
XSk7CisgICAgcmVzdWx0WzFdID0gZm1hKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDMgZm1hKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxvYXQzIHopIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5WzBdLCB6WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBmbWEoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0g
Zm1hKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgZm1h
KGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZtYSh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmbWEo
eFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gZm1hKHhbMl0sIHlbMl0sIHpbMl0p
OworICAgIHJlc3VsdFszXSA9IGZtYSh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyeDIgZm1hKGZsb2F0MngyIHgsIGZsb2F0MngyIHksIGZsb2F0MngyIHop
IHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0s
IHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBd
WzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwg
elsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBmbWEoZmxvYXQyeDMgeCwgZmxv
YXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGZt
YSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0s
IHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFd
WzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgZm1hKGZsb2F0
Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBmbWEoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNd
ID0gZm1hKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGZt
YSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBmbWEoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gZm1hKHhbMV1bMl0s
IHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGZtYSh4WzFdWzNdLCB5WzFd
WzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgZm1hKGZsb2F0
M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGZtYSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFd
ID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZt
YSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsy
XVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gz
IGZtYShmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6KSB7CisgICAgZmxvYXQzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7Cisg
ICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJl
c3VsdFsxXVswXSA9IGZtYSh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBmbWEoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gZm1hKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGZt
YSh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsy
XVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0s
IHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBmbWEo
ZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBmbWEoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gZm1hKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IGZtYSh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRb
MF1bM10gPSBmbWEoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gZm1hKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZt
YSh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsx
XVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gZm1hKHhbMV1bM10s
IHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJd
WzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwg
elsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gZm1hKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1b
Ml0pOworICAgIHJlc3VsdFsyXVszXSA9IGZtYSh4WzJdWzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgZm1hKGZsb2F0NHgyIHgsIGZsb2F0NHgy
IHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZt
YSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0s
IHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGZtYSh4WzJdWzBdLCB5WzJd
WzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBmbWEoeFsyXVsxXSwgeVsyXVsxXSwg
elsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11bMF0sIHpbM11b
MF0pOworICAgIHJlc3VsdFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgZm1hKGZsb2F0NHgzIHgsIGZsb2F0NHgz
IHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gZm1hKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGZt
YSh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBmbWEoeFsw
XVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gZm1hKHhbMV1bMF0s
IHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGZtYSh4WzFdWzFdLCB5WzFd
WzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBmbWEoeFsxXVsyXSwgeVsxXVsyXSwg
elsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gZm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtYSh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsK
KyAgICByZXN1bHRbMl1bMl0gPSBmbWEoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gZm1hKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IGZtYSh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBmbWEoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0NHg0IGZtYShmbG9hdDR4NCB4LCBmbG9hdDR4NCB5LCBmbG9hdDR4NCB6KSB7Cisg
ICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGZtYSh4WzBdWzBdLCB5WzBd
WzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBmbWEoeFswXVsxXSwgeVswXVsxXSwg
elswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gZm1hKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1b
Ml0pOworICAgIHJlc3VsdFswXVszXSA9IGZtYSh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBmbWEoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gZm1hKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3Vs
dFsxXVsyXSA9IGZtYSh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1b
M10gPSBmbWEoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0g
Zm1hKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGZtYSh4
WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBmbWEoeFsyXVsy
XSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gZm1hKHhbMl1bM10sIHlb
Ml1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGZtYSh4WzNdWzBdLCB5WzNdWzBd
LCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBmbWEoeFszXVsxXSwgeVszXVsxXSwgelsz
XVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gZm1hKHhbM11bMl0sIHlbM11bMl0sIHpbM11bMl0p
OworICAgIHJlc3VsdFszXVszXSA9IGZtYSh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG1hZChmbG9hdDIgeCwgZmxvYXQyIHksIGZsb2F0
MiB6KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYWQoeFswXSwgeVsw
XSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gbWFkKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbWFkKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxvYXQzIHop
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1hZCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0
WzJdID0gbWFkKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgbWFkKGZsb2F0NCB4LCBmbG9hdDQgeSwgZmxvYXQ0IHopIHsKKyAgICBmbG9hdDQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IG1hZCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBtYWQoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gbWFkKHhbMl0sIHlbMl0s
IHpbMl0pOworICAgIHJlc3VsdFszXSA9IG1hZCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbWFkKGZsb2F0MngyIHgsIGZsb2F0MngyIHksIGZsb2F0
MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhb
MF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFd
LCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsx
XVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0s
IHpbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtYWQoZmxvYXQyeDMg
eCwgZmxvYXQyeDMgeSwgZmxvYXQyeDMgeikgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsy
XSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
YWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhb
MV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJd
LCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbWFk
KGZsb2F0Mng0IHgsIGZsb2F0Mng0IHksIGZsb2F0Mng0IHopIHsKKyAgICBmbG9hdDJ4NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSBtYWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWFkKHhbMF1bM10sIHlbMF1bM10sIHpbMF1bM10pOworICAgIHJlc3VsdFsxXVsw
XSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBt
YWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWFkKHhb
MV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1hZCh4WzFdWzNd
LCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgbWFk
KGZsb2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOwor
ICAgIHJlc3VsdFswXVsxXSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVsw
XSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBt
YWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3gzIG1hZChmbG9hdDN4MyB4LCBmbG9hdDN4MyB5LCBmbG9hdDN4MyB6KSB7CisgICAgZmxv
YXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBdLCB5WzBdWzBdLCB6
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVswXVsxXSwgelswXVsx
XSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOwor
ICAgIHJlc3VsdFsxXVswXSA9IG1hZCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBtYWQoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gbWFkKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IG1hZCh4WzJdWzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBt
YWQoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhb
Ml1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4
NCBtYWQoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSwgZmxvYXQzeDQgeikgeworICAgIGZsb2F0M3g0
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYWQoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWFkKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOwor
ICAgIHJlc3VsdFswXVsyXSA9IG1hZCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICBy
ZXN1bHRbMF1bM10gPSBtYWQoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbWFkKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsx
XSA9IG1hZCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
YWQoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWFkKHhb
MV1bM10sIHlbMV1bM10sIHpbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBd
LCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsy
XVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWFkKHhbMl1bMl0sIHlbMl1bMl0s
IHpbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IG1hZCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJd
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbWFkKGZsb2F0NHgyIHgsIGZs
b2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
YWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhb
MV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1hZCh4WzJdWzBd
LCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYWQoeFsyXVsxXSwgeVsy
XVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlbM11bMF0s
IHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNd
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbWFkKGZsb2F0NHgzIHgsIGZs
b2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWFkKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1hZCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBt
YWQoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWFkKHhb
MV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1hZCh4WzFdWzFd
LCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYWQoeFsxXVsyXSwgeVsx
XVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0s
IHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYWQoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7
CisgICAgcmVzdWx0WzNdWzBdID0gbWFkKHhbM11bMF0sIHlbM11bMF0sIHpbM11bMF0pOworICAg
IHJlc3VsdFszXVsxXSA9IG1hZCh4WzNdWzFdLCB5WzNdWzFdLCB6WzNdWzFdKTsKKyAgICByZXN1
bHRbM11bMl0gPSBtYWQoeFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NHg0IG1hZChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5LCBmbG9hdDR4NCB6
KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1hZCh4WzBdWzBd
LCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYWQoeFswXVsxXSwgeVsw
XVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWFkKHhbMF1bMl0sIHlbMF1bMl0s
IHpbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1hZCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBd
WzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYWQoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbWFkKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IG1hZCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1
bHRbMV1bM10gPSBtYWQoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gbWFkKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9
IG1hZCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYWQo
eFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWFkKHhbMl1b
M10sIHlbMl1bM10sIHpbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IG1hZCh4WzNdWzBdLCB5
WzNdWzBdLCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYWQoeFszXVsxXSwgeVszXVsx
XSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWFkKHhbM11bMl0sIHlbM11bMl0sIHpb
M11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IG1hZCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc25vcm1hbChoYWxmKTsK
K25hdGl2ZSBib29sIGlzbm9ybWFsKGZsb2F0KTsKK2Jvb2wyIGlzbm9ybWFsKGhhbGYyIHgpIHsK
KyAgICBib29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wz
IGlzbm9ybWFsKGhhbGYzIHgpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
aXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlz
bm9ybWFsKGhhbGY0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNu
b3JtYWwoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmVzdWx0
WzJdID0gaXNub3JtYWwoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNub3JtYWwoeFszXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbDIgaXNub3JtYWwoZmxvYXQyIHgpIHsKKyAgICBi
b29sMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNub3JtYWwoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gaXNub3JtYWwoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wzIGlzbm9y
bWFsKGZsb2F0MyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzbm9y
bWFsKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbm9ybWFsKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGlzbm9ybWFsKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc25vcm1h
bChmbG9hdDQgeCkgeworICAgIGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc25vcm1h
bCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc25vcm1hbCh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBpc25vcm1hbCh4WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc25vcm1hbCh4WzNdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgYm9vbCBpc2Zpbml0ZShmbG9hdCk7Citib29sIGlz
ZmluaXRlKGhhbGYgeCkgeworICAgIHJldHVybiBpc2Zpbml0ZShmbG9hdCh4KSk7Cit9CituYXRp
dmUgYm9vbCBpc2luZihmbG9hdCk7Citib29sIGlzaW5mKGhhbGYgeCkgeworICAgIHJldHVybiBp
c2luZihmbG9hdCh4KSk7Cit9CituYXRpdmUgYm9vbCBpc25hbihmbG9hdCk7Citib29sIGlzbmFu
KGhhbGYgeCkgeworICAgIHJldHVybiBpc25hbihmbG9hdCh4KSk7Cit9Citib29sMiBpc2Zpbml0
ZShoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzZmluaXRl
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sMyBpc2Zpbml0ZShoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sNCBpc2Zpbml0ZShoYWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhbMV0p
OworICAgIHJlc3VsdFsyXSA9IGlzZmluaXRlKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGlzZmlu
aXRlKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBpc2luZihoYWxmMiB4KSB7
CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2lu
ZihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzaW5m
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc2luZihoYWxmNCB4KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzaW5mKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzaW5mKHhbMl0pOworICAgIHJl
c3VsdFszXSA9IGlzaW5mKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMiBpc25h
bihoYWxmMiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzbmFuKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sMyBpc25hbihoYWxmMyB4KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJlc3Vs
dFsyXSA9IGlzbmFuKHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc25hbiho
YWxmNCB4KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGlzbmFuKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IGlzbmFuKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKK2Jvb2wyIGlzZmluaXRlKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGlzZmluaXRlKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzZmluaXRlKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc2Zpbml0ZShmbG9hdDMgeCkgeworICAg
IGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc2Zpbml0ZSh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBpc2Zpbml0ZSh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc2Zpbml0ZSh4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDQgaXNmaW5pdGUoZmxvYXQ0IHgpIHsKKyAgICBi
b29sNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXNmaW5pdGUoeFswXSk7CisgICAgcmVzdWx0
WzFdID0gaXNmaW5pdGUoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNmaW5pdGUoeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gaXNmaW5pdGUoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jv
b2wyIGlzaW5mKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGlzaW5mKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzaW5mKHhbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sMyBpc2luZihmbG9hdDMgeCkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBpc2luZih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc2luZih4WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBpc2luZih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bDQgaXNpbmYoZmxvYXQ0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
aXNpbmYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNpbmYoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gaXNpbmYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNpbmYoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wyIGlzbmFuKGZsb2F0MiB4KSB7CisgICAgYm9vbDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGlzbmFuKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzbmFuKHhbMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc25hbihmbG9hdDMgeCkgeworICAgIGJv
b2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc25hbih4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBpc25hbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc25hbih4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbDQgaXNuYW4oZmxvYXQ0IHgpIHsKKyAgICBib29sNCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gaXNuYW4oeFswXSk7CisgICAgcmVzdWx0WzFdID0gaXNuYW4oeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gaXNuYW4oeFsyXSk7CisgICAgcmVzdWx0WzNdID0gaXNuYW4oeFsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBpc29yZGVyZWQoaGFsZiB4LCBoYWxm
IHkpIHsKKyAgICByZXR1cm4gKHggPT0geCkgJiYgKHkgPT0geSk7Cit9Citib29sIGlzdW5vcmRl
cmVkKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8IGlzbmFuKHkpOwor
fQorYm9vbDIgaXNvcmRlcmVkKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICBib29sMiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IGlzb3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgaXNv
cmRlcmVkKGhhbGYzIHgsIGhhbGYzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gaXNvcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzb3JkZXJlZCh4
WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc29yZGVyZWQoeFsyXSwgeVsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2w0IGlzb3JkZXJlZChoYWxmNCB4LCBoYWxmNCB5KSB7Cisg
ICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
aXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IGlzb3JkZXJlZCh4WzNdLCB5
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1bm9yZGVyZWQoaGFsZjIgeCwg
aGFsZjIgeSkgeworICAgIGJvb2wyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJl
ZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDMgaXN1bm9yZGVyZWQoaGFsZjMgeCwgaGFsZjMg
eSkgeworICAgIGJvb2wzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4WzBd
LCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbDQgaXN1bm9yZGVyZWQoaGFsZjQgeCwgaGFsZjQgeSkgeworICAgIGJvb2w0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBpc3Vub3JkZXJl
ZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc3Vub3JkZXJlZCh4WzNdLCB5WzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGlzb3JkZXJlZChmbG9hdCB4LCBmbG9hdCB5
KSB7CisgICAgcmV0dXJuICh4ID09IHgpICYmICh5ID09IHkpOworfQorYm9vbCBpc3Vub3JkZXJl
ZChmbG9hdCB4LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIGlzbmFuKHgpIHx8IGlzbmFuKHkpOwor
fQorYm9vbDIgaXNvcmRlcmVkKGZsb2F0MiB4LCBmbG9hdDIgeSkgeworICAgIGJvb2wyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBpc29yZGVyZWQoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gaXNvcmRlcmVkKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBp
c29yZGVyZWQoZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgYm9vbDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGlzb3JkZXJlZCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVy
ZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sNCBpc29yZGVyZWQoZmxvYXQ0IHgsIGZsb2F0NCB5
KSB7CisgICAgYm9vbDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlzb3JkZXJlZCh4WzBdLCB5
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBpc29yZGVyZWQoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0
WzJdID0gaXNvcmRlcmVkKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IGlzb3JkZXJlZCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbDIgaXN1bm9yZGVyZWQoZmxv
YXQyIHgsIGZsb2F0MiB5KSB7CisgICAgYm9vbDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGlz
dW5vcmRlcmVkKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IGlzdW5vcmRlcmVkKHhbMV0s
IHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sMyBpc3Vub3JkZXJlZChmbG9hdDMg
eCwgZmxvYXQzIHkpIHsKKyAgICBib29sMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gaXN1bm9y
ZGVyZWQoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gaXN1bm9yZGVyZWQoeFsxXSwgeVsx
XSk7CisgICAgcmVzdWx0WzJdID0gaXN1bm9yZGVyZWQoeFsyXSwgeVsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2w0IGlzdW5vcmRlcmVkKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAg
IGJvb2w0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBpc3Vub3JkZXJlZCh4WzBdLCB5WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBpc3Vub3JkZXJlZCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBpc3Vub3JkZXJlZCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBpc3Vub3JkZXJlZCh4
WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCituYXRpdmUgZmxvYXQgYXRhbjIo
ZmxvYXQsIGZsb2F0KTsKK2hhbGYgYXRhbjIoaGFsZiB4LCBoYWxmIHkpIHsKKyAgICByZXR1cm4g
aGFsZihhdGFuMihmbG9hdCh4KSwgZmxvYXQoeSkpKTsKK30KK2hhbGYyIGF0YW4yKGhhbGYyIHgs
IGhhbGYyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbjIoeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzIGF0YW4yKGhhbGYzIHgsIGhhbGYzIHkpIHsKKyAgICBoYWxmMyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbjIoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gYXRhbjIoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbjIoeFsyXSwgeVsyXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGF0YW4yKGhhbGY0IHgsIGhhbGY0IHkpIHsK
KyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbjIoeFswXSwgeVswXSk7Cisg
ICAgcmVzdWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbjIo
eFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gYXRhbjIoeFszXSwgeVszXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgYXRhbjIoaGFsZjJ4MiB4LCBoYWxmMngyIHkpIHsKKyAg
ICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MyBhdGFuMihoYWxmMngzIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGF0YW4yKHhb
MF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhbMV1bMF0sIHlbMV1b
MF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmMng0IGF0YW4yKGhhbGYyeDQgeCwgaGFsZjJ4NCB5KSB7CisgICAgaGFsZjJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAg
cmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFsw
XVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
YXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
YXRhbjIoaGFsZjN4MiB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBhdGFuMih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBhdGFuMih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFd
WzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFd
KTsKKyAgICByZXN1bHRbMl1bMF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBhdGFuMih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjN4MyBhdGFuMihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYzeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9
IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGF0YW4yKHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGF0
YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGF0YW4yKHhbMl1bMl0s
IHlbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGF0YW4yKGhhbGYzeDQg
eCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
YXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsx
XSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7
CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRh
bjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIo
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwgeVsy
XVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgYXRhbjIoaGFsZjR4MiB4LCBo
YWxmNHgyIHkpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhdGFu
Mih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhdGFuMih4WzBdWzFdLCB5
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhdGFuMih4WzFdWzBdLCB5WzFdWzBdKTsKKyAg
ICByZXN1bHRbMV1bMV0gPSBhdGFuMih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1b
MF0gPSBhdGFuMih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhdGFuMih4
WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBhdGFuMih4WzNdWzBdLCB5WzNd
WzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBhdGFuMih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBhdGFuMihoYWxmNHgzIHgsIGhhbGY0eDMgeSkgewor
ICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGF0YW4yKHhbMF1bMF0sIHlb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGF0YW4yKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IGF0YW4yKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGF0YW4yKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGF0YW4yKHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGF0YW4yKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsyXVswXSA9IGF0YW4yKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IGF0YW4yKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9
IGF0YW4yKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGF0YW4yKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGF0YW4yKHhbM11bMV0sIHlbM11bMV0p
OworICAgIHJlc3VsdFszXVsyXSA9IGF0YW4yKHhbM11bMl0sIHlbM11bMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmNHg0IGF0YW4yKGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7CisgICAg
aGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
YXRhbjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0
WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRh
bjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNd
WzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRhbjIo
eFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gYXRhbjIoeFszXVszXSwgeVszXVszXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBhdGFuMihmbG9hdDIgeCwgZmxvYXQyIHkpIHsKKyAg
ICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGF0YW4yKHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IGF0YW4yKHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDMgYXRhbjIoZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBhdGFuMih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhdGFuMih4
WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhdGFuMih4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IGF0YW4yKGZsb2F0NCB4LCBmbG9hdDQgeSkgeworICAgIGZs
b2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXRhbjIoeFswXSwgeVswXSk7CisgICAgcmVz
dWx0WzFdID0gYXRhbjIoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gYXRhbjIoeFsyXSwg
eVsyXSk7CisgICAgcmVzdWx0WzNdID0gYXRhbjIoeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIGF0YW4yKGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBm
bG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
YXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IGF0YW4yKGZsb2F0MngzIHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsx
XVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0Mng0IGF0YW4yKGZsb2F0Mng0IHgsIGZsb2F0Mng0IHkpIHsKKyAgICBmbG9h
dDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRh
bjIoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFd
WzNdID0gYXRhbjIoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0M3gyIGF0YW4yKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVz
dWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
YXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsx
XSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3gzIGF0YW4yKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHkpIHsKKyAg
ICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsx
XVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsy
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0g
YXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0
IGF0YW4yKGZsb2F0M3g0IHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIo
eFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVsw
XVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJd
ID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsx
XVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVz
dWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
YXRhbjIoeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgy
IGF0YW4yKGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gYXRhbjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBd
ID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFsz
XVsxXSwgeVszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGF0YW4yKGZs
b2F0NHgzIHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRh
bjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwg
eVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gYXRhbjIoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIo
eFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVswXSk7CisgICAgcmVzdWx0WzNdWzFd
ID0gYXRhbjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYXRhbjIoeFsz
XVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IGF0YW4yKGZs
b2F0NHg0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYXRhbjIoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYXRh
bjIoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYXRhbjIoeFswXVsyXSwg
eVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYXRhbjIoeFswXVszXSwgeVswXVszXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gYXRhbjIoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gYXRhbjIoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYXRhbjIo
eFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYXRhbjIoeFsxXVszXSwgeVsx
XVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYXRhbjIoeFsyXVswXSwgeVsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gYXRhbjIoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gYXRhbjIoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYXRhbjIoeFsy
XVszXSwgeVsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYXRhbjIoeFszXVswXSwgeVszXVsw
XSk7CisgICAgcmVzdWx0WzNdWzFdID0gYXRhbjIoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVz
dWx0WzNdWzJdID0gYXRhbjIoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0g
YXRhbjIoeFszXVszXSwgeVszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordm9pZCBz
aW5jb3MoaGFsZiB4LCB0aHJlYWQgaGFsZiogeSwgdGhyZWFkIGhhbGYqIHopIHsKKyAgICAqeSA9
IHNpbih4KTsKKyAgICAqeiA9IGNvcyh4KTsKK30KK3ZvaWQgc2luY29zKGhhbGYyIHgsIHRocmVh
ZCBoYWxmMiogeSwgdGhyZWFkIGhhbGYyKiB6KSB7CisgICAgc2luY29zKHhbMF0sICYoKCp5KVsw
XSksICYoKCp6KVswXSkpOworICAgIHNpbmNvcyh4WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0p
KTsKK30KK3ZvaWQgc2luY29zKGhhbGYzIHgsIHRocmVhZCBoYWxmMyogeSwgdGhyZWFkIGhhbGYz
KiB6KSB7CisgICAgc2luY29zKHhbMF0sICYoKCp5KVswXSksICYoKCp6KVswXSkpOworICAgIHNp
bmNvcyh4WzFdLCAmKCgqeSlbMV0pLCAmKCgqeilbMV0pKTsKKyAgICBzaW5jb3MoeFsyXSwgJigo
KnkpWzJdKSwgJigoKnopWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNCB4LCB0aHJlYWQgaGFs
ZjQqIHksIHRocmVhZCBoYWxmNCogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAm
KCgqeilbMF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7Cisg
ICAgc2luY29zKHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworICAgIHNpbmNvcyh4WzNd
LCAmKCgqeSlbM10pLCAmKCgqeilbM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYyeDIgeCwgdGhy
ZWFkIGhhbGYyeDIqIHksIHRocmVhZCBoYWxmMngyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0s
ICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgq
eSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSks
ICYoKCp6KVsxXVsxXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjJ4MyB4LCB0aHJlYWQgaGFsZjJ4
MyogeSwgdGhyZWFkIGhhbGYyeDMqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBd
WzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSks
ICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgq
eilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFd
WzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkp
OworICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKK30K
K3ZvaWQgc2luY29zKGhhbGYyeDQgeCwgdGhyZWFkIGhhbGYyeDQqIHksIHRocmVhZCBoYWxmMng0
KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkp
OworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAg
ICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2lu
Y29zKHhbMF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAgIHNpbmNvcyh4
WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsx
XSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYo
KCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNdLCAmKCgqeSlb
MV1bM10pLCAmKCgqeilbMV1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGYzeDIgeCwgdGhyZWFk
IGhhbGYzeDIqIHksIHRocmVhZCBoYWxmM3gyKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYo
KCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlb
MF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBd
KSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYo
KCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilb
Ml1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFd
KSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmM3gzIHgsIHRocmVhZCBoYWxmM3gzKiB5LCB0aHJlYWQg
aGFsZjN4MyogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilb
MF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFd
KSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOwor
ICAgIHNpbmNvcyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBz
aW5jb3MoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29z
KHhbMV1bMl0sICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJd
WzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwg
JigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5
KVsyXVsyXSksICYoKCp6KVsyXVsyXSkpOworfQordm9pZCBzaW5jb3MoaGFsZjN4NCB4LCB0aHJl
YWQgaGFsZjN4NCogeSwgdGhyZWFkIGhhbGYzeDQqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwg
JigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5
KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1b
Ml0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFswXVszXSwgJigoKnkpWzBdWzNdKSwg
JigoKnopWzBdWzNdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6
KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1b
MV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7
CisgICAgc2luY29zKHhbMV1bM10sICYoKCp5KVsxXVszXSksICYoKCp6KVsxXVszXSkpOworICAg
IHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5j
b3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhb
Ml1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6KVsyXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzNd
LCAmKCgqeSlbMl1bM10pLCAmKCgqeilbMl1bM10pKTsKK30KK3ZvaWQgc2luY29zKGhhbGY0eDIg
eCwgdGhyZWFkIGhhbGY0eDIqIHksIHRocmVhZCBoYWxmNHgyKiB6KSB7CisgICAgc2luY29zKHhb
MF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFd
LCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigo
KnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsx
XVsxXSksICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1bMF0p
LCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwgJigo
KnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVswXSksICYoKCp6KVsz
XVswXSkpOworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAmKCgqeilbM11bMV0p
KTsKK30KK3ZvaWQgc2luY29zKGhhbGY0eDMgeCwgdGhyZWFkIGhhbGY0eDMqIHksIHRocmVhZCBo
YWxmNHgzKiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVsw
XVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0p
KTsKKyAgICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7Cisg
ICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNp
bmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3Mo
eFsxXVsyXSwgJigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMl1b
MF0sICYoKCp5KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAm
KCgqeSlbMl1bMV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkp
WzJdWzJdKSwgJigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbM11bMF0sICYoKCp5KVszXVsw
XSksICYoKCp6KVszXVswXSkpOworICAgIHNpbmNvcyh4WzNdWzFdLCAmKCgqeSlbM11bMV0pLCAm
KCgqeilbM11bMV0pKTsKKyAgICBzaW5jb3MoeFszXVsyXSwgJigoKnkpWzNdWzJdKSwgJigoKnop
WzNdWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhoYWxmNHg0IHgsIHRocmVhZCBoYWxmNHg0KiB5LCB0
aHJlYWQgaGFsZjR4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAm
KCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnop
WzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsy
XSkpOworICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAmKCgqeilbMF1bM10pKTsK
KyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAg
c2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNv
cyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsx
XVszXSwgJigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7CisgICAgc2luY29zKHhbMl1bMF0s
ICYoKCp5KVsyXVswXSksICYoKCp6KVsyXVswXSkpOworICAgIHNpbmNvcyh4WzJdWzFdLCAmKCgq
eSlbMl1bMV0pLCAmKCgqeilbMl1bMV0pKTsKKyAgICBzaW5jb3MoeFsyXVsyXSwgJigoKnkpWzJd
WzJdKSwgJigoKnopWzJdWzJdKSk7CisgICAgc2luY29zKHhbMl1bM10sICYoKCp5KVsyXVszXSks
ICYoKCp6KVsyXVszXSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgq
eilbM11bMF0pKTsKKyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNd
WzFdKSk7CisgICAgc2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkp
OworICAgIHNpbmNvcyh4WzNdWzNdLCAmKCgqeSlbM11bM10pLCAmKCgqeilbM11bM10pKTsKK30K
K3ZvaWQgc2luY29zKGZsb2F0IHgsIHRocmVhZCBmbG9hdCogeSwgdGhyZWFkIGZsb2F0KiB6KSB7
CisgICAgKnkgPSBzaW4oeCk7CisgICAgKnogPSBjb3MoeCk7Cit9Cit2b2lkIHNpbmNvcyhmbG9h
dDIgeCwgdGhyZWFkIGZsb2F0MiogeSwgdGhyZWFkIGZsb2F0MiogeikgeworICAgIHNpbmNvcyh4
WzBdLCAmKCgqeSlbMF0pLCAmKCgqeilbMF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFd
KSwgJigoKnopWzFdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDMgeCwgdGhyZWFkIGZsb2F0Myog
eSwgdGhyZWFkIGZsb2F0MyogeikgeworICAgIHNpbmNvcyh4WzBdLCAmKCgqeSlbMF0pLCAmKCgq
eilbMF0pKTsKKyAgICBzaW5jb3MoeFsxXSwgJigoKnkpWzFdKSwgJigoKnopWzFdKSk7CisgICAg
c2luY29zKHhbMl0sICYoKCp5KVsyXSksICYoKCp6KVsyXSkpOworfQordm9pZCBzaW5jb3MoZmxv
YXQ0IHgsIHRocmVhZCBmbG9hdDQqIHksIHRocmVhZCBmbG9hdDQqIHopIHsKKyAgICBzaW5jb3Mo
eFswXSwgJigoKnkpWzBdKSwgJigoKnopWzBdKSk7CisgICAgc2luY29zKHhbMV0sICYoKCp5KVsx
XSksICYoKCp6KVsxXSkpOworICAgIHNpbmNvcyh4WzJdLCAmKCgqeSlbMl0pLCAmKCgqeilbMl0p
KTsKKyAgICBzaW5jb3MoeFszXSwgJigoKnkpWzNdKSwgJigoKnopWzNdKSk7Cit9Cit2b2lkIHNp
bmNvcyhmbG9hdDJ4MiB4LCB0aHJlYWQgZmxvYXQyeDIqIHksIHRocmVhZCBmbG9hdDJ4Miogeikg
eworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAg
ICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2lu
Y29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKK30KK3ZvaWQgc2luY29zKGZs
b2F0MngzIHgsIHRocmVhZCBmbG9hdDJ4MyogeSwgdGhyZWFkIGZsb2F0MngzKiB6KSB7CisgICAg
c2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6KVswXVswXSkpOworICAgIHNpbmNv
cyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1bMV0pKTsKKyAgICBzaW5jb3MoeFsw
XVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7CisgICAgc2luY29zKHhbMV1bMF0s
ICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgq
eSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwgJigoKnkpWzFd
WzJdKSwgJigoKnopWzFdWzJdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDJ4NCB4LCB0aHJlYWQg
ZmxvYXQyeDQqIHksIHRocmVhZCBmbG9hdDJ4NCogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAm
KCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkp
WzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMF1bMl0sICYoKCp5KVswXVsy
XSksICYoKCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzBdWzNdLCAmKCgqeSlbMF1bM10pLCAm
KCgqeilbMF1bM10pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigoKnkpWzFdWzBdKSwgJigoKnop
WzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsxXVsxXSksICYoKCp6KVsxXVsx
XSkpOworICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0pLCAmKCgqeilbMV1bMl0pKTsK
KyAgICBzaW5jb3MoeFsxXVszXSwgJigoKnkpWzFdWzNdKSwgJigoKnopWzFdWzNdKSk7Cit9Cit2
b2lkIHNpbmNvcyhmbG9hdDN4MiB4LCB0aHJlYWQgZmxvYXQzeDIqIHksIHRocmVhZCBmbG9hdDN4
MiogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0p
KTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7Cisg
ICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNp
bmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3Mo
eFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1b
MV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworfQordm9pZCBzaW5jb3MoZmxvYXQz
eDMgeCwgdGhyZWFkIGZsb2F0M3gzKiB5LCB0aHJlYWQgZmxvYXQzeDMqIHopIHsKKyAgICBzaW5j
b3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBdKSk7CisgICAgc2luY29zKHhb
MF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOworICAgIHNpbmNvcyh4WzBdWzJd
LCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBzaW5jb3MoeFsxXVswXSwgJigo
KnkpWzFdWzBdKSwgJigoKnopWzFdWzBdKSk7CisgICAgc2luY29zKHhbMV1bMV0sICYoKCp5KVsx
XVsxXSksICYoKCp6KVsxXVsxXSkpOworICAgIHNpbmNvcyh4WzFdWzJdLCAmKCgqeSlbMV1bMl0p
LCAmKCgqeilbMV1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigo
KnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsy
XVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0pLCAmKCgqeilbMl1bMl0p
KTsKK30KK3ZvaWQgc2luY29zKGZsb2F0M3g0IHgsIHRocmVhZCBmbG9hdDN4NCogeSwgdGhyZWFk
IGZsb2F0M3g0KiB6KSB7CisgICAgc2luY29zKHhbMF1bMF0sICYoKCp5KVswXVswXSksICYoKCp6
KVswXVswXSkpOworICAgIHNpbmNvcyh4WzBdWzFdLCAmKCgqeSlbMF1bMV0pLCAmKCgqeilbMF1b
MV0pKTsKKyAgICBzaW5jb3MoeFswXVsyXSwgJigoKnkpWzBdWzJdKSwgJigoKnopWzBdWzJdKSk7
CisgICAgc2luY29zKHhbMF1bM10sICYoKCp5KVswXVszXSksICYoKCp6KVswXVszXSkpOworICAg
IHNpbmNvcyh4WzFdWzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5j
b3MoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhb
MV1bMl0sICYoKCp5KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzFdWzNd
LCAmKCgqeSlbMV1bM10pLCAmKCgqeilbMV1bM10pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigo
KnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsy
XVsxXSksICYoKCp6KVsyXVsxXSkpOworICAgIHNpbmNvcyh4WzJdWzJdLCAmKCgqeSlbMl1bMl0p
LCAmKCgqeilbMl1bMl0pKTsKKyAgICBzaW5jb3MoeFsyXVszXSwgJigoKnkpWzJdWzNdKSwgJigo
KnopWzJdWzNdKSk7Cit9Cit2b2lkIHNpbmNvcyhmbG9hdDR4MiB4LCB0aHJlYWQgZmxvYXQ0eDIq
IHksIHRocmVhZCBmbG9hdDR4MiogeikgeworICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1b
MF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBzaW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwg
JigoKnopWzBdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6
KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFdWzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1b
MV0pKTsKKyAgICBzaW5jb3MoeFsyXVswXSwgJigoKnkpWzJdWzBdKSwgJigoKnopWzJdWzBdKSk7
CisgICAgc2luY29zKHhbMl1bMV0sICYoKCp5KVsyXVsxXSksICYoKCp6KVsyXVsxXSkpOworICAg
IHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11bMF0pKTsKKyAgICBzaW5j
b3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7Cit9Cit2b2lkIHNpbmNv
cyhmbG9hdDR4MyB4LCB0aHJlYWQgZmxvYXQ0eDMqIHksIHRocmVhZCBmbG9hdDR4Myogeikgewor
ICAgIHNpbmNvcyh4WzBdWzBdLCAmKCgqeSlbMF1bMF0pLCAmKCgqeilbMF1bMF0pKTsKKyAgICBz
aW5jb3MoeFswXVsxXSwgJigoKnkpWzBdWzFdKSwgJigoKnopWzBdWzFdKSk7CisgICAgc2luY29z
KHhbMF1bMl0sICYoKCp5KVswXVsyXSksICYoKCp6KVswXVsyXSkpOworICAgIHNpbmNvcyh4WzFd
WzBdLCAmKCgqeSlbMV1bMF0pLCAmKCgqeilbMV1bMF0pKTsKKyAgICBzaW5jb3MoeFsxXVsxXSwg
JigoKnkpWzFdWzFdKSwgJigoKnopWzFdWzFdKSk7CisgICAgc2luY29zKHhbMV1bMl0sICYoKCp5
KVsxXVsyXSksICYoKCp6KVsxXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1b
MF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwg
JigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6
KVsyXVsyXSkpOworICAgIHNpbmNvcyh4WzNdWzBdLCAmKCgqeSlbM11bMF0pLCAmKCgqeilbM11b
MF0pKTsKKyAgICBzaW5jb3MoeFszXVsxXSwgJigoKnkpWzNdWzFdKSwgJigoKnopWzNdWzFdKSk7
CisgICAgc2luY29zKHhbM11bMl0sICYoKCp5KVszXVsyXSksICYoKCp6KVszXVsyXSkpOworfQor
dm9pZCBzaW5jb3MoZmxvYXQ0eDQgeCwgdGhyZWFkIGZsb2F0NHg0KiB5LCB0aHJlYWQgZmxvYXQ0
eDQqIHopIHsKKyAgICBzaW5jb3MoeFswXVswXSwgJigoKnkpWzBdWzBdKSwgJigoKnopWzBdWzBd
KSk7CisgICAgc2luY29zKHhbMF1bMV0sICYoKCp5KVswXVsxXSksICYoKCp6KVswXVsxXSkpOwor
ICAgIHNpbmNvcyh4WzBdWzJdLCAmKCgqeSlbMF1bMl0pLCAmKCgqeilbMF1bMl0pKTsKKyAgICBz
aW5jb3MoeFswXVszXSwgJigoKnkpWzBdWzNdKSwgJigoKnopWzBdWzNdKSk7CisgICAgc2luY29z
KHhbMV1bMF0sICYoKCp5KVsxXVswXSksICYoKCp6KVsxXVswXSkpOworICAgIHNpbmNvcyh4WzFd
WzFdLCAmKCgqeSlbMV1bMV0pLCAmKCgqeilbMV1bMV0pKTsKKyAgICBzaW5jb3MoeFsxXVsyXSwg
JigoKnkpWzFdWzJdKSwgJigoKnopWzFdWzJdKSk7CisgICAgc2luY29zKHhbMV1bM10sICYoKCp5
KVsxXVszXSksICYoKCp6KVsxXVszXSkpOworICAgIHNpbmNvcyh4WzJdWzBdLCAmKCgqeSlbMl1b
MF0pLCAmKCgqeilbMl1bMF0pKTsKKyAgICBzaW5jb3MoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSwg
JigoKnopWzJdWzFdKSk7CisgICAgc2luY29zKHhbMl1bMl0sICYoKCp5KVsyXVsyXSksICYoKCp6
KVsyXVsyXSkpOworICAgIHNpbmNvcyh4WzJdWzNdLCAmKCgqeSlbMl1bM10pLCAmKCgqeilbMl1b
M10pKTsKKyAgICBzaW5jb3MoeFszXVswXSwgJigoKnkpWzNdWzBdKSwgJigoKnopWzNdWzBdKSk7
CisgICAgc2luY29zKHhbM11bMV0sICYoKCp5KVszXVsxXSksICYoKCp6KVszXVsxXSkpOworICAg
IHNpbmNvcyh4WzNdWzJdLCAmKCgqeSlbM11bMl0pLCAmKCgqeilbM11bMl0pKTsKKyAgICBzaW5j
b3MoeFszXVszXSwgJigoKnkpWzNdWzNdKSwgJigoKnopWzNdWzNdKSk7Cit9CisKK2Jvb2wgYWxs
KGJvb2wgeCkgeworICAgIHJldHVybiB4OworfQorYm9vbCBhbGwoYm9vbDIgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0pOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxs
KGJvb2wzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0pOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGJvb2w0
IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0pOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXSk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwodWNoYXIgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citi
b29sIGFsbCh1Y2hhcjIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1Y2hhcjMgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwodWNoYXI0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdICE9
IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1c2hvcnQgeCkgeworICAgIHJl
dHVybiB4ICE9IDA7Cit9Citib29sIGFsbCh1c2hvcnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9
IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
dXNob3J0MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9
Citib29sIGFsbCh1c2hvcnQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFs
bCh1aW50IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbGwodWludDIgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1
bHQ7Cit9Citib29sIGFsbCh1aW50MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Citib29sIGFsbCh1aW50NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0
cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbCBhbGwoY2hhciB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxs
KGNoYXIyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hhcjMgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoY2hhcjQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHNob3J0IHgpIHsKKyAgICByZXR1cm4geCAhPSAw
OworfQorYm9vbCBhbGwoc2hvcnQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoc2hvcnQzIHgpIHsK
KyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKHNo
b3J0NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaW50IHgpIHsKKyAg
ICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbGwoaW50MiB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxs
KGludDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Ym9vbCBhbGwoaW50NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFs
ZiB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYWxsKGhhbGYyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorYm9vbCBhbGwoaGFsZjMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYWxsKGhhbGYyeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKGhhbGYyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoaGFsZjJ4NCB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsz
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGhhbGYzeDIgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
aGFsZjN4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChoYWxmM3g0IHgpIHsKKyAgICBib29sIHJl
c3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKGhhbGY0eDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFsbChoYWxmNHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11b
Ml0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGhhbGY0eDQgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhb
MF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9IDApOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzNdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVszXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsyXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYWxsKGZsb2F0IHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbGwo
ZmxvYXQyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQzIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCAmJiAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl0g
IT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGZsb2F0NCB4KSB7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQyeDIgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYWxsKGZsb2F0MngzIHgpIHsKKyAgICBib29s
IHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YWxsKGZsb2F0Mng0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCAmJiAoeFsxXVszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxv
YXQzeDIgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQzeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0g
dHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsw
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCAmJiAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwo
ZmxvYXQzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1
bHQgJiYgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
ICh4WzFdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVszXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbGwoZmxvYXQ0eDIgeCkgeworICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzJdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
KHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzFdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFsbChmbG9hdDR4MyB4KSB7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmICh4WzJdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAo
eFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFsbChmbG9hdDR4NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAg
IHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
JiYgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzBdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4WzFdWzFd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgJiYgKHhbMV1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmICh4
WzJdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFsyXVsxXSAhPSAwKTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgJiYgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
ICYmICh4WzJdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVswXSAhPSAw
KTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0g
cmVzdWx0ICYmICh4WzNdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiAoeFszXVsz
XSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIGFueShib29sIHgpIHsKKyAg
ICByZXR1cm4geDsKK30KK2Jvb2wgYW55KGJvb2wyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZh
bHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoYm9vbDMgeCkgewor
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0pOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGJvb2w0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0p
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYW55KHVjaGFyIHgpIHsKKyAgICByZXR1cm4geCAhPSAwOworfQorYm9vbCBhbnkodWNo
YXIyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KHVjaGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWNoYXI0IHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodXNob3J0IHgpIHsKKyAgICByZXR1cm4geCAh
PSAwOworfQorYm9vbCBhbnkodXNob3J0MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueSh1c2hvcnQz
IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29s
IGFueSh1c2hvcnQ0IHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFszXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkodWlu
dCB4KSB7CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYW55KHVpbnQyIHgpIHsKKyAgICBi
b29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYW55KHVpbnQzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdICE9IDApOworICAgIHJldHVy
biByZXN1bHQ7Cit9Citib29sIGFueSh1aW50NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxz
ZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Jvb2wgYW55KGNoYXIgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShj
aGFyMiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShjaGFyMyB4KSB7CisgICAgYm9vbCByZXN1bHQg
PSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAh
PSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoY2hhcjQgeCkgeworICAgIGJv
b2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydCB4KSB7CisgICAgcmV0dXJuIHggIT0g
MDsKK30KK2Jvb2wgYW55KHNob3J0MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShzaG9ydDMgeCkg
eworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55
KHNob3J0NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGludCB4KSB7
CisgICAgcmV0dXJuIHggIT0gMDsKK30KK2Jvb2wgYW55KGludDIgeCkgeworICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9v
bCBhbnkoaW50MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorYm9vbCBhbnkoaW50NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YW55KGhhbGYgeCkgeworICAgIHJldHVybiB4ICE9IDA7Cit9Citib29sIGFueShoYWxmMiB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShoYWxmMyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjQgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl0g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdICE9IDApOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Citib29sIGFueShoYWxmMngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNl
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjJ4MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoaGFsZjJ4
NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzNdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmM3gyIHgpIHsK
KyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsw
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7
Cit9Citib29sIGFueShoYWxmM3gzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAg
IHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQg
fHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJd
ICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzJdWzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmM3g0IHgp
IHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsw
XVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAg
cmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10g
IT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOworICAgIHJlc3Vs
dCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhb
Ml1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzNdICE9IDApOworICAg
IHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShoYWxmNHgyIHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGhhbGY0eDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFs
c2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
Ml0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbM11bMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YW55KGhhbGY0eDQgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0g
cmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsx
XSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVz
dWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAo
eFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMV0gIT0gMCk7Cisg
ICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3Vs
dCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0g
MCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9IDApOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1b
M10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFszXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbM11bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNdWzNdICE9IDApOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdCB4KSB7CisgICAgcmV0dXJuIHgg
IT0gMDsKK30KK2Jvb2wgYW55KGZsb2F0MiB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0
IHx8ICh4WzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDMg
eCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXSAhPSAwKTsKKyAgICByZXN1
bHQgPSByZXN1bHQgfHwgKHhbMl0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YW55KGZsb2F0NCB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgfHwgKHhbMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdICE9IDAp
OworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0
MngyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8
fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7
CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJl
c3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnko
ZmxvYXQyeDMgeCkgeworICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0
ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsx
XVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0Mng0IHgpIHsKKyAgICBib29sIHJlc3Vs
dCA9IGZhbHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzBdWzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVszXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVz
dWx0IHx8ICh4WzFdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAh
PSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMV1bM10gIT0gMCk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Jvb2wgYW55KGZsb2F0M3gyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZh
bHNlOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFd
WzBdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzJdWzFdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDN4
MyB4KSB7CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsyXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorYm9vbCBhbnkoZmxvYXQzeDQgeCkgeworICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzBdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzNdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVszXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJd
WzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVsyXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbMl1bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Jvb2wgYW55KGZsb2F0NHgyIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzFdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Jvb2wg
YW55KGZsb2F0NHgzIHgpIHsKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIHJlc3VsdCA9
IHJlc3VsdCB8fCAoeFswXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzJdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFsxXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMV1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzJdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJdWzJdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbM11bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzNd
WzJdICE9IDApOworICAgIHJldHVybiByZXN1bHQ7Cit9Citib29sIGFueShmbG9hdDR4NCB4KSB7
CisgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbMF1b
MF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzBdWzFdICE9IDApOworICAgIHJl
c3VsdCA9IHJlc3VsdCB8fCAoeFswXVsyXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1bHQgfHwg
KHhbMF1bM10gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzBdICE9IDApOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsxXVsxXSAhPSAwKTsKKyAgICByZXN1bHQgPSByZXN1
bHQgfHwgKHhbMV1bMl0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzFdWzNdICE9
IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVswXSAhPSAwKTsKKyAgICByZXN1bHQg
PSByZXN1bHQgfHwgKHhbMl1bMV0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8ICh4WzJd
WzJdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFsyXVszXSAhPSAwKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bMF0gIT0gMCk7CisgICAgcmVzdWx0ID0gcmVzdWx0IHx8
ICh4WzNdWzFdICE9IDApOworICAgIHJlc3VsdCA9IHJlc3VsdCB8fCAoeFszXVsyXSAhPSAwKTsK
KyAgICByZXN1bHQgPSByZXN1bHQgfHwgKHhbM11bM10gIT0gMCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwordWNoYXIgYWJzKHVjaGFyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VzaG9ydCBh
YnModXNob3J0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK3VpbnQgYWJzKHVpbnQgeCkgeworICAg
IHJldHVybiB4OworfQorY2hhciBhYnMoY2hhciB4KSB7CisgICAgaWYgKHggPCAwKQorICAgICAg
ICByZXR1cm4gLXg7CisgICAgcmV0dXJuIHg7Cit9CitzaG9ydCBhYnMoc2hvcnQgeCkgeworICAg
IGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQoraW50IGFi
cyhpbnQgeCkgeworICAgIGlmICh4IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVy
biB4OworfQoraGFsZiBhYnMoaGFsZiB4KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1
cm4gLXg7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdCBhYnMoZmxvYXQgeCkgeworICAgIGlmICh4
IDwgMCkKKyAgICAgICAgcmV0dXJuIC14OworICAgIHJldHVybiB4OworfQordWNoYXIyIGFicyh1
Y2hhcjIgeCkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXIzIGFicyh1Y2hhcjMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
YWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBh
YnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBhYnModWNoYXI0IHgpIHsK
KyAgICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBhYnModXNo
b3J0MiB4KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNo
b3J0MyBhYnModXNob3J0MyB4KSB7CisgICAgdXNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBhYnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQgYWJzKHVzaG9ydDQg
eCkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAg
IHJlc3VsdFszXSA9IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgYWJz
KHVpbnQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDMgYWJzKHVpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJz
KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhYnMo
eFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IGFicyh1aW50NCB4KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJlc3VsdFszXSA9
IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjIgYWJzKGNoYXIyIHgpIHsK
KyAgICBjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMgYWJzKGNoYXIz
IHgpIHsKKyAgICBjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhYnMoeFsyXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2NoYXI0IGFicyhjaGFyNCB4KSB7CisgICAgY2hhcjQgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFicyh4WzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIGFicyhzaG9ydDIgeCkgeworICAgIHNob3J0
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFi
cyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIGFicyhzaG9ydDMgeCkgewor
ICAgIHNob3J0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhYnMoeFsyXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3Nob3J0NCBhYnMoc2hvcnQ0IHgpIHsKKyAgICBzaG9ydDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFicyh4WzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQoraW50MiBhYnMoaW50MiB4KSB7CisgICAgaW50MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBhYnMoaW50MyB4KSB7CisgICAgaW50MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBhYnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2lu
dDQgYWJzKGludDQgeCkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhb
Ml0pOworICAgIHJlc3VsdFszXSA9IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjIgYWJzKGhhbGYyIHgpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
YWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQoraGFsZjMgYWJzKGhhbGYzIHgpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICByZXN1bHRb
Ml0gPSBhYnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGFicyhoYWxmNCB4
KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFicyh4WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYWJzKHhbMl0pOworICAgIHJl
c3VsdFszXSA9IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MiBhYnMo
aGFsZjJ4MiB4KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJz
KHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIGFicyhoYWxmMngzIHgpIHsKKyAgICBoYWxm
MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0
WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJz
KHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjJ4NCBhYnMoaGFsZjJ4NCB4KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFi
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJz
KHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IGFicyh4WzFdWzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjN4MiBhYnMoaGFsZjN4MiB4KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFi
cyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2hhbGYzeDMgYWJzKGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFi
cyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0
WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsK
KyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJz
KHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGFicyhoYWxmM3g0IHgp
IHsKKyAgICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7
CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFi
cyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsK
KyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJz
KHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOwor
ICAgIHJlc3VsdFsyXVszXSA9IGFicyh4WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MiBhYnMoaGFsZjR4MiB4KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJz
KHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRb
Ml1bMV0gPSBhYnMoeFsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYWJzKHhbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IGFicyh4WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
aGFsZjR4MyBhYnMoaGFsZjR4MyB4KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJz
KHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRb
MV1bMl0gPSBhYnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYWJzKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IGFicyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhYnMo
eFsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gYWJzKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IGFicyh4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhYnMoeFszXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgYWJzKGhhbGY0eDQgeCkgeworICAgIGhhbGY0
eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOwor
ICAgIHJlc3VsdFswXVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMo
eFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsx
XVsyXSA9IGFicyh4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gYWJzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFicyh4
WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhYnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJd
WzNdID0gYWJzKHhbMl1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAg
ICByZXN1bHRbM11bMV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhb
M11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IGFicyh4WzNdWzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQyIGFicyhmbG9hdDIgeCkgeworICAgIGZsb2F0MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIGFicyhmbG9hdDMgeCkgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYWJzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFicyh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBhYnMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NCBhYnMoZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGFicyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhYnMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0g
YWJzKHhbMl0pOworICAgIHJlc3VsdFszXSA9IGFicyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDIgYWJzKGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4
WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBhYnMo
ZmxvYXQyeDMgeCkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBh
YnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gYWJzKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7
CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFi
cyh4WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgYWJzKGZsb2F0Mng0
IHgpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0g
PSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gYWJzKHhbMF1bM10pOworICAgIHJl
c3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBhYnMoeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9
IGFicyh4WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDIgYWJzKGZsb2F0
M3gyIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1b
MF0gPSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsy
XVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIGFicyhmbG9hdDN4MyB4KSB7
CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBhYnMoeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJz
KHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGFicyh4WzFdWzBdKTsKKyAgICByZXN1bHRb
MV1bMV0gPSBhYnMoeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gYWJzKHhbMV1bMl0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMo
eFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitmbG9hdDN4NCBhYnMoZmxvYXQzeDQgeCkgeworICAgIGZsb2F0M3g0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBhYnMoeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
YWJzKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGFicyh4WzBdWzJdKTsKKyAgICByZXN1
bHRbMF1bM10gPSBhYnMoeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0p
OworICAgIHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBh
YnMoeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gYWJzKHhbMV1bM10pOworICAgIHJlc3Vs
dFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gYWJzKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IGFi
cyh4WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgYWJzKGZsb2F0NHgy
IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBhYnMoeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJl
c3VsdFsyXVswXSA9IGFicyh4WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBhYnMoeFsyXVsx
XSk7CisgICAgcmVzdWx0WzNdWzBdID0gYWJzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9
IGFicyh4WzNdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgYWJzKGZsb2F0
NHgzIHgpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gYWJzKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGFicyh4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1b
Ml0gPSBhYnMoeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gYWJzKHhbMV1bMF0pOworICAg
IHJlc3VsdFsxXVsxXSA9IGFicyh4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBhYnMoeFsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gYWJzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IGFicyh4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBhYnMoeFsyXVsyXSk7CisgICAg
cmVzdWx0WzNdWzBdID0gYWJzKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGFicyh4WzNd
WzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBhYnMoeFszXVsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NHg0IGFicyhmbG9hdDR4NCB4KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IGFicyh4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBhYnMo
eFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gYWJzKHhbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IGFicyh4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBhYnMoeFsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gYWJzKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGFicyh4
WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBhYnMoeFsxXVszXSk7CisgICAgcmVzdWx0WzJd
WzBdID0gYWJzKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGFicyh4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBhYnMoeFsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gYWJzKHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IGFicyh4WzNdWzBdKTsKKyAgICByZXN1bHRbM11b
MV0gPSBhYnMoeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gYWJzKHhbM11bMl0pOworICAg
IHJlc3VsdFszXVszXSA9IGFicyh4WzNdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1
Y2hhciBzaWduKHVjaGFyIHgpIHsKKyAgICByZXR1cm4geCA9PSAwID8gMCA6IDE7Cit9Cit1c2hv
cnQgc2lnbih1c2hvcnQgeCkgeworICAgIHJldHVybiB4ID09IDAgPyAwIDogMTsKK30KK3VpbnQg
c2lnbih1aW50IHgpIHsKKyAgICByZXR1cm4geCA9PSAwID8gMCA6IDE7Cit9CitjaGFyIHNpZ24o
Y2hhciB4KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHgg
PT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CitzaG9ydCBzaWduKHNo
b3J0IHgpIHsKKyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoeCA9
PSAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gMTsKK30KK2ludCBzaWduKGludCB4
KSB7CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHggPT0gMCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CitoYWxmIHNpZ24oaGFsZiB4KSB7
CisgICAgaWYgKHggPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHggPT0gMCkKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CitmbG9hdCBzaWduKGZsb2F0IHgpIHsK
KyAgICBpZiAoeCA8IDApCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoeCA9PSAwKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gMTsKK30KK3VjaGFyMiBzaWduKHVjaGFyMiB4KSB7
CisgICAgdWNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBzaWdu
KHVjaGFyMyB4KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IHNpZ24odWNoYXI0IHgpIHsKKyAg
ICB1Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24oeFswXSk7CisgICAgcmVzdWx0
WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWduKHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDIgc2lnbih1
c2hvcnQyIHgpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhb
MF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3VzaG9ydDMgc2lnbih1c2hvcnQzIHgpIHsKKyAgICB1c2hvcnQzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmVz
dWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCBzaWdu
KHVzaG9ydDQgeCkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWdu
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3VpbnQyIHNpZ24odWludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK3VpbnQzIHNpZ24odWludDMgeCkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQg
c2lnbih1aW50NCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWdu
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2NoYXIyIHNpZ24oY2hhcjIgeCkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2NoYXIzIHNpZ24oY2hhcjMgeCkgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQg
c2lnbihjaGFyNCB4KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWdu
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK3Nob3J0MiBzaWduKHNob3J0MiB4KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBzaWduKHNob3J0MyB4KSB7CisgICAgc2hvcnQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsx
XSk7CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IHNpZ24oc2hvcnQ0IHgpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHNpZ24oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRb
Ml0gPSBzaWduKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2ludDIgc2lnbihpbnQyIHgpIHsKKyAgICBpbnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgc2lnbihpbnQzIHgpIHsKKyAgICBpbnQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50
NCBzaWduKGludDQgeCkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWdu
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyIHNpZ24oaGFsZjIgeCkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzIHNpZ24oaGFsZjMgeCkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
c2lnbihoYWxmNCB4KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHNpZ24o
eFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBzaWdu
KHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYyeDIgc2lnbihoYWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFsw
XVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1b
MV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIHNpZ24o
aGFsZjJ4MyB4KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2ln
bih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3Vs
dFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBd
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9
IHNpZ24oeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgc2lnbihoYWxm
Mng0IHgpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhb
MF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBd
WzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBzaWduKHhbMF1bM10pOwor
ICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2ln
bih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIg
c2lnbihoYWxmM3gyIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4MyBzaWdu
KGhhbGYzeDMgeCkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNp
Z24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0g
PSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaWduKHhb
Ml1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IHNpZ24oaGFsZjN4NCB4KSB7
CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gc2lnbih4WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IHNp
Z24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gc2lnbih4WzBdWzNdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBzaWduKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVswXSk7CisgICAg
cmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBzaWduKHhb
Ml1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNpZ24oeFsyXVszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGY0eDIgc2lnbihoYWxmNHgyIHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgc2lnbihoYWxmNHgzIHgpIHsKKyAgICBoYWxmNHgz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNp
Z24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsx
XSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0g
PSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAg
cmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjR4NCBzaWduKGhhbGY0eDQgeCkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFsw
XVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNp
Z24oeFswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gc2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0g
PSBzaWduKHhbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gc2lnbih4WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhb
Ml1bM10pOworICAgIHJlc3VsdFszXVswXSA9IHNpZ24oeFszXVswXSk7CisgICAgcmVzdWx0WzNd
WzFdID0gc2lnbih4WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBzaWduKHhbM11bMl0pOwor
ICAgIHJlc3VsdFszXVszXSA9IHNpZ24oeFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0MiBzaWduKGZsb2F0MiB4KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0MyBzaWduKGZsb2F0MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBzaWduKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IHNpZ24oeFsxXSk7
CisgICAgcmVzdWx0WzJdID0gc2lnbih4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0IHNpZ24oZmxvYXQ0IHgpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHNpZ24oeFswXSk7CisgICAgcmVzdWx0WzFdID0gc2lnbih4WzFdKTsKKyAgICByZXN1bHRbMl0g
PSBzaWduKHhbMl0pOworICAgIHJlc3VsdFszXSA9IHNpZ24oeFszXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MngyIHNpZ24oZmxvYXQyeDIgeCkgeworICAgIGZsb2F0MngyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDJ4MyBzaWduKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
c2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJl
c3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
Mng0IHNpZ24oZmxvYXQyeDQgeCkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBz
aWduKHhbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gc2lnbih4WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IHNpZ24oeFsxXVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gyIHNpZ24oZmxvYXQzeDIgeCkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNp
Z24oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDMgc2lnbihmbG9hdDN4MyB4KSB7CisgICAgZmxvYXQzeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gc2ln
bih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWduKHhbMF1bMl0pOworICAgIHJlc3Vs
dFsxXVswXSA9IHNpZ24oeFsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gc2lnbih4WzFdWzFd
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBzaWduKHhbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IHNpZ24oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSBzaWduKHhbMl1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDN4NCBzaWduKGZsb2F0M3g0IHgpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gc2lnbih4WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBzaWduKHhbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IHNpZ24oeFswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0g
c2lnbih4WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhbMV1bMF0pOworICAgIHJl
c3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gc2lnbih4WzFd
WzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBzaWduKHhbMV1bM10pOworICAgIHJlc3VsdFsyXVsw
XSA9IHNpZ24oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2lnbih4WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBzaWduKHhbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9IHNpZ24o
eFsyXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIHNpZ24oZmxvYXQ0eDIg
eCkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBzaWduKHhbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IHNpZ24oeFsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gc2lnbih4
WzJdWzFdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3VsdFsz
XVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIHNp
Z24oZmxvYXQ0eDMgeCkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSBzaWduKHhbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IHNpZ24oeFswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gc2lnbih4WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBzaWduKHhb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IHNpZ24oeFsxXVsxXSk7CisgICAgcmVzdWx0WzFd
WzJdID0gc2lnbih4WzFdWzJdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOwor
ICAgIHJlc3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2ln
bih4WzJdWzJdKTsKKyAgICByZXN1bHRbM11bMF0gPSBzaWduKHhbM11bMF0pOworICAgIHJlc3Vs
dFszXVsxXSA9IHNpZ24oeFszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gc2lnbih4WzNdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgc2lnbihmbG9hdDR4NCB4KSB7Cisg
ICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHNpZ24oeFswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gc2lnbih4WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBzaWdu
KHhbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IHNpZ24oeFswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gc2lnbih4WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBzaWduKHhbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IHNpZ24oeFsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
c2lnbih4WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBzaWduKHhbMl1bMF0pOworICAgIHJl
c3VsdFsyXVsxXSA9IHNpZ24oeFsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gc2lnbih4WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBzaWduKHhbMl1bM10pOworICAgIHJlc3VsdFszXVsw
XSA9IHNpZ24oeFszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gc2lnbih4WzNdWzFdKTsKKyAg
ICByZXN1bHRbM11bMl0gPSBzaWduKHhbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IHNpZ24o
eFszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordWNoYXIgbWluKHVjaGFyIHgsIHVj
aGFyIHkpIHsKKyAgICByZXR1cm4geCA+IHkgPyB5IDogeDsKK30KK3VjaGFyIG1heCh1Y2hhciB4
LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geCA6IHk7Cit9Cit1Y2hhcjIgbWluKHVj
aGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1pbih1Y2hhcjMgeCwgdWNoYXIzIHkpIHsKKyAgICB1
Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhbMl0sIHlbMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgbWluKHVjaGFyNCB4LCB1Y2hhcjQgeSkg
eworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsy
XSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9Cit1Y2hhcjIgbWF4KHVjaGFyMiB4LCB1Y2hhcjIgeSkgeworICAgIHVjaGFyMiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIG1heCh1Y2hh
cjMgeCwgdWNoYXIzIHkpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1h
eCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVz
dWx0WzJdID0gbWF4KHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQg
bWF4KHVjaGFyNCB4LCB1Y2hhcjQgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhb
M10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VzaG9ydCBtaW4odXNob3J0IHgs
IHVzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9Cit1c2hvcnQgbWF4KHVz
aG9ydCB4LCB1c2hvcnQgeSkgeworICAgIHJldHVybiB4ID4geSA/IHggOiB5OworfQordXNob3J0
MiBtaW4odXNob3J0MiB4LCB1c2hvcnQyIHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlb
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQzIG1pbih1c2hvcnQzIHgsIHVzaG9y
dDMgeSkgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0g
bWluKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG1pbih1c2hv
cnQ0IHgsIHVzaG9ydDQgeSkgeworICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAg
cmVzdWx0WzJdID0gbWluKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9IG1pbih4WzNdLCB5
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiBtYXgodXNob3J0MiB4LCB1c2hv
cnQyIHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwg
eVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQzIG1heCh1c2hvcnQzIHgsIHVzaG9ydDMgeSkgeworICAgIHVzaG9ydDMg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0sIHlbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQ0IG1heCh1c2hvcnQ0IHgsIHVzaG9ydDQgeSkgewor
ICAgIHVzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0s
IHlbMl0pOworICAgIHJlc3VsdFszXSA9IG1heCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCit1aW50IG1pbih1aW50IHgsIHVpbnQgeSkgeworICAgIHJldHVybiB4ID4geSA/
IHkgOiB4OworfQordWludCBtYXgodWludCB4LCB1aW50IHkpIHsKKyAgICByZXR1cm4geCA+IHkg
PyB4IDogeTsKK30KK3VpbnQyIG1pbih1aW50MiB4LCB1aW50MiB5KSB7CisgICAgdWludDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBt
aW4oeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIG1pbih1aW50MyB4
LCB1aW50MyB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBd
LCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJd
ID0gbWluKHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtaW4odWlu
dDQgeCwgdWludDQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4o
eFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3Vs
dFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBtaW4oeFszXSwgeVszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQyIG1heCh1aW50MiB4LCB1aW50MiB5KSB7Cisg
ICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICBy
ZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQz
IG1heCh1aW50MyB4LCB1aW50MyB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7Cisg
ICAgcmVzdWx0WzJdID0gbWF4KHhbMl0sIHlbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1
aW50NCBtYXgodWludDQgeCwgdWludDQgeSkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0p
OworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXN1bHRbM10gPSBtYXgo
eFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworY2hhciBtaW4oY2hhciB4LCBj
aGFyIHkpIHsKKyAgICByZXR1cm4geCA+IHkgPyB5IDogeDsKK30KK2NoYXIgbWF4KGNoYXIgeCwg
Y2hhciB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8geCA6IHk7Cit9CitjaGFyMiBtaW4oY2hhcjIg
eCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFsw
XSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitjaGFyMyBtaW4oY2hhcjMgeCwgY2hhcjMgeSkgeworICAgIGNoYXIzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWlu
KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorY2hhcjQgbWluKGNoYXI0IHgsIGNoYXI0IHkpIHsKKyAgICBjaGFyNCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9
IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAg
cmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFy
MiBtYXgoY2hhcjIgeCwgY2hhcjIgeSkgeworICAgIGNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtYXgoY2hhcjMgeCwgY2hhcjMgeSkgeworICAg
IGNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVz
dWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgbWF4KGNoYXI0IHgsIGNoYXI0IHkpIHsK
KyAgICBjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAg
IHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRbMl0gPSBtYXgoeFsyXSwg
eVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK3Nob3J0IG1pbihzaG9ydCB4LCBzaG9ydCB5KSB7CisgICAgcmV0dXJuIHggPiB5
ID8geSA6IHg7Cit9CitzaG9ydCBtYXgoc2hvcnQgeCwgc2hvcnQgeSkgeworICAgIHJldHVybiB4
ID4geSA/IHggOiB5OworfQorc2hvcnQyIG1pbihzaG9ydDIgeCwgc2hvcnQyIHkpIHsKKyAgICBz
aG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBt
aW4oc2hvcnQzIHgsIHNob3J0MyB5KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQ0IG1pbihzaG9ydDQgeCwgc2hvcnQ0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwg
eVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhbMl0sIHlbMl0pOworICAgIHJlc3VsdFszXSA9
IG1pbih4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQyIG1heChzaG9y
dDIgeCwgc2hvcnQyIHkpIHsKKyAgICBzaG9ydDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1h
eCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBtYXgoc2hvcnQzIHgsIHNob3J0MyB5KSB7CisgICAgc2hv
cnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0
WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG1heChzaG9ydDQgeCwgc2hvcnQ0IHkpIHsK
KyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0s
IHlbMl0pOworICAgIHJlc3VsdFszXSA9IG1heCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitpbnQgbWluKGludCB4LCBpbnQgeSkgeworICAgIHJldHVybiB4ID4geSA/IHkg
OiB4OworfQoraW50IG1heChpbnQgeCwgaW50IHkpIHsKKyAgICByZXR1cm4geCA+IHkgPyB4IDog
eTsKK30KK2ludDIgbWluKGludDIgeCwgaW50MiB5KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gbWluKHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBtaW4oaW50MyB4LCBpbnQzIHkpIHsK
KyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAg
cmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBtaW4oaW50NCB4LCBpbnQ0IHkpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAg
cmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5
WzJdKTsKKyAgICByZXN1bHRbM10gPSBtaW4oeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDIgbWF4KGludDIgeCwgaW50MiB5KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gbWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBtYXgoaW50MyB4LCBpbnQzIHkpIHsK
KyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAg
cmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBtYXgoaW50NCB4LCBpbnQ0IHkpIHsK
KyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAg
cmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5
WzJdKTsKKyAgICByZXN1bHRbM10gPSBtYXgoeFszXSwgeVszXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworaGFsZiBtaW4oaGFsZiB4LCBoYWxmIHkpIHsKKyAgICByZXR1cm4geCA+IHkgPyB5
IDogeDsKK30KK2hhbGYgbWF4KGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIHggPiB5ID8g
eCA6IHk7Cit9CitoYWxmMiBtaW4oaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWlu
KHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtaW4oaGFsZjMgeCwg
aGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwg
eVswXSk7CisgICAgcmVzdWx0WzFdID0gbWluKHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9
IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbWluKGhhbGY0
IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gbWluKHhb
MF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1pbih4WzFdLCB5WzFdKTsKKyAgICByZXN1bHRb
Ml0gPSBtaW4oeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWluKHhbM10sIHlbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG1pbihoYWxmMngyIHgsIGhhbGYyeDIgeSkg
eworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBt
aW4oaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWlu
KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBd
WzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1p
bih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBtaW4o
aGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtaW4oeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhb
MF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJd
KTsKKyAgICByZXN1bHRbMF1bM10gPSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0
WzFdWzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4
WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsy
XSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmM3gyIG1pbihoYWxmM3gyIHgsIGhhbGYzeDIgeSkgeworICAgIGhh
bGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsK
KyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7
CisgICAgcmVzdWx0WzJdWzFdID0gbWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmM3gzIG1pbihoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAgIGhhbGYz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAg
ICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJd
ID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBd
LCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7Cisg
ICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVsw
XSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsx
XSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWluKHhbMl1bMl0sIHlbMl1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1pbihoYWxmM3g0IHgsIGhhbGYzeDQgeSkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5
WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAg
cmVzdWx0WzBdWzJdID0gbWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9
IG1pbih4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10g
PSBtaW4oeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0s
IHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAg
ICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNd
ID0gbWluKHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgy
IG1pbihoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
aW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0g
bWluKHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5
WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbWluKGhhbGY0eDMgeCwgaGFsZjR4MyB5KSB7Cisg
ICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1b
MF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1
bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWlu
KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFd
WzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVz
dWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1p
bih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsyXVsyXSwgeVsy
XVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJl
c3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBt
aW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbWlu
KGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4
WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3Vs
dFsxXVswXSA9IG1pbih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4o
eFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1b
Ml0pOworICAgIHJlc3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBtaW4oeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWlu
KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1pbih4WzJdWzJdLCB5WzJd
WzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtaW4oeFsyXVszXSwgeVsyXVszXSk7CisgICAgcmVz
dWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1p
bih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtaW4oeFszXVsyXSwgeVsz
XVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWluKHhbM11bM10sIHlbM11bM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBtYXgoaGFsZjIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFd
ID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtYXgoaGFs
ZjMgeCwgaGFsZjMgeSkgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBtYXgo
eFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhbMV0sIHlbMV0pOworICAgIHJlc3Vs
dFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgbWF4
KGhhbGY0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
bWF4KHhbMF0sIHlbMF0pOworICAgIHJlc3VsdFsxXSA9IG1heCh4WzFdLCB5WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSBtYXgoeFsyXSwgeVsyXSk7CisgICAgcmVzdWx0WzNdID0gbWF4KHhbM10sIHlb
M10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG1heChoYWxmMngyIHgsIGhhbGYy
eDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsx
XVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjJ4MyBtYXgoaGFsZjJ4MyB4LCBoYWxmMngzIHkpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJd
LCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsy
XSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
NCBtYXgoaGFsZjJ4NCB4LCBoYWxmMng0IHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
bWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5
WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBtYXgoeFswXVszXSwgeVswXVszXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwg
eVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gbWF4KHhbMV1bM10sIHlbMV1bM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG1heChoYWxmM3gyIHgsIGhhbGYzeDIgeSkgewor
ICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBd
WzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVz
dWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1h
eCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsy
XVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG1heChoYWxmM3gzIHgsIGhhbGYzeDMgeSkgeworICAg
IGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBd
KTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0
WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgo
eFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0sIHlbMl1b
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG1heChoYWxmM3g0IHgsIGhhbGYz
eDQgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBd
WzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsw
XVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRb
MV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhb
Ml1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFd
KTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0
WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmNHgyIG1heChoYWxmNHgyIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1b
MF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNd
WzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbWF4KGhhbGY0eDMgeCwgaGFsZjR4MyB5
KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDQgbWF4KGhhbGY0eDQgeCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwg
eVswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAg
IHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0g
PSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0s
IHlbMV1bMl0pOworICAgIHJlc3VsdFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAg
ICByZXN1bHRbMl1bMF0gPSBtYXgoeFsyXVswXSwgeVsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gbWF4KHhbMl1bMV0sIHlbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IG1heCh4WzJdWzJd
LCB5WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBtYXgoeFsyXVszXSwgeVsyXVszXSk7Cisg
ICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsx
XSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBtYXgoeFszXVsy
XSwgeVszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gbWF4KHhbM11bM10sIHlbM11bM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Zsb2F0IG1pbihmbG9hdCB4LCBmbG9hdCB5KSB7Cisg
ICAgcmV0dXJuIHggPiB5ID8geSA6IHg7Cit9CitmbG9hdCBtYXgoZmxvYXQgeCwgZmxvYXQgeSkg
eworICAgIHJldHVybiB4ID4geSA/IHggOiB5OworfQorZmxvYXQyIG1pbihmbG9hdDIgeCwgZmxv
YXQyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MyBtaW4oZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgZmxvYXQzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF0gPSBtaW4oeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWlu
KHhbMV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1pbih4WzJdLCB5WzJdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IG1pbihmbG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9h
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1pbih4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBtaW4oeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWluKHhbMl0sIHlbMl0pOwor
ICAgIHJlc3VsdFszXSA9IG1pbih4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyeDIgbWluKGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4o
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtaW4oZmxvYXQyeDMgeCwgZmxv
YXQyeDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4o
eFswXVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1b
MV0pOworICAgIHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1
bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWlu
KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4WzFdWzJdLCB5WzFd
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbWluKGZsb2F0Mng0IHgsIGZs
b2F0Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWlu
KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBd
WzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVz
dWx0WzBdWzNdID0gbWluKHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1p
bih4WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsx
XVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJl
c3VsdFsxXVszXSA9IG1pbih4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQzeDIgbWluKGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJl
c3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBt
aW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlb
MV1bMV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0M3gzIG1pbihmbG9hdDN4MyB4LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQzeDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICBy
ZXN1bHRbMF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bWluKHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1pbih4WzFdWzBdLCB5
WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtaW4oeFsxXVsxXSwgeVsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gbWluKHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9
IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwg
eVsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBtaW4oZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkg
eworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtaW4oeFswXVswXSwg
eVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWluKHhbMF1bMV0sIHlbMF1bMV0pOworICAg
IHJlc3VsdFswXVsyXSA9IG1pbih4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10g
PSBtaW4oeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWluKHhbMV1bMF0s
IHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFdWzFdLCB5WzFdWzFdKTsKKyAg
ICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNd
ID0gbWluKHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBd
LCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7Cisg
ICAgcmVzdWx0WzJdWzJdID0gbWluKHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVsz
XSA9IG1pbih4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
eDIgbWluKGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsx
XSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVsw
XSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOwor
ICAgIHJlc3VsdFsyXVswXSA9IG1pbih4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1b
MV0gPSBtaW4oeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11b
MF0sIHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbWluKGZsb2F0NHgzIHgsIGZsb2F0NHgz
IHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWluKHhbMF1b
MF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1pbih4WzBdWzFdLCB5WzBdWzFdKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBtaW4oeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFd
WzBdID0gbWluKHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1pbih4WzFd
WzFdLCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtaW4oeFsxXVsyXSwgeVsxXVsyXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4oeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWluKHhbM11bMF0sIHlbM11bMF0p
OworICAgIHJlc3VsdFszXVsxXSA9IG1pbih4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRb
M11bMl0gPSBtaW4oeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0NHg0IG1pbihmbG9hdDR4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IG1pbih4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtaW4oeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWluKHhb
MF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1pbih4WzBdWzNdLCB5WzBdWzNd
KTsKKyAgICByZXN1bHRbMV1bMF0gPSBtaW4oeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0
WzFdWzFdID0gbWluKHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1pbih4
WzFdWzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtaW4oeFsxXVszXSwgeVsxXVsz
XSk7CisgICAgcmVzdWx0WzJdWzBdID0gbWluKHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3Vs
dFsyXVsxXSA9IG1pbih4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtaW4o
eFsyXVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWluKHhbMl1bM10sIHlbMl1b
M10pOworICAgIHJlc3VsdFszXVswXSA9IG1pbih4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1
bHRbM11bMV0gPSBtaW4oeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWlu
KHhbM11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IG1pbih4WzNdWzNdLCB5WzNd
WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG1heChmbG9hdDIgeCwgZmxvYXQy
IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2Zsb2F0MyBtYXgoZmxvYXQzIHgsIGZsb2F0MyB5KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBtYXgoeFswXSwgeVswXSk7CisgICAgcmVzdWx0WzFdID0gbWF4KHhb
MV0sIHlbMV0pOworICAgIHJlc3VsdFsyXSA9IG1heCh4WzJdLCB5WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0IG1heChmbG9hdDQgeCwgZmxvYXQ0IHkpIHsKKyAgICBmbG9hdDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1heCh4WzBdLCB5WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBtYXgoeFsxXSwgeVsxXSk7CisgICAgcmVzdWx0WzJdID0gbWF4KHhbMl0sIHlbMl0pOworICAg
IHJlc3VsdFszXSA9IG1heCh4WzNdLCB5WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQyeDIgbWF4KGZsb2F0MngyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFsw
XVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsx
XVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtYXgoZmxvYXQyeDMgeCwgZmxvYXQy
eDMgeSkgeworICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFsw
XVswXSwgeVswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0p
OworICAgIHJlc3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRb
MV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhb
MV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFdWzJdLCB5WzFdWzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbWF4KGZsb2F0Mng0IHgsIGZsb2F0
Mng0IHkpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhb
MF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFd
KTsKKyAgICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0
WzBdWzNdID0gbWF4KHhbMF1bM10sIHlbMF1bM10pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4
WzFdWzBdLCB5WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsx
XSk7CisgICAgcmVzdWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3Vs
dFsxXVszXSA9IG1heCh4WzFdWzNdLCB5WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDIgbWF4KGZsb2F0M3gyIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDN4MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgo
eFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1b
MV0pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1
bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3gzIG1heChmbG9hdDN4MyB4LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQzeDMgcmVz
dWx0OworICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4
KHhbMF1bMl0sIHlbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IG1heCh4WzFdWzBdLCB5WzFd
WzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtYXgoeFsxXVsxXSwgeVsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gbWF4KHhbMV1bMl0sIHlbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IG1h
eCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsy
XVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBtYXgoZmxvYXQzeDQgeCwgZmxvYXQzeDQgeSkgewor
ICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBtYXgoeFswXVswXSwgeVsw
XVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gbWF4KHhbMF1bMV0sIHlbMF1bMV0pOworICAgIHJl
c3VsdFswXVsyXSA9IG1heCh4WzBdWzJdLCB5WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBt
YXgoeFswXVszXSwgeVswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gbWF4KHhbMV1bMF0sIHlb
MV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFdLCB5WzFdWzFdKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0g
bWF4KHhbMV1bM10sIHlbMV1bM10pOworICAgIHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAg
cmVzdWx0WzJdWzJdID0gbWF4KHhbMl1bMl0sIHlbMl1bMl0pOworICAgIHJlc3VsdFsyXVszXSA9
IG1heCh4WzJdWzNdLCB5WzJdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIg
bWF4KGZsb2F0NHgyIHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0sIHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9
IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwg
eVsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAg
IHJlc3VsdFsyXVswXSA9IG1heCh4WzJdWzBdLCB5WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtYXgoeFsyXVsxXSwgeVsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0s
IHlbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbWF4KGZsb2F0NHgzIHgsIGZsb2F0NHgzIHkp
IHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbWF4KHhbMF1bMF0s
IHlbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IG1heCh4WzBdWzFdLCB5WzBdWzFdKTsKKyAg
ICByZXN1bHRbMF1bMl0gPSBtYXgoeFswXVsyXSwgeVswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gbWF4KHhbMV1bMF0sIHlbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IG1heCh4WzFdWzFd
LCB5WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtYXgoeFsxXVsyXSwgeVsxXVsyXSk7Cisg
ICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsyXVsx
XSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsyXVsy
XSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0gbWF4KHhbM11bMF0sIHlbM11bMF0pOwor
ICAgIHJlc3VsdFszXVsxXSA9IG1heCh4WzNdWzFdLCB5WzNdWzFdKTsKKyAgICByZXN1bHRbM11b
Ml0gPSBtYXgoeFszXVsyXSwgeVszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NHg0IG1heChmbG9hdDR4NCB4LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVswXSA9IG1heCh4WzBdWzBdLCB5WzBdWzBdKTsKKyAgICByZXN1bHRbMF1b
MV0gPSBtYXgoeFswXVsxXSwgeVswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gbWF4KHhbMF1b
Ml0sIHlbMF1bMl0pOworICAgIHJlc3VsdFswXVszXSA9IG1heCh4WzBdWzNdLCB5WzBdWzNdKTsK
KyAgICByZXN1bHRbMV1bMF0gPSBtYXgoeFsxXVswXSwgeVsxXVswXSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbWF4KHhbMV1bMV0sIHlbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IG1heCh4WzFd
WzJdLCB5WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBtYXgoeFsxXVszXSwgeVsxXVszXSk7
CisgICAgcmVzdWx0WzJdWzBdID0gbWF4KHhbMl1bMF0sIHlbMl1bMF0pOworICAgIHJlc3VsdFsy
XVsxXSA9IG1heCh4WzJdWzFdLCB5WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtYXgoeFsy
XVsyXSwgeVsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gbWF4KHhbMl1bM10sIHlbMl1bM10p
OworICAgIHJlc3VsdFszXVswXSA9IG1heCh4WzNdWzBdLCB5WzNdWzBdKTsKKyAgICByZXN1bHRb
M11bMV0gPSBtYXgoeFszXVsxXSwgeVszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gbWF4KHhb
M11bMl0sIHlbM11bMl0pOworICAgIHJlc3VsdFszXVszXSA9IG1heCh4WzNdWzNdLCB5WzNdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1Y2hhciBjbGFtcCh1Y2hhciB4LCB1Y2hhciBs
b3dlciwgdWNoYXIgdXBwZXIpIHsKKyAgICByZXR1cm4gbWF4KG1pbih1cHBlciwgeCksIGxvd2Vy
KTsKK30KK3VjaGFyMiBjbGFtcCh1Y2hhcjIgeCwgdWNoYXIyIHksIHVjaGFyMiB6KSB7CisgICAg
dWNoYXIyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWNoYXIzIGNsYW1wKHVjaGFyMyB4LCB1Y2hhcjMgeSwgdWNoYXIzIHopIHsKKyAg
ICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0p
OworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1Y2hh
cjQgY2xhbXAodWNoYXI0IHgsIHVjaGFyNCB5LCB1Y2hhcjQgeikgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0
WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsy
XSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0WzNdID0gY2xhbXAoeFszXSwgeVszXSwgelszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordXNob3J0IGNsYW1wKHVzaG9ydCB4LCB1c2hvcnQg
bG93ZXIsIHVzaG9ydCB1cHBlcikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVyLCB4KSwgbG93
ZXIpOworfQordXNob3J0MiBjbGFtcCh1c2hvcnQyIHgsIHVzaG9ydDIgeSwgdXNob3J0MiB6KSB7
CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwg
elswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3VzaG9ydDMgY2xhbXAodXNob3J0MyB4LCB1c2hvcnQzIHksIHVzaG9y
dDMgeikgeworICAgIHVzaG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0s
IHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1c2hvcnQ0IGNsYW1wKHVzaG9ydDQgeCwgdXNob3J0NCB5LCB1c2hvcnQ0IHopIHsK
KyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFtcCh4
WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1aW50IGNsYW1wKHVp
bnQgeCwgdWludCBsb3dlciwgdWludCB1cHBlcikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVy
LCB4KSwgbG93ZXIpOworfQordWludDIgY2xhbXAodWludDIgeCwgdWludDIgeSwgdWludDIgeikg
eworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordWludDMgY2xhbXAodWludDMgeCwgdWludDMgeSwgdWludDMgeikgewor
ICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRb
Ml0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWlu
dDQgY2xhbXAodWludDQgeCwgdWludDQgeSwgdWludDQgeikgeworICAgIHVpbnQ0IHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5
WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitjaGFyIGNsYW1wKGNoYXIgeCwgY2hhciBsb3dlciwgY2hh
ciB1cHBlcikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQorY2hh
cjIgY2xhbXAoY2hhcjIgeCwgY2hhcjIgeSwgY2hhcjIgeikgeworICAgIGNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjMg
Y2xhbXAoY2hhcjMgeCwgY2hhcjMgeSwgY2hhcjMgeikgeworICAgIGNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
bGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJd
LCB6WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorY2hhcjQgY2xhbXAoY2hhcjQgeCwgY2hh
cjQgeSwgY2hhcjQgeikgeworICAgIGNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFt
cCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1
bHRbM10gPSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
CitzaG9ydCBjbGFtcChzaG9ydCB4LCBzaG9ydCBsb3dlciwgc2hvcnQgdXBwZXIpIHsKKyAgICBy
ZXR1cm4gbWF4KG1pbih1cHBlciwgeCksIGxvd2VyKTsKK30KK3Nob3J0MiBjbGFtcChzaG9ydDIg
eCwgc2hvcnQyIHksIHNob3J0MiB6KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFd
LCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQzIGNsYW1wKHNob3J0
MyB4LCBzaG9ydDMgeSwgc2hvcnQzIHopIHsKKyAgICBzaG9ydDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0pOworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhb
MV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsyXSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0p
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDQgY2xhbXAoc2hvcnQ0IHgsIHNob3J0NCB5
LCBzaG9ydDQgeikgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAo
eFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsx
XSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsyXSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0
WzNdID0gY2xhbXAoeFszXSwgeVszXSwgelszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
aW50IGNsYW1wKGludCB4LCBpbnQgbG93ZXIsIGludCB1cHBlcikgeworICAgIHJldHVybiBtYXgo
bWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQoraW50MiBjbGFtcChpbnQyIHgsIGludDIgeSwgaW50
MiB6KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVsw
XSwgelswXSk7CisgICAgcmVzdWx0WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2ludDMgY2xhbXAoaW50MyB4LCBpbnQzIHksIGludDMgeikgewor
ICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0p
OworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0
IGNsYW1wKGludDQgeCwgaW50NCB5LCBpbnQ0IHopIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFt
cCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6
WzJdKTsKKyAgICByZXN1bHRbM10gPSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitoYWxmIGNsYW1wKGhhbGYgeCwgaGFsZiBsb3dlciwgaGFsZiB1cHBl
cikgeworICAgIHJldHVybiBtYXgobWluKHVwcGVyLCB4KSwgbG93ZXIpOworfQoraGFsZjIgY2xh
bXAoaGFsZjIgeCwgaGFsZjIgeSwgaGFsZjIgeikgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFt
cCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMgY2xhbXAo
aGFsZjMgeCwgaGFsZjMgeSwgaGFsZjMgeikgeworICAgIGhhbGYzIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4
WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQgY2xhbXAoaGFsZjQgeCwgaGFsZjQgeSwg
aGFsZjQgeikgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBd
LCB5WzBdLCB6WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBjbGFtcCh4WzJdLCB5WzJdLCB6WzJdKTsKKyAgICByZXN1bHRbM10g
PSBjbGFtcCh4WzNdLCB5WzNdLCB6WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MiBjbGFtcChoYWxmMngyIHgsIGhhbGYyeDIgeSwgaGFsZjJ4MiB6KSB7CisgICAgaGFsZjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgY2xhbXAoaGFsZjJ4MyB4LCBoYWxmMngzIHksIGhh
bGYyeDMgeikgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1w
KHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhb
MF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1b
Ml0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0s
IHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlb
MV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1b
Ml0sIHpbMV1bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IGNsYW1wKGhhbGYy
eDQgeCwgaGFsZjJ4NCB5LCBoYWxmMng0IHopIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
bGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFt
cCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjbGFtcCh4
WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjN4
MiBjbGFtcChoYWxmM3gyIHgsIGhhbGYzeDIgeSwgaGFsZjN4MiB6KSB7CisgICAgaGFsZjN4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAg
cmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVz
dWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2hhbGYzeDMgY2xhbXAoaGFsZjN4MyB4LCBoYWxmM3gzIHksIGhhbGYzeDMg
eikgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IGNsYW1wKHhbMF1b
MF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3VsdFswXVsxXSA9IGNsYW1wKHhbMF1bMV0s
IHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFswXVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlb
MF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVswXSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1b
MF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0s
IHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNsYW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpb
MV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGNsYW1wKHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1b
MF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNsYW1wKHhbMl1bMV0sIHlbMl1bMV0sIHpbMl1bMV0p
OworICAgIHJlc3VsdFsyXVsyXSA9IGNsYW1wKHhbMl1bMl0sIHlbMl1bMl0sIHpbMl1bMl0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IGNsYW1wKGhhbGYzeDQgeCwgaGFsZjN4NCB5
LCBoYWxmM3g0IHopIHsKKyAgICBoYWxmM3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBj
bGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1bHRbMF1bMV0gPSBjbGFt
cCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRbMF1bMl0gPSBjbGFtcCh4
WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1bM10gPSBjbGFtcCh4WzBd
WzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0gPSBjbGFtcCh4WzFdWzBd
LCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBjbGFtcCh4WzFdWzFdLCB5
WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFtcCh4WzFdWzJdLCB5WzFd
WzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjbGFtcCh4WzFdWzNdLCB5WzFdWzNd
LCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJdWzBdLCB5WzJdWzBdLCB6
WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFdLCB5WzJdWzFdLCB6WzJd
WzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5WzJdWzJdLCB6WzJdWzJd
KTsKKyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJdWzNdLCB5WzJdWzNdLCB6WzJdWzNdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MiBjbGFtcChoYWxmNHgyIHgsIGhhbGY0eDIg
eSwgaGFsZjR4MiB6KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
Y2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xh
bXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAo
eFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsx
XVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVsw
XSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwg
eVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2xhbXAoeFszXVswXSwgeVsz
XVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY2xhbXAoeFszXVsxXSwgeVszXVsx
XSwgelszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgY2xhbXAoaGFsZjR4
MyB4LCBoYWxmNHgzIHksIGhhbGY0eDMgeikgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IGNsYW1wKHhbMF1bMF0sIHlbMF1bMF0sIHpbMF1bMF0pOworICAgIHJlc3Vs
dFswXVsxXSA9IGNsYW1wKHhbMF1bMV0sIHlbMF1bMV0sIHpbMF1bMV0pOworICAgIHJlc3VsdFsw
XVsyXSA9IGNsYW1wKHhbMF1bMl0sIHlbMF1bMl0sIHpbMF1bMl0pOworICAgIHJlc3VsdFsxXVsw
XSA9IGNsYW1wKHhbMV1bMF0sIHlbMV1bMF0sIHpbMV1bMF0pOworICAgIHJlc3VsdFsxXVsxXSA9
IGNsYW1wKHhbMV1bMV0sIHlbMV1bMV0sIHpbMV1bMV0pOworICAgIHJlc3VsdFsxXVsyXSA9IGNs
YW1wKHhbMV1bMl0sIHlbMV1bMl0sIHpbMV1bMl0pOworICAgIHJlc3VsdFsyXVswXSA9IGNsYW1w
KHhbMl1bMF0sIHlbMl1bMF0sIHpbMl1bMF0pOworICAgIHJlc3VsdFsyXVsxXSA9IGNsYW1wKHhb
Ml1bMV0sIHlbMl1bMV0sIHpbMl1bMV0pOworICAgIHJlc3VsdFsyXVsyXSA9IGNsYW1wKHhbMl1b
Ml0sIHlbMl1bMl0sIHpbMl1bMl0pOworICAgIHJlc3VsdFszXVswXSA9IGNsYW1wKHhbM11bMF0s
IHlbM11bMF0sIHpbM11bMF0pOworICAgIHJlc3VsdFszXVsxXSA9IGNsYW1wKHhbM11bMV0sIHlb
M11bMV0sIHpbM11bMV0pOworICAgIHJlc3VsdFszXVsyXSA9IGNsYW1wKHhbM11bMl0sIHlbM11b
Ml0sIHpbM11bMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IGNsYW1wKGhhbGY0
eDQgeCwgaGFsZjR4NCB5LCBoYWxmNHg0IHopIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBjbGFtcCh4WzBdWzBdLCB5WzBdWzBdLCB6WzBdWzBdKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBjbGFtcCh4WzBdWzFdLCB5WzBdWzFdLCB6WzBdWzFdKTsKKyAgICByZXN1bHRb
MF1bMl0gPSBjbGFtcCh4WzBdWzJdLCB5WzBdWzJdLCB6WzBdWzJdKTsKKyAgICByZXN1bHRbMF1b
M10gPSBjbGFtcCh4WzBdWzNdLCB5WzBdWzNdLCB6WzBdWzNdKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBjbGFtcCh4WzFdWzBdLCB5WzFdWzBdLCB6WzFdWzBdKTsKKyAgICByZXN1bHRbMV1bMV0gPSBj
bGFtcCh4WzFdWzFdLCB5WzFdWzFdLCB6WzFdWzFdKTsKKyAgICByZXN1bHRbMV1bMl0gPSBjbGFt
cCh4WzFdWzJdLCB5WzFdWzJdLCB6WzFdWzJdKTsKKyAgICByZXN1bHRbMV1bM10gPSBjbGFtcCh4
WzFdWzNdLCB5WzFdWzNdLCB6WzFdWzNdKTsKKyAgICByZXN1bHRbMl1bMF0gPSBjbGFtcCh4WzJd
WzBdLCB5WzJdWzBdLCB6WzJdWzBdKTsKKyAgICByZXN1bHRbMl1bMV0gPSBjbGFtcCh4WzJdWzFd
LCB5WzJdWzFdLCB6WzJdWzFdKTsKKyAgICByZXN1bHRbMl1bMl0gPSBjbGFtcCh4WzJdWzJdLCB5
WzJdWzJdLCB6WzJdWzJdKTsKKyAgICByZXN1bHRbMl1bM10gPSBjbGFtcCh4WzJdWzNdLCB5WzJd
WzNdLCB6WzJdWzNdKTsKKyAgICByZXN1bHRbM11bMF0gPSBjbGFtcCh4WzNdWzBdLCB5WzNdWzBd
LCB6WzNdWzBdKTsKKyAgICByZXN1bHRbM11bMV0gPSBjbGFtcCh4WzNdWzFdLCB5WzNdWzFdLCB6
WzNdWzFdKTsKKyAgICByZXN1bHRbM11bMl0gPSBjbGFtcCh4WzNdWzJdLCB5WzNdWzJdLCB6WzNd
WzJdKTsKKyAgICByZXN1bHRbM11bM10gPSBjbGFtcCh4WzNdWzNdLCB5WzNdWzNdLCB6WzNdWzNd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitmbG9hdCBjbGFtcChmbG9hdCB4LCBmbG9hdCBs
b3dlciwgZmxvYXQgdXBwZXIpIHsKKyAgICByZXR1cm4gbWF4KG1pbih1cHBlciwgeCksIGxvd2Vy
KTsKK30KK2Zsb2F0MiBjbGFtcChmbG9hdDIgeCwgZmxvYXQyIHksIGZsb2F0MiB6KSB7CisgICAg
ZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBjbGFtcCh4WzBdLCB5WzBdLCB6WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBjbGFtcCh4WzFdLCB5WzFdLCB6WzFdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQzIGNsYW1wKGZsb2F0MyB4LCBmbG9hdDMgeSwgZmxvYXQzIHopIHsKKyAg
ICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNsYW1wKHhbMF0sIHlbMF0sIHpbMF0p
OworICAgIHJlc3VsdFsxXSA9IGNsYW1wKHhbMV0sIHlbMV0sIHpbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNsYW1wKHhbMl0sIHlbMl0sIHpbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9h
dDQgY2xhbXAoZmxvYXQ0IHgsIGZsb2F0NCB5LCBmbG9hdDQgeikgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gY2xhbXAoeFswXSwgeVswXSwgelswXSk7CisgICAgcmVzdWx0
WzFdID0gY2xhbXAoeFsxXSwgeVsxXSwgelsxXSk7CisgICAgcmVzdWx0WzJdID0gY2xhbXAoeFsy
XSwgeVsyXSwgelsyXSk7CisgICAgcmVzdWx0WzNdID0gY2xhbXAoeFszXSwgeVszXSwgelszXSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngyIGNsYW1wKGZsb2F0MngyIHgsIGZsb2F0
MngyIHksIGZsb2F0MngyIHopIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFd
ID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBdID0g
Y2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xh
bXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MngzIGNsYW1wKGZsb2F0MngzIHgsIGZsb2F0MngzIHksIGZsb2F0MngzIHopIHsKKyAgICBm
bG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVsw
XSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwg
elswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelsw
XVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVsw
XSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7
CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IGNsYW1wKGZsb2F0Mng0IHgsIGZsb2F0Mng0
IHksIGZsb2F0Mng0IHopIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Y2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xh
bXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2xhbXAo
eFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwg
eVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY2xhbXAoeFsxXVszXSwgeVsx
XVszXSwgelsxXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIGNsYW1wKGZs
b2F0M3gyIHgsIGZsb2F0M3gyIHksIGZsb2F0M3gyIHopIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7Cisg
ICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAg
cmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVz
dWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0M3gzIGNsYW1wKGZsb2F0M3gzIHgsIGZsb2F0M3gzIHksIGZsb2F0M3gzIHop
IHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVsw
XSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwg
eVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVsw
XVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVsw
XSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwg
elsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsx
XVsyXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVsw
XSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7
CisgICAgcmVzdWx0WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3g0IGNsYW1wKGZsb2F0M3g0IHgsIGZsb2F0M3g0
IHksIGZsb2F0M3g0IHopIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBd
ID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0g
Y2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xh
bXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2xhbXAo
eFswXVszXSwgeVswXVszXSwgelswXVszXSk7CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsx
XVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsx
XSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwg
eVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0WzFdWzNdID0gY2xhbXAoeFsxXVszXSwgeVsx
XVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVsw
XSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwg
elsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJdID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsy
XVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0gY2xhbXAoeFsyXVszXSwgeVsyXVszXSwgelsyXVsz
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIGNsYW1wKGZsb2F0NHgyIHgsIGZs
b2F0NHgyIHksIGZsb2F0NHgyIHopIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVswXSk7CisgICAgcmVzdWx0WzBd
WzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7CisgICAgcmVzdWx0WzFdWzBd
ID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAgcmVzdWx0WzFdWzFdID0g
Y2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVzdWx0WzJdWzBdID0gY2xh
bXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJdWzFdID0gY2xhbXAo
eFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2xhbXAoeFsz
XVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY2xhbXAoeFszXVsx
XSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIGNs
YW1wKGZsb2F0NHgzIHgsIGZsb2F0NHgzIHksIGZsb2F0NHgzIHopIHsKKyAgICBmbG9hdDR4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwgelswXVsw
XSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelswXVsxXSk7
CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsyXSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7CisgICAg
cmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAgcmVz
dWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzNdWzBdID0g
Y2xhbXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY2xh
bXAoeFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2xhbXAo
eFszXVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0
NHg0IGNsYW1wKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHksIGZsb2F0NHg0IHopIHsKKyAgICBmbG9h
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gY2xhbXAoeFswXVswXSwgeVswXVswXSwg
elswXVswXSk7CisgICAgcmVzdWx0WzBdWzFdID0gY2xhbXAoeFswXVsxXSwgeVswXVsxXSwgelsw
XVsxXSk7CisgICAgcmVzdWx0WzBdWzJdID0gY2xhbXAoeFswXVsyXSwgeVswXVsyXSwgelswXVsy
XSk7CisgICAgcmVzdWx0WzBdWzNdID0gY2xhbXAoeFswXVszXSwgeVswXVszXSwgelswXVszXSk7
CisgICAgcmVzdWx0WzFdWzBdID0gY2xhbXAoeFsxXVswXSwgeVsxXVswXSwgelsxXVswXSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gY2xhbXAoeFsxXVsxXSwgeVsxXVsxXSwgelsxXVsxXSk7CisgICAg
cmVzdWx0WzFdWzJdID0gY2xhbXAoeFsxXVsyXSwgeVsxXVsyXSwgelsxXVsyXSk7CisgICAgcmVz
dWx0WzFdWzNdID0gY2xhbXAoeFsxXVszXSwgeVsxXVszXSwgelsxXVszXSk7CisgICAgcmVzdWx0
WzJdWzBdID0gY2xhbXAoeFsyXVswXSwgeVsyXVswXSwgelsyXVswXSk7CisgICAgcmVzdWx0WzJd
WzFdID0gY2xhbXAoeFsyXVsxXSwgeVsyXVsxXSwgelsyXVsxXSk7CisgICAgcmVzdWx0WzJdWzJd
ID0gY2xhbXAoeFsyXVsyXSwgeVsyXVsyXSwgelsyXVsyXSk7CisgICAgcmVzdWx0WzJdWzNdID0g
Y2xhbXAoeFsyXVszXSwgeVsyXVszXSwgelsyXVszXSk7CisgICAgcmVzdWx0WzNdWzBdID0gY2xh
bXAoeFszXVswXSwgeVszXVswXSwgelszXVswXSk7CisgICAgcmVzdWx0WzNdWzFdID0gY2xhbXAo
eFszXVsxXSwgeVszXVsxXSwgelszXVsxXSk7CisgICAgcmVzdWx0WzNdWzJdID0gY2xhbXAoeFsz
XVsyXSwgeVszXVsyXSwgelszXVsyXSk7CisgICAgcmVzdWx0WzNdWzNdID0gY2xhbXAoeFszXVsz
XSwgeVszXVszXSwgelszXVszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaGFsZiBtb2Rm
KGhhbGYgeCwgdGhyZWFkIGhhbGYqIGlwKSB7CisgICAgdWludCByZXN1bHQgPSB1aW50KHgpOwor
ICAgICppcCA9IHggLSBoYWxmKHJlc3VsdCk7CisgICAgcmV0dXJuIGhhbGYocmVzdWx0KTsKK30K
K2hhbGYyIG1vZGYoaGFsZjIgeCwgdGhyZWFkIGhhbGYyKiB5KSB7CisgICAgaGFsZjIgcmVzdWx0
OworICAgIHJlc3VsdFswXSA9IG1vZGYoeFswXSwgJigoKnkpWzBdKSk7CisgICAgcmVzdWx0WzFd
ID0gbW9kZih4WzFdLCAmKCgqeSlbMV0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjMg
bW9kZihoYWxmMyB4LCB0aHJlYWQgaGFsZjMqIHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRbMV0gPSBtb2Rm
KHhbMV0sICYoKCp5KVsxXSkpOworICAgIHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwgJigoKnkpWzJd
KSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG1vZGYoaGFsZjQgeCwgdGhyZWFkIGhh
bGY0KiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1vZGYoeFswXSwg
JigoKnkpWzBdKSk7CisgICAgcmVzdWx0WzFdID0gbW9kZih4WzFdLCAmKCgqeSlbMV0pKTsKKyAg
ICByZXN1bHRbMl0gPSBtb2RmKHhbMl0sICYoKCp5KVsyXSkpOworICAgIHJlc3VsdFszXSA9IG1v
ZGYoeFszXSwgJigoKnkpWzNdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbW9k
ZihoYWxmMngyIHgsIHRocmVhZCBoYWxmMngyKiB5KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVsw
XSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9k
Zih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4
MyBtb2RmKGhhbGYyeDMgeCwgdGhyZWFkIGhhbGYyeDMqIHkpIHsKKyAgICBoYWxmMngzIHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bMF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAg
IHJlc3VsdFswXVsxXSA9IG1vZGYoeFswXVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0
WzBdWzJdID0gbW9kZih4WzBdWzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0g
PSBtb2RmKHhbMV1bMF0sICYoKCp5KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYo
eFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJd
LCAmKCgqeSlbMV1bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCBtb2RmKGhh
bGYyeDQgeCwgdGhyZWFkIGhhbGYyeDQqIHkpIHsKKyAgICBoYWxmMng0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF1bMF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFsw
XVsxXSA9IG1vZGYoeFswXVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0g
bW9kZih4WzBdWzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMF1bM10gPSBtb2RmKHhb
MF1bM10sICYoKCp5KVswXVszXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwg
JigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlb
MV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkp
OworICAgIHJlc3VsdFsxXVszXSA9IG1vZGYoeFsxXVszXSwgJigoKnkpWzFdWzNdKSk7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbW9kZihoYWxmM3gyIHgsIHRocmVhZCBoYWxmM3gy
KiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBd
WzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYo
KCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFd
WzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsK
KyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJl
c3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYzeDMgbW9kZihoYWxmM3gzIHgsIHRocmVhZCBoYWxmM3gzKiB5KSB7Cisg
ICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgq
eSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsx
XSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFswXVsyXSwgJigoKnkpWzBdWzJdKSk7Cisg
ICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsKKyAgICByZXN1
bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOworICAgIHJlc3VsdFsxXVsy
XSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmVzdWx0WzJdWzBdID0gbW9k
Zih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0gPSBtb2RmKHhbMl1b
MV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYoeFsyXVsyXSwgJigo
KnkpWzJdWzJdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbW9kZihoYWxmM3g0
IHgsIHRocmVhZCBoYWxmM3g0KiB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYo
eFswXVsyXSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNd
LCAmKCgqeSlbMF1bM10pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5
KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFd
KSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtb2RmKHhbMV1bM10sICYoKCp5KVsxXVszXSkpOworICAgIHJlc3Vs
dFsyXVswXSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gbW9kZih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2Rm
KHhbMl1bMl0sICYoKCp5KVsyXVsyXSkpOworICAgIHJlc3VsdFsyXVszXSA9IG1vZGYoeFsyXVsz
XSwgJigoKnkpWzJdWzNdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbW9kZiho
YWxmNHgyIHgsIHRocmVhZCBoYWxmNHgyKiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRb
MF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9
IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4
WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0s
ICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkp
WzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgqeSlbM11bMF0p
KTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsxXSkpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG1vZGYoaGFsZjR4MyB4LCB0aHJlYWQgaGFsZjR4
MyogeSkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFsw
XVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAm
KCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVsw
XVsyXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7
CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICBy
ZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsy
XVswXSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0g
bW9kZih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhb
Ml1bMl0sICYoKCp5KVsyXVsyXSkpOworICAgIHJlc3VsdFszXVswXSA9IG1vZGYoeFszXVswXSwg
JigoKnkpWzNdWzBdKSk7CisgICAgcmVzdWx0WzNdWzFdID0gbW9kZih4WzNdWzFdLCAmKCgqeSlb
M11bMV0pKTsKKyAgICByZXN1bHRbM11bMl0gPSBtb2RmKHhbM11bMl0sICYoKCp5KVszXVsyXSkp
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG1vZGYoaGFsZjR4NCB4LCB0aHJlYWQg
aGFsZjR4NCogeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1v
ZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4WzBd
WzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0sICYo
KCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9IG1vZGYoeFswXVszXSwgJigoKnkpWzBd
WzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1bMF0pKTsK
KyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOworICAgIHJl
c3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmVzdWx0WzFd
WzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBt
b2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsy
XVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJdWzJdID0gbW9kZih4WzJdWzJdLCAm
KCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbMl1bM10gPSBtb2RmKHhbMl1bM10sICYoKCp5KVsy
XVszXSkpOworICAgIHJlc3VsdFszXVswXSA9IG1vZGYoeFszXVswXSwgJigoKnkpWzNdWzBdKSk7
CisgICAgcmVzdWx0WzNdWzFdID0gbW9kZih4WzNdWzFdLCAmKCgqeSlbM11bMV0pKTsKKyAgICBy
ZXN1bHRbM11bMl0gPSBtb2RmKHhbM11bMl0sICYoKCp5KVszXVsyXSkpOworICAgIHJlc3VsdFsz
XVszXSA9IG1vZGYoeFszXVszXSwgJigoKnkpWzNdWzNdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworZmxvYXQgbW9kZihmbG9hdCB4LCB0aHJlYWQgZmxvYXQqIGlwKSB7CisgICAgdWludCBy
ZXN1bHQgPSB1aW50KHgpOworICAgICppcCA9IHggLSBmbG9hdChyZXN1bHQpOworICAgIHJldHVy
biBmbG9hdChyZXN1bHQpOworfQorZmxvYXQyIG1vZGYoZmxvYXQyIHgsIHRocmVhZCBmbG9hdDIq
IHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1vZGYoeFswXSwgJigo
KnkpWzBdKSk7CisgICAgcmVzdWx0WzFdID0gbW9kZih4WzFdLCAmKCgqeSlbMV0pKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG1vZGYoZmxvYXQzIHgsIHRocmVhZCBmbG9hdDMqIHkp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IG1vZGYoeFswXSwgJigoKnkp
WzBdKSk7CisgICAgcmVzdWx0WzFdID0gbW9kZih4WzFdLCAmKCgqeSlbMV0pKTsKKyAgICByZXN1
bHRbMl0gPSBtb2RmKHhbMl0sICYoKCp5KVsyXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDQgbW9kZihmbG9hdDQgeCwgdGhyZWFkIGZsb2F0NCogeSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gbW9kZih4WzBdLCAmKCgqeSlbMF0pKTsKKyAgICByZXN1bHRb
MV0gPSBtb2RmKHhbMV0sICYoKCp5KVsxXSkpOworICAgIHJlc3VsdFsyXSA9IG1vZGYoeFsyXSwg
JigoKnkpWzJdKSk7CisgICAgcmVzdWx0WzNdID0gbW9kZih4WzNdLCAmKCgqeSlbM10pKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDIgbW9kZihmbG9hdDJ4MiB4LCB0aHJlYWQgZmxv
YXQyeDIqIHkpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9k
Zih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1b
MV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigo
KnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1b
MV0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDMgbW9kZihmbG9hdDJ4MyB4LCB0
aHJlYWQgZmxvYXQyeDMqIHkpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBt
b2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYoeFsw
XVsyXSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAm
KCgqeSlbMV1bMF0pKTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsx
XVsxXSkpOworICAgIHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG1vZGYoZmxvYXQyeDQgeCwgdGhyZWFk
IGZsb2F0Mng0KiB5KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IG1vZGYoeFswXVswXSwgJigoKnkpWzBdWzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4
WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsKKyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0s
ICYoKCp5KVswXVsyXSkpOworICAgIHJlc3VsdFswXVszXSA9IG1vZGYoeFswXVszXSwgJigoKnkp
WzBdWzNdKSk7CisgICAgcmVzdWx0WzFdWzBdID0gbW9kZih4WzFdWzBdLCAmKCgqeSlbMV1bMF0p
KTsKKyAgICByZXN1bHRbMV1bMV0gPSBtb2RmKHhbMV1bMV0sICYoKCp5KVsxXVsxXSkpOworICAg
IHJlc3VsdFsxXVsyXSA9IG1vZGYoeFsxXVsyXSwgJigoKnkpWzFdWzJdKSk7CisgICAgcmVzdWx0
WzFdWzNdID0gbW9kZih4WzFdWzNdLCAmKCgqeSlbMV1bM10pKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDIgbW9kZihmbG9hdDN4MiB4LCB0aHJlYWQgZmxvYXQzeDIqIHkpIHsKKyAg
ICBmbG9hdDN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgq
eSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsx
XSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7Cisg
ICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1
bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsx
XSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K2Zsb2F0M3gzIG1vZGYoZmxvYXQzeDMgeCwgdGhyZWFkIGZsb2F0M3gzKiB5KSB7CisgICAgZmxv
YXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IG1vZGYoeFswXVswXSwgJigoKnkpWzBd
WzBdKSk7CisgICAgcmVzdWx0WzBdWzFdID0gbW9kZih4WzBdWzFdLCAmKCgqeSlbMF1bMV0pKTsK
KyAgICByZXN1bHRbMF1bMl0gPSBtb2RmKHhbMF1bMl0sICYoKCp5KVswXVsyXSkpOworICAgIHJl
c3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFd
WzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMV1bMl0gPSBt
b2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAgIHJlc3VsdFsyXVswXSA9IG1vZGYoeFsy
XVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFdID0gbW9kZih4WzJdWzFdLCAm
KCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2RmKHhbMl1bMl0sICYoKCp5KVsy
XVsyXSkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBtb2RmKGZsb2F0M3g0IHgs
IHRocmVhZCBmbG9hdDN4NCogeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF1bMF0gPSBtb2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9
IG1vZGYoeFswXVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4
WzBdWzJdLCAmKCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMF1bM10gPSBtb2RmKHhbMF1bM10s
ICYoKCp5KVswXVszXSkpOworICAgIHJlc3VsdFsxXVswXSA9IG1vZGYoeFsxXVswXSwgJigoKnkp
WzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9kZih4WzFdWzFdLCAmKCgqeSlbMV1bMV0p
KTsKKyAgICByZXN1bHRbMV1bMl0gPSBtb2RmKHhbMV1bMl0sICYoKCp5KVsxXVsyXSkpOworICAg
IHJlc3VsdFsxXVszXSA9IG1vZGYoeFsxXVszXSwgJigoKnkpWzFdWzNdKSk7CisgICAgcmVzdWx0
WzJdWzBdID0gbW9kZih4WzJdWzBdLCAmKCgqeSlbMl1bMF0pKTsKKyAgICByZXN1bHRbMl1bMV0g
PSBtb2RmKHhbMl1bMV0sICYoKCp5KVsyXVsxXSkpOworICAgIHJlc3VsdFsyXVsyXSA9IG1vZGYo
eFsyXVsyXSwgJigoKnkpWzJdWzJdKSk7CisgICAgcmVzdWx0WzJdWzNdID0gbW9kZih4WzJdWzNd
LCAmKCgqeSlbMl1bM10pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDIgbW9kZihm
bG9hdDR4MiB4LCB0aHJlYWQgZmxvYXQ0eDIqIHkpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1
bHRbMF1bMV0gPSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFsxXVsw
XSA9IG1vZGYoeFsxXVswXSwgJigoKnkpWzFdWzBdKSk7CisgICAgcmVzdWx0WzFdWzFdID0gbW9k
Zih4WzFdWzFdLCAmKCgqeSlbMV1bMV0pKTsKKyAgICByZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1b
MF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsyXVsxXSA9IG1vZGYoeFsyXVsxXSwgJigo
KnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgqeSlbM11b
MF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsxXSkpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtb2RmKGZsb2F0NHgzIHgsIHRocmVhZCBm
bG9hdDR4MyogeSkgeworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSBt
b2RmKHhbMF1bMF0sICYoKCp5KVswXVswXSkpOworICAgIHJlc3VsdFswXVsxXSA9IG1vZGYoeFsw
XVsxXSwgJigoKnkpWzBdWzFdKSk7CisgICAgcmVzdWx0WzBdWzJdID0gbW9kZih4WzBdWzJdLCAm
KCgqeSlbMF1bMl0pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5KVsx
XVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFdKSk7
CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSBtb2RmKHhbMl1bMF0sICYoKCp5KVsyXVswXSkpOworICAgIHJlc3VsdFsy
XVsxXSA9IG1vZGYoeFsyXVsxXSwgJigoKnkpWzJdWzFdKSk7CisgICAgcmVzdWx0WzJdWzJdID0g
bW9kZih4WzJdWzJdLCAmKCgqeSlbMl1bMl0pKTsKKyAgICByZXN1bHRbM11bMF0gPSBtb2RmKHhb
M11bMF0sICYoKCp5KVszXVswXSkpOworICAgIHJlc3VsdFszXVsxXSA9IG1vZGYoeFszXVsxXSwg
JigoKnkpWzNdWzFdKSk7CisgICAgcmVzdWx0WzNdWzJdID0gbW9kZih4WzNdWzJdLCAmKCgqeSlb
M11bMl0pKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbW9kZihmbG9hdDR4NCB4
LCB0aHJlYWQgZmxvYXQ0eDQqIHkpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0gbW9kZih4WzBdWzBdLCAmKCgqeSlbMF1bMF0pKTsKKyAgICByZXN1bHRbMF1bMV0g
PSBtb2RmKHhbMF1bMV0sICYoKCp5KVswXVsxXSkpOworICAgIHJlc3VsdFswXVsyXSA9IG1vZGYo
eFswXVsyXSwgJigoKnkpWzBdWzJdKSk7CisgICAgcmVzdWx0WzBdWzNdID0gbW9kZih4WzBdWzNd
LCAmKCgqeSlbMF1bM10pKTsKKyAgICByZXN1bHRbMV1bMF0gPSBtb2RmKHhbMV1bMF0sICYoKCp5
KVsxXVswXSkpOworICAgIHJlc3VsdFsxXVsxXSA9IG1vZGYoeFsxXVsxXSwgJigoKnkpWzFdWzFd
KSk7CisgICAgcmVzdWx0WzFdWzJdID0gbW9kZih4WzFdWzJdLCAmKCgqeSlbMV1bMl0pKTsKKyAg
ICByZXN1bHRbMV1bM10gPSBtb2RmKHhbMV1bM10sICYoKCp5KVsxXVszXSkpOworICAgIHJlc3Vs
dFsyXVswXSA9IG1vZGYoeFsyXVswXSwgJigoKnkpWzJdWzBdKSk7CisgICAgcmVzdWx0WzJdWzFd
ID0gbW9kZih4WzJdWzFdLCAmKCgqeSlbMl1bMV0pKTsKKyAgICByZXN1bHRbMl1bMl0gPSBtb2Rm
KHhbMl1bMl0sICYoKCp5KVsyXVsyXSkpOworICAgIHJlc3VsdFsyXVszXSA9IG1vZGYoeFsyXVsz
XSwgJigoKnkpWzJdWzNdKSk7CisgICAgcmVzdWx0WzNdWzBdID0gbW9kZih4WzNdWzBdLCAmKCgq
eSlbM11bMF0pKTsKKyAgICByZXN1bHRbM11bMV0gPSBtb2RmKHhbM11bMV0sICYoKCp5KVszXVsx
XSkpOworICAgIHJlc3VsdFszXVsyXSA9IG1vZGYoeFszXVsyXSwgJigoKnkpWzNdWzJdKSk7Cisg
ICAgcmVzdWx0WzNdWzNdID0gbW9kZih4WzNdWzNdLCAmKCgqeSlbM11bM10pKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCit1Y2hhciBjb3VudF9iaXRzKHVjaGFyIHgpIHsKKyAgICByZXR1cm4g
dWNoYXIoKCh4IHwgdWNoYXIoMSA8PCAwKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgo
eCB8IHVjaGFyKDEgPDwgMSkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1Y2hh
cigxIDw8IDIpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdWNoYXIoMSA8PCAz
KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVjaGFyKDEgPDwgNCkpID09IDAg
PyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1Y2hhcigxIDw8IDUpKSA9PSAwID8gMCA6IDEp
ICsKKyAgICAgICAgICAgKCh4IHwgdWNoYXIoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSArCisgICAg
ICAgICAgICgoeCB8IHVjaGFyKDEgPDwgNykpID09IDAgPyAwIDogMSkpOworfQordWNoYXIgY291
bnRfYml0cyh1c2hvcnQgeCkgeworICAgIHJldHVybiB1Y2hhcigoKHggfCB1c2hvcnQoMSA8PCAw
KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDEpKSA9PSAw
ID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdXNob3J0KDEgPDwgMikpID09IDAgPyAwIDog
MSkgKworICAgICAgICAgICAoKHggfCB1c2hvcnQoMSA8PCAzKSkgPT0gMCA/IDAgOiAxKSArCisg
ICAgICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDQpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgdXNob3J0KDEgPDwgNSkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHgg
fCB1c2hvcnQoMSA8PCA2KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVzaG9y
dCgxIDw8IDcpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdXNob3J0KDEgPDwg
OCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1c2hvcnQoMSA8PCA5KSkgPT0g
MCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDEwKSkgPT0gMCA/IDAg
OiAxKSArCisgICAgICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDExKSkgPT0gMCA/IDAgOiAxKSAr
CisgICAgICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDEyKSkgPT0gMCA/IDAgOiAxKSArCisgICAg
ICAgICAgICgoeCB8IHVzaG9ydCgxIDw8IDEzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAg
ICgoeCB8IHVzaG9ydCgxIDw8IDE0KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8
IHVzaG9ydCgxIDw8IDE1KSkgPT0gMCA/IDAgOiAxKSk7Cit9Cit1Y2hhciBjb3VudF9iaXRzKHVp
bnQgeCkgeworICAgIHJldHVybiB1Y2hhcigoKHggfCB1aW50KDEgPDwgMCkpID09IDAgPyAwIDog
MSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgMSkpID09IDAgPyAwIDogMSkgKworICAg
ICAgICAgICAoKHggfCB1aW50KDEgPDwgMikpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAo
KHggfCB1aW50KDEgPDwgMykpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50
KDEgPDwgNCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgNSkp
ID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgNikpID09IDAgPyAw
IDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgNykpID09IDAgPyAwIDogMSkgKwor
ICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgOCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAg
ICAoKHggfCB1aW50KDEgPDwgOSkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1
aW50KDEgPDwgMTApKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdWludCgxIDw8
IDExKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVpbnQoMSA8PCAxMikpID09
IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgMTMpKSA9PSAwID8gMCA6
IDEpICsKKyAgICAgICAgICAgKCh4IHwgdWludCgxIDw8IDE0KSkgPT0gMCA/IDAgOiAxKSArCisg
ICAgICAgICAgICgoeCB8IHVpbnQoMSA8PCAxNSkpID09IDAgPyAwIDogMSkgKworICAgICAgICAg
ICAoKHggfCB1aW50KDEgPDwgMTYpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwg
dWludCgxIDw8IDE3KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVpbnQoMSA8
PCAxOCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgMTkpKSA9
PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdWludCgxIDw8IDIwKSkgPT0gMCA/IDAg
OiAxKSArCisgICAgICAgICAgICgoeCB8IHVpbnQoMSA8PCAyMSkpID09IDAgPyAwIDogMSkgKwor
ICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgMjIpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAg
ICAgKCh4IHwgdWludCgxIDw8IDIzKSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8
IHVpbnQoMSA8PCAyNCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEg
PDwgMjUpKSA9PSAwID8gMCA6IDEpICsKKyAgICAgICAgICAgKCh4IHwgdWludCgxIDw8IDI2KSkg
PT0gMCA/IDAgOiAxKSArCisgICAgICAgICAgICgoeCB8IHVpbnQoMSA8PCAyNykpID09IDAgPyAw
IDogMSkgKworICAgICAgICAgICAoKHggfCB1aW50KDEgPDwgMjgpKSA9PSAwID8gMCA6IDEpICsK
KyAgICAgICAgICAgKCh4IHwgdWludCgxIDw8IDI5KSkgPT0gMCA/IDAgOiAxKSArCisgICAgICAg
ICAgICgoeCB8IHVpbnQoMSA8PCAzMCkpID09IDAgPyAwIDogMSkgKworICAgICAgICAgICAoKHgg
fCB1aW50KDEgPDwgMzEpKSA9PSAwID8gMCA6IDEpKTsKK30KK3VjaGFyIHJldmVyc2ViaXRzKHVj
aGFyIHgpIHsKKyAgICByZXR1cm4gdWNoYXIoKCh4ICYgdWNoYXIoMSA8PCAwKSkgPDwgNykgfAor
ICAgICAgICAgICAoKHggJiB1Y2hhcigxIDw8IDEpKSA8PCA1KSB8CisgICAgICAgICAgICgoeCAm
IHVjaGFyKDEgPDwgMikpIDw8IDMpIHwKKyAgICAgICAgICAgKCh4ICYgdWNoYXIoMSA8PCAzKSkg
PDwgMSkgfAorICAgICAgICAgICAoKHggJiB1Y2hhcigxIDw8IDQpKSA+PiAxKSB8CisgICAgICAg
ICAgICgoeCAmIHVjaGFyKDEgPDwgNSkpID4+IDMpIHwKKyAgICAgICAgICAgKCh4ICYgdWNoYXIo
MSA8PCA2KSkgPj4gNSkgfAorICAgICAgICAgICAoKHggJiB1Y2hhcigxIDw8IDcpKSA+PiA3KSk7
Cit9Cit1c2hvcnQgcmV2ZXJzZWJpdHModXNob3J0IHgpIHsKKyAgICByZXR1cm4gdXNob3J0KCgo
eCAmIHVzaG9ydCgxIDw8IDApKSA8PCAxNSkgfAorICAgICAgICAgICAoKHggJiB1c2hvcnQoMSA8
PCAxKSkgPDwgMTMpIHwKKyAgICAgICAgICAgKCh4ICYgdXNob3J0KDEgPDwgMikpIDw8IDExKSB8
CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDMpKSA8PCA5KSB8CisgICAgICAgICAgICgo
eCAmIHVzaG9ydCgxIDw8IDQpKSA8PCA3KSB8CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8
IDUpKSA8PCA1KSB8CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDYpKSA8PCAzKSB8Cisg
ICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDcpKSA8PCAxKSB8CisgICAgICAgICAgICgoeCAm
IHVzaG9ydCgxIDw8IDgpKSA+PiAxKSB8CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDkp
KSA+PiAzKSB8CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDEwKSkgPj4gNSkgfAorICAg
ICAgICAgICAoKHggJiB1c2hvcnQoMSA8PCAxMSkpID4+IDcpIHwKKyAgICAgICAgICAgKCh4ICYg
dXNob3J0KDEgPDwgMTIpKSA+PiA5KSB8CisgICAgICAgICAgICgoeCAmIHVzaG9ydCgxIDw8IDEz
KSkgPj4gMTEpIHwKKyAgICAgICAgICAgKCh4ICYgdXNob3J0KDEgPDwgMTQpKSA+PiAxMykgfAor
ICAgICAgICAgICAoKHggJiB1c2hvcnQoMSA8PCAxNSkpID4+IDE1KSk7Cit9Cit1aW50IHJldmVy
c2ViaXRzKHVpbnQgeCkgeworICAgIHJldHVybiB1aW50KCgoeCAmIHVpbnQoMSA8PCAwKSkgPDwg
MzEpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgxIDw8IDEpKSA8PCAyOSkgfAorICAgICAgICAg
ICAoKHggJiB1aW50KDEgPDwgMikpIDw8IDI3KSB8CisgICAgICAgICAgICgoeCAmIHVpbnQoMSA8
PCAzKSkgPDwgMjUpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgxIDw8IDQpKSA8PCAyMykgfAor
ICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgNSkpIDw8IDIxKSB8CisgICAgICAgICAgICgoeCAm
IHVpbnQoMSA8PCA2KSkgPDwgMTkpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgxIDw8IDcpKSA8
PCAxNykgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgOCkpIDw8IDE1KSB8CisgICAgICAg
ICAgICgoeCAmIHVpbnQoMSA8PCA5KSkgPDwgMTMpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgx
IDw8IDEwKSkgPDwgMTEpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgxIDw8IDExKSkgPDwgOSkg
fAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMTIpKSA8PCA3KSB8CisgICAgICAgICAgICgo
eCAmIHVpbnQoMSA8PCAxMykpIDw8IDUpIHwKKyAgICAgICAgICAgKCh4ICYgdWludCgxIDw8IDE0
KSkgPDwgMykgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMTUpKSA8PCAxKSB8CisgICAg
ICAgICAgICgoeCAmIHVpbnQoMSA8PCAxNikpID4+IDEpIHwKKyAgICAgICAgICAgKCh4ICYgdWlu
dCgxIDw8IDE3KSkgPj4gMykgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMTgpKSA+PiA1
KSB8CisgICAgICAgICAgICgoeCAmIHVpbnQoMSA8PCAxOSkpID4+IDcpIHwKKyAgICAgICAgICAg
KCh4ICYgdWludCgxIDw8IDIwKSkgPj4gOSkgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwg
MjEpKSA+PiAxMSkgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMjIpKSA+PiAxMykgfAor
ICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMjMpKSA+PiAxNSkgfAorICAgICAgICAgICAoKHgg
JiB1aW50KDEgPDwgMjQpKSA+PiAxNykgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMjUp
KSA+PiAxOSkgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMjYpKSA+PiAyMSkgfAorICAg
ICAgICAgICAoKHggJiB1aW50KDEgPDwgMjcpKSA+PiAyMykgfAorICAgICAgICAgICAoKHggJiB1
aW50KDEgPDwgMjgpKSA+PiAyNSkgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMjkpKSA+
PiAyNykgfAorICAgICAgICAgICAoKHggJiB1aW50KDEgPDwgMzApKSA+PiAyOSkgfAorICAgICAg
ICAgICAoKHggJiB1aW50KDEgPDwgMzEpKSA+PiAzMSkpOworfQordWNoYXIyIGNvdW50X2JpdHMo
dWNoYXIyIHgpIHsKKyAgICB1Y2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGNvdW50X2Jp
dHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0gY291bnRfYml0cyh4WzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXIzIGNvdW50X2JpdHModWNoYXIzIHgpIHsKKyAgICB1Y2hhcjMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGNvdW50X2JpdHMoeFswXSk7CisgICAgcmVzdWx0WzFdID0g
Y291bnRfYml0cyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBjb3VudF9iaXRzKHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjQgY291bnRfYml0cyh1Y2hhcjQgeCkgeworICAgIHVj
aGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gY291bnRfYml0cyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXIyIGNvdW50X2JpdHModXNob3J0MiB4KSB7CisgICAgdWNoYXIyIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvdW50
X2JpdHMoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBjb3VudF9iaXRzKHVz
aG9ydDMgeCkgeworICAgIHVjaGFyMyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBjb3Vu
dF9iaXRzKHVzaG9ydDQgeCkgeworICAgIHVjaGFyNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
Y291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAg
IHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gY291bnRfYml0
cyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIyIGNvdW50X2JpdHModWludDIg
eCkgeworICAgIHVjaGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBjb3VudF9iaXRzKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhcjMgY291bnRfYml0cyh1aW50MyB4KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBjb3VudF9iaXRzKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGNvdW50X2Jp
dHMoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gY291bnRfYml0cyh4WzJdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordWNoYXI0IGNvdW50X2JpdHModWludDQgeCkgeworICAgIHVjaGFyNCByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gY291bnRfYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBj
b3VudF9iaXRzKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGNvdW50X2JpdHMoeFsyXSk7CisgICAg
cmVzdWx0WzNdID0gY291bnRfYml0cyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNo
YXIyIHJldmVyc2ViaXRzKHVjaGFyMiB4KSB7CisgICAgdWNoYXIyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSByZXZlcnNlYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4
WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXIzIHJldmVyc2ViaXRzKHVjaGFyMyB4
KSB7CisgICAgdWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZlcnNlYml0cyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBy
ZXZlcnNlYml0cyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWNoYXI0IHJldmVyc2Vi
aXRzKHVjaGFyNCB4KSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZl
cnNlYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICBy
ZXN1bHRbMl0gPSByZXZlcnNlYml0cyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByZXZlcnNlYml0
cyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0MiByZXZlcnNlYml0cyh1c2hv
cnQyIHgpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZlcnNlYml0
cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0MyByZXZlcnNlYml0cyh1c2hvcnQzIHgpIHsKKyAgICB1c2hvcnQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZlcnNlYml0cyh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSByZXZlcnNlYml0cyh4WzJd
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordXNob3J0NCByZXZlcnNlYml0cyh1c2hvcnQ0IHgp
IHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZlcnNlYml0cyh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBy
ZXZlcnNlYml0cyh4WzJdKTsKKyAgICByZXN1bHRbM10gPSByZXZlcnNlYml0cyh4WzNdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDIgcmV2ZXJzZWJpdHModWludDIgeCkgeworICAgIHVp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSByZXZlcnNlYml0cyh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDMg
cmV2ZXJzZWJpdHModWludDMgeCkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSByZXZlcnNlYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0cyh4WzFdKTsK
KyAgICByZXN1bHRbMl0gPSByZXZlcnNlYml0cyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgcmV2ZXJzZWJpdHModWludDQgeCkgeworICAgIHVpbnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSByZXZlcnNlYml0cyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSByZXZlcnNlYml0
cyh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSByZXZlcnNlYml0cyh4WzJdKTsKKyAgICByZXN1bHRb
M10gPSByZXZlcnNlYml0cyh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit1aW50IGZp
cnN0Yml0aGlnaCh1Y2hhciB4KSB7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCA3KSkgIT0gMCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCA2KSkgIT0gMCkKKyAg
ICAgICAgcmV0dXJuIDE7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCA1KSkgIT0gMCkKKyAgICAg
ICAgcmV0dXJuIDI7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCA0KSkgIT0gMCkKKyAgICAgICAg
cmV0dXJuIDM7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCAzKSkgIT0gMCkKKyAgICAgICAgcmV0
dXJuIDQ7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCAyKSkgIT0gMCkKKyAgICAgICAgcmV0dXJu
IDU7CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCAxKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDY7
CisgICAgaWYgKCh4ICYgdWNoYXIoMSA8PCAwKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDc7Cisg
ICAgcmV0dXJuIDg7Cit9Cit1aW50IGZpcnN0Yml0aGlnaCh1c2hvcnQgeCkgeworICAgIGlmICgo
eCAmIHVzaG9ydCgxIDw8IDE1KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCh4
ICYgdXNob3J0KDEgPDwgMTQpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoKHgg
JiB1c2hvcnQoMSA8PCAxMykpICE9IDApCisgICAgICAgIHJldHVybiAyOworICAgIGlmICgoeCAm
IHVzaG9ydCgxIDw8IDEyKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDM7CisgICAgaWYgKCh4ICYg
dXNob3J0KDEgPDwgMTEpKSAhPSAwKQorICAgICAgICByZXR1cm4gNDsKKyAgICBpZiAoKHggJiB1
c2hvcnQoMSA8PCAxMCkpICE9IDApCisgICAgICAgIHJldHVybiA1OworICAgIGlmICgoeCAmIHVz
aG9ydCgxIDw8IDkpKSAhPSAwKQorICAgICAgICByZXR1cm4gNjsKKyAgICBpZiAoKHggJiB1c2hv
cnQoMSA8PCA4KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDc7CisgICAgaWYgKCh4ICYgdXNob3J0
KDEgPDwgNykpICE9IDApCisgICAgICAgIHJldHVybiA4OworICAgIGlmICgoeCAmIHVzaG9ydCgx
IDw8IDYpKSAhPSAwKQorICAgICAgICByZXR1cm4gOTsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8
PCA1KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDEwOworICAgIGlmICgoeCAmIHVzaG9ydCgxIDw8
IDQpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTE7CisgICAgaWYgKCh4ICYgdXNob3J0KDEgPDwg
MykpICE9IDApCisgICAgICAgIHJldHVybiAxMjsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8PCAy
KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDEzOworICAgIGlmICgoeCAmIHVzaG9ydCgxIDw8IDEp
KSAhPSAwKQorICAgICAgICByZXR1cm4gMTQ7CisgICAgaWYgKCh4ICYgdXNob3J0KDEgPDwgMCkp
ICE9IDApCisgICAgICAgIHJldHVybiAxNTsKKyAgICByZXR1cm4gMTY7Cit9Cit1aW50IGZpcnN0
Yml0aGlnaCh1aW50IHgpIHsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMzEpKSAhPSAwKQorICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMzApKSAhPSAwKQorICAgICAg
ICByZXR1cm4gMTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjkpKSAhPSAwKQorICAgICAgICBy
ZXR1cm4gMjsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjgpKSAhPSAwKQorICAgICAgICByZXR1
cm4gMzsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjcpKSAhPSAwKQorICAgICAgICByZXR1cm4g
NDsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjYpKSAhPSAwKQorICAgICAgICByZXR1cm4gNTsK
KyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjUpKSAhPSAwKQorICAgICAgICByZXR1cm4gNjsKKyAg
ICBpZiAoKHggJiB1aW50KDEgPDwgMjQpKSAhPSAwKQorICAgICAgICByZXR1cm4gNzsKKyAgICBp
ZiAoKHggJiB1aW50KDEgPDwgMjMpKSAhPSAwKQorICAgICAgICByZXR1cm4gODsKKyAgICBpZiAo
KHggJiB1aW50KDEgPDwgMjIpKSAhPSAwKQorICAgICAgICByZXR1cm4gOTsKKyAgICBpZiAoKHgg
JiB1aW50KDEgPDwgMjEpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTA7CisgICAgaWYgKCh4ICYg
dWludCgxIDw8IDIwKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDExOworICAgIGlmICgoeCAmIHVp
bnQoMSA8PCAxOSkpICE9IDApCisgICAgICAgIHJldHVybiAxMjsKKyAgICBpZiAoKHggJiB1aW50
KDEgPDwgMTgpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTM7CisgICAgaWYgKCh4ICYgdWludCgx
IDw8IDE3KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDE0OworICAgIGlmICgoeCAmIHVpbnQoMSA8
PCAxNikpICE9IDApCisgICAgICAgIHJldHVybiAxNTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwg
MTUpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTY7CisgICAgaWYgKCh4ICYgdWludCgxIDw8IDE0
KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDE3OworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAxMykp
ICE9IDApCisgICAgICAgIHJldHVybiAxODsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMTIpKSAh
PSAwKQorICAgICAgICByZXR1cm4gMTk7CisgICAgaWYgKCh4ICYgdWludCgxIDw8IDExKSkgIT0g
MCkKKyAgICAgICAgcmV0dXJuIDIwOworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAxMCkpICE9IDAp
CisgICAgICAgIHJldHVybiAyMTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgOSkpICE9IDApCisg
ICAgICAgIHJldHVybiAyMjsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgOCkpICE9IDApCisgICAg
ICAgIHJldHVybiAyMzsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgNykpICE9IDApCisgICAgICAg
IHJldHVybiAyNDsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgNikpICE9IDApCisgICAgICAgIHJl
dHVybiAyNTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgNSkpICE9IDApCisgICAgICAgIHJldHVy
biAyNjsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgNCkpICE9IDApCisgICAgICAgIHJldHVybiAy
NzsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMykpICE9IDApCisgICAgICAgIHJldHVybiAyODsK
KyAgICBpZiAoKHggJiB1aW50KDEgPDwgMikpICE9IDApCisgICAgICAgIHJldHVybiAyOTsKKyAg
ICBpZiAoKHggJiB1aW50KDEgPDwgMSkpICE9IDApCisgICAgICAgIHJldHVybiAzMDsKKyAgICBp
ZiAoKHggJiB1aW50KDEgPDwgMCkpICE9IDApCisgICAgICAgIHJldHVybiAzMTsKKyAgICByZXR1
cm4gMzI7Cit9Cit1aW50IGZpcnN0Yml0aGlnaChjaGFyIHgpIHsKKyAgICByZXR1cm4gZmlyc3Ri
aXRoaWdoKHVjaGFyKHgpKTsKK30KK3VpbnQgZmlyc3RiaXRoaWdoKHNob3J0IHgpIHsKKyAgICBy
ZXR1cm4gZmlyc3RiaXRoaWdoKHVzaG9ydCh4KSk7Cit9Cit1aW50IGZpcnN0Yml0aGlnaChpbnQg
eCkgeworICAgIHJldHVybiBmaXJzdGJpdGhpZ2godWludCh4KSk7Cit9Cit1aW50IGZpcnN0Yml0
bG93KHVjaGFyIHgpIHsKKyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDApKSAhPSAwKQorICAgICAg
ICByZXR1cm4gNzsKKyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDEpKSAhPSAwKQorICAgICAgICBy
ZXR1cm4gNjsKKyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDIpKSAhPSAwKQorICAgICAgICByZXR1
cm4gNTsKKyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDMpKSAhPSAwKQorICAgICAgICByZXR1cm4g
NDsKKyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDQpKSAhPSAwKQorICAgICAgICByZXR1cm4gMzsK
KyAgICBpZiAoKHggJiB1Y2hhcigxIDw8IDUpKSAhPSAwKQorICAgICAgICByZXR1cm4gMjsKKyAg
ICBpZiAoKHggJiB1Y2hhcigxIDw8IDYpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTsKKyAgICBp
ZiAoKHggJiB1Y2hhcigxIDw8IDcpKSAhPSAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gODsKK30KK3VpbnQgZmlyc3RiaXRsb3codXNob3J0IHgpIHsKKyAgICBpZiAoKHggJiB1c2hv
cnQoMSA8PCAwKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDE1OworICAgIGlmICgoeCAmIHVzaG9y
dCgxIDw8IDEpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTQ7CisgICAgaWYgKCh4ICYgdXNob3J0
KDEgPDwgMikpICE9IDApCisgICAgICAgIHJldHVybiAxMzsKKyAgICBpZiAoKHggJiB1c2hvcnQo
MSA8PCAzKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDEyOworICAgIGlmICgoeCAmIHVzaG9ydCgx
IDw8IDQpKSAhPSAwKQorICAgICAgICByZXR1cm4gMTE7CisgICAgaWYgKCh4ICYgdXNob3J0KDEg
PDwgNSkpICE9IDApCisgICAgICAgIHJldHVybiAxMDsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8
PCA2KSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDk7CisgICAgaWYgKCh4ICYgdXNob3J0KDEgPDwg
NykpICE9IDApCisgICAgICAgIHJldHVybiA4OworICAgIGlmICgoeCAmIHVzaG9ydCgxIDw8IDgp
KSAhPSAwKQorICAgICAgICByZXR1cm4gNzsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8PCA5KSkg
IT0gMCkKKyAgICAgICAgcmV0dXJuIDY7CisgICAgaWYgKCh4ICYgdXNob3J0KDEgPDwgMTApKSAh
PSAwKQorICAgICAgICByZXR1cm4gNTsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8PCAxMSkpICE9
IDApCisgICAgICAgIHJldHVybiA0OworICAgIGlmICgoeCAmIHVzaG9ydCgxIDw8IDEyKSkgIT0g
MCkKKyAgICAgICAgcmV0dXJuIDM7CisgICAgaWYgKCh4ICYgdXNob3J0KDEgPDwgMTMpKSAhPSAw
KQorICAgICAgICByZXR1cm4gMjsKKyAgICBpZiAoKHggJiB1c2hvcnQoMSA8PCAxNCkpICE9IDAp
CisgICAgICAgIHJldHVybiAxOworICAgIGlmICgoeCAmIHVzaG9ydCgxIDw8IDE1KSkgIT0gMCkK
KyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE2OworfQordWludCBmaXJzdGJpdGxvdyh1
aW50IHgpIHsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMCkpICE9IDApCisgICAgICAgIHJldHVy
biAzMTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMSkpICE9IDApCisgICAgICAgIHJldHVybiAz
MDsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMikpICE9IDApCisgICAgICAgIHJldHVybiAyOTsK
KyAgICBpZiAoKHggJiB1aW50KDEgPDwgMykpICE9IDApCisgICAgICAgIHJldHVybiAyODsKKyAg
ICBpZiAoKHggJiB1aW50KDEgPDwgNCkpICE9IDApCisgICAgICAgIHJldHVybiAyNzsKKyAgICBp
ZiAoKHggJiB1aW50KDEgPDwgNSkpICE9IDApCisgICAgICAgIHJldHVybiAyNjsKKyAgICBpZiAo
KHggJiB1aW50KDEgPDwgNikpICE9IDApCisgICAgICAgIHJldHVybiAyNTsKKyAgICBpZiAoKHgg
JiB1aW50KDEgPDwgNykpICE9IDApCisgICAgICAgIHJldHVybiAyNDsKKyAgICBpZiAoKHggJiB1
aW50KDEgPDwgOCkpICE9IDApCisgICAgICAgIHJldHVybiAyMzsKKyAgICBpZiAoKHggJiB1aW50
KDEgPDwgOSkpICE9IDApCisgICAgICAgIHJldHVybiAyMjsKKyAgICBpZiAoKHggJiB1aW50KDEg
PDwgMTApKSAhPSAwKQorICAgICAgICByZXR1cm4gMjE7CisgICAgaWYgKCh4ICYgdWludCgxIDw8
IDExKSkgIT0gMCkKKyAgICAgICAgcmV0dXJuIDIwOworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAx
MikpICE9IDApCisgICAgICAgIHJldHVybiAxOTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMTMp
KSAhPSAwKQorICAgICAgICByZXR1cm4gMTg7CisgICAgaWYgKCh4ICYgdWludCgxIDw8IDE0KSkg
IT0gMCkKKyAgICAgICAgcmV0dXJuIDE3OworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAxNSkpICE9
IDApCisgICAgICAgIHJldHVybiAxNjsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMTYpKSAhPSAw
KQorICAgICAgICByZXR1cm4gMTU7CisgICAgaWYgKCh4ICYgdWludCgxIDw8IDE3KSkgIT0gMCkK
KyAgICAgICAgcmV0dXJuIDE0OworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAxOCkpICE9IDApCisg
ICAgICAgIHJldHVybiAxMzsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMTkpKSAhPSAwKQorICAg
ICAgICByZXR1cm4gMTI7CisgICAgaWYgKCh4ICYgdWludCgxIDw8IDIwKSkgIT0gMCkKKyAgICAg
ICAgcmV0dXJuIDExOworICAgIGlmICgoeCAmIHVpbnQoMSA8PCAyMSkpICE9IDApCisgICAgICAg
IHJldHVybiAxMDsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjIpKSAhPSAwKQorICAgICAgICBy
ZXR1cm4gOTsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjMpKSAhPSAwKQorICAgICAgICByZXR1
cm4gODsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjQpKSAhPSAwKQorICAgICAgICByZXR1cm4g
NzsKKyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjUpKSAhPSAwKQorICAgICAgICByZXR1cm4gNjsK
KyAgICBpZiAoKHggJiB1aW50KDEgPDwgMjYpKSAhPSAwKQorICAgICAgICByZXR1cm4gNTsKKyAg
ICBpZiAoKHggJiB1aW50KDEgPDwgMjcpKSAhPSAwKQorICAgICAgICByZXR1cm4gNDsKKyAgICBp
ZiAoKHggJiB1aW50KDEgPDwgMjgpKSAhPSAwKQorICAgICAgICByZXR1cm4gMzsKKyAgICBpZiAo
KHggJiB1aW50KDEgPDwgMjkpKSAhPSAwKQorICAgICAgICByZXR1cm4gMjsKKyAgICBpZiAoKHgg
JiB1aW50KDEgPDwgMzApKSAhPSAwKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoKHggJiB1
aW50KDEgPDwgMzEpKSAhPSAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gMzI7Cit9
Cit1aW50IGZpcnN0Yml0bG93KGNoYXIgeCkgeworICAgIHJldHVybiBmaXJzdGJpdGxvdyh1Y2hh
cih4KSk7Cit9Cit1aW50IGZpcnN0Yml0bG93KHNob3J0IHgpIHsKKyAgICByZXR1cm4gZmlyc3Ri
aXRsb3codXNob3J0KHgpKTsKK30KK3VpbnQgZmlyc3RiaXRsb3coaW50IHgpIHsKKyAgICByZXR1
cm4gZmlyc3RiaXRsb3codWludCh4KSk7Cit9Cit1aW50MiBmaXJzdGJpdGhpZ2godWNoYXIyIHgp
IHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWludDMgZmlyc3RiaXRoaWdoKHVjaGFyMyB4KSB7CisgICAgdWludDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0aGlnaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZmlyc3RiaXRoaWdoKHhbMl0pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBmaXJzdGJpdGhpZ2godWNoYXI0IHgpIHsKKyAgICB1
aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhp
Z2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhpZ2godXNob3J0MiB4KSB7CisgICAgdWludDIg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0aGlnaCh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmaXJzdGJpdGhpZ2goeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGZp
cnN0Yml0aGlnaCh1c2hvcnQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK3VpbnQ0IGZpcnN0Yml0aGlnaCh1c2hvcnQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZp
cnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7Cisg
ICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50MiBmaXJzdGJpdGhpZ2godWludDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRo
aWdoKHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGhpZ2godWlu
dDMgeCkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2go
eFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsy
XSA9IGZpcnN0Yml0aGlnaCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZmly
c3RiaXRoaWdoKHVpbnQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
Zmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmly
c3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhp
Z2goY2hhcjIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJp
dGhpZ2goeFswXSk7CisgICAgcmVzdWx0WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGhpZ2goY2hhcjMgeCkgeworICAgIHVpbnQz
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJzdGJpdGhpZ2goeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRoaWdoKHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0aGlnaCh4
WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZmlyc3RiaXRoaWdoKGNoYXI0IHgp
IHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBm
aXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhpZ2goc2hvcnQyIHgpIHsKKyAg
ICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAg
IHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDMgZmlyc3RiaXRoaWdoKHNob3J0MyB4KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGZpcnN0Yml0aGlnaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJzdGJpdGhp
Z2goeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZmlyc3RiaXRoaWdoKHhbMl0pOworICAgIHJldHVy
biByZXN1bHQ7Cit9Cit1aW50NCBmaXJzdGJpdGhpZ2goc2hvcnQ0IHgpIHsKKyAgICB1aW50NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsx
XSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsy
XSk7CisgICAgcmVzdWx0WzNdID0gZmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGhpZ2goaW50MiB4KSB7CisgICAgdWludDIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0aGlnaCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJz
dGJpdGhpZ2goeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGZpcnN0Yml0aGln
aChpbnQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRo
aWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFdKTsKKyAgICByZXN1
bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0
IGZpcnN0Yml0aGlnaChpbnQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBd
ID0gZmlyc3RiaXRoaWdoKHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0aGlnaCh4WzFd
KTsKKyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGhpZ2goeFsyXSk7CisgICAgcmVzdWx0WzNdID0g
Zmlyc3RiaXRoaWdoKHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJp
dGxvdyh1Y2hhcjIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmaXJz
dGJpdGxvdyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJzdGJpdGxvdyh4WzFdKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWludDMgZmlyc3RiaXRsb3codWNoYXIzIHgpIHsKKyAgICB1aW50
MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRsb3coeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRsb3coeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZmlyc3RiaXRsb3coeFsy
XSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IGZpcnN0Yml0bG93KHVjaGFyNCB4KSB7
CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOwor
ICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0
Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGxvdyh1c2hvcnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRsb3coeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRsb3coeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGZp
cnN0Yml0bG93KHVzaG9ydDMgeCkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSBmaXJzdGJpdGxvdyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJzdGJpdGxvdyh4WzFdKTsK
KyAgICByZXN1bHRbMl0gPSBmaXJzdGJpdGxvdyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordWludDQgZmlyc3RiaXRsb3codXNob3J0NCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0
bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBm
aXJzdGJpdGxvdyh1aW50MiB4KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBmaXJzdGJpdGxvdyh1aW50MyB4KSB7CisgICAg
dWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJl
c3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93
KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBmaXJzdGJpdGxvdyh1aW50NCB4
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZp
cnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGxvdyhjaGFyMiB4KSB7CisgICAgdWlu
dDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3Vs
dFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBm
aXJzdGJpdGxvdyhjaGFyMyB4KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOwor
ICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50NCBmaXJzdGJpdGxvdyhjaGFyNCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93
KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFsz
XSA9IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJz
dGJpdGxvdyhzaG9ydDIgeCkgeworICAgIHVpbnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBm
aXJzdGJpdGxvdyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJzdGJpdGxvdyh4WzFdKTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQordWludDMgZmlyc3RiaXRsb3coc2hvcnQzIHgpIHsKKyAgICB1
aW50MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRsb3coeFswXSk7CisgICAgcmVz
dWx0WzFdID0gZmlyc3RiaXRsb3coeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZmlyc3RiaXRsb3co
eFsyXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQ0IGZpcnN0Yml0bG93KHNob3J0NCB4
KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGZpcnN0Yml0bG93KHhbMF0p
OworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGZp
cnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9IGZpcnN0Yml0bG93KHhbM10pOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBmaXJzdGJpdGxvdyhpbnQyIHgpIHsKKyAgICB1aW50
MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZmlyc3RiaXRsb3coeFswXSk7CisgICAgcmVzdWx0
WzFdID0gZmlyc3RiaXRsb3coeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGZp
cnN0Yml0bG93KGludDMgeCkgeworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBm
aXJzdGJpdGxvdyh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmaXJzdGJpdGxvdyh4WzFdKTsKKyAg
ICByZXN1bHRbMl0gPSBmaXJzdGJpdGxvdyh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dWludDQgZmlyc3RiaXRsb3coaW50NCB4KSB7CisgICAgdWludDQgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGZpcnN0Yml0bG93KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGZpcnN0Yml0bG93KHhb
MV0pOworICAgIHJlc3VsdFsyXSA9IGZpcnN0Yml0bG93KHhbMl0pOworICAgIHJlc3VsdFszXSA9
IGZpcnN0Yml0bG93KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgZGV0ZXJt
aW5hbnQoaGFsZiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitoYWxmIGRldGVybWluYW50KGhhbGYy
eDIgeCkgeworICAgIHJldHVybiB4WzBdWzBdICogeFsxXVsxXSAtIHhbMF1bMV0gKiB4WzFdWzBd
OworfQoraGFsZiBkZXRlcm1pbmFudChoYWxmM3gzIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAq
IHhbMV1bMV0gKiB4WzJdWzJdICsKKyAgICAgICAgICAgeFswXVsxXSAqIHhbMV1bMl0gKiB4WzJd
WzBdICsKKyAgICAgICAgICAgeFswXVsyXSAqIHhbMV1bMF0gKiB4WzJdWzFdIC0KKyAgICAgICAg
ICAgeFsyXVswXSAqIHhbMV1bMV0gKiB4WzBdWzJdIC0KKyAgICAgICAgICAgeFsyXVsxXSAqIHhb
MV1bMl0gKiB4WzBdWzBdIC0KKyAgICAgICAgICAgeFsyXVsyXSAqIHhbMV1bMF0gKiB4WzBdWzFd
OworfQoraGFsZiBkZXRlcm1pbmFudChoYWxmNHg0IHgpIHsKKyAgICBoYWxmIHJlc3VsdDsKKyAg
ICBoYWxmM3gzIG1pbm9yOworICAgIG1pbm9yWzBdWzBdID0geFsxXVsxXTsKKyAgICBtaW5vclsw
XVsxXSA9IHhbMV1bMl07CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFd
WzBdID0geFsyXVsxXTsKKyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1b
Ml0gPSB4WzJdWzNdOworICAgIG1pbm9yWzJdWzBdID0geFszXVsxXTsKKyAgICBtaW5vclsyXVsx
XSA9IHhbM11bMl07CisgICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIHhbMF1bMF0gKiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4
WzFdWzBdOworICAgIG1pbm9yWzBdWzFdID0geFsxXVsyXTsKKyAgICBtaW5vclswXVsyXSA9IHhb
MV1bM107CisgICAgbWlub3JbMV1bMF0gPSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsy
XVsyXTsKKyAgICBtaW5vclsxXVsyXSA9IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNd
WzBdOworICAgIG1pbm9yWzJdWzFdID0geFszXVsyXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11b
M107CisgICAgcmVzdWx0ID0gcmVzdWx0IC0geFswXVsxXSAqIGRldGVybWluYW50KG1pbm9yKTsK
KyAgICBtaW5vclswXVswXSA9IHhbMV1bMF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOwor
ICAgIG1pbm9yWzBdWzJdID0geFsxXVszXTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07Cisg
ICAgbWlub3JbMV1bMV0gPSB4WzJdWzFdOworICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAg
ICBtaW5vclsyXVswXSA9IHhbM11bMF07CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAg
IG1pbm9yWzJdWzJdID0geFszXVszXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzJdICog
ZGV0ZXJtaW5hbnQobWlub3IpOworICAgIG1pbm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5v
clswXVsxXSA9IHhbMV1bMV07CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzJdOworICAgIG1pbm9y
WzFdWzBdID0geFsyXVswXTsKKyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMV07CisgICAgbWlub3Jb
MV1bMl0gPSB4WzJdWzJdOworICAgIG1pbm9yWzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsy
XVsxXSA9IHhbM11bMV07CisgICAgbWlub3JbMl1bMl0gPSB4WzNdWzJdOworICAgIHJlc3VsdCA9
IHJlc3VsdCAtIHhbMF1bM10gKiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0IGRldGVybWluYW50KGZsb2F0IHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zs
b2F0IGRldGVybWluYW50KGZsb2F0MngyIHgpIHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1b
MV0gLSB4WzBdWzFdICogeFsxXVswXTsKK30KK2Zsb2F0IGRldGVybWluYW50KGZsb2F0M3gzIHgp
IHsKKyAgICByZXR1cm4geFswXVswXSAqIHhbMV1bMV0gKiB4WzJdWzJdICsKKyAgICAgICAgICAg
eFswXVsxXSAqIHhbMV1bMl0gKiB4WzJdWzBdICsKKyAgICAgICAgICAgeFswXVsyXSAqIHhbMV1b
MF0gKiB4WzJdWzFdIC0KKyAgICAgICAgICAgeFsyXVswXSAqIHhbMV1bMV0gKiB4WzBdWzJdIC0K
KyAgICAgICAgICAgeFsyXVsxXSAqIHhbMV1bMl0gKiB4WzBdWzBdIC0KKyAgICAgICAgICAgeFsy
XVsyXSAqIHhbMV1bMF0gKiB4WzBdWzFdOworfQorZmxvYXQgZGV0ZXJtaW5hbnQoZmxvYXQ0eDQg
eCkgeworICAgIGZsb2F0IHJlc3VsdDsKKyAgICBmbG9hdDN4MyBtaW5vcjsKKyAgICBtaW5vclsw
XVswXSA9IHhbMV1bMV07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzJdOworICAgIG1pbm9yWzBd
WzJdID0geFsxXVszXTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMV07CisgICAgbWlub3JbMV1b
MV0gPSB4WzJdWzJdOworICAgIG1pbm9yWzFdWzJdID0geFsyXVszXTsKKyAgICBtaW5vclsyXVsw
XSA9IHhbM11bMV07CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzJdOworICAgIG1pbm9yWzJdWzJd
ID0geFszXVszXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyB4WzBdWzBdICogZGV0ZXJtaW5hbnQo
bWlub3IpOworICAgIG1pbm9yWzBdWzBdID0geFsxXVswXTsKKyAgICBtaW5vclswXVsxXSA9IHhb
MV1bMl07CisgICAgbWlub3JbMF1bMl0gPSB4WzFdWzNdOworICAgIG1pbm9yWzFdWzBdID0geFsy
XVswXTsKKyAgICBtaW5vclsxXVsxXSA9IHhbMl1bMl07CisgICAgbWlub3JbMV1bMl0gPSB4WzJd
WzNdOworICAgIG1pbm9yWzJdWzBdID0geFszXVswXTsKKyAgICBtaW5vclsyXVsxXSA9IHhbM11b
Ml07CisgICAgbWlub3JbMl1bMl0gPSB4WzNdWzNdOworICAgIHJlc3VsdCA9IHJlc3VsdCAtIHhb
MF1bMV0gKiBkZXRlcm1pbmFudChtaW5vcik7CisgICAgbWlub3JbMF1bMF0gPSB4WzFdWzBdOwor
ICAgIG1pbm9yWzBdWzFdID0geFsxXVsxXTsKKyAgICBtaW5vclswXVsyXSA9IHhbMV1bM107Cisg
ICAgbWlub3JbMV1bMF0gPSB4WzJdWzBdOworICAgIG1pbm9yWzFdWzFdID0geFsyXVsxXTsKKyAg
ICBtaW5vclsxXVsyXSA9IHhbMl1bM107CisgICAgbWlub3JbMl1bMF0gPSB4WzNdWzBdOworICAg
IG1pbm9yWzJdWzFdID0geFszXVsxXTsKKyAgICBtaW5vclsyXVsyXSA9IHhbM11bM107CisgICAg
cmVzdWx0ID0gcmVzdWx0ICsgeFswXVsyXSAqIGRldGVybWluYW50KG1pbm9yKTsKKyAgICBtaW5v
clswXVswXSA9IHhbMV1bMF07CisgICAgbWlub3JbMF1bMV0gPSB4WzFdWzFdOworICAgIG1pbm9y
WzBdWzJdID0geFsxXVsyXTsKKyAgICBtaW5vclsxXVswXSA9IHhbMl1bMF07CisgICAgbWlub3Jb
MV1bMV0gPSB4WzJdWzFdOworICAgIG1pbm9yWzFdWzJdID0geFsyXVsyXTsKKyAgICBtaW5vclsy
XVswXSA9IHhbM11bMF07CisgICAgbWlub3JbMl1bMV0gPSB4WzNdWzFdOworICAgIG1pbm9yWzJd
WzJdID0geFszXVsyXTsKKyAgICByZXN1bHQgPSByZXN1bHQgLSB4WzBdWzNdICogZGV0ZXJtaW5h
bnQobWlub3IpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3VjaGFyNCBkc3QodWNoYXI0IHNy
YzAsIHVjaGFyNCBzcmMxKSB7CisgICAgdWNoYXI0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7
CisgICAgcmVzdWx0LnkgPSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7
CisgICAgcmVzdWx0LncgPSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydDQg
ZHN0KHVzaG9ydDQgc3JjMCwgdXNob3J0NCBzcmMxKSB7CisgICAgdXNob3J0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0LnggPSAxOworICAgIHJlc3VsdC55ID0gc3JjMC55ICogc3JjMS55OworICAgIHJl
c3VsdC56ID0gc3JjMC56OworICAgIHJlc3VsdC53ID0gc3JjMS53OworICAgIHJldHVybiByZXN1
bHQ7Cit9Cit1aW50NCBkc3QodWludDQgc3JjMCwgdWludDQgc3JjMSkgeworICAgIHVpbnQ0IHJl
c3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVzdWx0LnkgPSBzcmMwLnkgKiBzcmMxLnk7
CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVzdWx0LncgPSBzcmMxLnc7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2NoYXI0IGRzdChjaGFyNCBzcmMwLCBjaGFyNCBzcmMxKSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAq
IHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IGRzdChzaG9ydDQgc3JjMCwgc2hvcnQ0IHNy
YzEpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsKKyAgICByZXN1bHQu
eSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsKKyAgICByZXN1bHQu
dyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBkc3QoaW50NCBzcmMwLCBp
bnQ0IHNyYzEpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHQueCA9IDE7CisgICAgcmVz
dWx0LnkgPSBzcmMwLnkgKiBzcmMxLnk7CisgICAgcmVzdWx0LnogPSBzcmMwLno7CisgICAgcmVz
dWx0LncgPSBzcmMxLnc7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IGRzdChoYWxmNCBz
cmMwLCBoYWxmNCBzcmMxKSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdC54ID0gMTsK
KyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQueiA9IHNyYzAuejsK
KyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGRz
dChmbG9hdDQgc3JjMCwgZmxvYXQ0IHNyYzEpIHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJl
c3VsdC54ID0gMTsKKyAgICByZXN1bHQueSA9IHNyYzAueSAqIHNyYzEueTsKKyAgICByZXN1bHQu
eiA9IHNyYzAuejsKKyAgICByZXN1bHQudyA9IHNyYzEudzsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitoYWxmIGRpc3RhbmNlKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4
IC0geSk7Cit9CitoYWxmIGRpc3RhbmNlKGhhbGYyIHgsIGhhbGYyIHkpIHsKKyAgICByZXR1cm4g
bGVuZ3RoKHggLSB5KTsKK30KK2hhbGYgZGlzdGFuY2UoaGFsZjMgeCwgaGFsZjMgeSkgeworICAg
IHJldHVybiBsZW5ndGgoeCAtIHkpOworfQoraGFsZiBkaXN0YW5jZShoYWxmNCB4LCBoYWxmNCB5
KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5jZShmbG9hdCB4
LCBmbG9hdCB5KSB7CisgICAgcmV0dXJuIGxlbmd0aCh4IC0geSk7Cit9CitmbG9hdCBkaXN0YW5j
ZShmbG9hdDIgeCwgZmxvYXQyIHkpIHsKKyAgICByZXR1cm4gbGVuZ3RoKHggLSB5KTsKK30KK2Zs
b2F0IGRpc3RhbmNlKGZsb2F0MyB4LCBmbG9hdDMgeSkgeworICAgIHJldHVybiBsZW5ndGgoeCAt
IHkpOworfQorZmxvYXQgZGlzdGFuY2UoZmxvYXQ0IHgsIGZsb2F0NCB5KSB7CisgICAgcmV0dXJu
IGxlbmd0aCh4IC0geSk7Cit9CisKK2hhbGYzIGNyb3NzKGhhbGYzIHUsIGhhbGYzIHYpIHsKKyAg
ICBoYWxmMyByZXN1bHQ7CisgICAgcmVzdWx0LnggPSB1LnkgKiB2LnogLSB1LnogKiB2Lnk7Cisg
ICAgcmVzdWx0LnkgPSB1LnogKiB2LnggLSB1LnggKiB2Lno7CisgICAgcmVzdWx0LnogPSB1Lngg
KiB2LnkgLSB1LnkgKiB2Lng7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBjcm9zcyhm
bG9hdDMgdSwgZmxvYXQzIHYpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdC54ID0g
dS55ICogdi56IC0gdS56ICogdi55OworICAgIHJlc3VsdC55ID0gdS56ICogdi54IC0gdS54ICog
di56OworICAgIHJlc3VsdC56ID0gdS54ICogdi55IC0gdS55ICogdi54OworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CisKK3VjaGFyIGRvdCh1Y2hhciBhLCB1Y2hhciBiKSB7CisgICAgcmV0dXJuIGEg
KiBiOworfQordWNoYXIgZG90KHVjaGFyMiBhLCB1Y2hhcjIgYikgeworICAgIHVjaGFyIHJlc3Vs
dCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyIGRvdCh1
Y2hhcjMgYSwgdWNoYXIzIGIpIHsKKyAgICB1Y2hhciByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFd
OworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1Y2hhciBkb3QodWNoYXI0IGEsIHVjaGFyNCBiKSB7CisgICAgdWNoYXIgcmVzdWx0ID0g
MDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
dXNob3J0IGRvdCh1c2hvcnQgYSwgdXNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9Cit1
c2hvcnQgZG90KHVzaG9ydDIgYSwgdXNob3J0MiBiKSB7CisgICAgdXNob3J0IHJlc3VsdCA9IDA7
CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0
ICsgYVsxXSAqIGJbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9ydCBkb3QodXNob3J0
MyBhLCB1c2hvcnQzIGIpIHsKKyAgICB1c2hvcnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQordXNob3J0IGRvdCh1c2hvcnQ0IGEsIHVzaG9ydDQgYikgeworICAgIHVzaG9ydCByZXN1bHQg
PSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJl
c3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9
Cit1aW50IGRvdCh1aW50IGEsIHVpbnQgYikgeworICAgIHJldHVybiBhICogYjsKK30KK3VpbnQg
ZG90KHVpbnQyIGEsIHVpbnQyIGIpIHsKKyAgICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0
ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJb
MV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQzIGEsIHVpbnQzIGIpIHsK
KyAgICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07
CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0
ICsgYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQgZG90KHVpbnQ0IGEs
IHVpbnQ0IGIpIHsKKyAgICB1aW50IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVszXSAq
IGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2NoYXIgZG90KGNoYXIgYSwgY2hhciBiKSB7
CisgICAgcmV0dXJuIGEgKiBiOworfQorY2hhciBkb3QoY2hhcjIgYSwgY2hhcjIgYikgeworICAg
IGNoYXIgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAg
ICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
Y2hhciBkb3QoY2hhcjMgYSwgY2hhcjMgYikgeworICAgIGNoYXIgcmVzdWx0ID0gMDsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFd
ICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorY2hhciBkb3QoY2hhcjQgYSwgY2hhcjQgYikgeworICAgIGNoYXIgcmVzdWx0
ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSBy
ZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsK
KyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzNdICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorc2hvcnQgZG90KHNob3J0IGEsIHNob3J0IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9Citz
aG9ydCBkb3Qoc2hvcnQyIGEsIHNob3J0MiBiKSB7CisgICAgc2hvcnQgcmVzdWx0ID0gMDsKKyAg
ICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBh
WzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQgZG90KHNob3J0MyBhLCBz
aG9ydDMgYikgeworICAgIHNob3J0IHJlc3VsdCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsg
YVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVz
dWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3Nob3J0
IGRvdChzaG9ydDQgYSwgc2hvcnQ0IGIpIHsKKyAgICBzaG9ydCByZXN1bHQgPSAwOworICAgIHJl
c3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0g
KiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9
IHJlc3VsdCArIGFbM10gKiBiWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQgZG90KGlu
dCBhLCBpbnQgYikgeworICAgIHJldHVybiBhICogYjsKK30KK2ludCBkb3QoaW50MiBhLCBpbnQy
IGIpIHsKKyAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICog
YlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQoraW50IGRvdChpbnQzIGEsIGludDMgYikgeworICAgIGludCByZXN1bHQgPSAwOwor
ICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBdOworICAgIHJlc3VsdCA9IHJlc3VsdCAr
IGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMl0gKiBiWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitpbnQgZG90KGludDQgYSwgaW50NCBiKSB7CisgICAgaW50IHJlc3Vs
dCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07
CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVszXSAqIGJbM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYgZG90KGhhbGYgYSwgaGFsZiBiKSB7CisgICAgcmV0dXJuIGEgKiBiOworfQoraGFs
ZiBkb3QoaGFsZjIgYSwgaGFsZjIgYikgeworICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1
bHQgPSByZXN1bHQgKyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICog
YlsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjMgYSwgaGFsZjMgYikg
eworICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICogYlsw
XTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXN1bHQgPSByZXN1
bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZiBkb3QoaGFsZjQg
YSwgaGFsZjQgYikgeworICAgIGhhbGYgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQg
KyBhWzBdICogYlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgKyBhWzJdICogYlsyXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzNd
ICogYlszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQgZG90KGZsb2F0IGEsIGZsb2F0
IGIpIHsKKyAgICByZXR1cm4gYSAqIGI7Cit9CitmbG9hdCBkb3QoZmxvYXQyIGEsIGZsb2F0MiBi
KSB7CisgICAgZmxvYXQgcmVzdWx0ID0gMDsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzBdICog
YlswXTsKKyAgICByZXN1bHQgPSByZXN1bHQgKyBhWzFdICogYlsxXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQgZG90KGZsb2F0MyBhLCBmbG9hdDMgYikgeworICAgIGZsb2F0IHJlc3Vs
dCA9IDA7CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVswXSAqIGJbMF07CisgICAgcmVzdWx0ID0g
cmVzdWx0ICsgYVsxXSAqIGJbMV07CisgICAgcmVzdWx0ID0gcmVzdWx0ICsgYVsyXSAqIGJbMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0IGRvdChmbG9hdDQgYSwgZmxvYXQ0IGIpIHsK
KyAgICBmbG9hdCByZXN1bHQgPSAwOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMF0gKiBiWzBd
OworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbMV0gKiBiWzFdOworICAgIHJlc3VsdCA9IHJlc3Vs
dCArIGFbMl0gKiBiWzJdOworICAgIHJlc3VsdCA9IHJlc3VsdCArIGFbM10gKiBiWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK2hhbGYgZmFjZWZvcndhcmQoaGFsZiBuLCBoYWxmIGksIGhh
bGYgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjIgZmFj
ZWZvcndhcmQoaGFsZjIgbiwgaGFsZjIgaSwgaGFsZjIgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBz
aWduKGRvdChpLCBuZykpOworfQoraGFsZjMgZmFjZWZvcndhcmQoaGFsZjMgbiwgaGFsZjMgaSwg
aGFsZjMgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQoraGFsZjQg
ZmFjZWZvcndhcmQoaGFsZjQgbiwgaGFsZjQgaSwgaGFsZjQgbmcpIHsKKyAgICByZXR1cm4gLW4g
KiBzaWduKGRvdChpLCBuZykpOworfQorZmxvYXQgZmFjZWZvcndhcmQoZmxvYXQgbiwgZmxvYXQg
aSwgZmxvYXQgbmcpIHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQorZmxv
YXQyIGZhY2Vmb3J3YXJkKGZsb2F0MiBuLCBmbG9hdDIgaSwgZmxvYXQyIG5nKSB7CisgICAgcmV0
dXJuIC1uICogc2lnbihkb3QoaSwgbmcpKTsKK30KK2Zsb2F0MyBmYWNlZm9yd2FyZChmbG9hdDMg
biwgZmxvYXQzIGksIGZsb2F0MyBuZykgeworICAgIHJldHVybiAtbiAqIHNpZ24oZG90KGksIG5n
KSk7Cit9CitmbG9hdDQgZmFjZWZvcndhcmQoZmxvYXQ0IG4sIGZsb2F0NCBpLCBmbG9hdDQgbmcp
IHsKKyAgICByZXR1cm4gLW4gKiBzaWduKGRvdChpLCBuZykpOworfQorCitoYWxmIGxlbmd0aCho
YWxmIHgpIHsKKyAgICByZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQoraGFsZiBsZW5ndGgoaGFs
ZjIgeCkgeworICAgIHJldHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitoYWxmIGxlbmd0aChoYWxm
MyB4KSB7CisgICAgcmV0dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2hhbGYgbGVuZ3RoKGhhbGY0
IHgpIHsKKyAgICByZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0
IHgpIHsKKyAgICByZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQorZmxvYXQgbGVuZ3RoKGZsb2F0
MiB4KSB7CisgICAgcmV0dXJuIHNxcnQoZG90KHgsIHgpKTsKK30KK2Zsb2F0IGxlbmd0aChmbG9h
dDMgeCkgeworICAgIHJldHVybiBzcXJ0KGRvdCh4LCB4KSk7Cit9CitmbG9hdCBsZW5ndGgoZmxv
YXQ0IHgpIHsKKyAgICByZXR1cm4gc3FydChkb3QoeCwgeCkpOworfQorCitoYWxmNCBsaXQoaGFs
ZiBuX2RvdF9sLCBoYWxmIG5fZG90X2gsIGhhbGYgbSkgeworICAgIGhhbGYgYW1iaWVudCA9IDE7
CisgICAgaGFsZiBkaWZmdXNlID0gbWF4KDAsIG5fZG90X2wpOworICAgIGhhbGYgc3BlY3VsYXIg
PSBuX2RvdF9sIDwgMCB8fCBuX2RvdF9oIDwgMCA/IDAgOiBuX2RvdF9oICogbTsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0LnggPSBhbWJpZW50OworICAgIHJlc3VsdC55ID0gZGlmZnVz
ZTsKKyAgICByZXN1bHQueiA9IHNwZWN1bGFyOworICAgIHJlc3VsdC53ID0gMTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorZmxvYXQ0IGxpdChmbG9hdCBuX2RvdF9sLCBmbG9hdCBuX2RvdF9oLCBm
bG9hdCBtKSB7CisgICAgZmxvYXQgYW1iaWVudCA9IDE7CisgICAgZmxvYXQgZGlmZnVzZSA9IG1h
eCgwLCBuX2RvdF9sKTsKKyAgICBmbG9hdCBzcGVjdWxhciA9IG5fZG90X2wgPCAwIHx8IG5fZG90
X2ggPCAwID8gMCA6IG5fZG90X2ggKiBtOworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0
LnggPSBhbWJpZW50OworICAgIHJlc3VsdC55ID0gZGlmZnVzZTsKKyAgICByZXN1bHQueiA9IHNw
ZWN1bGFyOworICAgIHJlc3VsdC53ID0gMTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitoYWxm
IG5vcm1hbGl6ZShoYWxmIHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2hhbGYy
IG5vcm1hbGl6ZShoYWxmMiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9CitoYWxm
MyBub3JtYWxpemUoaGFsZjMgeCkgeworICAgIHJldHVybiB4IC8gbGVuZ3RoKHgpOworfQoraGFs
ZjQgbm9ybWFsaXplKGhhbGY0IHgpIHsKKyAgICByZXR1cm4geCAvIGxlbmd0aCh4KTsKK30KK2Zs
b2F0IG5vcm1hbGl6ZShmbG9hdCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9Citm
bG9hdDIgbm9ybWFsaXplKGZsb2F0MiB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7Cit9
CitmbG9hdDMgbm9ybWFsaXplKGZsb2F0MyB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgoeCk7
Cit9CitmbG9hdDQgbm9ybWFsaXplKGZsb2F0NCB4KSB7CisgICAgcmV0dXJuIHggLyBsZW5ndGgo
eCk7Cit9CisKK2hhbGYgcmVmbGVjdChoYWxmIGksIGhhbGYgbikgeworICAgIHJldHVybiBpIC0g
MiAqIG4gKiBkb3QoaSwgbik7Cit9CitoYWxmMiByZWZsZWN0KGhhbGYyIGksIGhhbGYyIG4pIHsK
KyAgICByZXR1cm4gaSAtIDIgKiBuICogZG90KGksIG4pOworfQoraGFsZjMgcmVmbGVjdChoYWxm
MyBpLCBoYWxmMyBuKSB7CisgICAgcmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2hh
bGY0IHJlZmxlY3QoaGFsZjQgaSwgaGFsZjQgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBk
b3QoaSwgbik7Cit9CitmbG9hdCByZWZsZWN0KGZsb2F0IGksIGZsb2F0IG4pIHsKKyAgICByZXR1
cm4gaSAtIDIgKiBuICogZG90KGksIG4pOworfQorZmxvYXQyIHJlZmxlY3QoZmxvYXQyIGksIGZs
b2F0MiBuKSB7CisgICAgcmV0dXJuIGkgLSAyICogbiAqIGRvdChpLCBuKTsKK30KK2Zsb2F0MyBy
ZWZsZWN0KGZsb2F0MyBpLCBmbG9hdDMgbikgeworICAgIHJldHVybiBpIC0gMiAqIG4gKiBkb3Qo
aSwgbik7Cit9CitmbG9hdDQgcmVmbGVjdChmbG9hdDQgaSwgZmxvYXQ0IG4pIHsKKyAgICByZXR1
cm4gaSAtIDIgKiBuICogZG90KGksIG4pOworfQorCitoYWxmIHJlZnJhY3QoaGFsZiBpLCBoYWxm
IG4sIGhhbGYgZXRhKSB7CisgICAgaGFsZiByZXN1bHQ7CisgICAgaGFsZiBrID0gMSAtIGV0YSAq
IGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90KG4sIGkpKTsKKyAgICBpZiAoayA8IDApCisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGV0YSAqIGkgLSAoZXRhICogZG90KG4sIGkp
ICsgc3FydChrKSkgKiBuOworfQoraGFsZjIgcmVmcmFjdChoYWxmMiBpLCBoYWxmMiBuLCBoYWxm
IGV0YSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICBoYWxmIGsgPSAxIC0gZXRhICogZXRhICog
KDEgLSBkb3QobiwgaSkgKiBkb3QobiwgaSkpOworICAgIGlmIChrIDwgMCkKKyAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gZXRhICogaSAtIChldGEgKiBkb3QobiwgaSkgKyBzcXJ0
KGspKSAqIG47Cit9CitoYWxmMyByZWZyYWN0KGhhbGYzIGksIGhhbGYzIG4sIGhhbGYgZXRhKSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIGhhbGYgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRv
dChuLCBpKSAqIGRvdChuLCBpKSk7CisgICAgaWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVz
dWx0OworICAgIHJldHVybiBldGEgKiBpIC0gKGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICog
bjsKK30KK2hhbGY0IHJlZnJhY3QoaGFsZjQgaSwgaGFsZjQgbiwgaGFsZiBldGEpIHsKKyAgICBo
YWxmNCByZXN1bHQ7CisgICAgaGFsZiBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkp
ICogZG90KG4sIGkpKTsKKyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7Cisg
ICAgcmV0dXJuIGV0YSAqIGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQor
ZmxvYXQgcmVmcmFjdChmbG9hdCBpLCBmbG9hdCBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdCBy
ZXN1bHQ7CisgICAgZmxvYXQgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRv
dChuLCBpKSk7CisgICAgaWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJl
dHVybiBldGEgKiBpIC0gKGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KK2Zsb2F0
MiByZWZyYWN0KGZsb2F0MiBpLCBmbG9hdDIgbiwgZmxvYXQgZXRhKSB7CisgICAgZmxvYXQyIHJl
c3VsdDsKKyAgICBmbG9hdCBrID0gMSAtIGV0YSAqIGV0YSAqICgxIC0gZG90KG4sIGkpICogZG90
KG4sIGkpKTsKKyAgICBpZiAoayA8IDApCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIGV0YSAqIGkgLSAoZXRhICogZG90KG4sIGkpICsgc3FydChrKSkgKiBuOworfQorZmxvYXQz
IHJlZnJhY3QoZmxvYXQzIGksIGZsb2F0MyBuLCBmbG9hdCBldGEpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIGZsb2F0IGsgPSAxIC0gZXRhICogZXRhICogKDEgLSBkb3QobiwgaSkgKiBkb3Qo
biwgaSkpOworICAgIGlmIChrIDwgMCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1
cm4gZXRhICogaSAtIChldGEgKiBkb3QobiwgaSkgKyBzcXJ0KGspKSAqIG47Cit9CitmbG9hdDQg
cmVmcmFjdChmbG9hdDQgaSwgZmxvYXQ0IG4sIGZsb2F0IGV0YSkgeworICAgIGZsb2F0NCByZXN1
bHQ7CisgICAgZmxvYXQgayA9IDEgLSBldGEgKiBldGEgKiAoMSAtIGRvdChuLCBpKSAqIGRvdChu
LCBpKSk7CisgICAgaWYgKGsgPCAwKQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVy
biBldGEgKiBpIC0gKGV0YSAqIGRvdChuLCBpKSArIHNxcnQoaykpICogbjsKK30KKworaGFsZiB0
cmFuc3Bvc2UoaGFsZiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitoYWxmMngyIHRyYW5zcG9zZSho
YWxmMngyIHgpIHsKKyAgICBoYWxmMngyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBd
WzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFsw
XVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMngzIHRyYW5zcG9zZShoYWxmM3gyIHgpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOwor
ICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4NCB0cmFuc3Bvc2UoaGFsZjR4MiB4KSB7Cisg
ICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1
bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVz
dWx0WzBdWzNdID0geFszXVswXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJl
c3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSB4WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIHRy
YW5zcG9zZShoYWxmMngzIHgpIHsKKyAgICBoYWxmM3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1b
MF0gPSB4WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFd
WzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsy
XVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQoraGFsZjN4MyB0cmFuc3Bvc2UoaGFsZjN4MyB4KSB7CisgICAgaGFsZjN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4
WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0g
eFswXVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IHhbMl1bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICByZXN1bHRbMl1bMV0g
PSB4WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDQgdHJhbnNwb3NlKGhhbGY0eDMgeCkgeworICAgIGhhbGYzeDQgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVsw
XTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IHhbM11b
MF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFd
WzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0geFsz
XVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhb
MV1bMl07CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSB4
WzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgyIHRyYW5zcG9zZShoYWxmMng0
IHgpIHsKKyAgICBoYWxmNHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOwor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsxXTsK
KyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07
CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNd
OworICAgIHJlc3VsdFszXVsxXSA9IHhbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hh
bGY0eDMgdHJhbnNwb3NlKGhhbGYzeDQgeCkgeworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHhbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICBy
ZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAg
cmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAg
ICByZXN1bHRbMl1bMl0gPSB4WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHhbMF1bM107Cisg
ICAgcmVzdWx0WzNdWzFdID0geFsxXVszXTsKKyAgICByZXN1bHRbM11bMl0gPSB4WzJdWzNdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IHRyYW5zcG9zZShoYWxmNHg0IHgpIHsKKyAg
ICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1
bHRbMF1bM10gPSB4WzNdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVz
dWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJl
c3VsdFsxXVszXSA9IHhbM11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAgICBy
ZXN1bHRbMl1bMV0gPSB4WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07CisgICAg
cmVzdWx0WzJdWzNdID0geFszXVsyXTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAg
IHJlc3VsdFszXVsxXSA9IHhbMV1bM107CisgICAgcmVzdWx0WzNdWzJdID0geFsyXVszXTsKKyAg
ICByZXN1bHRbM11bM10gPSB4WzNdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdCB0
cmFuc3Bvc2UoZmxvYXQgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQyeDIgdHJhbnNwb3Nl
KGZsb2F0MngyIHgpIHsKKyAgICBmbG9hdDJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
eFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3VsdFsxXVswXSA9
IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQyeDMgdHJhbnNwb3NlKGZsb2F0M3gyIHgpIHsKKyAgICBmbG9hdDJ4MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFd
WzBdOworICAgIHJlc3VsdFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFsw
XVsxXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhb
Ml1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IHRyYW5zcG9zZShmbG9hdDR4
MiB4KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07
CisgICAgcmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBd
OworICAgIHJlc3VsdFswXVszXSA9IHhbM11bMF07CisgICAgcmVzdWx0WzFdWzBdID0geFswXVsx
XTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHhbMl1b
MV07CisgICAgcmVzdWx0WzFdWzNdID0geFszXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQzeDIgdHJhbnNwb3NlKGZsb2F0MngzIHgpIHsKKyAgICBmbG9hdDN4MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOwor
ICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsK
KyAgICByZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gzIHRyYW5zcG9zZShmbG9hdDN4MyB4KSB7
CisgICAgZmxvYXQzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF07CisgICAg
cmVzdWx0WzBdWzFdID0geFsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSB4WzJdWzBdOworICAg
IHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAg
ICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHhbMF1bMl07Cisg
ICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4WzJdWzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCB0cmFuc3Bvc2UoZmxvYXQ0eDMgeCkgewor
ICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJl
c3VsdFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICBy
ZXN1bHRbMF1bM10gPSB4WzNdWzBdOworICAgIHJlc3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAg
cmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4WzJdWzFdOworICAg
IHJlc3VsdFsxXVszXSA9IHhbM11bMV07CisgICAgcmVzdWx0WzJdWzBdID0geFswXVsyXTsKKyAg
ICByZXN1bHRbMl1bMV0gPSB4WzFdWzJdOworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl07Cisg
ICAgcmVzdWx0WzJdWzNdID0geFszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0
eDIgdHJhbnNwb3NlKGZsb2F0Mng0IHgpIHsKKyAgICBmbG9hdDR4MiByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJl
c3VsdFsxXVswXSA9IHhbMF1bMV07CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXTsKKyAgICBy
ZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJlc3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAg
cmVzdWx0WzNdWzBdID0geFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyB0cmFuc3Bvc2UoZmxvYXQzeDQgeCkgeworICAg
IGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4WzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IHhbMV1bMF07CisgICAgcmVzdWx0WzBdWzJdID0geFsyXVswXTsKKyAgICByZXN1
bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVz
dWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4WzBdWzJdOworICAgIHJl
c3VsdFsyXVsxXSA9IHhbMV1bMl07CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXTsKKyAgICBy
ZXN1bHRbM11bMF0gPSB4WzBdWzNdOworICAgIHJlc3VsdFszXVsxXSA9IHhbMV1bM107CisgICAg
cmVzdWx0WzNdWzJdID0geFsyXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQg
dHJhbnNwb3NlKGZsb2F0NHg0IHgpIHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzBdID0geFswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzFdWzBdOworICAgIHJlc3Vs
dFswXVsyXSA9IHhbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0geFszXVswXTsKKyAgICByZXN1
bHRbMV1bMF0gPSB4WzBdWzFdOworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV07CisgICAgcmVz
dWx0WzFdWzJdID0geFsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSB4WzNdWzFdOworICAgIHJl
c3VsdFsyXVswXSA9IHhbMF1bMl07CisgICAgcmVzdWx0WzJdWzFdID0geFsxXVsyXTsKKyAgICBy
ZXN1bHRbMl1bMl0gPSB4WzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IHhbM11bMl07CisgICAg
cmVzdWx0WzNdWzBdID0geFswXVszXTsKKyAgICByZXN1bHRbM11bMV0gPSB4WzFdWzNdOworICAg
IHJlc3VsdFszXVsyXSA9IHhbMl1bM107CisgICAgcmVzdWx0WzNdWzNdID0geFszXVszXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitpbnQgYXNpbnQoaW50IHgpIHsKKyAgICByZXR1cm4geDsK
K30KK2ludDIgYXNpbnQoaW50MiB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitpbnQzIGFzaW50KGlu
dDMgeCkgeworICAgIHJldHVybiB4OworfQoraW50NCBhc2ludChpbnQ0IHgpIHsKKyAgICByZXR1
cm4geDsKK30KK2ludCBhc2ludCh1aW50IHgpIHsKKyAgICByZXR1cm4gaW50KHgpOworfQoraW50
MiBhc2ludCh1aW50MiB4KSB7CisgICAgaW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNp
bnQoeFswXSk7CisgICAgcmVzdWx0WzFdID0gYXNpbnQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2ludDMgYXNpbnQodWludDMgeCkgeworICAgIGludDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzaW50KHhbMV0pOworICAgIHJl
c3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitpbnQ0IGFzaW50
KHVpbnQ0IHgpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc2ludCh4WzBd
KTsKKyAgICByZXN1bHRbMV0gPSBhc2ludCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2ludCh4
WzJdKTsKKyAgICByZXN1bHRbM10gPSBhc2ludCh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorbmF0aXZlIGludCBhc2ludChmbG9hdCk7CitpbnQyIGFzaW50KGZsb2F0MiB4KSB7CisgICAg
aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNpbnQoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gYXNpbnQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDMgYXNpbnQoZmxvYXQz
IHgpIHsKKyAgICBpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc2ludCh4WzBdKTsKKyAg
ICByZXN1bHRbMV0gPSBhc2ludCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2ludCh4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBhc2ludChmbG9hdDQgeCkgeworICAgIGludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzaW50KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFz
aW50KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzaW50KHhbMl0pOworICAgIHJlc3VsdFszXSA9
IGFzaW50KHhbM10pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50IGFzdWludChpbnQgeCkg
eworICAgIHJldHVybiB1aW50KHgpOworfQordWludDIgYXN1aW50KGludDIgeCkgeworICAgIHVp
bnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc3VpbnQoeFswXSk7CisgICAgcmVzdWx0WzFd
ID0gYXN1aW50KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBhc3VpbnQoaW50
MyB4KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsK
KyAgICByZXN1bHRbMV0gPSBhc3VpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBhc3VpbnQoaW50NCB4KSB7CisgICAg
dWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBhc3VpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJl
c3VsdFszXSA9IGFzdWludCh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludCBhc3Vp
bnQodWludCB4KSB7CisgICAgcmV0dXJuIHg7Cit9Cit1aW50MiBhc3VpbnQodWludDIgeCkgewor
ICAgIHJldHVybiB4OworfQordWludDMgYXN1aW50KHVpbnQzIHgpIHsKKyAgICByZXR1cm4geDsK
K30KK3VpbnQ0IGFzdWludCh1aW50NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CituYXRpdmUgdWlu
dCBhc3VpbnQoZmxvYXQpOwordWludDIgYXN1aW50KGZsb2F0MiB4KSB7CisgICAgdWludDIgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc3Vp
bnQoeFsxXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VpbnQzIGFzdWludChmbG9hdDMgeCkg
eworICAgIHVpbnQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc3VpbnQoeFswXSk7CisgICAg
cmVzdWx0WzFdID0gYXN1aW50KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFzdWludCh4WzJdKTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgYXN1aW50KGZsb2F0NCB4KSB7CisgICAgdWlu
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzdWludCh4WzBdKTsKKyAgICByZXN1bHRbMV0g
PSBhc3VpbnQoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gYXN1aW50KHhbMl0pOworICAgIHJlc3Vs
dFszXSA9IGFzdWludCh4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorbmF0aXZlIGZsb2F0
IGFzZmxvYXQoaW50KTsKK2Zsb2F0MiBhc2Zsb2F0KGludDIgeCkgeworICAgIGZsb2F0MiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2Zs
b2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNmbG9hdChpbnQzIHgp
IHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxvYXQoeFswXSk7Cisg
ICAgcmVzdWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2Zsb2F0KHhb
Ml0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgYXNmbG9hdChpbnQ0IHgpIHsKKyAg
ICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IGFzZmxvYXQoeFswXSk7CisgICAgcmVz
dWx0WzFdID0gYXNmbG9hdCh4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBhc2Zsb2F0KHhbMl0pOwor
ICAgIHJlc3VsdFszXSA9IGFzZmxvYXQoeFszXSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK25h
dGl2ZSBmbG9hdCBhc2Zsb2F0KHVpbnQpOworZmxvYXQyIGFzZmxvYXQodWludDIgeCkgeworICAg
IGZsb2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4WzBdKTsKKyAgICByZXN1
bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgYXNm
bG9hdCh1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBhc2Zs
b2F0KHhbMF0pOworICAgIHJlc3VsdFsxXSA9IGFzZmxvYXQoeFsxXSk7CisgICAgcmVzdWx0WzJd
ID0gYXNmbG9hdCh4WzJdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0IGFzZmxvYXQo
dWludDQgeCkgeworICAgIGZsb2F0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gYXNmbG9hdCh4
WzBdKTsKKyAgICByZXN1bHRbMV0gPSBhc2Zsb2F0KHhbMV0pOworICAgIHJlc3VsdFsyXSA9IGFz
ZmxvYXQoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gYXNmbG9hdCh4WzNdKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQgYXNmbG9hdChmbG9hdCB4KSB7CisgICAgcmV0dXJuIHg7Cit9Citm
bG9hdDIgYXNmbG9hdChmbG9hdDIgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzIGFzZmxv
YXQoZmxvYXQzIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NCBhc2Zsb2F0KGZsb2F0NCB4
KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDJ4MiBhc2Zsb2F0KGZsb2F0MngyIHgpIHsKKyAg
ICByZXR1cm4geDsKK30KK2Zsb2F0MngzIGFzZmxvYXQoZmxvYXQyeDMgeCkgeworICAgIHJldHVy
biB4OworfQorZmxvYXQyeDQgYXNmbG9hdChmbG9hdDJ4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9
CitmbG9hdDN4MiBhc2Zsb2F0KGZsb2F0M3gyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0
M3gzIGFzZmxvYXQoZmxvYXQzeDMgeCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQzeDQgYXNm
bG9hdChmbG9hdDN4NCB4KSB7CisgICAgcmV0dXJuIHg7Cit9CitmbG9hdDR4MiBhc2Zsb2F0KGZs
b2F0NHgyIHgpIHsKKyAgICByZXR1cm4geDsKK30KK2Zsb2F0NHgzIGFzZmxvYXQoZmxvYXQ0eDMg
eCkgeworICAgIHJldHVybiB4OworfQorZmxvYXQ0eDQgYXNmbG9hdChmbG9hdDR4NCB4KSB7Cisg
ICAgcmV0dXJuIHg7Cit9CisKK25hdGl2ZSBmbG9hdCBmMTZ0b2YzMih1aW50KTsKK25hdGl2ZSB1
aW50IGYzMnRvZjE2KGZsb2F0KTsKK2Zsb2F0MiBmMTZ0b2YzMih1aW50MiB4KSB7CisgICAgZmxv
YXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRb
MV0gPSBmMTZ0b2YzMih4WzFdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDIgZjMydG9m
MTYoZmxvYXQyIHgpIHsKKyAgICB1aW50MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMydG9m
MTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0MyBmMTZ0b2YzMih1aW50MyB4KSB7CisgICAgZmxvYXQzIHJlc3VsdDsK
KyAgICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0b2Yz
Mih4WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQordWludDMgZjMydG9mMTYoZmxvYXQzIHgpIHsKKyAgICB1aW50MyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gZjMydG9mMTYoeFswXSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYo
eFsxXSk7CisgICAgcmVzdWx0WzJdID0gZjMydG9mMTYoeFsyXSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NCBmMTZ0b2YzMih1aW50NCB4KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSBmMTZ0b2YzMih4WzBdKTsKKyAgICByZXN1bHRbMV0gPSBmMTZ0b2YzMih4
WzFdKTsKKyAgICByZXN1bHRbMl0gPSBmMTZ0b2YzMih4WzJdKTsKKyAgICByZXN1bHRbM10gPSBm
MTZ0b2YzMih4WzNdKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQordWludDQgZjMydG9mMTYoZmxv
YXQ0IHgpIHsKKyAgICB1aW50NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gZjMydG9mMTYoeFsw
XSk7CisgICAgcmVzdWx0WzFdID0gZjMydG9mMTYoeFsxXSk7CisgICAgcmVzdWx0WzJdID0gZjMy
dG9mMTYoeFsyXSk7CisgICAgcmVzdWx0WzNdID0gZjMydG9mMTYoeFszXSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworbmF0aXZlIHZvaWQgQWxsTWVtb3J5QmFycmllcldpdGhHcm91cFN5bmMo
KTsKK25hdGl2ZSB2b2lkIERldmljZU1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7CituYXRp
dmUgdm9pZCBHcm91cE1lbW9yeUJhcnJpZXJXaXRoR3JvdXBTeW5jKCk7CisKK3VjaGFyIG11bCh1
Y2hhciB4LCB1Y2hhciB5KSB7CisgICAgcmV0dXJuIHggKiB5OworfQordXNob3J0IG11bCh1c2hv
cnQgeCwgdXNob3J0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9Cit1aW50IG11bCh1aW50IHgs
IHVpbnQgeSkgeworICAgIHJldHVybiB4ICogeTsKK30KK2NoYXIgbXVsKGNoYXIgeCwgY2hhciB5
KSB7CisgICAgcmV0dXJuIHggKiB5OworfQorc2hvcnQgbXVsKHNob3J0IHgsIHNob3J0IHkpIHsK
KyAgICByZXR1cm4geCAqIHk7Cit9CitpbnQgbXVsKGludCB4LCBpbnQgeSkgeworICAgIHJldHVy
biB4ICogeTsKK30KK2hhbGYgbXVsKGhhbGYgeCwgaGFsZiB5KSB7CisgICAgcmV0dXJuIHggKiB5
OworfQorZmxvYXQgbXVsKGZsb2F0IHgsIGZsb2F0IHkpIHsKKyAgICByZXR1cm4geCAqIHk7Cit9
Cit1Y2hhcjIgbXVsKHVjaGFyIHgsIHVjaGFyMiB5KSB7CisgICAgdWNoYXIyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQordWNoYXIyIG11bCh1Y2hhcjIgeCwgdWNoYXIgeSkgeworICAgIHVj
aGFyMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0g
eFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyMyBtdWwodWNoYXIgeCwgdWNo
YXIzIHkpIHsKKyAgICB1Y2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOwor
ICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9Cit1Y2hhcjMgbXVsKHVjaGFyMyB4LCB1Y2hhciB5KSB7CisgICAg
dWNoYXIzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0g
PSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQordWNoYXI0IG11bCh1Y2hhciB4LCB1Y2hhcjQgeSkgeworICAgIHVjaGFyNCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07Cisg
ICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK3VjaGFyNCBtdWwodWNoYXI0IHgsIHVjaGFyIHkpIHsKKyAgICB1
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9
IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhb
M10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1c2hvcnQyIG11bCh1c2hvcnQgeCwgdXNo
b3J0MiB5KSB7CisgICAgdXNob3J0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07
CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDIgbXVsKHVzaG9ydDIgeCwgdXNob3J0IHkpIHsKKyAgICB1c2hvcnQyIHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQordXNob3J0MyBtdWwodXNob3J0IHgsIHVzaG9ydDMgeSkgeworICAgIHVz
aG9ydDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7
Cit9Cit1c2hvcnQzIG11bCh1c2hvcnQzIHgsIHVzaG9ydCB5KSB7CisgICAgdXNob3J0MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7
CisgICAgcmVzdWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VzaG9y
dDQgbXVsKHVzaG9ydCB4LCB1c2hvcnQ0IHkpIHsKKyAgICB1c2hvcnQ0IHJlc3VsdDsKKyAgICBy
ZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXN1
bHRbMl0gPSB4ICogeVsyXTsKKyAgICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQordXNob3J0NCBtdWwodXNob3J0NCB4LCB1c2hvcnQgeSkgeworICAgIHVzaG9y
dDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhb
MV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWludCB4LCB1aW50MiB5KSB7
CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3Vs
dFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MiBtdWwodWludDIg
eCwgdWludCB5KSB7CisgICAgdWludDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5
OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50
MyBtdWwodWludCB4LCB1aW50MyB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9
IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50MyBtdWwodWludDMgeCwgdWlu
dCB5KSB7CisgICAgdWludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAg
IHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludCB4LCB1aW50NCB5KSB7CisgICAgdWludDQg
cmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5
WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9IHggKiB5WzNd
OworICAgIHJldHVybiByZXN1bHQ7Cit9Cit1aW50NCBtdWwodWludDQgeCwgdWludCB5KSB7Cisg
ICAgdWludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsx
XSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9
IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBtdWwoY2hhciB4LCBjaGFy
MiB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAg
IHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMiBtdWwo
Y2hhcjIgeCwgY2hhciB5KSB7CisgICAgY2hhcjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhb
MF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitjaGFyMyBtdWwoY2hhciB4LCBjaGFyMyB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3Vs
dFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyMyBtdWwoY2hhcjMg
eCwgY2hhciB5KSB7CisgICAgY2hhcjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5
OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5Owor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhciB4LCBjaGFyNCB5KSB7CisgICAg
Y2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9
IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJlc3VsdFszXSA9IHgg
KiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitjaGFyNCBtdWwoY2hhcjQgeCwgY2hhciB5
KSB7CisgICAgY2hhcjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJl
c3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3Vs
dFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitzaG9ydDIgbXVsKHNob3J0
IHgsIHNob3J0MiB5KSB7CisgICAgc2hvcnQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4ICog
eVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
c2hvcnQyIG11bChzaG9ydDIgeCwgc2hvcnQgeSkgeworICAgIHNob3J0MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK3Nob3J0MyBtdWwoc2hvcnQgeCwgc2hvcnQzIHkpIHsKKyAgICBzaG9y
dDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHgg
KiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitzaG9ydDMgbXVsKHNob3J0MyB4LCBzaG9ydCB5KSB7CisgICAgc2hvcnQzIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFdICogeTsKKyAgICBy
ZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorc2hvcnQ0IG11bChz
aG9ydCB4LCBzaG9ydDQgeSkgeworICAgIHNob3J0NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0g
eCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07CisgICAgcmVzdWx0WzJdID0geCAq
IHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
K3Nob3J0NCBtdWwoc2hvcnQ0IHgsIHNob3J0IHkpIHsKKyAgICBzaG9ydDQgcmVzdWx0OworICAg
IHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJl
c3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CitpbnQyIG11bChpbnQgeCwgaW50MiB5KSB7CisgICAgaW50MiByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDIgbXVsKGludDIgeCwgaW50IHkpIHsKKyAgICBpbnQy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0gPSB4WzFd
ICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50MyBtdWwoaW50IHgsIGludDMgeSkgewor
ICAgIGludDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsx
XSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitpbnQzIG11bChpbnQzIHgsIGludCB5KSB7CisgICAgaW50MyByZXN1bHQ7CisgICAg
cmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0geFsxXSAqIHk7CisgICAgcmVz
dWx0WzJdID0geFsyXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2ludDQgbXVsKGludCB4
LCBpbnQ0IHkpIHsKKyAgICBpbnQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4ICogeVswXTsK
KyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSB4ICogeVsyXTsKKyAg
ICByZXN1bHRbM10gPSB4ICogeVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraW50NCBtdWwo
aW50NCB4LCBpbnQgeSkgeworICAgIGludDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0g
KiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5
OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MiBtdWwoaGFsZiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJldHVybiByZXN1
bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjIgeCwgaGFsZiB5KSB7CisgICAgaGFsZjIgcmVzdWx0Owor
ICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZiB4LCBoYWxmMyB5KSB7CisgICAgaGFs
ZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOworICAgIHJlc3VsdFsxXSA9IHgg
KiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitoYWxmMyBtdWwoaGFsZjMgeCwgaGFsZiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJl
c3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3Vs
dFsyXSA9IHhbMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZiB4
LCBoYWxmNCB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBd
OworICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOwor
ICAgIHJlc3VsdFszXSA9IHggKiB5WzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBt
dWwoaGFsZjQgeCwgaGFsZiB5KSB7CisgICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhb
Ml0gKiB5OworICAgIHJlc3VsdFszXSA9IHhbM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDIgbXVsKGZsb2F0IHgsIGZsb2F0MiB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAg
ICByZXN1bHRbMF0gPSB4ICogeVswXTsKKyAgICByZXN1bHRbMV0gPSB4ICogeVsxXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQyIG11bChmbG9hdDIgeCwgZmxvYXQgeSkgeworICAgIGZs
b2F0MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0geFswXSAqIHk7CisgICAgcmVzdWx0WzFdID0g
eFsxXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQgeCwgZmxv
YXQzIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHggKiB5WzBdOwor
ICAgIHJlc3VsdFsxXSA9IHggKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IHggKiB5WzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0MyB4LCBmbG9hdCB5KSB7CisgICAg
ZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSB4WzBdICogeTsKKyAgICByZXN1bHRbMV0g
PSB4WzFdICogeTsKKyAgICByZXN1bHRbMl0gPSB4WzJdICogeTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQ0IG11bChmbG9hdCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7
CisgICAgcmVzdWx0WzBdID0geCAqIHlbMF07CisgICAgcmVzdWx0WzFdID0geCAqIHlbMV07Cisg
ICAgcmVzdWx0WzJdID0geCAqIHlbMl07CisgICAgcmVzdWx0WzNdID0geCAqIHlbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwoZmxvYXQ0IHgsIGZsb2F0IHkpIHsKKyAgICBm
bG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IHhbMF0gKiB5OworICAgIHJlc3VsdFsxXSA9
IHhbMV0gKiB5OworICAgIHJlc3VsdFsyXSA9IHhbMl0gKiB5OworICAgIHJlc3VsdFszXSA9IHhb
M10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmIHgsIGhhbGYy
eDIgeSkgeworICAgIGhhbGYyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBd
WzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9
IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMngyIG11bChoYWxmMngyIHgsIGhhbGYgeSkgeworICAgIGhhbGYy
eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFsw
XVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAg
IHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
MngzIG11bChoYWxmIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVswXSA9IHgg
KiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMngzIG11bCho
YWxmMngzIHgsIGhhbGYgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJl
c3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5
OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhb
MV1bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmIHgsIGhh
bGYyeDQgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsy
XSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAgIHJl
c3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFd
OworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IHgg
KiB5WzFdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMng0IHgs
IGhhbGYgeSkgeworICAgIGhhbGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1b
MF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsy
XSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJl
c3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5
OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhb
MV1bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmIHgsIGhh
bGYzeDIgeSkgeworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsw
XSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJl
c3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gyIG11bChoYWxmM3gyIHgsIGhhbGYgeSkg
eworICAgIGhhbGYzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5Owor
ICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1b
MF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsw
XSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmM3gzIG11bChoYWxmIHgsIGhhbGYzeDMgeSkgeworICAgIGhh
bGYzeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3Vs
dFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5
WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVsw
XSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJl
c3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3gz
IG11bChoYWxmM3gzIHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDMgcmVzdWx0OworICAgIHJlc3Vs
dFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5Owor
ICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1b
MF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsy
XSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJl
c3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bChoYWxmIHgsIGhhbGYzeDQgeSkg
eworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5
WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVsw
XSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJl
c3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IHggKiB5WzFdWzNd
OworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHgg
KiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFsy
XVszXSA9IHggKiB5WzJdWzNdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmM3g0IG11bCho
YWxmM3g0IHgsIGhhbGYgeSkgeworICAgIGhhbGYzeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJl
c3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5
OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhb
MV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsx
XVszXSA9IHhbMV1bM10gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAg
IHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0g
KiB5OworICAgIHJlc3VsdFsyXVszXSA9IHhbMl1bM10gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgyIG11bChoYWxmIHgsIGhhbGY0eDIgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHgg
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVsxXSA9IHggKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAg
IHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5WzNd
WzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgyIG11bChoYWxmNHgyIHgsIGhhbGYgeSkgeworICAgIGhhbGY0eDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhb
MF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsx
XVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAg
IHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0g
KiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJldHVybiByZXN1bHQ7
Cit9CitoYWxmNHgzIG11bChoYWxmIHgsIGhhbGY0eDMgeSkgeworICAgIGhhbGY0eDMgcmVzdWx0
OworICAgIHJlc3VsdFswXVswXSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHgg
KiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJd
WzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9
IHggKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5WzNdWzBdOworICAgIHJlc3Vs
dFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IHggKiB5WzNdWzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHgzIHgsIGhhbGYgeSkgewor
ICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAg
IHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0g
KiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9
IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3Vs
dFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5Owor
ICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11b
MF0gKiB5OworICAgIHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFszXVsy
XSA9IHhbM11bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxm
IHgsIGhhbGY0eDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3Vs
dFswXVsyXSA9IHggKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSA9IHggKiB5WzBdWzNdOwor
ICAgIHJlc3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5
WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IHggKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVsz
XSA9IHggKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJl
c3VsdFsyXVsxXSA9IHggKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IHggKiB5WzJdWzJd
OworICAgIHJlc3VsdFsyXVszXSA9IHggKiB5WzJdWzNdOworICAgIHJlc3VsdFszXVswXSA9IHgg
KiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9IHggKiB5WzNdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IHggKiB5WzNdWzJdOworICAgIHJlc3VsdFszXVszXSA9IHggKiB5WzNdWzNdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHg0IG11bChoYWxmNHg0IHgsIGhhbGYgeSkgeworICAg
IGhhbGY0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJl
c3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5
OworICAgIHJlc3VsdFswXVszXSA9IHhbMF1bM10gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsx
XVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsxXVszXSA9IHhbMV1bM10gKiB5OworICAg
IHJlc3VsdFsyXVswXSA9IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0g
KiB5OworICAgIHJlc3VsdFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFsyXVszXSA9
IHhbMl1bM10gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAgIHJlc3Vs
dFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0gKiB5Owor
ICAgIHJlc3VsdFszXVszXSA9IHhbM11bM10gKiB5OwogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0K
LWJvb2wgb3BlcmF0b3I9PTxUOkVxdWF0YWJsZT4odmVjNDxUPiBhLCB2ZWM0PFQ+IGIpCi17Ci0g
ICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueSAmJiBhLnogPT0gYi56ICYmIGEudyA9
PSBiLnc7CitmbG9hdDJ4MiBtdWwoZmxvYXQgeCwgZmxvYXQyeDIgeSkgeworICAgIGZsb2F0Mngy
IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1b
MV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQotCi10aHJl
YWQgVCogb3BlcmF0b3ImW108VD4odGhyZWFkIHZlYzQ8VD4qIGZvbywgdWludCBpbmRleCkKLXsK
LSAgICBpZiAoaW5kZXggPT0gMCkKLSAgICAgICAgcmV0dXJuICZmb28tPng7Ci0gICAgaWYgKGlu
ZGV4ID09IDEpCi0gICAgICAgIHJldHVybiAmZm9vLT55OwotICAgIGlmIChpbmRleCA9PSAyKQot
ICAgICAgICByZXR1cm4gJmZvby0+ejsKLSAgICBpZiAoaW5kZXggPT0gMykKLSAgICAgICAgcmV0
dXJuICZmb28tPnc7Ci0gICAgdHJhcDsKK2Zsb2F0MngyIG11bChmbG9hdDJ4MiB4LCBmbG9hdCB5
KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5
OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhb
MV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJldHVybiBy
ZXN1bHQ7CiB9Ci0KLW5hdGl2ZSB0aHJlYWQgVCogb3BlcmF0b3ImW108VD4odGhyZWFkIFRbXSwg
dWludCk7Ci1uYXRpdmUgdGhyZWFkZ3JvdXAgVCogb3BlcmF0b3ImW108VD4odGhyZWFkZ3JvdXAg
VFtdLCB1aW50KTsKLW5hdGl2ZSBkZXZpY2UgVCogb3BlcmF0b3ImW108VD4oZGV2aWNlIFRbXSwg
dWludCk7Ci1uYXRpdmUgY29uc3RhbnQgVCogb3BlcmF0b3ImW108VD4oY29uc3RhbnQgVFtdLCB1
aW50KTsKLQotbmF0aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KHRocmVhZCBUW10pOwotbmF0
aXZlIHVpbnQgb3BlcmF0b3IubGVuZ3RoPFQ+KHRocmVhZGdyb3VwIFRbXSk7Ci1uYXRpdmUgdWlu
dCBvcGVyYXRvci5sZW5ndGg8VD4oZGV2aWNlIFRbXSk7Ci1uYXRpdmUgdWludCBvcGVyYXRvci5s
ZW5ndGg8VD4oY29uc3RhbnQgVFtdKTsKLQotdWludCBvcGVyYXRvci5sZW5ndGg8VCwgdWludCBs
ZW5ndGg+KFRbbGVuZ3RoXSkKLXsKLSAgICByZXR1cm4gbGVuZ3RoOworZmxvYXQyeDMgbXVsKGZs
b2F0IHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDJ4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0geCAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzBdWzJdID0geCAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0geCAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0g
eCAqIHlbMV1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngzIG11bChmbG9hdDJ4
MyB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9
IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3Vs
dFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5Owor
ICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1b
Ml0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBtdWwoZmxvYXQgeCwgZmxv
YXQyeDQgeSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1b
Ml0gPSB4ICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSB4ICogeVswXVszXTsKKyAgICBy
ZXN1bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV1bMl0gPSB4ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSB4
ICogeVsxXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQyeDQgbXVsKGZsb2F0Mng0
IHgsIGZsb2F0IHkpIHsKKyAgICBmbG9hdDJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0g
eFswXVswXSAqIHk7CisgICAgcmVzdWx0WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0
WzBdWzJdID0geFswXVsyXSAqIHk7CisgICAgcmVzdWx0WzBdWzNdID0geFswXVszXSAqIHk7Cisg
ICAgcmVzdWx0WzFdWzBdID0geFsxXVswXSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsx
XSAqIHk7CisgICAgcmVzdWx0WzFdWzJdID0geFsxXVsyXSAqIHk7CisgICAgcmVzdWx0WzFdWzNd
ID0geFsxXVszXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIG11bChmbG9h
dCB4LCBmbG9hdDN4MiB5KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsw
XSA9IHggKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJl
c3VsdFsxXVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFd
OworICAgIHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHgg
KiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MiBtdWwoZmxvYXQzeDIg
eCwgZmxvYXQgeSkgeworICAgIGZsb2F0M3gyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4
WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFdICogeTsKKyAgICByZXN1bHRb
MV1bMF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsKKyAg
ICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICogeTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzJdWzFd
ICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDMgbXVsKGZsb2F0IHgsIGZsb2F0
M3gzIHkpIHsKKyAgICBmbG9hdDN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geCAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJd
ID0geCAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0geCAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0geCAqIHlbMV1bMl07
CisgICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzFdID0geCAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0M3gzIG11bChmbG9hdDN4MyB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQz
eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFsw
XVsxXSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAg
IHJlc3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0g
KiB5OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9
IHhbMl1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3Vs
dFsyXVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4NCBt
dWwoZmxvYXQgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0M3g0IHJlc3VsdDsKKyAgICByZXN1
bHRbMF1bMF0gPSB4ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsK
KyAgICByZXN1bHRbMF1bMl0gPSB4ICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSB4ICog
eVswXVszXTsKKyAgICByZXN1bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1b
MV0gPSB4ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSB4ICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSB4ICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4ICogeVsyXVsw
XTsKKyAgICByZXN1bHRbMl1bMV0gPSB4ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4
ICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSB4ICogeVsyXVszXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQzeDQgbXVsKGZsb2F0M3g0IHgsIGZsb2F0IHkpIHsKKyAgICBmbG9h
dDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAqIHk7CisgICAgcmVzdWx0
WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzBdWzJdID0geFswXVsyXSAqIHk7Cisg
ICAgcmVzdWx0WzBdWzNdID0geFswXVszXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0geFsxXVsw
XSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzJd
ID0geFsxXVsyXSAqIHk7CisgICAgcmVzdWx0WzFdWzNdID0geFsxXVszXSAqIHk7CisgICAgcmVz
dWx0WzJdWzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7
CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXSAqIHk7CisgICAgcmVzdWx0WzJdWzNdID0geFsy
XVszXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIG11bChmbG9hdCB4LCBm
bG9hdDR4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHgg
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsxXSA9IHggKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVswXSA9IHggKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsxXSA9IHggKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVswXSA9IHggKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsxXSA9IHggKiB5WzJd
WzFdOworICAgIHJlc3VsdFszXVswXSA9IHggKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsxXSA9
IHggKiB5WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MiBtdWwoZmxvYXQ0
eDIgeCwgZmxvYXQgeSkgeworICAgIGZsb2F0NHgyIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0g
PSB4WzBdWzBdICogeTsKKyAgICByZXN1bHRbMF1bMV0gPSB4WzBdWzFdICogeTsKKyAgICByZXN1
bHRbMV1bMF0gPSB4WzFdWzBdICogeTsKKyAgICByZXN1bHRbMV1bMV0gPSB4WzFdWzFdICogeTsK
KyAgICByZXN1bHRbMl1bMF0gPSB4WzJdWzBdICogeTsKKyAgICByZXN1bHRbMl1bMV0gPSB4WzJd
WzFdICogeTsKKyAgICByZXN1bHRbM11bMF0gPSB4WzNdWzBdICogeTsKKyAgICByZXN1bHRbM11b
MV0gPSB4WzNdWzFdICogeTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDMgbXVsKGZs
b2F0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBd
WzBdID0geCAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzFdID0geCAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzBdWzJdID0geCAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzBdID0geCAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzFdWzFdID0geCAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0g
eCAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzBdID0geCAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzJdWzFdID0geCAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0geCAqIHlbMl1bMl07Cisg
ICAgcmVzdWx0WzNdWzBdID0geCAqIHlbM11bMF07CisgICAgcmVzdWx0WzNdWzFdID0geCAqIHlb
M11bMV07CisgICAgcmVzdWx0WzNdWzJdID0geCAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0NHgzIG11bChmbG9hdDR4MyB4LCBmbG9hdCB5KSB7CisgICAgZmxvYXQ0eDMg
cmVzdWx0OworICAgIHJlc3VsdFswXVswXSA9IHhbMF1bMF0gKiB5OworICAgIHJlc3VsdFswXVsx
XSA9IHhbMF1bMV0gKiB5OworICAgIHJlc3VsdFswXVsyXSA9IHhbMF1bMl0gKiB5OworICAgIHJl
c3VsdFsxXVswXSA9IHhbMV1bMF0gKiB5OworICAgIHJlc3VsdFsxXVsxXSA9IHhbMV1bMV0gKiB5
OworICAgIHJlc3VsdFsxXVsyXSA9IHhbMV1bMl0gKiB5OworICAgIHJlc3VsdFsyXVswXSA9IHhb
Ml1bMF0gKiB5OworICAgIHJlc3VsdFsyXVsxXSA9IHhbMl1bMV0gKiB5OworICAgIHJlc3VsdFsy
XVsyXSA9IHhbMl1bMl0gKiB5OworICAgIHJlc3VsdFszXVswXSA9IHhbM11bMF0gKiB5OworICAg
IHJlc3VsdFszXVsxXSA9IHhbM11bMV0gKiB5OworICAgIHJlc3VsdFszXVsyXSA9IHhbM11bMl0g
KiB5OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4NCBtdWwoZmxvYXQgeCwgZmxvYXQ0
eDQgeSkgeworICAgIGZsb2F0NHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bMF0gPSB4ICogeVsw
XVswXTsKKyAgICByZXN1bHRbMF1bMV0gPSB4ICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0g
PSB4ICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gPSB4ICogeVswXVszXTsKKyAgICByZXN1
bHRbMV1bMF0gPSB4ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMV0gPSB4ICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMV1bMl0gPSB4ICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSB4ICog
eVsxXVszXTsKKyAgICByZXN1bHRbMl1bMF0gPSB4ICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1b
MV0gPSB4ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSB4ICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSB4ICogeVsyXVszXTsKKyAgICByZXN1bHRbM11bMF0gPSB4ICogeVszXVsw
XTsKKyAgICByZXN1bHRbM11bMV0gPSB4ICogeVszXVsxXTsKKyAgICByZXN1bHRbM11bMl0gPSB4
ICogeVszXVsyXTsKKyAgICByZXN1bHRbM11bM10gPSB4ICogeVszXVszXTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorZmxvYXQ0eDQgbXVsKGZsb2F0NHg0IHgsIGZsb2F0IHkpIHsKKyAgICBmbG9h
dDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzBdID0geFswXVswXSAqIHk7CisgICAgcmVzdWx0
WzBdWzFdID0geFswXVsxXSAqIHk7CisgICAgcmVzdWx0WzBdWzJdID0geFswXVsyXSAqIHk7Cisg
ICAgcmVzdWx0WzBdWzNdID0geFswXVszXSAqIHk7CisgICAgcmVzdWx0WzFdWzBdID0geFsxXVsw
XSAqIHk7CisgICAgcmVzdWx0WzFdWzFdID0geFsxXVsxXSAqIHk7CisgICAgcmVzdWx0WzFdWzJd
ID0geFsxXVsyXSAqIHk7CisgICAgcmVzdWx0WzFdWzNdID0geFsxXVszXSAqIHk7CisgICAgcmVz
dWx0WzJdWzBdID0geFsyXVswXSAqIHk7CisgICAgcmVzdWx0WzJdWzFdID0geFsyXVsxXSAqIHk7
CisgICAgcmVzdWx0WzJdWzJdID0geFsyXVsyXSAqIHk7CisgICAgcmVzdWx0WzJdWzNdID0geFsy
XVszXSAqIHk7CisgICAgcmVzdWx0WzNdWzBdID0geFszXVswXSAqIHk7CisgICAgcmVzdWx0WzNd
WzFdID0geFszXVsxXSAqIHk7CisgICAgcmVzdWx0WzNdWzJdID0geFszXVsyXSAqIHk7CisgICAg
cmVzdWx0WzNdWzNdID0geFszXVszXSAqIHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK3VjaGFy
MiBtdWwodWNoYXIyIHgsIHVjaGFyMiB5KSB7CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK3Vj
aGFyMyBtdWwodWNoYXIzIHgsIHVjaGFyMyB5KSB7CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30K
K3VjaGFyNCBtdWwodWNoYXI0IHgsIHVjaGFyNCB5KSB7CisgICAgcmV0dXJuIGRvdCh4LCB5KTsK
K30KK3VzaG9ydDIgbXVsKHVzaG9ydDIgeCwgdXNob3J0MiB5KSB7CisgICAgcmV0dXJuIGRvdCh4
LCB5KTsKK30KK3VzaG9ydDMgbXVsKHVzaG9ydDMgeCwgdXNob3J0MyB5KSB7CisgICAgcmV0dXJu
IGRvdCh4LCB5KTsKK30KK3VzaG9ydDQgbXVsKHVzaG9ydDQgeCwgdXNob3J0NCB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK3VpbnQyIG11bCh1aW50MiB4LCB1aW50MiB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK3VpbnQzIG11bCh1aW50MyB4LCB1aW50MyB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK3VpbnQ0IG11bCh1aW50NCB4LCB1aW50NCB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2NoYXIyIG11bChjaGFyMiB4LCBjaGFyMiB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2NoYXIzIG11bChjaGFyMyB4LCBjaGFyMyB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2NoYXI0IG11bChjaGFyNCB4LCBjaGFyNCB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK3Nob3J0MiBtdWwoc2hvcnQyIHgsIHNob3J0MiB5KSB7Cisg
ICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK3Nob3J0MyBtdWwoc2hvcnQzIHgsIHNob3J0MyB5KSB7
CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK3Nob3J0NCBtdWwoc2hvcnQ0IHgsIHNob3J0NCB5
KSB7CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2ludDIgbXVsKGludDIgeCwgaW50MiB5KSB7
CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2ludDMgbXVsKGludDMgeCwgaW50MyB5KSB7Cisg
ICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2ludDQgbXVsKGludDQgeCwgaW50NCB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2hhbGYyIG11bChoYWxmMiB4LCBoYWxmMiB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2hhbGYzIG11bChoYWxmMyB4LCBoYWxmMyB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2hhbGY0IG11bChoYWxmNCB4LCBoYWxmNCB5KSB7CisgICAg
cmV0dXJuIGRvdCh4LCB5KTsKK30KK2Zsb2F0MiBtdWwoZmxvYXQyIHgsIGZsb2F0MiB5KSB7Cisg
ICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2Zsb2F0MyBtdWwoZmxvYXQzIHgsIGZsb2F0MyB5KSB7
CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2Zsb2F0NCBtdWwoZmxvYXQ0IHgsIGZsb2F0NCB5
KSB7CisgICAgcmV0dXJuIGRvdCh4LCB5KTsKK30KK2hhbGYyIG11bChoYWxmMiB4LCBoYWxmMngy
IHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRb
MF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFs
ZjIgbXVsKGhhbGYyeDIgeCwgaGFsZjIgeSkgeworICAgIGhhbGYyIHJlc3VsdDsKKyAgICByZXN1
bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRb
MF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0g
Kz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZjIgeCwgaGFsZjJ4MyB5KSB7CisgICAg
aGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0g
Kz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0g
eFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitoYWxmMiBtdWwoaGFsZjJ4MyB4LCBoYWxmMyB5KSB7CisgICAgaGFs
ZjIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0g
KiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMF0g
Kz0geFswXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0g
eFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJl
c3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjQg
bXVsKGhhbGYyIHgsIGhhbGYyeDQgeSkgeworICAgIGhhbGY0IHJlc3VsdDsKKyAgICByZXN1bHRb
MF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0g
Kz0geFsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0g
eFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3Vs
dFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJlc3VsdFsz
XSArPSB4WzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM10gKz0geFsxXSAqIHlbMV1bM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG11bChoYWxmMng0IHgsIGhhbGY0IHkpIHsKKyAg
ICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFsw
XVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3Vs
dFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVszXSAqIHlbM107
CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07Cisg
ICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJd
ICogeVsyXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2hhbGYyIG11bChoYWxmMyB4LCBoYWxmM3gyIHkpIHsKKyAgICBoYWxmMiByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzJd
ICogeVsyXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFd
ICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFs
ZjN4MiB4LCBoYWxmMiB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7
CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBd
WzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBd
ICogeVswXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzJd
ID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9
IHhbMl1bMV0gKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZjMg
eCwgaGFsZjN4MyB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7Cisg
ICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICog
eVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFd
ID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9
IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICogeVsyXVsxXTsKKyAgICBy
ZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl0gKiB5WzJdWzJd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBtdWwoaGFsZjN4MyB4LCBoYWxmMyB5KSB7
CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9
IHhbMF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICBy
ZXN1bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFd
OworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMl0gPSAwOwor
ICAgIHJlc3VsdFsyXSArPSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsx
XSAqIHlbMV07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMl0gKiB5WzJdOworICAgIHJldHVybiBy
ZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjMgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjQgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XSArPSB4WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSAr
PSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzJdICs9IHhbMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVz
dWx0WzNdICs9IHhbMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVsz
XTsKKyAgICByZXN1bHRbM10gKz0geFsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KK2hhbGYzIG11bChoYWxmM3g0IHgsIGhhbGY0IHkpIHsKKyAgICBoYWxmMyByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICog
eVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVszXSAqIHlbM107CisgICAgcmVzdWx0WzFdID0g
MDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsz
XSAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyIG11bChoYWxmNCB4LCBoYWxm
NHgyIHkpIHsKKyAgICBoYWxmMiByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1
bHRbMF0gKz0geFswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFswXSArPSB4WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsz
XSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XSArPSB4WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFszXSAqIHlbM11bMV07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG11bChoYWxmNHgyIHgsIGhhbGYyIHkpIHsKKyAg
ICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFsw
XVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3Vs
dFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsx
XSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSAr
PSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsxXSAqIHlbMV07CisgICAg
cmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAgcmVz
dWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmMyBt
dWwoaGFsZjQgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjMgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVz
dWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdICs9IHhb
M10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJdICs9IHhbMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbM10gKiB5WzNdWzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNCBtdWwoaGFsZjR4MyB4LCBoYWxmMyB5KSB7Cisg
ICAgaGFsZjQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhb
MF1bMF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1
bHRbMF0gKz0geFswXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRb
MV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAg
IHJlc3VsdFsyXSArPSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsxXSAq
IHlbMV07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMl0gKiB5WzJdOworICAgIHJlc3VsdFszXSA9
IDA7CisgICAgcmVzdWx0WzNdICs9IHhbM11bMF0gKiB5WzBdOworICAgIHJlc3VsdFszXSArPSB4
WzNdWzFdICogeVsxXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsyXSAqIHlbMl07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2hhbGY0IG11bChoYWxmNCB4LCBoYWxmNHg0IHkpIHsKKyAgICBoYWxm
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFszXSAqIHlbM11bMF07CisgICAg
cmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMV0gKz0geFszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdID0gMDsK
KyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
Ml0gKz0geFszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10g
Kz0geFswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0gKiB5WzFdWzNdOworICAg
IHJlc3VsdFszXSArPSB4WzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbM10gKz0geFszXSAqIHlb
M11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0IG11bChoYWxmNHg0IHgsIGhhbGY0
IHkpIHsKKyAgICBoYWxmNCByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRb
MF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsz
XSAqIHlbM107CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAq
IHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSAr
PSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAg
cmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVz
dWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsy
XTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVszXSAqIHlbM107CisgICAgcmVzdWx0WzNdID0gMDsK
KyAgICByZXN1bHRbM10gKz0geFszXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzNdICs9IHhbM11b
MV0gKiB5WzFdOworICAgIHJlc3VsdFszXSArPSB4WzNdWzJdICogeVsyXTsKKyAgICByZXN1bHRb
M10gKz0geFszXVszXSAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBtdWwo
ZmxvYXQyIHgsIGZsb2F0MngyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSAr
PSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBtdWwoZmxvYXQyeDIgeCwgZmxvYXQyIHkpIHsKKyAgICBm
bG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF1b
MF0gKiB5WzBdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzFdICogeVsxXTsKKyAgICByZXN1bHRb
MV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzBdICogeVswXTsKKyAgICByZXN1bHRbMV0g
Kz0geFsxXVsxXSAqIHlbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxv
YXQyIHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9
IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJd
ICs9IHhbMV0gKiB5WzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDIgbXVsKGZs
b2F0MngzIHgsIGZsb2F0MyB5KSB7CisgICAgZmxvYXQyIHJlc3VsdDsKKyAgICByZXN1bHRbMF0g
PSAwOworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0g
eFswXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMl0gKiB5WzJdOworICAgIHJl
c3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3Vs
dFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NCBtdWwoZmxvYXQyIHgsIGZsb2F0Mng0IHkp
IHsKKyAgICBmbG9hdDQgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBd
ICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1
bHRbMl0gKz0geFswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFszXSA9IDA7CisgICAgcmVzdWx0WzNdICs9IHhbMF0gKiB5WzBdWzNdOwor
ICAgIHJlc3VsdFszXSArPSB4WzFdICogeVsxXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQyIG11bChmbG9hdDJ4NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0MiByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICog
eVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVszXSAqIHlbM107CisgICAgcmVzdWx0WzFdID0g
MDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBt
dWwoZmxvYXQzIHgsIGZsb2F0M3gyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3Vs
dFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsw
XSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzFdICs9IHhbMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICogeVsy
XVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzIG11bChmbG9hdDN4MiB4LCBmbG9h
dDIgeSkgeworICAgIGZsb2F0MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1
bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFd
OworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOwor
ICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAg
IHJlc3VsdFsyXSArPSB4WzJdWzBdICogeVswXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsxXSAq
IHlbMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQzIHgsIGZsb2F0
M3gzIHkpIHsKKyAgICBmbG9hdDMgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVz
dWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdID0gMDsK
KyAgICByZXN1bHRbMV0gKz0geFswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRb
Ml0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl0g
Kz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdICs9IHhbMl0gKiB5WzJdWzJdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDMgbXVsKGZsb2F0M3gzIHgsIGZsb2F0MyB5KSB7Cisg
ICAgZmxvYXQzIHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJlc3VsdFswXSArPSB4
WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlbMV07CisgICAgcmVz
dWx0WzBdICs9IHhbMF1bMl0gKiB5WzJdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0
WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzFdICogeVsxXTsK
KyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07CisgICAgcmVzdWx0WzJdID0gMDsKKyAg
ICByZXN1bHRbMl0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0g
KiB5WzFdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorZmxvYXQ0IG11bChmbG9hdDMgeCwgZmxvYXQzeDQgeSkgeworICAgIGZsb2F0NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzBdICs9IHhbMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXSArPSB4
WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSArPSB4WzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAgcmVzdWx0WzJd
ICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbMl0gKz0geFsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdID0gMDsKKyAgICBy
ZXN1bHRbM10gKz0geFswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMV0gKiB5WzFd
WzNdOworICAgIHJlc3VsdFszXSArPSB4WzJdICogeVsyXVszXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzIG11bChmbG9hdDN4NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0MyByZXN1
bHQ7CisgICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07
CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBd
WzJdICogeVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVszXSAqIHlbM107CisgICAgcmVzdWx0
WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFd
ICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAg
ICByZXN1bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICBy
ZXN1bHRbMl0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5
WzFdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMl0gKz0g
eFsyXVszXSAqIHlbM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MiBtdWwoZmxvYXQ0
IHgsIGZsb2F0NHgyIHkpIHsKKyAgICBmbG9hdDIgcmVzdWx0OworICAgIHJlc3VsdFswXSA9IDA7
CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXSArPSB4WzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0
WzBdICs9IHhbM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXSA9IDA7CisgICAgcmVzdWx0WzFd
ICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdICs9IHhbM10gKiB5
WzNdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbXVsKGZsb2F0NHgyIHgsIGZs
b2F0MiB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOworICAgIHJl
c3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVsxXSAqIHlb
MV07CisgICAgcmVzdWx0WzFdID0gMDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07
CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsyXSA9IDA7Cisg
ICAgcmVzdWx0WzJdICs9IHhbMl1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzFd
ICogeVsxXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4WzNdWzBdICog
eVswXTsKKyAgICByZXN1bHRbM10gKz0geFszXVsxXSAqIHlbMV07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2Zsb2F0MyBtdWwoZmxvYXQ0IHgsIGZsb2F0NHgzIHkpIHsKKyAgICBmbG9hdDMgcmVz
dWx0OworICAgIHJlc3VsdFswXSA9IDA7CisgICAgcmVzdWx0WzBdICs9IHhbMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXSArPSB4WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbM10gKiB5WzNdWzBdOworICAgIHJlc3Vs
dFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XSArPSB4WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzFdICs9IHhbM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXSA9IDA7CisgICAg
cmVzdWx0WzJdICs9IHhbMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzJdICs9
IHhbM10gKiB5WzNdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbXVsKGZsb2F0
NHgzIHgsIGZsb2F0MyB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAw
OworICAgIHJlc3VsdFswXSArPSB4WzBdWzBdICogeVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsw
XVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzBdICs9IHhbMF1bMl0gKiB5WzJdOworICAgIHJlc3Vs
dFsxXSA9IDA7CisgICAgcmVzdWx0WzFdICs9IHhbMV1bMF0gKiB5WzBdOworICAgIHJlc3VsdFsx
XSArPSB4WzFdWzFdICogeVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXVsyXSAqIHlbMl07Cisg
ICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRbMl0gKz0geFsyXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICog
eVsyXTsKKyAgICByZXN1bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4WzNdWzBdICogeVsw
XTsKKyAgICByZXN1bHRbM10gKz0geFszXVsxXSAqIHlbMV07CisgICAgcmVzdWx0WzNdICs9IHhb
M11bMl0gKiB5WzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDQgbXVsKGZsb2F0NCB4
LCBmbG9hdDR4NCB5KSB7CisgICAgZmxvYXQ0IHJlc3VsdDsKKyAgICByZXN1bHRbMF0gPSAwOwor
ICAgIHJlc3VsdFswXSArPSB4WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF0gKz0geFsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdICs9IHhbMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsw
XSArPSB4WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV0gPSAwOworICAgIHJlc3VsdFsxXSAr
PSB4WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV0gKz0geFsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzFdICs9IHhbMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXSArPSB4WzNdICogeVsz
XVsxXTsKKyAgICByZXN1bHRbMl0gPSAwOworICAgIHJlc3VsdFsyXSArPSB4WzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMl0gKz0geFsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdICs9IHhb
Ml0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXSArPSB4WzNdICogeVszXVsyXTsKKyAgICByZXN1
bHRbM10gPSAwOworICAgIHJlc3VsdFszXSArPSB4WzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
M10gKz0geFsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzNdICs9IHhbMl0gKiB5WzJdWzNdOwor
ICAgIHJlc3VsdFszXSArPSB4WzNdICogeVszXVszXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQor
ZmxvYXQ0IG11bChmbG9hdDR4NCB4LCBmbG9hdDQgeSkgeworICAgIGZsb2F0NCByZXN1bHQ7Cisg
ICAgcmVzdWx0WzBdID0gMDsKKyAgICByZXN1bHRbMF0gKz0geFswXVswXSAqIHlbMF07CisgICAg
cmVzdWx0WzBdICs9IHhbMF1bMV0gKiB5WzFdOworICAgIHJlc3VsdFswXSArPSB4WzBdWzJdICog
eVsyXTsKKyAgICByZXN1bHRbMF0gKz0geFswXVszXSAqIHlbM107CisgICAgcmVzdWx0WzFdID0g
MDsKKyAgICByZXN1bHRbMV0gKz0geFsxXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzFdICs9IHhb
MV1bMV0gKiB5WzFdOworICAgIHJlc3VsdFsxXSArPSB4WzFdWzJdICogeVsyXTsKKyAgICByZXN1
bHRbMV0gKz0geFsxXVszXSAqIHlbM107CisgICAgcmVzdWx0WzJdID0gMDsKKyAgICByZXN1bHRb
Ml0gKz0geFsyXVswXSAqIHlbMF07CisgICAgcmVzdWx0WzJdICs9IHhbMl1bMV0gKiB5WzFdOwor
ICAgIHJlc3VsdFsyXSArPSB4WzJdWzJdICogeVsyXTsKKyAgICByZXN1bHRbMl0gKz0geFsyXVsz
XSAqIHlbM107CisgICAgcmVzdWx0WzNdID0gMDsKKyAgICByZXN1bHRbM10gKz0geFszXVswXSAq
IHlbMF07CisgICAgcmVzdWx0WzNdICs9IHhbM11bMV0gKiB5WzFdOworICAgIHJlc3VsdFszXSAr
PSB4WzNdWzJdICogeVsyXTsKKyAgICByZXN1bHRbM10gKz0geFszXVszXSAqIHlbM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbXVsKGhhbGYyeDIgeCwgaGFsZjJ4MiB5KSB7Cisg
ICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1b
Ml0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFd
WzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9Cito
YWxmMngzIG11bChoYWxmMngyIHgsIGhhbGYyeDMgeSkgeworICAgIGhhbGYyeDMgcmVzdWx0Owor
ICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
MF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJldHVy
biByZXN1bHQ7Cit9CitoYWxmMng0IG11bChoYWxmMngyIHgsIGhhbGYyeDQgeSkgeworICAgIGhh
bGYyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYyeDIgbXVsKGhhbGYyeDMgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjJ4MiBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAw
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1b
Ml0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdID0g
MDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICog
eVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjJ4MyBtdWwoaGFsZjJ4MyB4LCBo
YWxmM3gzIHkpIHsKKyAgICBoYWxmMngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOwor
ICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJd
WzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsy
XVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsw
XSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAg
IHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQoraGFsZjJ4NCBtdWwoaGFsZjJ4MyB4LCBoYWxmM3g0IHkpIHsKKyAgICBoYWxmMng0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1b
MV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJd
WzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsy
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBd
ICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlb
Ml1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDIgbXVsKGhhbGYyeDQgeCwgaGFs
ZjR4MiB5KSB7CisgICAgaGFsZjJ4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAg
ICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsw
XTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBd
WzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11bMV07Cisg
ICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDMgbXVs
KGhhbGYyeDQgeCwgaGFsZjR4MyB5KSB7CisgICAgaGFsZjJ4MyByZXN1bHQ7CisgICAgcmVzdWx0
WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4
WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMF07
CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsz
XSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAg
ICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzNdID0g
MDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICog
eVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11b
Ml07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYyeDQgbXVsKGhhbGYyeDQgeCwgaGFsZjR4
NCB5KSB7CisgICAgaGFsZjJ4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzRd
ID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0
XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlb
M11bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsw
XSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAg
IHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0g
eFswXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1b
NF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAg
ICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9
IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFd
WzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMl07Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
M107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAq
IHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbXVsKGhhbGYzeDIgeCwg
aGFsZjJ4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsK
KyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJd
ICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4
WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMg
bXVsKGhhbGYzeDIgeCwgaGFsZjJ4MyB5KSB7CisgICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVz
dWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSA9
IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsw
XVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJl
c3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNd
ID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlb
MV1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbXVsKGhhbGYzeDIgeCwgaGFs
ZjJ4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1b
M107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsx
XVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsx
XSAqIHlbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbXVsKGhhbGYzeDMg
eCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0g
MDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICog
eVsyXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAq
IHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0g
PSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
Ml1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMl0g
KiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDMgbXVsKGhhbGYzeDMgeCwgaGFsZjN4MyB5KSB7CisgICAgaGFsZjN4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAw
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdID0g
MDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICog
eVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bM10g
PSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0g
KiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KK2hhbGYzeDQgbXVsKGhhbGYzeDMgeCwgaGFsZjN4NCB5KSB7CisgICAgaGFsZjN4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAw
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRdID0g
MDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICog
eVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9
IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0g
PSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0g
KiB5WzJdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhb
Ml1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzRd
ID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMl07
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXVs0
XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsy
XSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDIgbXVsKGhhbGYzeDQg
eCwgaGFsZjR4MiB5KSB7CisgICAgaGFsZjN4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0g
MDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICog
eVsyXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVz
dWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11b
MV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAq
IHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICBy
ZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzJd
ID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDMgbXVsKGhhbGYzeDQgeCwgaGFsZjR4MyB5KSB7Cisg
ICAgaGFsZjN4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBd
WzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMl07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRb
MV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzNdID0gMDsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0
WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11bMV07
CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsz
XSAqIHlbM11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGYzeDQgbXVsKGhhbGYzeDQg
eCwgaGFsZjR4NCB5KSB7CisgICAgaGFsZjN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0g
MDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICog
eVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11b
MV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFd
WzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlb
M11bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsw
XSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJd
WzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMl07Cisg
ICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1b
M107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsy
XVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAq
IHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbXVsKGhhbGY0eDIgeCwg
aGFsZjJ4MiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsK
KyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJd
ICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3VsdFsxXVsyXSArPSB4
WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAw
OworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1
bHRbM11bMl0gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9
IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsx
XTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4MyBtdWwoaGFsZjR4MiB4LCBoYWxmMngz
IHkpIHsKKyAgICBoYWxmNHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJl
c3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFsw
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVswXTsK
KyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzNd
ID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAg
cmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzJd
OworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM11b
M10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAg
ICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzNdICs9
IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNd
WzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICog
eVsxXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQoraGFsZjR4NCBtdWwoaGFsZjR4MiB4LCBo
YWxmMng0IHkpIHsKKyAgICBoYWxmNHg0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0
WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNd
OworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSAr
PSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1b
MF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzJdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM11bNF0g
PSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVsxXSAqIHlbMV1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0
eDIgbXVsKGhhbGY0eDMgeCwgaGFsZjN4MiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsy
XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3Vs
dFswXVsyXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMl0gKiB5WzJdWzFdOworICAg
IHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1
bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVsw
XTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJd
WzJdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVz
dWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsz
XVsyXSArPSB4WzNdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFsz
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMl0gKiB5WzJdWzFdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxmNHgzIG11bChoYWxmNHgzIHgsIGhhbGYzeDMgeSkg
eworICAgIGhhbGY0eDMgcmVzdWx0OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0
WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAg
IHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVz
dWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBd
WzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRb
M11bM10gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICBy
ZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzNdICs9IHhb
M11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitoYWxm
NHg0IG11bChoYWxmNHgzIHgsIGhhbGYzeDQgeSkgeworICAgIGhhbGY0eDQgcmVzdWx0OworICAg
IHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJl
c3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBd
WzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsK
KyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzNd
OworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICog
eVswXVsyXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVz
dWx0WzNdWzRdICs9IHhbM11bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7Cisg
ICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSAr
PSB4WzNdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1b
M107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDIgbXVsKGhhbGY0eDQgeCwgaGFsZjR4
MiB5KSB7CisgICAgaGFsZjR4MiByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICBy
ZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhb
MF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzJd
ID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsy
XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVszXSAqIHlb
M11bMF07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0g
eFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5
WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1
bHRbMl1bMl0gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAg
ICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9
IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVsx
XTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzNd
WzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVsyXSArPSB4WzNd
WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVszXSAqIHlbM11bMF07Cisg
ICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsz
XVsyXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVszXSAq
IHlbM11bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDMgbXVsKGhhbGY0eDQgeCwg
aGFsZjR4MyB5KSB7CisgICAgaGFsZjR4MyByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsK
KyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNd
ICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0
WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4
WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVszXSAqIHlbM11bMV07
CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsz
XSAqIHlbM11bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0g
eFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1
bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzNdID0g
MDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICog
eVsyXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVz
dWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAqIHlbMF1bMF07Cisg
ICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVszXSAr
PSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVszXSAqIHlbM11b
MF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsKKyAgICBy
ZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhb
M11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzNdWzNd
ID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0
WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJd
ICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVszXSAqIHlbM11bMV07CisgICAg
cmVzdWx0WzNdWzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVsz
XSArPSB4WzNdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVszXSAqIHlb
M11bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2hhbGY0eDQgbXVsKGhhbGY0eDQgeCwgaGFs
ZjR4NCB5KSB7CisgICAgaGFsZjR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsw
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBd
WzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMV07Cisg
ICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1b
Ml07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAq
IHlbM11bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMF1bNF0g
Kz0geFswXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsy
XVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0
WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMl07
CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlb
MF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsz
XSAqIHlbM11bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICog
eVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMl07CisgICAgcmVz
dWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bM107Cisg
ICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11b
M107CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAq
IHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJl
c3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFsz
XVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0g
Kz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzRdICs9IHhb
M11bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsyXTsK
KyAgICByZXN1bHRbM11bNF0gKz0geFszXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdWzRd
ID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0
WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJd
ICogeVsyXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVszXSAqIHlbM11bM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngyIG11bChmbG9hdDJ4MiB4LCBmbG9hdDJ4MiB5KSB7
CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4
WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDMgbXVsKGZsb2F0MngyIHgsIGZsb2F0MngzIHkpIHsKKyAgICBmbG9hdDJ4MyBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAg
ICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMl07Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mng0IG11bChmbG9hdDJ4MiB4LCBmbG9hdDJ4NCB5
KSB7CisgICAgZmxvYXQyeDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJl
c3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzNdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMV1bNF0g
PSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsx
XVsyXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBd
ICogeVswXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0MngyIG11bChmbG9hdDJ4MyB4LCBmbG9hdDN4MiB5KSB7
CisgICAgZmxvYXQyeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0
WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFd
ICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAg
cmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1bMV07
CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVsy
XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFd
OworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1b
Ml0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0Mngz
IG11bChmbG9hdDJ4MyB4LCBmbG9hdDN4MyB5KSB7CisgICAgZmxvYXQyeDMgcmVzdWx0OworICAg
IHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4NCBtdWwoZmxvYXQyeDMgeCwgZmxvYXQzeDQg
eSkgeworICAgIGZsb2F0Mng0IHJlc3VsdDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAg
cmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bMF07
CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAg
IHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzJd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMV1bNF0gKz0geFsxXVsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zs
b2F0MngyIG11bChmbG9hdDJ4NCB4LCBmbG9hdDR4MiB5KSB7CisgICAgZmxvYXQyeDIgcmVzdWx0
OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5
WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1b
M10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsx
XTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVz
dWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9
IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CitmbG9hdDJ4MyBtdWwoZmxvYXQyeDQgeCwgZmxvYXQ0eDMgeSkgewor
ICAgIGZsb2F0MngzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFsw
XVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAq
IHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJl
c3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOwor
ICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10g
Kz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJd
WzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRb
MF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhb
MF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVsyXTsK
KyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVsw
XVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0
WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzNd
ICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4
WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVsz
XSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3Vs
dFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsx
XSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOworICAg
IHJlc3VsdFsxXVszXSArPSB4WzFdWzNdICogeVszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorZmxvYXQyeDQgbXVsKGZsb2F0Mng0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDJ4NCBy
ZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0g
eFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzBd
WzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVz
dWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBd
WzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bM107Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRd
ICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsy
XVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bM107CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KK2Zsb2F0M3gyIG11bChmbG9hdDN4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAg
ZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJd
ICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMF1bMl0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzFdWzJdID0gMDsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsy
XSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0g
eFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1b
Ml0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5
WzFdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBtdWwoZmxvYXQzeDIgeCwg
ZmxvYXQyeDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAw
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
MV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsy
XTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVszXSA9
IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFd
WzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQgbXVsKGZsb2F0M3gyIHgsIGZsb2F0Mng0IHkpIHsK
KyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0g
KiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVsw
XVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0
WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAg
cmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsx
XSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5
WzBdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVszXTsKKyAgICByZXN1
bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzRdID0g
MDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJd
WzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
M107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIG11bChmbG9hdDN4MyB4LCBmbG9h
dDN4MiB5KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSAr
PSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1b
MF07CisgICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAq
IHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJl
c3VsdFswXVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJd
WzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsK
KyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJldHVybiByZXN1bHQ7Cit9
CitmbG9hdDN4MyBtdWwoZmxvYXQzeDMgeCwgZmxvYXQzeDMgeSkgeworICAgIGZsb2F0M3gzIHJl
c3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBd
ICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAg
cmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFswXVszXSA9IDA7
CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsz
XSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsyXSAqIHlb
Ml1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsw
XSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAw
OworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1b
M10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5
WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1b
MF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAg
ICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzNdID0g
MDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFd
WzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICog
eVsyXVsyXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJd
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVszXSA9
IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsy
XVszXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsyXSAq
IHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsy
XVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzJdOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorZmxvYXQzeDQgbXVsKGZsb2F0M3gzIHgsIGZsb2F0M3g0IHkpIHsKKyAgICBmbG9hdDN4
NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOwor
ICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0g
PSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRb
MF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0g
KiB5WzJdWzFdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhb
MF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsK
KyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzBdWzRd
ID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0
WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJd
ICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4
WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMF07
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVs0
XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0g
eFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJd
OworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1b
NF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVszXTsKKyAgICByZXN1
bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1b
Ml0gKiB5WzJdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJd
WzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSAr
PSB4WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1b
Ml07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsy
XVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNdOworICAgIHJl
c3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsy
XVsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0M3gyIG11bChmbG9h
dDN4NCB4LCBmbG9hdDR4MiB5KSB7CisgICAgZmxvYXQzeDIgcmVzdWx0OworICAgIHJlc3VsdFsw
XVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFsw
XVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOwor
ICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10g
KiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhb
MV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsK
KyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJd
ICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0
WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFd
ICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAg
cmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7
CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsy
XSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzBdOworICAgIHJlc3Vs
dFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAg
IHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0g
eFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFd
OworICAgIHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDN4MyBtdWwoZmxvYXQzeDQgeCwgZmxvYXQ0
eDMgeSkgeworICAgIGZsb2F0M3gzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBd
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMF1b
M10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1b
Ml0gKiB5WzJdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVsxXTsKKyAg
ICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsy
XTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBd
WzNdICs9IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICog
eVszXVsyXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAq
IHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOwor
ICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10g
Kz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJd
WzJdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzNdICogeVszXVsyXTsKKyAgICByZXN1bHRb
Ml1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhb
Ml1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzNdICogeVszXVswXTsK
KyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzNd
ICogeVszXVsxXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07
CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXVsz
XSArPSB4WzJdWzNdICogeVszXVsyXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQzeDQg
bXVsKGZsb2F0M3g0IHgsIGZsb2F0NHg0IHkpIHsKKyAgICBmbG9hdDN4NCByZXN1bHQ7CisgICAg
cmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0
XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlb
M11bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0g
eFswXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9
IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsz
XTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzFd
WzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVz
dWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMF07Cisg
ICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAq
IHlbM11bMV07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0g
KiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsK
KyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRd
ICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0
WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMV07
CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlb
MF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3Vs
dFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsz
XSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVszXSAqIHlbM11bM107CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgy
IG11bChmbG9hdDR4MiB4LCBmbG9hdDJ4MiB5KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAg
IHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBd
OworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1b
Ml0gPSAwOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1
bHRbMF1bMl0gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzFdWzJdID0gMDsKKyAg
ICByZXN1bHRbMV1bMl0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9
IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFd
WzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICog
eVsxXVsxXTsKKyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJd
WzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMF07Cisg
ICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsz
XVsyXSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJl
c3VsdFszXVsyXSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gPSAwOwor
ICAgIHJlc3VsdFszXVsyXSArPSB4WzNdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bMl0g
Kz0geFszXVsxXSAqIHlbMV1bMV07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgzIG11
bChmbG9hdDR4MiB4LCBmbG9hdDJ4MyB5KSB7CisgICAgZmxvYXQ0eDMgcmVzdWx0OworICAgIHJl
c3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5WzBdWzBdOwor
ICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bM10g
PSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRb
MF1bM10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICBy
ZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9IHhb
MF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVszXSA9IDA7CisgICAgcmVzdWx0WzFdWzNd
ICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzFdICogeVsx
XVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzFdWzNdID0gMDsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMl07
CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVsz
XSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFsyXVszXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAg
IHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10gKz0g
eFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1b
M10gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5
WzFdWzJdOworICAgIHJlc3VsdFszXVszXSA9IDA7CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11b
MF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAg
ICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVsx
XTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNd
WzNdID0gMDsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVz
dWx0WzNdWzNdICs9IHhbM11bMV0gKiB5WzFdWzJdOworICAgIHJldHVybiByZXN1bHQ7Cit9Citm
bG9hdDR4NCBtdWwoZmxvYXQ0eDIgeCwgZmxvYXQyeDQgeSkgeworICAgIGZsb2F0NHg0IHJlc3Vs
dDsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSA9
IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsw
XVs0XSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gPSAwOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVsxXSAqIHlbMV1bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVs0XSA9IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0g
KiB5WzBdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICBy
ZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzBdICogeVswXVsyXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAg
cmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0
XSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlb
MV1bMV07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsw
XSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAg
IHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMF0gKiB5WzBdWzNd
OworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVszXTsKKyAgICByZXN1bHRbM11b
NF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1
bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAg
ICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNd
WzRdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICog
eVsxXVsyXTsKKyAgICByZXN1bHRbM11bNF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNd
WzBdICogeVswXVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bM107Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHgyIG11bChmbG9hdDR4MyB4LCBmbG9hdDN4MiB5
KSB7CisgICAgZmxvYXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07Cisg
ICAgcmVzdWx0WzBdWzJdID0gMDsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVswXSAqIHlbMF1b
MV07CisgICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsw
XVsyXSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMV1bMl0gPSAwOworICAgIHJl
c3VsdFsxXVsyXSArPSB4WzFdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsx
XVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMl0gKiB5WzJdWzBdOwor
ICAgIHJlc3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBd
WzFdOworICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRb
MV1bMl0gKz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzJdID0gMDsKKyAgICBy
ZXN1bHRbMl1bMl0gKz0geFsyXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzJdICogeVsyXVswXTsK
KyAgICByZXN1bHRbMl1bMl0gPSAwOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzBdICogeVsw
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7CisgICAg
cmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSArPSB4
WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsyXSAqIHlbMl1bMF07
CisgICAgcmVzdWx0WzNdWzJdID0gMDsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVswXSAqIHlb
MF1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMV0gKiB5WzFdWzFdOworICAgIHJlc3Vs
dFszXVsyXSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorZmxv
YXQ0eDMgbXVsKGZsb2F0NHgzIHgsIGZsb2F0M3gzIHkpIHsKKyAgICBmbG9hdDR4MyByZXN1bHQ7
CisgICAgcmVzdWx0WzBdWzNdID0gMDsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVswXSAqIHlb
MF1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMV0gKiB5WzFdWzBdOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1bM10gKz0g
eFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFswXVszXSA9IDA7CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMF0gKiB5
WzBdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzFdICogeVsxXVsyXTsKKyAgICByZXN1
bHRbMF1bM10gKz0geFswXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzNdID0gMDsKKyAg
ICByZXN1bHRbMV1bM10gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzNdICs9
IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzJdICogeVsyXVsw
XTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICog
eVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMV07CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVszXSA9IDA7Cisg
ICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsyXSAqIHlbMl1b
Ml07CisgICAgcmVzdWx0WzJdWzNdID0gMDsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVswXSAq
IHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAgIHJl
c3VsdFsyXVszXSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOwor
ICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMl1bM10g
Kz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJd
WzFdOworICAgIHJlc3VsdFsyXVszXSA9IDA7CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMF0g
KiB5WzBdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzFdICogeVsxXVsyXTsKKyAgICBy
ZXN1bHRbMl1bM10gKz0geFsyXVsyXSAqIHlbMl1bMl07CisgICAgcmVzdWx0WzNdWzNdID0gMDsK
KyAgICByZXN1bHRbM11bM10gKz0geFszXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzNdWzNd
ICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzJdICogeVsy
XVswXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBd
ICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMV07CisgICAg
cmVzdWx0WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFszXVszXSA9IDA7
CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFszXVsz
XSArPSB4WzNdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsyXSAqIHlb
Ml1bMl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KK2Zsb2F0NHg0IG11bChmbG9hdDR4MyB4LCBm
bG9hdDN4NCB5KSB7CisgICAgZmxvYXQ0eDQgcmVzdWx0OworICAgIHJlc3VsdFswXVs0XSA9IDA7
CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVs0
XSArPSB4WzBdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlb
Ml1bMF07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVsw
XSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAg
IHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gPSAw
OworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMF1b
NF0gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMl0gKiB5
WzJdWzJdOworICAgIHJlc3VsdFswXVs0XSA9IDA7CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzFdICogeVsxXVszXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVsyXSAqIHlbMl1bM107CisgICAgcmVzdWx0WzFdWzRdID0g
MDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFd
WzRdICs9IHhbMV1bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICog
eVsyXVswXTsKKyAgICByZXN1bHRbMV1bNF0gPSAwOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFd
WzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsxXSAqIHlbMV1bMV07Cisg
ICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsxXVs0XSA9
IDA7CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMF0gKiB5WzBdWzJdOworICAgIHJlc3VsdFsx
XVs0XSArPSB4WzFdWzFdICogeVsxXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVsyXSAq
IHlbMl1bMl07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsx
XVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOwor
ICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMl1bNF0g
PSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
Ml1bNF0gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0g
KiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVs0XSA9IDA7CisgICAgcmVzdWx0WzJdWzRdICs9IHhb
Ml1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzFdICogeVsxXVsxXTsK
KyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzJdWzRd
ID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJd
ICogeVsyXVsyXTsKKyAgICByZXN1bHRbMl1bNF0gPSAwOworICAgIHJlc3VsdFsyXVs0XSArPSB4
WzJdWzBdICogeVswXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsxXSAqIHlbMV1bM107
CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMl0gKiB5WzJdWzNdOworICAgIHJlc3VsdFszXVs0
XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3Vs
dFszXVs0XSArPSB4WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsy
XSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0g
eFszXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzFd
OworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11b
NF0gPSAwOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbM11bNF0gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11b
Ml0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVs0XSA9IDA7CisgICAgcmVzdWx0WzNdWzRdICs9
IHhbM11bMF0gKiB5WzBdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzFdICogeVsxXVsz
XTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVsyXSAqIHlbMl1bM107CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KK2Zsb2F0NHgyIG11bChmbG9hdDR4NCB4LCBmbG9hdDR4MiB5KSB7CisgICAgZmxv
YXQ0eDIgcmVzdWx0OworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVzdWx0WzBdWzJdICs9
IHhbMF1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBdWzFdICogeVsxXVsw
XTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzBd
WzJdICs9IHhbMF1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFswXVsyXSA9IDA7CisgICAgcmVz
dWx0WzBdWzJdICs9IHhbMF1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFswXVsyXSArPSB4WzBd
WzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMF1bMl0gKz0geFswXVsyXSAqIHlbMl1bMV07Cisg
ICAgcmVzdWx0WzBdWzJdICs9IHhbMF1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFsxXVsyXSA9
IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFsx
XVsyXSArPSB4WzFdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbMV1bMl0gKz0geFsxXVsyXSAq
IHlbMl1bMF07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNdWzBdOworICAgIHJl
c3VsdFsxXVsyXSA9IDA7CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bMF0gKiB5WzBdWzFdOwor
ICAgIHJlc3VsdFsxXVsyXSArPSB4WzFdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbMV1bMl0g
Kz0geFsxXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzFdWzJdICs9IHhbMV1bM10gKiB5WzNd
WzFdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJdICs9IHhbMl1bMF0g
KiB5WzBdWzBdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsxXVswXTsKKyAgICBy
ZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMF07CisgICAgcmVzdWx0WzJdWzJdICs9IHhb
Ml1bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFsyXVsyXSA9IDA7CisgICAgcmVzdWx0WzJdWzJd
ICs9IHhbMl1bMF0gKiB5WzBdWzFdOworICAgIHJlc3VsdFsyXVsyXSArPSB4WzJdWzFdICogeVsx
XVsxXTsKKyAgICByZXN1bHRbMl1bMl0gKz0geFsyXVsyXSAqIHlbMl1bMV07CisgICAgcmVzdWx0
WzJdWzJdICs9IHhbMl1bM10gKiB5WzNdWzFdOworICAgIHJlc3VsdFszXVsyXSA9IDA7CisgICAg
cmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzBdOworICAgIHJlc3VsdFszXVsyXSArPSB4
WzNdWzFdICogeVsxXVswXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsyXSAqIHlbMl1bMF07
CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzBdOworICAgIHJlc3VsdFszXVsy
XSA9IDA7CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bMF0gKiB5WzBdWzFdOworICAgIHJlc3Vs
dFszXVsyXSArPSB4WzNdWzFdICogeVsxXVsxXTsKKyAgICByZXN1bHRbM11bMl0gKz0geFszXVsy
XSAqIHlbMl1bMV07CisgICAgcmVzdWx0WzNdWzJdICs9IHhbM11bM10gKiB5WzNdWzFdOworICAg
IHJldHVybiByZXN1bHQ7Cit9CitmbG9hdDR4MyBtdWwoZmxvYXQ0eDQgeCwgZmxvYXQ0eDMgeSkg
eworICAgIGZsb2F0NHgzIHJlc3VsdDsKKyAgICByZXN1bHRbMF1bM10gPSAwOworICAgIHJlc3Vs
dFswXVszXSArPSB4WzBdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbMF1bM10gKz0geFswXVsx
XSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5WzJdWzBdOworICAg
IHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMF1bM10gPSAw
OworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMF1b
M10gKz0geFswXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzBdWzNdICs9IHhbMF1bMl0gKiB5
WzJdWzFdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVsxXTsKKyAgICByZXN1
bHRbMF1bM10gPSAwOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzBdICogeVswXVsyXTsKKyAg
ICByZXN1bHRbMF1bM10gKz0geFswXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzBdWzNdICs9
IHhbMF1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFswXVszXSArPSB4WzBdWzNdICogeVszXVsy
XTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzBdICog
eVswXVswXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1bMF07CisgICAgcmVz
dWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzBdOworICAgIHJlc3VsdFsxXVszXSArPSB4WzFd
WzNdICogeVszXVswXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJlc3VsdFsxXVszXSAr
PSB4WzFdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsxXVsxXSAqIHlbMV1b
MV07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsx
XVszXSArPSB4WzFdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbMV1bM10gPSAwOworICAgIHJl
c3VsdFsxXVszXSArPSB4WzFdWzBdICogeVswXVsyXTsKKyAgICByZXN1bHRbMV1bM10gKz0geFsx
XVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzFdWzNdICs9IHhbMV1bMl0gKiB5WzJdWzJdOwor
ICAgIHJlc3VsdFsxXVszXSArPSB4WzFdWzNdICogeVszXVsyXTsKKyAgICByZXN1bHRbMl1bM10g
PSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRb
Ml1bM10gKz0geFsyXVsxXSAqIHlbMV1bMF07CisgICAgcmVzdWx0WzJdWzNdICs9IHhbMl1bMl0g
KiB5WzJdWzBdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzNdICogeVszXVswXTsKKyAgICBy
ZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBdICogeVswXVsxXTsK
KyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzJdWzNd
ICs9IHhbMl1bMl0gKiB5WzJdWzFdOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzNdICogeVsz
XVsxXTsKKyAgICByZXN1bHRbMl1bM10gPSAwOworICAgIHJlc3VsdFsyXVszXSArPSB4WzJdWzBd
ICogeVswXVsyXTsKKyAgICByZXN1bHRbMl1bM10gKz0geFsyXVsxXSAqIHlbMV1bMl07CisgICAg
cmVzdWx0WzJdWzNdICs9IHhbMl1bMl0gKiB5WzJdWzJdOworICAgIHJlc3VsdFsyXVszXSArPSB4
WzJdWzNdICogeVszXVsyXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAgIHJlc3VsdFszXVsz
XSArPSB4WzNdWzBdICogeVswXVswXTsKKyAgICByZXN1bHRbM11bM10gKz0geFszXVsxXSAqIHlb
MV1bMF07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzBdOworICAgIHJlc3Vs
dFszXVszXSArPSB4WzNdWzNdICogeVszXVswXTsKKyAgICByZXN1bHRbM11bM10gPSAwOworICAg
IHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVsxXTsKKyAgICByZXN1bHRbM11bM10gKz0g
eFszXVsxXSAqIHlbMV1bMV07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11bMl0gKiB5WzJdWzFd
OworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzNdICogeVszXVsxXTsKKyAgICByZXN1bHRbM11b
M10gPSAwOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzBdICogeVswXVsyXTsKKyAgICByZXN1
bHRbM11bM10gKz0geFszXVsxXSAqIHlbMV1bMl07CisgICAgcmVzdWx0WzNdWzNdICs9IHhbM11b
Ml0gKiB5WzJdWzJdOworICAgIHJlc3VsdFszXVszXSArPSB4WzNdWzNdICogeVszXVsyXTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorZmxvYXQ0eDQgbXVsKGZsb2F0NHg0IHgsIGZsb2F0NHg0IHkp
IHsKKyAgICBmbG9hdDR4NCByZXN1bHQ7CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1
bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1b
MV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVswXTsKKyAg
ICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzBdWzRdID0g
MDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzBd
WzRdICs9IHhbMF1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFswXVs0XSArPSB4WzBdWzJdICog
eVsyXVsxXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11bMV07CisgICAgcmVz
dWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAqIHlbMF1bMl07Cisg
ICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFswXVs0XSAr
PSB4WzBdWzJdICogeVsyXVsyXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVszXSAqIHlbM11b
Ml07CisgICAgcmVzdWx0WzBdWzRdID0gMDsKKyAgICByZXN1bHRbMF1bNF0gKz0geFswXVswXSAq
IHlbMF1bM107CisgICAgcmVzdWx0WzBdWzRdICs9IHhbMF1bMV0gKiB5WzFdWzNdOworICAgIHJl
c3VsdFswXVs0XSArPSB4WzBdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMF1bNF0gKz0geFsw
XVszXSAqIHlbM11bM107CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0g
Kz0geFsxXVswXSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFd
WzBdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRb
MV1bNF0gKz0geFsxXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzFdWzRdID0gMDsKKyAgICBy
ZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzFdWzRdICs9IHhb
MV1bMV0gKiB5WzFdWzFdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJdICogeVsyXVsxXTsK
KyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzFdWzRd
ID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0
WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsxXVs0XSArPSB4WzFdWzJd
ICogeVsyXVsyXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlbM11bMl07CisgICAg
cmVzdWx0WzFdWzRdID0gMDsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVswXSAqIHlbMF1bM107
CisgICAgcmVzdWx0WzFdWzRdICs9IHhbMV1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsxXVs0
XSArPSB4WzFdWzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMV1bNF0gKz0geFsxXVszXSAqIHlb
M11bM107CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVsw
XSAqIHlbMF1bMF07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzBdOworICAg
IHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbMl1bNF0gKz0g
eFsyXVszXSAqIHlbM11bMF07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAgICByZXN1bHRbMl1b
NF0gKz0geFsyXVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5
WzFdWzFdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsxXTsKKyAgICByZXN1
bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzJdWzRdID0gMDsKKyAg
ICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzJdWzRdICs9
IHhbMl1bMV0gKiB5WzFdWzJdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJdWzJdICogeVsyXVsy
XTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzJd
WzRdID0gMDsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVswXSAqIHlbMF1bM107CisgICAgcmVz
dWx0WzJdWzRdICs9IHhbMl1bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFsyXVs0XSArPSB4WzJd
WzJdICogeVsyXVszXTsKKyAgICByZXN1bHRbMl1bNF0gKz0geFsyXVszXSAqIHlbM11bM107Cisg
ICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1b
MF07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzBdOworICAgIHJlc3VsdFsz
XVs0XSArPSB4WzNdWzJdICogeVsyXVswXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVszXSAq
IHlbM11bMF07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRbM11bNF0gKz0geFsz
XVswXSAqIHlbMF1bMV07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0gKiB5WzFdWzFdOwor
ICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsxXTsKKyAgICByZXN1bHRbM11bNF0g
Kz0geFszXVszXSAqIHlbM11bMV07CisgICAgcmVzdWx0WzNdWzRdID0gMDsKKyAgICByZXN1bHRb
M11bNF0gKz0geFszXVswXSAqIHlbMF1bMl07CisgICAgcmVzdWx0WzNdWzRdICs9IHhbM11bMV0g
KiB5WzFdWzJdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsyXVsyXTsKKyAgICBy
ZXN1bHRbM11bNF0gKz0geFszXVszXSAqIHlbM11bMl07CisgICAgcmVzdWx0WzNdWzRdID0gMDsK
KyAgICByZXN1bHRbM11bNF0gKz0geFszXVswXSAqIHlbMF1bM107CisgICAgcmVzdWx0WzNdWzRd
ICs9IHhbM11bMV0gKiB5WzFdWzNdOworICAgIHJlc3VsdFszXVs0XSArPSB4WzNdWzJdICogeVsy
XVszXTsKKyAgICByZXN1bHRbM11bNF0gKz0geFszXVszXSAqIHlbM11bM107CisgICAgcmV0dXJu
IHJlc3VsdDsKIH0KLWA7CiAKLWZ1bmN0aW9uIGludFRvU3RyaW5nKHgpCi17Ci0gICAgc3dpdGNo
ICh4KSB7Ci0gICAgY2FzZSAwOgotICAgICAgICByZXR1cm4gIngiOwotICAgIGNhc2UgMToKLSAg
ICAgICAgcmV0dXJuICJ5IjsKLSAgICBjYXNlIDI6Ci0gICAgICAgIHJldHVybiAieiI7Ci0gICAg
Y2FzZSAzOgotICAgICAgICByZXR1cm4gInciOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93
IG5ldyBFcnJvcigiQ291bGQgbm90IGdlbmVyYXRlIHN0YW5kYXJkIGxpYnJhcnkuIik7Ci0gICAg
fQotfQotCi0vLyBUaGVyZSBhcmUgNDgxIHN3aXp6bGUgb3BlcmF0b3JzLCBzbyB3ZSBjb21waWxl
IHRoZW0gYXMgbmF0aXZlIGZ1bmN0aW9ucwotc3RhbmRhcmRMaWJyYXJ5ICs9IFN3aXp6bGVPcC5h
bGxTd2l6emxlT3BlcmF0b3JzKCkuam9pbigiO1xuIikgKyAiOyI7Ci1jb25zb2xlLmxvZyhzdGFu
ZGFyZExpYnJhcnkpOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2A7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdGF0ZW1lbnRDbG9uZXIuanMKaW5kZXggYzk0Nzlh
Mjg1YmEwZTEzNTM1ZGVhMzdmN2ZjMWE2M2JjNzFjZjMxNi4uM2I4NDg4OGE3MDU1NzYwZDYwZWE2
ODMyMWM1NDM4MWQ2YmY0NDc2OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvU3RhdGVtZW50Q2xvbmVyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1N0YXRlbWVudENsb25lci5qcwpAQCAtMjcsMTEgKzI3LDkgQEAKIGNsYXNzIFN0YXRlbWVu
dENsb25lciBleHRlbmRzIFJld3JpdGVyIHsKICAgICB2aXNpdEZ1bmNEZWYobm9kZSkKICAgICB7
Ci0gICAgICAgIGxldCB0eXBlUGFyYW1ldGVycyA9IG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5
cGVQYXJhbWV0ZXIgPT4gdHlwZVBhcmFtZXRlci52aXNpdCh0aGlzKSk7CiAgICAgICAgIGxldCBy
ZXN1bHQgPSBuZXcgRnVuY0RlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2luLCBub2RlLm5hbWUs
CiAgICAgICAgICAgICBub2RlLnJldHVyblR5cGUudmlzaXQodGhpcyksCi0gICAgICAgICAgICB0
eXBlUGFyYW1ldGVycywKICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAocGFyYW1ldGVy
ID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmJvZHkudmlzaXQo
dGhpcyksCiAgICAgICAgICAgICBub2RlLmlzQ2FzdCwgbm9kZS5zaGFkZXJUeXBlKTsKQEAgLTQ0
LDcgKzQyLDYgQEAgY2xhc3MgU3RhdGVtZW50Q2xvbmVyIGV4dGVuZHMgUmV3cml0ZXIgewogICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IE5hdGl2ZUZ1bmMoCiAgICAgICAgICAgICBub2RlLm9yaWdp
biwgbm9kZS5uYW1lLAogICAgICAgICAgICAgbm9kZS5yZXR1cm5UeXBlLnZpc2l0KHRoaXMpLAot
ICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBl
UGFyYW1ldGVyLnZpc2l0KHRoaXMpKSwKICAgICAgICAgICAgIG5vZGUucGFyYW1ldGVycy5tYXAo
cGFyYW1ldGVyID0+IHBhcmFtZXRlci52aXNpdCh0aGlzKSksCiAgICAgICAgICAgICBub2RlLmlz
Q2FzdCwgbm9kZS5zaGFkZXJUeXBlKTsKICAgICAgICAgcmVzdWx0LmlzUmVzdHJpY3RlZCA9IG5v
ZGUuaXNSZXN0cmljdGVkOwpAQCAtNTQsNTIgKzUxLDI0IEBAIGNsYXNzIFN0YXRlbWVudENsb25l
ciBleHRlbmRzIFJld3JpdGVyIHsKICAgICB2aXNpdE5hdGl2ZVR5cGUobm9kZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBuZXcgTmF0aXZlVHlwZSgKLSAgICAgICAgICAgIG5vZGUub3JpZ2luLCBu
b2RlLm5hbWUsIG5vZGUudHlwZVBhcmFtZXRlcnMubWFwKHR5cGVQYXJhbWV0ZXIgPT4gdHlwZVBh
cmFtZXRlci52aXNpdCh0aGlzKSkpOworICAgICAgICAgICAgbm9kZS5vcmlnaW4sIG5vZGUuYmFz
ZU5hbWUsIG5vZGUudHlwZUFyZ3VtZW50cy5tYXAodHlwZUFyZ3VtZW50ID0+IHR5cGVBcmd1bWVu
dC52aXNpdCh0aGlzKSkpOwogICAgIH0KICAgICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBuZXcgVHlwZURlZigKICAgICAgICAgICAgIG5vZGUub3JpZ2lu
LCBub2RlLm5hbWUsCi0gICAgICAgICAgICBub2RlLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFy
YW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcykpLAogICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUp
CiAgICAgewotICAgICAgICBsZXQgcmVzdWx0ID0gbmV3IFN0cnVjdFR5cGUoCi0gICAgICAgICAg
ICBub2RlLm9yaWdpbiwgbm9kZS5uYW1lLAotICAgICAgICAgICAgbm9kZS50eXBlUGFyYW1ldGVy
cy5tYXAodHlwZVBhcmFtZXRlciA9PiB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpKSk7CisgICAg
ICAgIGxldCByZXN1bHQgPSBuZXcgU3RydWN0VHlwZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lKTsK
ICAgICAgICAgZm9yIChsZXQgZmllbGQgb2Ygbm9kZS5maWVsZHMpCiAgICAgICAgICAgICByZXN1
bHQuYWRkKGZpZWxkLnZpc2l0KHRoaXMpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewotICAg
ICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5vZGUu
bmFtZSwgbm9kZS50eXBlLnZpc2l0KHRoaXMpKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRQcm90
b2NvbERlY2wobm9kZSkKLSAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgUHJvdG9jb2xE
ZWNsKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgICAgICBmb3IgKGxldCBwcm90b2NvbCBv
ZiBub2RlLmV4dGVuZHMpCi0gICAgICAgICAgICByZXN1bHQuYWRkRXh0ZW5kcyhwcm90b2NvbC52
aXNpdCh0aGlzKSk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25hdHVy
ZXMpCi0gICAgICAgICAgICByZXN1bHQuYWRkKHNpZ25hdHVyZS52aXNpdCh0aGlzKSk7Ci0gICAg
ICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgVHlwZVZhcmlhYmxlKG5vZGUub3JpZ2luLCBub2Rl
Lm5hbWUsIE5vZGUudmlzaXQobm9kZS5wcm90b2NvbCwgdGhpcykpOwotICAgIH0KLSAgICAKLSAg
ICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFByb3Rv
Y29sUmVmKG5vZGUub3JpZ2luLCBub2RlLm5hbWUpOwotICAgIH0KLSAgICAKICAgICB2aXNpdEJv
b2xMaXRlcmFsKG5vZGUpCiAgICAgewogICAgICAgICByZXR1cm4gbmV3IEJvb2xMaXRlcmFsKG5v
ZGUub3JpZ2luLCBub2RlLnZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1N0cnVjdExheW91dEJ1aWxkZXIuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdHJ1Y3RMYXlvdXRCdWlsZGVyLmpzCmluZGV4IDRmOThjNTczYTFhMzgyMzdlMTY0
NTBhZTEwYjg2Y2IyZTYxZDEyMzAuLjc0NDFkZWVlZDQzZDA2MmRiMTMwMzY3NjQ5MGYzNjhjZWI2
ZDgzZDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdExh
eW91dEJ1aWxkZXIuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3RydWN0
TGF5b3V0QnVpbGRlci5qcwpAQCAtMzksOCArMzksNiBAQCBjbGFzcyBTdHJ1Y3RMYXlvdXRCdWls
ZGVyIGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICBpZiAobm9kZS5zaXplICE9IG51
bGwpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmIChub2RlLnR5cGVQYXJhbWV0ZXJz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRvIGxheW91dCBm
b3IgZ2VuZXJpYyB0eXBlOiAiICsgbm9kZSk7CiAgICAgICAgIGxldCBvbGRPZmZzZXQgPSB0aGlz
Ll9vZmZzZXQ7CiAgICAgICAgIHRoaXMuX29mZnNldCA9IDA7CiAgICAgICAgIHN1cGVyLnZpc2l0
U3RydWN0VHlwZShub2RlKTsKQEAgLTYwLDEyICs1OCw2IEBAIGNsYXNzIFN0cnVjdExheW91dEJ1
aWxkZXIgZXh0ZW5kcyBWaXNpdG9yIHsKICAgICAgICAgdGhpcy5fb2Zmc2V0ICs9IHNpemU7CiAg
ICAgfQogICAgIAotICAgIHZpc2l0TmF0aXZlRnVuY0luc3RhbmNlKG5vZGUpCi0gICAgewotICAg
ICAgICBzdXBlci52aXNpdE5hdGl2ZUZ1bmNJbnN0YW5jZShub2RlKTsKLSAgICAgICAgbm9kZS5m
dW5jLmRpZExheW91dFN0cnVjdHNJbkltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxlbWVudGF0
aW9uRGF0YSk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKICAg
ICAgICAgc3VwZXIudmlzaXRUeXBlUmVmKG5vZGUpOwpAQCAtNzYsMTMgKzY4LDYgQEAgY2xhc3Mg
U3RydWN0TGF5b3V0QnVpbGRlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHsKICAgICAgICAgZm9y
IChsZXQgYXJndW1lbnQgb2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2RlLnZp
c2l0KGFyZ3VtZW50LCB0aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBh
Y3R1YWxUeXBlQXJndW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJndW1l
bnRzKSB7Ci0gICAgICAgICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFy
Z3VtZW50cykKLSAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5p
bnN0YW50aWF0ZWRBY3R1YWxUeXBlQXJndW1lbnRzKTsKICAgICAgICAgTm9kZS52aXNpdChub2Rl
Lm5hdGl2ZUZ1bmNJbnN0YW5jZSwgdGhpcyk7CiAgICAgICAgIE5vZGUudmlzaXQobm9kZS5yZXN1
bHRUeXBlLCB0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Ry
dWN0VHlwZS5qcwppbmRleCBmOWQ4YzdkYTQ4NTgzMjE2MWU1NWQyMmE0Mzg3NjI5OTMzN2NiOTM2
Li4zOTQ3ZmRiYWMwNzAwMGRlODBmZmY2NWZkNjZjNmUwMDU4YTI3ZWMxIDEwMDY0NAotLS0gYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdHJ1Y3RUeXBlLmpzCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N0cnVjdFR5cGUuanMKQEAgLTI1LDEyICsyNSwxMSBAQAog
InVzZSBzdHJpY3QiOwogCiBjbGFzcyBTdHJ1Y3RUeXBlIGV4dGVuZHMgVHlwZSB7Ci0gICAgY29u
c3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3Rvcihv
cmlnaW4sIG5hbWUpCiAgICAgewogICAgICAgICBzdXBlcigpOwogICAgICAgICB0aGlzLl9vcmln
aW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICB0aGlzLl90
eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAgICB0aGlzLl9maWVsZHMgPSBu
ZXcgTWFwKCk7CiAgICAgfQogICAgIApAQCAtNDQsNyArNDMsNiBAQCBjbGFzcyBTdHJ1Y3RUeXBl
IGV4dGVuZHMgVHlwZSB7CiAgICAgCiAgICAgZ2V0IG5hbWUoKSB7IHJldHVybiB0aGlzLl9uYW1l
OyB9CiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29yaWdpbjsgfQotICAgIGdldCB0
eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJzOyB9CiAgICAgCiAg
ICAgZ2V0IGZpZWxkTmFtZXMoKSB7IHJldHVybiB0aGlzLl9maWVsZHMua2V5cygpOyB9CiAgICAg
ZmllbGRCeU5hbWUobmFtZSkgeyByZXR1cm4gdGhpcy5fZmllbGRzLmdldChuYW1lKTsgfQpAQCAt
NTgsMzIgKzU2LDYgQEAgY2xhc3MgU3RydWN0VHlwZSBleHRlbmRzIFR5cGUgewogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICAKLSAgICBpbnN0YW50aWF0ZSh0eXBlQXJndW1lbnRz
ID0gbnVsbCkKLSAgICB7Ci0gICAgICAgIGxldCBzdWJzdGl0dXRpb24gPSBudWxsOwotICAgICAg
ICBsZXQgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLnR5cGVQYXJhbWV0ZXJzOwotICAgICAgICAKLSAg
ICAgICAgaWYgKHR5cGVBcmd1bWVudHMpIHsKLSAgICAgICAgICAgIGlmICh0eXBlQXJndW1lbnRz
Lmxlbmd0aCAhPSB0aGlzLnR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICB0
aHJvdyBuZXcgV1R5cGVFcnJvcih0aGlzLm9yaWdpbi5vcmlnaW5TdHJpbmcsICJXcm9uZyBudW1i
ZXIgb2YgdHlwZSBhcmd1bWVudHMgdG8gaW5zdGFudGlhdGlvbiIpOwotICAgICAgICAgICAgCi0g
ICAgICAgICAgICBzdWJzdGl0dXRpb24gPSBuZXcgU3Vic3RpdHV0aW9uKHRoaXMudHlwZVBhcmFt
ZXRlcnMsIHR5cGVBcmd1bWVudHMpOwotICAgICAgICAgICAgdHlwZVBhcmFtZXRlcnMgPSBbXTsK
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgbGV0IGluc3RhbnRpYXRlSW1tZWRpYXRlcyA9
IG5ldyBJbnN0YW50aWF0ZUltbWVkaWF0ZXMoKTsKLSAgICAgICAgbGV0IHJlc3VsdCA9IG5ldyBT
dHJ1Y3RUeXBlKHRoaXMub3JpZ2luLCB0aGlzLm5hbWUsIHR5cGVQYXJhbWV0ZXJzKTsKLSAgICAg
ICAgZm9yIChsZXQgZmllbGQgb2YgdGhpcy5maWVsZHMpIHsKLSAgICAgICAgICAgIGxldCBuZXdG
aWVsZCA9IGZpZWxkOwotICAgICAgICAgICAgaWYgKHN1YnN0aXR1dGlvbikKLSAgICAgICAgICAg
ICAgICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KHN1YnN0aXR1dGlvbik7Ci0gICAgICAgICAg
ICBuZXdGaWVsZCA9IG5ld0ZpZWxkLnZpc2l0KGluc3RhbnRpYXRlSW1tZWRpYXRlcyk7Ci0gICAg
ICAgICAgICByZXN1bHQuYWRkKG5ld0ZpZWxkKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCiAgICAgcG9wdWxhdGVEZWZhdWx0VmFsdWUo
YnVmZmVyLCBvZmZzZXQpCiAgICAgewogICAgICAgICBpZiAodGhpcy5zaXplID09IG51bGwpCkBA
IC05NCw2ICs2Niw2IEBAIGNsYXNzIFN0cnVjdFR5cGUgZXh0ZW5kcyBUeXBlIHsKICAgICAKICAg
ICB0b1N0cmluZygpCiAgICAgewotICAgICAgICByZXR1cm4gInN0cnVjdCAiICsgdGhpcy5uYW1l
ICsgIjwiICsgdGhpcy50eXBlUGFyYW1ldGVycyArICI+IHsgIiArIEFycmF5LmZyb20odGhpcy5m
aWVsZHMpLmpvaW4oIjsgIikgKyAiOyB9IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1Y3QgIiArIHRo
aXMubmFtZSArICIgeyAiICsgQXJyYXkuZnJvbSh0aGlzLmZpZWxkcykuam9pbigiOyAiKSArICI7
IH0iOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1N1YnN0aXR1dGlvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1N1YnN0aXR1
dGlvbi5qcwppbmRleCA2YTIyM2Y2Nzk0YTg1NmM2NDMwOGRmNDBhYjkxOGFjYTIwODZmYjI5Li40
YWNkZmZjZWNjNTYxYTIzMzQyMDMzZTFiOGRkMzFiYWUzMzU2NmI4IDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TdWJzdGl0dXRpb24uanMKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvU3Vic3RpdHV0aW9uLmpzCkBAIC00MCwxMiArNDAsOCBAQCBj
bGFzcyBTdWJzdGl0dXRpb24gZXh0ZW5kcyBSZXdyaXRlciB7CiAgICAgdmlzaXRUeXBlUmVmKG5v
ZGUpCiAgICAgewogICAgICAgICBsZXQgcmVwbGFjZW1lbnQgPSB0aGlzLl9tYXAuZ2V0KG5vZGUu
dHlwZSk7Ci0gICAgICAgIGlmIChyZXBsYWNlbWVudCkgewotICAgICAgICAgICAgaWYgKG5vZGUu
dHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJV
bmV4cGVjdGVkIHR5cGUgYXJndW1lbnRzIG9uIHR5cGUgdmFyaWFibGUiKTsKLSAgICAgICAgICAg
IGxldCByZXN1bHQgPSByZXBsYWNlbWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIoKSk7Ci0gICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9CisgICAgICAgIGlmIChyZXBsYWNlbWVu
dCkKKyAgICAgICAgICAgIHJldHVybiByZXBsYWNlbWVudC52aXNpdChuZXcgQXV0b1dyYXBwZXIo
KSk7CiAgICAgICAgIAogICAgICAgICBsZXQgcmVzdWx0ID0gc3VwZXIudmlzaXRUeXBlUmVmKG5v
ZGUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcwppbmRleCA1YWYyYmRm
OTNhODA1ZmMwOGMyOWYxZWEwNTEwY2UyOWUyODBhNTZmLi4xN2I2MTg0OGFiNWQ4YmM5MmE3NDU5
ZGU4ZDY0MDMxNDQwMDE3OWIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9TeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcwpAQCAtMzUsMzEgKzM1LDMxIEBA
IGZ1bmN0aW9uIHN5bnRoZXNpemVFbnVtRnVuY3Rpb25zKHByb2dyYW0pCiAgICAgICAgIGxldCBz
aGFkZXJUeXBlOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5j
KAotICAgICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvcj09IiwgbmV3IFR5cGVSZWYodHlw
ZS5vcmlnaW4sICJib29sIiwgW10pLCBbXSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3Bl
cmF0b3I9PSIsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCAiYm9vbCIpLAogICAgICAgICAgICAg
WwotICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBu
ZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpLAotICAgICAgICAgICAgICAg
IG5ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9y
aWdpbiwgdHlwZS5uYW1lLCBbXSkpCisgICAgICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIo
dHlwZS5vcmlnaW4sIG51bGwsIG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpKSwK
KyAgICAgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9yaWdpbiwgbnVsbCwgbmV3
IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpCiAgICAgICAgICAgICBdLAogICAgICAg
ICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5pbXBsZW1lbnRh
dGlvbiA9IChbbGVmdCwgcmlnaHRdKSA9PiBFUHRyLmJveChsZWZ0LmxvYWRWYWx1ZSgpID09IHJp
Z2h0LmxvYWRWYWx1ZSgpKTsKICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAg
ICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1bmMoCi0gICAgICAgICAgICB0
eXBlLm9yaWdpbiwgIm9wZXJhdG9yLnZhbHVlIiwgdHlwZS5iYXNlVHlwZS52aXNpdChuZXcgUmV3
cml0ZXIoKSksIFtdLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5cGUub3JpZ2lu
LCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkpXSwKKyAgICAg
ICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IudmFsdWUiLCB0eXBlLmJhc2VUeXBlLnZpc2l0
KG5ldyBSZXdyaXRlcigpKSwKKyAgICAgICAgICAgIFtuZXcgRnVuY1BhcmFtZXRlcih0eXBlLm9y
aWdpbiwgbnVsbCwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSkpXSwKICAgICAg
ICAgICAgIGlzQ2FzdCwgc2hhZGVyVHlwZSk7CiAgICAgICAgIG5hdGl2ZUZ1bmMuaW1wbGVtZW50
YXRpb24gPSAoW3ZhbHVlXSkgPT4gdmFsdWU7CiAgICAgICAgIHByb2dyYW0uYWRkKG5hdGl2ZUZ1
bmMpOwogICAgICAgICAKICAgICAgICAgbmF0aXZlRnVuYyA9IG5ldyBOYXRpdmVGdW5jKAotICAg
ICAgICAgICAgdHlwZS5vcmlnaW4sICJvcGVyYXRvciBjYXN0IiwgdHlwZS5iYXNlVHlwZS52aXNp
dChuZXcgUmV3cml0ZXIoKSksIFtdLAotICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVyKHR5
cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSkp
XSwKKyAgICAgICAgICAgIHR5cGUub3JpZ2luLCAib3BlcmF0b3IgY2FzdCIsIHR5cGUuYmFzZVR5
cGUudmlzaXQobmV3IFJld3JpdGVyKCkpLAorICAgICAgICAgICAgW25ldyBGdW5jUGFyYW1ldGVy
KHR5cGUub3JpZ2luLCBudWxsLCBuZXcgVHlwZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lKSld
LAogICAgICAgICAgICAgaXNDYXN0LCBzaGFkZXJUeXBlKTsKICAgICAgICAgbmF0aXZlRnVuYy5p
bXBsZW1lbnRhdGlvbiA9IChbdmFsdWVdKSA9PiB2YWx1ZTsKICAgICAgICAgcHJvZ3JhbS5hZGQo
bmF0aXZlRnVuYyk7CiAgICAgICAgIAogICAgICAgICBuYXRpdmVGdW5jID0gbmV3IE5hdGl2ZUZ1
bmMoCi0gICAgICAgICAgICB0eXBlLm9yaWdpbiwgIm9wZXJhdG9yIGNhc3QiLCBuZXcgVHlwZVJl
Zih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCBbXSksIFtdLAorICAgICAgICAgICAgdHlwZS5vcmln
aW4sICJvcGVyYXRvciBjYXN0IiwgbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIHR5cGUubmFtZSks
CiAgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIodHlwZS5vcmlnaW4sIG51bGwsIHR5cGUu
YmFzZVR5cGUudmlzaXQobmV3IFJld3JpdGVyKCkpKV0sCiAgICAgICAgICAgICBpc0Nhc3QsIHNo
YWRlclR5cGUpOwogICAgICAgICBuYXRpdmVGdW5jLmltcGxlbWVudGF0aW9uID0gKFt2YWx1ZV0p
ID0+IHZhbHVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3lu
dGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1N5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMKaW5kZXggZjc4MTZmMmIyNTJlOWJhNGRhOWVj
ODRkZWY2MTFjNTVlNGJmZTNhOS4uMGFhNzU2MGVhNTNmZWFiYzk3NzlkMjA4YmM0YWRlNjliMTlj
ODg0MiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU3ludGhlc2l6
ZVN0cnVjdEFjY2Vzc29ycy5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9T
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzLmpzCkBAIC0zMSwyOCArMzEsOCBAQCBmdW5jdGlvbiBz
eW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgCiAgICAgICAgIGZvciAobGV0IGZpZWxkIG9mIHR5cGUuZmllbGRzKSB7Ci0gICAg
ICAgICAgICBmdW5jdGlvbiBjcmVhdGVUeXBlUGFyYW1ldGVycygpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUudHlwZVBhcmFtZXRlcnMubWFwKAotICAgICAgICAg
ICAgICAgICAgICB0eXBlUGFyYW1ldGVyID0+IHR5cGVQYXJhbWV0ZXIudmlzaXQobmV3IFR5cGVQ
YXJhbWV0ZXJSZXdyaXRlcigpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVR5cGVBcmd1bWVudHMoKQotICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgIHJldHVybiB0eXBlUGFyYW1ldGVycy5tYXAodHlwZVBhcmFtZXRlciA9PiB0
eXBlUGFyYW1ldGVyLnZpc2l0KG5ldyBBdXRvV3JhcHBlcigpKSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIHNldHVwSW1wbGVtZW50YXRpb25EYXRh
KG5hdGl2ZUZ1bmMsIGltcGxlbWVudGF0aW9uKQogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIG5hdGl2ZUZ1bmMuaW5zdGFudGlhdGVJbXBsZW1lbnRhdGlvbiA9IHN1YnN0aXR1dGlvbiA9
PiB7Ci0gICAgICAgICAgICAgICAgICAgIGxldCBuZXdUeXBlID0gdHlwZS5pbnN0YW50aWF0ZShu
YXRpdmVGdW5jLnR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW1ldGVyID0+IHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGxldCBzdWJzdGl0dXRlID0gc3Vic3RpdHV0aW9uLm1hcC5nZXQodHlw
ZVBhcmFtZXRlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXN1YnN0aXR1dGUpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJOdWxsIHN1YnN0aXR1
dGUgZm9yIHR5cGUgcGFyYW1ldGVyICIgKyB0eXBlUGFyYW1ldGVyKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzdWJzdGl0dXRlOwotICAgICAgICAgICAgICAgICAgICB9KSk7Ci0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiB7dHlwZTogbmV3VHlwZSwgZmllbGROYW1lOiBmaWVs
ZC5uYW1lfTsKLSAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgIG5hdGl2ZUZ1bmMu
dmlzaXRJbXBsZW1lbnRhdGlvbkRhdGEgPSAoaW1wbGVtZW50YXRpb25EYXRhLCB2aXNpdG9yKSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFZpc2l0aW5nIHRoZSB0eXBlIGZpcnN0IGVuc3Vy
ZXMgdGhhdCB0aGUgc3RydWN0IGxheW91dCBidWlsZGVyIGZpZ3VyZXMgb3V0IHRoZSBmaWVsZCdz
CiAgICAgICAgICAgICAgICAgICAgIC8vIG9mZnNldC4KQEAgLTg5LDIzICs2OSwyMSBAQCBmdW5j
dGlvbiBzeW50aGVzaXplU3RydWN0QWNjZXNzb3JzKHByb2dyYW0pCiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZUZpZWxkVHlwZSgpCiAgICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZpZWxkLnR5cGUudmlzaXQobmV3IFN1YnN0aXR1dGlvbih0eXBl
LnR5cGVQYXJhbWV0ZXJzLCB0eXBlUGFyYW1ldGVycykpOworICAgICAgICAgICAgICAgIHJldHVy
biBmaWVsZC50eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIAogICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlVHlwZVJlZigpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFR5cGVSZWYuaW5zdGFudGlhdGUodHlwZSwgY3Jl
YXRlVHlwZUFyZ3VtZW50cygpKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gVHlwZVJlZi5pbnN0
YW50aWF0ZSh0eXBlKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAgICAgICAg
bGV0IGlzQ2FzdCA9IGZhbHNlOwogICAgICAgICAgICAgbGV0IHNoYWRlclR5cGU7Ci0gICAgICAg
ICAgICBsZXQgdHlwZVBhcmFtZXRlcnM7CiAgICAgICAgICAgICBsZXQgbmF0aXZlRnVuYzsKIAog
ICAgICAgICAgICAgLy8gVGhlIGdldHRlcjogb3BlcmF0b3IuZmllbGQKLSAgICAgICAgICAgIHR5
cGVQYXJhbWV0ZXJzID0gY3JlYXRlVHlwZVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgIG5hdGl2
ZUZ1bmMgPSBuZXcgTmF0aXZlRnVuYygKLSAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJv
cGVyYXRvci4iICsgZmllbGQubmFtZSwgY3JlYXRlRmllbGRUeXBlKCksIHR5cGVQYXJhbWV0ZXJz
LAorICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1l
LCBjcmVhdGVGaWVsZFR5cGUoKSwKICAgICAgICAgICAgICAgICBbbmV3IEZ1bmNQYXJhbWV0ZXIo
ZmllbGQub3JpZ2luLCBudWxsLCBjcmVhdGVUeXBlUmVmKCkpXSwgaXNDYXN0LCBzaGFkZXJUeXBl
KTsKICAgICAgICAgICAgIHNldHVwSW1wbGVtZW50YXRpb25EYXRhKG5hdGl2ZUZ1bmMsIChbYmFz
ZV0sIG9mZnNldCwgc3RydWN0U2l6ZSwgZmllbGRTaXplKSA9PiB7CiAgICAgICAgICAgICAgICAg
bGV0IHJlc3VsdCA9IG5ldyBFUHRyKG5ldyBFQnVmZmVyKGZpZWxkU2l6ZSksIDApOwpAQCAtMTE1
LDkgKzkzLDggQEAgZnVuY3Rpb24gc3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycyhwcm9ncmFtKQog
ICAgICAgICAgICAgcHJvZ3JhbS5hZGQobmF0aXZlRnVuYyk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIC8vIFRoZSBzZXR0ZXI6IG9wZXJhdG9yLmZpZWxkPQotICAgICAgICAgICAgdHlwZVBh
cmFtZXRlcnMgPSBjcmVhdGVUeXBlUGFyYW1ldGVycygpOwogICAgICAgICAgICAgbmF0aXZlRnVu
YyA9IG5ldyBOYXRpdmVGdW5jKAotICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJh
dG9yLiIgKyBmaWVsZC5uYW1lICsgIj0iLCBjcmVhdGVUeXBlUmVmKCksIHR5cGVQYXJhbWV0ZXJz
LAorICAgICAgICAgICAgICAgIGZpZWxkLm9yaWdpbiwgIm9wZXJhdG9yLiIgKyBmaWVsZC5uYW1l
ICsgIj0iLCBjcmVhdGVUeXBlUmVmKCksCiAgICAgICAgICAgICAgICAgWwogICAgICAgICAgICAg
ICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcihmaWVsZC5vcmlnaW4sIG51bGwsIGNyZWF0ZVR5cGVS
ZWYoKSksCiAgICAgICAgICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKGZpZWxkLm9yaWdp
biwgbnVsbCwgY3JlYXRlRmllbGRUeXBlKCkpCkBAIC0xMzQsMTAgKzExMSw4IEBAIGZ1bmN0aW9u
IHN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMocHJvZ3JhbSkKICAgICAgICAgICAgIC8vIFRoZSBh
bmRlcjogb3BlcmF0b3ImLmZpZWxkCiAgICAgICAgICAgICBmdW5jdGlvbiBzZXR1cEFuZGVyKGFk
ZHJlc3NTcGFjZSkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0eXBlUGFyYW1ldGVy
cyA9IGNyZWF0ZVR5cGVQYXJhbWV0ZXJzKCk7CiAgICAgICAgICAgICAgICAgbmF0aXZlRnVuYyA9
IG5ldyBOYXRpdmVGdW5jKAogICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4sICJvcGVy
YXRvciYuIiArIGZpZWxkLm5hbWUsIG5ldyBQdHJUeXBlKGZpZWxkLm9yaWdpbiwgYWRkcmVzc1Nw
YWNlLCBjcmVhdGVGaWVsZFR5cGUoKSksCi0gICAgICAgICAgICAgICAgICAgIHR5cGVQYXJhbWV0
ZXJzLAogICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgICBuZXcg
RnVuY1BhcmFtZXRlcigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5vcmlnaW4s
IG51bGwsCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXJuYXJ5
RXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlcm5hcnlFeHBy
ZXNzaW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2ZjVhMDAyMWM4OWI5YjQ4ZTU2NjM5Y2E1OGYxZTUxOWYy
NmY2OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXJuYXJ5RXhwcmVzc2lvbi5qcwpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisidXNlIHN0cmljdCI7CisKK2NsYXNzIFRlcm5hcnlF
eHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBw
cmVkaWNhdGUsIGJvZHlFeHByZXNzaW9uLCBlbHNlRXhwcmVzc2lvbikKKyAgICB7CisgICAgICAg
IHN1cGVyKG9yaWdpbik7CisgICAgICAgIHRoaXMuX3ByZWRpY2F0ZSA9IHByZWRpY2F0ZTsKKyAg
ICAgICAgdGhpcy5fYm9keUV4cHJlc3Npb24gPSBib2R5RXhwcmVzc2lvbjsKKyAgICAgICAgdGhp
cy5fZWxzZUV4cHJlc3Npb24gPSBlbHNlRXhwcmVzc2lvbjsKKyAgICAgICAgdGhpcy5faXNMVmFs
dWUgPSBudWxsOyAvLyBXZSB1c2UgbnVsbCB0byBpbmRpY2F0ZSB0aGF0IHdlIGRvbid0IGtub3cg
eWV0LgorICAgIH0KKyAgICAKKyAgICBnZXQgcHJlZGljYXRlKCkgeyByZXR1cm4gdGhpcy5fcHJl
ZGljYXRlOyB9CisgICAgZ2V0IGJvZHlFeHByZXNzaW9uKCkgeyByZXR1cm4gdGhpcy5fYm9keUV4
cHJlc3Npb247IH0KKyAgICBnZXQgZWxzZUV4cHJlc3Npb24oKSB7IHJldHVybiB0aGlzLl9lbHNl
RXhwcmVzc2lvbjsgfQorICAgIGdldCBpc0xWYWx1ZSgpIHsgcmV0dXJuIHRoaXMuX2lzTFZhbHVl
OyB9CisgICAgc2V0IGlzTFZhbHVlKHZhbHVlKSB7IHRoaXMuX2lzTFZhbHVlID0gdmFsdWU7IH0K
KyAgICAKKyAgICB0b1N0cmluZygpCisgICAgeworICAgICAgICByZXR1cm4gIigiICsgdGhpcy5w
cmVkaWNhdGUgKyAiKSA/ICgiICsgdGhpcy5ib2R5RXhwcmVzc2lvbiArICIpIDogKCIgKyB0aGlz
LmVsc2VFeHByZXNzaW9uICsgIikiOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1Rlc3QuaHRtbAppbmRleCBhNjQxZDMwNDY0OTNkYWJjMmQ3NDVlN2QwZWM5NmQwYmRkNDQx
YmJjLi5jN2ViNzE0NTA4ZjhlM2FkYWJjNjJmZjFhZDgyNjAzZTk5OGExOGIxIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCkBAIC0zNiw3ICszNiw2IEBACiA8c2NyaXB0
IHNyYz0iQ2xvbmVQcm9ncmFtLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJDb21tYUV4cHJl
c3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnN0ZXhwckZvbGRlci5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iQ29uc3RleHByVHlwZVBhcmFtZXRlci5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iQ29udGludWUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbnZl
cnRQdHJUb0FycmF5UmVmRXhwcmVzc2lvbi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iRG9X
aGlsZUxvb3AuanMiPjwvc2NyaXB0PgpAQCAtNTUsNyArNTQsNiBAQAogPHNjcmlwdCBzcmM9IkV4
dGVybmFsT3JpZ2luLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGaWVsZC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iRmluZEhpZ2hab21iaWVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJGbGF0dGVuUHJvdG9jb2xFeHRlbmRzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJG
bGF0dGVuZWRTdHJ1Y3RPZmZzZXRHYXRoZXJlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
RmxvYXRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExpdGVyYWxUeXBl
LmpzIj48L3NjcmlwdD4KQEAgLTYzLDcgKzYxLDYgQEAKIDxzY3JpcHQgc3JjPSJGb3JMb29wLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJGdW5jRGVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJGdW5jSW5zdGFudGlhdG9yLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGdW5jUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGdW5jdGlvbkxpa2VCbG9jay5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0i
SGlnaFpvbWJpZUZpbmRlci5qcyI+PC9zY3JpcHQ+CkBAIC03Myw3ICs3MCw2IEBACiA8c2NyaXB0
IHNyYz0iSW5mZXJUeXBlc0ZvckNhbGwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IklubGlu
ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lci5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iSW5zdGFudGlhdGVJbW1lZGlhdGVzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJJbnRMaXRlcmFsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+CkBAIC05
MCw5ICs4Niw3IEBACiA8c2NyaXB0IHNyYz0iTmFtZUZpbmRlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iTmFtZVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOYXRpdmVG
dW5jLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJOYXRpdmVGdW5jSW5zdGFuY2UuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZVR5cGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ik5hdGl2ZVR5cGVJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTm9ybWFs
VXNlUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik51bGxUeXBlLmpzIj48L3NjcmlwdD4KQEAg
LTEwMywxMCArOTcsNiBAQAogPHNjcmlwdCBzcmM9IlByb3BlcnR5UmVzb2x2ZXIuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IlByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlBy
b2dyYW1XaXRoVW5uZWNlc3NhcnlUaGluZ3NSZW1vdmVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJQcm90b2NvbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iUHJvdG9jb2xEZWNsLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbEZ1bmNEZWNsLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJQcm90b2NvbFJlZi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHRy
VHlwZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVhZE1vZGlmeVdyaXRlRXhwcmVzc2lv
bi5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUmVjdXJzaW9uQ2hlY2tlci5qcyI+PC9zY3Jp
cHQ+CkBAIC0xMjcsMTQgKzExNywxMiBAQAogPHNjcmlwdCBzcmM9IlN3aXRjaFN0YXRlbWVudC5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZUVudW1GdW5jdGlvbnMuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlN5bnRoZXNpemVTdHJ1Y3RBY2Nlc3NvcnMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlRlcm5hcnlFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJUcmFwU3RhdGVtZW50LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVm
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJUeXBlRGVmUmVzb2x2ZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IlR5cGVPclZhcmlhYmxlUmVmLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJUeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5
cGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5cGVWYXJpYWJsZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlVHJhY2tlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHlwZWRWYWx1ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVy
YWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlVpbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwppbmRleCAzMjJhMGE3MTc4NTBk
NzMyOTA4NDhlOTNiZjk1YmQzYTI0MjQxYzY2Li5hMTNkZmRlZWI3MjZjMDljNDE2NGM1NTZlZWUw
NWY0OGM0OTZhYWMwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMKQEAgLTE4
Nyw3ICsxODcsNyBAQCB0ZXN0cy5jb21tZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAg
ICBydW5zIG92ZXIgbXVsdGlwbGUgbGluZXMgKi8KICAgICAgICAgYm9vbCBmb28oKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIAogICAgIGNoZWNrRmFpbCgK
ICAgICAgICAgKCkgPT4gZG9QcmVwKGAKQEAgLTE5OCw5NCArMTk4LDE1NiBAQCB0ZXN0cy5jb21t
ZW50UGFyc2luZyA9IGZ1bmN0aW9uKCkgewogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdT
eW50YXhFcnJvcik7CiB9CiAKK3Rlc3RzLnRlcm5hcnlFeHByZXNzaW9uID0gZnVuY3Rpb24oKSB7
CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4geCA8IDMgPyA0IDogNTsKKyAgICAgICAgfQorICAg
ICAgICBpbnQgYmFyKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgeSA9IDE7Cisg
ICAgICAgICAgICBpbnQgeiA9IDI7CisgICAgICAgICAgICAoeCA8IDMgPyB5IDogeikgPSA3Owor
ICAgICAgICAgICAgcmV0dXJuIHk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGJheihpbnQgeCkK
KyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHggPCAxMCA/IDExIDogeCA8IDEyID8gMTQg
OiAxNTsKKyAgICAgICAgfQorICAgICAgICBpbnQgcXV1eChpbnQgeCkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIDMgPCA0ID8geCA6IDU7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA3NjcpXSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDIpXSksIDQpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDIpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiYmFyIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMTApXSksIDE0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgMTQpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDEyKV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMTMpXSksIDE1KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInF1dXgiLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgMTQpXSksIDE0KTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJl
cChgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBpbnQgeDsKKyAgICAgICAgICAgICAgICAoNCA8IDUgPyB4IDogNykgPSA4OworICAgICAgICAg
ICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
KTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICBp
bnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAg
ICAgICAgICBmbG9hdCB5OworICAgICAgICAgICAgICAgIHJldHVybiA0IDwgNSA/IHggOiB5Owor
ICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAg
ICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
NCA8IDUgPyA2IDogNy4wOworICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUp
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yKTsKK30KKwogdGVzdHMubGl0ZXJhbEJvb2wgPSBm
dW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28oKSB7IHJldHVy
biB0cnVlOyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsKIH0KIAogdGVzdHMuaWRlbnRpdHlCb29s
ID0gZnVuY3Rpb24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9vKGJvb2wg
eCkgeyByZXR1cm4geDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7Ci0g
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKIH0KIAogdGVzdHMuaW50
U2ltcGxlTWF0aCA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJpbnQg
Zm9vKGludCB4LCBpbnQgeSkgeyByZXR1cm4geCArIHk7IH0iKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3
KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChw
cm9ncmFtLCA1KV0pLCAxMik7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwg
aW50IHkpIHsgcmV0dXJuIHggLSB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwg
NyldKSwgLTIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAtMik7CiAgICAgcHJvZ3JhbSA9
IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggKiB5OyB9Iik7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIC01KV0pLCAtMzUpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3Jh
bSwgLTUpXSksIC0zNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiaW50IGZvbyhpbnQgeCwgaW50
IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJv
Z3JhbSwgMildKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTIp
XSksIC0zKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDIpXSksIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNyksIG1ha2VJbnQocHJvZ3JhbSwgLTIpXSksIC0zKTsKIH0KIAogdGVzdHMudWlu
dFNpbXBsZU1hdGggPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCgidWlu
dCBmb28odWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggKyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMTIpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQg
Zm9vKHVpbnQgeCwgdWludCB5KSB7IHJldHVybiB4IC0geTsgfSIpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSks
IG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDQyOTQ5NjcyOTQpOworICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChw
cm9ncmFtLCA3KV0pLCA0Mjk0OTY3Mjk0KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50IGZv
byh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAqIHk7IH0iKTsKLSAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0s
IDcpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAzNSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgidWludCBmb28o
dWludCB4LCB1aW50IHkpIHsgcmV0dXJuIHggLyB5OyB9Iik7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAzKTsKIH0KIAogdGVzdHMudWludDhTaW1wbGVNYXRoID0gZnVuY3Rp
b24oKSB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4LCB1aW50
OCB5KSB7IHJldHVybiB4ICsgeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDUpXSksIDEyKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVpbnQ4KHBy
b2dyYW0sIDUpXSksIDEyKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28odWludDgg
eCwgdWludDggeSkgeyByZXR1cm4geCAtIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyks
IG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCAyKTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNSksIG1h
a2VVaW50OChwcm9ncmFtLCA3KV0pLCAyNTQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNSldKSwgMik7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNSksIG1ha2VVaW50OChwcm9n
cmFtLCA3KV0pLCAyNTQpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoInVpbnQ4IGZvbyh1aW50OCB4
LCB1aW50OCB5KSB7IHJldHVybiB4ICogeTsgfSIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDUpXSksIDM1KTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJ1aW50OCBmb28o
dWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAvIHk7IH0iKTsKLSAgICBjaGVja1VpbnQ4KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCAyKV0pLCAzKTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQ4KHByb2dyYW0sIDIpXSksIDMpOwogfQogCiB0ZXN0cy5lcXVhbGl0eSA9IGZ1bmN0
aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyh1aW50IHgsIHVpbnQg
eSkgeyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgNyksIG1ha2VVaW50KHBy
b2dyYW0sIDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
dHJ1ZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28odWludDggeCwgdWludDggeSkg
eyByZXR1cm4geCA9PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChw
cm9ncmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChw
cm9ncmFtLCA3KV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcpLCBtYWtlVWludDgocHJvZ3Jh
bSwgNSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA3
KV0pLCB0cnVlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhpbnQgeCwgaW50IHkp
IHsgcmV0dXJuIHggPT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9n
cmFtLCA1KV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDcpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIGZh
bHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA3KSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCB0cnVlKTsKICAg
ICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgsIGJvb2wgeSkgeyByZXR1cm4geCA9
PSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0sIHRy
dWUpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFt
LCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChw
cm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMubG9naWNhbE5lZ2F0aW9u
ID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29s
IHgpIHsgcmV0dXJuICF4OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
XSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwogfQogCiB0ZXN0cy5u
b3RFcXVhbGl0eSA9IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJib29s
IGZvbyh1aW50IHgsIHVpbnQgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA3KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDcpLCBtYWtlVWlu
dChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcCgiYm9vbCBmb28o
dWludDggeCwgdWludDggeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3Jh
bSwgNyksIG1ha2VVaW50OChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFt
LCA3KSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDcp
LCBtYWtlVWludDgocHJvZ3JhbSwgNSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA3KSwgbWFr
ZVVpbnQ4KHByb2dyYW0sIDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29s
IGZvbyhpbnQgeCwgaW50IHkpIHsgcmV0dXJuIHggIT0geTsgfSIpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA3KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyks
IG1ha2VJbnQocHJvZ3JhbSwgNyldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpLCBtYWtlSW50KHByb2dyYW0s
IDcpXSksIGZhbHNlKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKCJib29sIGZvbyhib29sIHgsIGJv
b2wgeSkgeyByZXR1cm4geCAhPSB5OyB9Iik7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1h
a2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSks
IG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZh
bHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dy
YW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dy
YW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZhbHNlKTsKIH0KIAogdGVz
dHMuZXF1YWxpdHlUeXBlRmFpbHVyZSA9IGZ1bmN0aW9uKCkKQEAgLTI5OCwxMyArMzYwLDEzIEBA
IHRlc3RzLmVxdWFsaXR5VHlwZUZhaWx1cmUgPSBmdW5jdGlvbigpCiB0ZXN0cy5nZW5lcmFsTmVn
YXRpb24gPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoImJvb2wgZm9v
KGludCB4KSB7IHJldHVybiAheDsgfSIpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCBmYWxzZSk7
Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDApXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAwKV0pLCB0cnVlKTsKIH0KIAogdGVzdHMuYWRkMSA9IGZ1bmN0aW9u
KCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKCJpbnQgZm9vKGludCB4KSB7IHJldHVybiB4
ICsgMTsgfSIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Myk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0Mild
KSwgNDMpOwogfQogCiB0ZXN0cy5zaW1wbGVHZW5lcmljID0gZnVuY3Rpb24oKSB7CkBAIC0zMTIs
NyArMzc0LDcgQEAgdGVzdHMuc2ltcGxlR2VuZXJpYyA9IGZ1bmN0aW9uKCkgewogICAgICAgICBU
IGlkPFQ+KFQgeCkgeyByZXR1cm4geDsgfQogICAgICAgICBpbnQgZm9vKGludCB4KSB7IHJldHVy
biBpZCh4KSArIDE7IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNDIpXSksIDQzKTsKIH0KIAogdGVzdHMubmFtZVJlc29sdXRpb25GYWlsdXJlID0g
ZnVuY3Rpb24oKQpAQCAtMzMxLDcgKzM5Myw3IEBAIHRlc3RzLnNpbXBsZVZhcmlhYmxlID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOwogfQog
CiB0ZXN0cy5zaW1wbGVBc3NpZ25tZW50ID0gZnVuY3Rpb24oKQpAQCAtMzQ0LDcgKzQwNiw3IEBA
IHRlc3RzLnNpbXBsZUFzc2lnbm1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDQyKV0pLCA0Mik7CiB9CiAKIHRlc3RzLnNpbXBsZURlZmF1bHQgPSBmdW5j
dGlvbigpCkBAIC0zNTYsNyArNDE4LDcgQEAgdGVzdHMuc2ltcGxlRGVmYXVsdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCAwKTsKIH0KIAogdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCkBAIC0zNjks
NyArNDMxLDcgQEAgdGVzdHMuc2ltcGxlRGVyZWZlcmVuY2UgPSBmdW5jdGlvbigpCiAgICAgYCk7
CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgMTMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHBy
b2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZh
bHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50
cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMu
ZGVyZWZlcmVuY2VTdG9yZSA9IGZ1bmN0aW9uKCkKQEAgLTM4Miw3ICs0NDQsNyBAQCB0ZXN0cy5k
ZXJlZmVyZW5jZVN0b3JlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUoZXh0ZXJuYWxP
cmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcgRVB0cihidWZm
ZXIsIDApKV0pOworICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgw
KSAhPSA1MikKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBidWZmZXIgdG8gY29u
dGFpbiA1MiBidXQgaXQgY29udGFpbnM6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KQEAgLTM5Niw3
ICs0NTgsNyBAQCB0ZXN0cy5zaW1wbGVNYWtlUHRyID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
cmV0dXJuICZ4OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKTsKKyAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5pc1B0cikKICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCJSZXR1cm4gdHlwZSBpcyBub3QgYSBwb2ludGVyOiAiICsg
cmVzdWx0LnR5cGUpOwogICAgIGlmICghcmVzdWx0LnR5cGUuZWxlbWVudFR5cGUuZXF1YWxzKHBy
b2dyYW0uaW50cmluc2ljcy5pbnQzMikpCkBAIC00MTgsNyArNDgwLDcgQEAgdGVzdHMudGhyZWFk
QXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1
ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBBcnJheVJlZlR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBu
ZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0pOworICAgIGxldCByZXN1bHQg
PSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgQXJyYXlS
ZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMy
KSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAxKSldKTsKICAgICBjaGVja0lu
dChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDMyLDcgKzQ5NCw3IEBAIHRlc3RzLnRo
cmVhZEFycmF5TG9hZEludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgYCk7CiAgICAgbGV0IGJ1
ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5zZXQoMCwgODkpOwotICAgIGxldCBy
ZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3go
bmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmlu
c2ljcy5pbnQzMiksIG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpXSk7Cisg
ICAgbGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJ0aHJlYWQiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0p
OwogICAgIGNoZWNrSW50KHByb2dyYW0sIHJlc3VsdCwgODkpOwogfQogCkBAIC00NDYsNyArNTA4
LDcgQEAgdGVzdHMuZGV2aWNlQXJyYXlMb2FkID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxl
dCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDg5KTsKLSAgICBs
ZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBBcnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmlu
dHJpbnNpY3MuaW50MzIpLCBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKV0p
OworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZh
bHVlLmJveChuZXcgQXJyYXlSZWZUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3Jh
bS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVBcnJheVJlZihuZXcgRVB0cihidWZmZXIsIDApLCAx
KSldKTsKICAgICBjaGVja0ludChwcm9ncmFtLCByZXN1bHQsIDg5KTsKIH0KIApAQCAtNDYzLDEw
ICs1MjUsMTAgQEAgdGVzdHMudGhyZWFkQXJyYXlTdG9yZSA9IGZ1bmN0aW9uKCkKICAgICBsZXQg
YXJyYXlSZWYgPSBUeXBlZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRl
cm5hbE9yaWdpbiwgInRocmVhZCIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAg
IG5ldyBFQXJyYXlSZWYobmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsK
KyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9n
cmFtLCA2NSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJCYWQgdmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIg
KyBidWZmZXIuZ2V0KDApKTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
YXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlm
IChidWZmZXIuZ2V0KDApICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZh
bHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDAp
KTsKIH0KQEAgLTQ4NCwxMCArNTQ2LDEwIEBAIHRlc3RzLmRldmljZUFycmF5U3RvcmUgPSBmdW5j
dGlvbigpCiAgICAgbGV0IGFycmF5UmVmID0gVHlwZWRWYWx1ZS5ib3goCiAgICAgICAgIG5ldyBB
cnJheVJlZlR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLAogICAgICAgICBuZXcgRUFycmF5UmVmKG5ldyBFUHRyKGJ1ZmZlciwgMCksIDEpKTsK
LSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJbnQo
cHJvZ3JhbSwgNjUpXSk7CisgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlS
ZWYsIG1ha2VJbnQocHJvZ3JhbSwgNjUpXSk7CiAgICAgaWYgKGJ1ZmZlci5nZXQoMCkgIT0gNjUp
CiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRvIGJ1ZmZlciAo
ZXhwZWN0ZWQgNjUpOiAiICsgYnVmZmVyLmdldCgwKSk7Ci0gICAgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW2FycmF5UmVmLCBtYWtlSW50KHByb2dyYW0sIC0xMTEpXSk7CisgICAg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbYXJyYXlSZWYsIG1ha2VJbnQocHJvZ3JhbSwg
LTExMSldKTsKICAgICBpZiAoYnVmZmVyLmdldCgwKSAhPSAtMTExKQogICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIkJhZCB2YWx1ZSBzdG9yZWQgaW50byBidWZmZXIgKGV4cGVjdGVkIC0xMTEpOiAi
ICsgYnVmZmVyLmdldCgwKSk7CiB9CkBAIC01MDUsMzIgKzU2NywxNCBAQCB0ZXN0cy5kZXZpY2VB
cnJheVN0b3JlSW50TGl0ZXJhbCA9IGZ1bmN0aW9uKCkKICAgICBsZXQgYXJyYXlSZWYgPSBUeXBl
ZFZhbHVlLmJveCgKICAgICAgICAgbmV3IEFycmF5UmVmVHlwZShleHRlcm5hbE9yaWdpbiwgImRl
dmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksCiAgICAgICAgIG5ldyBFQXJyYXlSZWYo
bmV3IEVQdHIoYnVmZmVyLCAwKSwgMSkpOwotICAgIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKKyAgICBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFthcnJheVJlZiwgbWFrZUludChwcm9ncmFtLCA2NSldKTsKICAg
ICBpZiAoYnVmZmVyLmdldCgwKSAhPSA2NSkKICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
dmFsdWUgc3RvcmVkIGludG8gYnVmZmVyIChleHBlY3RlZCA2NSk6ICIgKyBidWZmZXIuZ2V0KDAp
KTsKLSAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbYXJyYXlSZWYsIG1ha2VJ
bnQocHJvZ3JhbSwgLTExMSldKTsKKyAgICBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFth
cnJheVJlZiwgbWFrZUludChwcm9ncmFtLCAtMTExKV0pOwogICAgIGlmIChidWZmZXIuZ2V0KDAp
ICE9IC0xMTEpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQmFkIHZhbHVlIHN0b3JlZCBpbnRv
IGJ1ZmZlciAoZXhwZWN0ZWQgLTExMSk6ICIgKyBidWZmZXIuZ2V0KDApKTsKIH0KIAotdGVzdHMu
c2ltcGxlUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YAotICAgICAgICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlBZGRhYmxlIG9w
ZXJhdG9yKyhNeUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBhZGQ8
VDpNeUFkZGFibGU+KFQgYSwgVCBiKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYSAr
IGI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAg
ICAgICAgcmV0dXJuIGFkZCh4LCA3Myk7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA0NSldKSwgNDUgKyA3Myk7Ci19Ci0KIHRlc3RzLnR5cGVNaXNtYXRjaFJldHVybiA9IGZ1
bmN0aW9uKCkKIHsKICAgICBjaGVja0ZhaWwoCkBAIC02NjYsNyArNzEwLDcgQEAgdGVzdHMuc2lt
cGxlU3RydWN0ID0gZnVuY3Rpb24oKQogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZlcigyKTsK
ICAgICBidWZmZXIuc2V0KDAsIDYyKTsKICAgICBidWZmZXIuc2V0KDEsIDI0KTsKLSAgICBsZXQg
cmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW25ldyBUeXBlZFZhbHVl
KHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7CisgICAgbGV0IHJlc3VsdCA9IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUsIG5l
dyBFUHRyKGJ1ZmZlciwgMCkpXSk7CiAgICAgaWYgKCFyZXN1bHQudHlwZS5lcXVhbHMoc3RydWN0
VHlwZSkpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IHR5cGU6ICIgKyBy
ZXN1bHQudHlwZSk7CiAgICAgbGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7CkBAIC02NzcsMzQg
KzcyMSw2IEBAIHRlc3RzLnNpbXBsZVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCJXcm9uZyByZXN1bHQgZm9yIHk6ICIgKyB5ICsgIiAoeCArICIgKyB4ICsgIiki
KTsKIH0KIAotdGVzdHMuZ2VuZXJpY1N0cnVjdEluc3RhbmNlID0gZnVuY3Rpb24oKQotewotICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAgICAg
ICAgICBUIHg7Ci0gICAgICAgICAgICBUIHk7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vPGludD4g
Zm9vKEZvbzxpbnQ+IGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgRm9vPGludD4gcmVzdWx0
OwotICAgICAgICAgICAgcmVzdWx0LnggPSBmb28ueTsKLSAgICAgICAgICAgIHJlc3VsdC55ID0g
Zm9vLng7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgbGV0IHN0cnVjdFR5cGUgPSBUeXBlUmVmLmluc3RhbnRpYXRlKHByb2dyYW0udHlwZXMuZ2V0
KCJGb28iKSwgW3Byb2dyYW0uaW50cmluc2ljcy5pbnQzMl0pOwotICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigyKTsKLSAgICBidWZmZXIuc2V0KDAsIDYyKTsKLSAgICBidWZmZXIuc2V0KDEs
IDI0KTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W25ldyBUeXBlZFZhbHVlKHN0cnVjdFR5cGUsIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSk7Ci0gICAg
bGV0IHggPSByZXN1bHQuZVB0ci5nZXQoMCk7Ci0gICAgbGV0IHkgPSByZXN1bHQuZVB0ci5nZXQo
MSk7Ci0gICAgaWYgKHggIT0gMjQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVz
dWx0IGZvciB4OiAiICsgeCArICIgKHkgPSAiICsgeSArICIpIik7Ci0gICAgaWYgKHkgIT0gNjIp
Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiV3JvbmcgcmVzdWx0IGZvciB5OiAiICsgeSArICIg
KHggKyAiICsgeCArICIpIik7Ci19Ci0KIHRlc3RzLmRvdWJsZUdlbmVyaWNDYWxsc0RvdWJsZUdl
bmVyaWMgPSBmdW5jdGlvbigpCiB7CiAgICAgZG9QcmVwKGAKQEAgLTc0Nyw3ICs3NjMsNyBAQCB0
ZXN0cy5yZXR1cm5OdWxsID0gZnVuY3Rpb24oKQogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAK
ICAgICAgICAgdGhyZWFkIGludCogZm9vKCkgeyByZXR1cm4gbnVsbDsgfQogICAgIGApOwotICAg
IGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSk7CisgICAg
bGV0IHJlc3VsdCA9IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pOwogICAgIGlmICgh
cmVzdWx0LnR5cGUuaXNQdHIpCiAgICAgICAgIHRocm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUg
aXMgbm90IGEgcG9pbnRlcjogIiArIHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBl
LmVsZW1lbnRUeXBlLmVxdWFscyhwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtNzY2LDcg
Kzc4Miw3IEBAIHRlc3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGwgPSBmdW5jdGlvbigpCiAgICAg
ICAgIH0KICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJv
cik7CiB9CiAKQEAgLTc4MCw3ICs3OTYsNyBAQCB0ZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxs
ID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAgICAgY2hlY2tGYWlsKAotICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksCisgICAgICAgICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLAogICAgICAgICAoZSkgPT4gZSBp
bnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC03OTcsNyArODEzLDcgQEAgdGVzdHMucGFz
c051bGxUb1B0ck1vbm9tb3JwaGljID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAg
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIs
IFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10p
LAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQogCkBAIC04NTcs
NyArODczLDcgQEAgdGVzdHMucmV0dXJuTnVsbEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgIGxl
dCBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgdGhyZWFkIGludFtdIGZvbygpIHsgcmV0dXJu
IG51bGw7IH0KICAgICBgKTsKLSAgICBsZXQgcmVzdWx0ID0gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW10pOworICAgIGxldCByZXN1bHQgPSBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmlzQXJyYXlSZWYpCiAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigiUmV0dXJuIHR5cGUgaXMgbm90IGFuIGFycmF5IHJlZmVyZW5jZTogIiAr
IHJlc3VsdC50eXBlKTsKICAgICBpZiAoIXJlc3VsdC50eXBlLmVsZW1lbnRUeXBlLmVxdWFscyhw
cm9ncmFtLmludHJpbnNpY3MuaW50MzIpKQpAQCAtODc2LDcgKzg5Miw3IEBAIHRlc3RzLmRlcmVm
ZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGAp
OwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAt
ODkwLDcgKzkwNiw3IEBAIHRlc3RzLmRlZmF1bHRJbml0aWFsaXplZE51bGxBcnJheVJlZiA9IGZ1
bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwKICAgICAgICAgKGUpID0+IGUgaW5zdGFu
Y2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTA0LDcgKzkyMCw3IEBAIHRlc3RzLmRlZmF1bHRJ
bml0aWFsaXplZE51bGxBcnJheVJlZkludExpdGVyYWwgPSBmdW5jdGlvbigpCiAgICAgICAgIH0K
ICAgICBgKTsKICAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1RyYXBFcnJvcik7CiB9
CiAKQEAgLTkyMSw3ICs5MzcsNyBAQCB0ZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWNBcnJh
eVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLAorICAgICAg
ICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwKICAgICAgICAgKGUpID0+
IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0KIApAQCAtOTQ0LDEzICs5NjAsMTMgQEAgdGVz
dHMucGFzc051bGxUb1B0clBvbHltb3JwaGljQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB0ZXN0cy5y
ZXR1cm5JbnRMaXRlcmFsVWludCA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRv
UHJlcCgidWludCBmb28oKSB7IHJldHVybiA0MjsgfSIpOwotICAgIGNoZWNrTnVtYmVyKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIpOworICAgIGNoZWNr
TnVtYmVyKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Mik7CiB9
CiAKIHRlc3RzLnJldHVybkludExpdGVyYWxGbG9hdCA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQg
cHJvZ3JhbSA9IGRvUHJlcCgiZmxvYXQgZm9vKCkgeyByZXR1cm4gNDI7IH0iKTsKLSAgICBjaGVj
a051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQy
KTsKKyAgICBjaGVja051bWJlcihwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgNDIpOwogfQogCiB0ZXN0cy5iYWRJbnRMaXRlcmFsRm9ySW50ID0gZnVuY3Rpb24oKQpA
QCAtOTg4LDcgKzEwMDQsNyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGwgPSBmdW5jdGlvbigp
CiAgICAgYCk7CiAgICAgbGV0IGJ1ZmZlciA9IG5ldyBFQnVmZmVyKDEpOwogICAgIGJ1ZmZlci5z
ZXQoMCwgMTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRl
dmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSks
IDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImRldmljZSIsIHBy
b2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRyKGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0K
IAogdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHkgPSBmdW5jdGlvbigpCkBAIC0xMDA1
LDcgKzEwMjEsNyBAQCB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seSA9IGZ1bmN0aW9u
KCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVy
LnNldCgwLCAxMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAi
ZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSld
KSwgMTMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW1R5cGVkVmFsdWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwg
cHJvZ3JhbS5pbnRyaW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgMTMpOwog
fQogCiB0ZXN0cy5wYXNzTnVsbEFuZE5vdE51bGxGdWxsUG9seVJldmVyc2UgPSBmdW5jdGlvbigp
CkBAIC0xMDIyLDY1ICsxMDM4LDcgQEAgdGVzdHMucGFzc051bGxBbmROb3ROdWxsRnVsbFBvbHlS
ZXZlcnNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBuZXcgRUJ1ZmZl
cigxKTsKICAgICBidWZmZXIuc2V0KDAsIDEzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0clR5cGUo
ZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIpLCBuZXcg
RVB0cihidWZmZXIsIDApKV0pLCAxMyk7Ci19Ci0KLXRlc3RzLm51bGxUeXBlVmFyaWFibGVVbmlm
eSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgbGVmdCA9IG5ldyBOdWxsVHlwZShleHRlcm5hbE9y
aWdpbik7Ci0gICAgbGV0IHJpZ2h0ID0gbmV3IFR5cGVWYXJpYWJsZShleHRlcm5hbE9yaWdpbiwg
IlQiLCBudWxsKTsKLSAgICBpZiAobGVmdC5lcXVhbHMocmlnaHQpKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlNob3VsZCBub3QgYmUgZXF1YWwgYnV0IGFyZTogIiArIGxlZnQgKyAiIGFuZCAi
ICsgcmlnaHQpOwotICAgIGlmIChyaWdodC5lcXVhbHMobGVmdCkpCi0gICAgICAgIHRocm93IG5l
dyBFcnJvcigiU2hvdWxkIG5vdCBiZSBlcXVhbCBidXQgYXJlOiAiICsgbGVmdCArICIgYW5kICIg
KyByaWdodCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlPcmRlcihhcnJheSwgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBmdW5jdGlvbiByZWN1cnNlKGFycmF5LCBjYWxsYmFjaywgb3JkZXIp
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICghYXJyYXkubGVuZ3RoKQotICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjay5jYWxsKG51bGwsIG9yZGVyKTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnJheS5sZW5ndGg7ICsraSkgewotICAgICAg
ICAgICAgICAgIGxldCBuZXh0QXJyYXkgPSBhcnJheS5jb25jYXQoKTsKLSAgICAgICAgICAgICAg
ICBuZXh0QXJyYXkuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgICAgIHJlY3Vyc2UobmV4dEFy
cmF5LCBjYWxsYmFjaywgb3JkZXIuY29uY2F0KFthcnJheVtpXV0pKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgcmVjdXJzZShhcnJheSwgY2FsbGJhY2ssIFtd
KTsKLSAgICB9Ci0gICAgCi0gICAgZnVuY3Rpb24gZXZlcnlQYWlyKHRoaW5ncykKLSAgICB7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSBbXTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlu
Z3MubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpbmdz
Lmxlbmd0aDsgKytqKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGkgIT0gaikKLSAgICAgICAgICAg
ICAgICAgICAgcmVzdWx0LnB1c2goW3RoaW5nc1tpXSwgdGhpbmdzW2pdXSk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICB9Ci0gICAgCi0gICAg
ZXZlcnlPcmRlcigKLSAgICAgICAgZXZlcnlQYWlyKFsibnVsbFR5cGUiLCAidmFyaWFibGVUeXBl
IiwgInB0clR5cGUiXSksCi0gICAgICAgIG9yZGVyID0+IHsKLSAgICAgICAgICAgIGxldCB0eXBl
cyA9IHt9OwotICAgICAgICAgICAgdHlwZXMubnVsbFR5cGUgPSBuZXcgTnVsbFR5cGUoZXh0ZXJu
YWxPcmlnaW4pOwotICAgICAgICAgICAgdHlwZXMudmFyaWFibGVUeXBlID0gbmV3IFR5cGVWYXJp
YWJsZShleHRlcm5hbE9yaWdpbiwgIlQiLCBudWxsKTsKLSAgICAgICAgICAgIHR5cGVzLnB0clR5
cGUgPSBuZXcgUHRyVHlwZShleHRlcm5hbE9yaWdpbiwgImNvbnN0YW50IiwgbmV3IE5hdGl2ZVR5
cGUoZXh0ZXJuYWxPcmlnaW4sICJmb29fdCIsIFtdKSk7Ci0gICAgICAgICAgICBsZXQgdW5pZmlj
YXRpb25Db250ZXh0ID0gbmV3IFVuaWZpY2F0aW9uQ29udGV4dChbdHlwZXMudmFyaWFibGVUeXBl
XSk7Ci0gICAgICAgICAgICBmb3IgKGxldCBbbGVmdE5hbWUsIHJpZ2h0TmFtZV0gb2Ygb3JkZXIp
IHsKLSAgICAgICAgICAgICAgICBsZXQgbGVmdCA9IHR5cGVzW2xlZnROYW1lXTsKLSAgICAgICAg
ICAgICAgICBsZXQgcmlnaHQgPSB0eXBlc1tyaWdodE5hbWVdOwotICAgICAgICAgICAgICAgIGxl
dCByZXN1bHQgPSBsZWZ0LnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwgcmlnaHQpOwotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIkluIG9yZGVyICIgKyBvcmRlciArICIgY2Fubm90IHVuaWZ5ICIgKyBsZWZ0ICsgIiB3aXRo
ICIgKyByaWdodCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXVuaWZpY2F0aW9u
Q29udGV4dC52ZXJpZnkoKS5yZXN1bHQpCi0gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCJJbiBvcmRlciAiICsgb3JkZXIubWFwKHZhbHVlID0+ICIoIiArIHZhbHVlICsgIikiKSArICIg
Y2Fubm90IHZlcmlmeSIpOwotICAgICAgICB9KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtUeXBlZFZhbHVlLmJveChuZXcgUHRyVHlwZShleHRl
cm5hbE9yaWdpbiwgImRldmljZSIsIHByb2dyYW0uaW50cmluc2ljcy5pbnQzMiksIG5ldyBFUHRy
KGJ1ZmZlciwgMCkpXSksIDEzKTsKIH0KIAogdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQpA
QCAtMTA5MSw4ICsxMDQ5LDggQEAgdGVzdHMuZG91YmxlTm90ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuICEheDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwg
dHJ1ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNl
KTsKIH0KIAogdGVzdHMuc2ltcGxlUmVjdXJzaW9uID0gZnVuY3Rpb24oKQpAQCAtMTEwNywxMTQg
KzEwNjUsNiBAQCB0ZXN0cy5zaW1wbGVSZWN1cnNpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIChl
KSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CiB9CiAKLXRlc3RzLnByb3RvY29sTW9ub1Np
Z1BvbHlEZWYgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICBzdHJ1Y3QgSW50QW5kPFQ+IHsKLSAgICAgICAgICAgIGludCBmaXJzdDsKLSAgICAgICAg
ICAgIFQgc2Vjb25kOwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxUPiBpbnRBbmQ8VD4oaW50
IGZpcnN0LCBUIHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQ+IHJlc3Vs
dDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgcmVzdWx0
LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgICAgIH0K
LSAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50PiBp
bnRBbmQoSW50QW5kYWJsZSwgaW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50
QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50
QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNvbmQpOwotICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDU0ICsgMTIpOwotfQot
Ci10ZXN0cy5wcm90b2NvbFBvbHlTaWdQb2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEludEFuZDxUPiB7Ci0gICAgICAgICAg
ICBpbnQgZmlyc3Q7Ci0gICAgICAgICAgICBUIHNlY29uZDsKLSAgICAgICAgfQotICAgICAgICBJ
bnRBbmQ8VD4gaW50QW5kPFQ+KGludCBmaXJzdCwgVCBzZWNvbmQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEludEFuZDxUPiByZXN1bHQ7Ci0gICAgICAgICAgICByZXN1bHQuZmlyc3QgPSBmaXJz
dDsKLSAgICAgICAgICAgIHJlc3VsdC5zZWNvbmQgPSBzZWNvbmQ7Ci0gICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAg
ICAgICAgICAgSW50QW5kPFQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBUKTsKLSAgICAgICAgfQot
ICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCkKLSAgICAg
ICAgewotICAgICAgICAgICAgSW50QW5kPGludD4gcmVzdWx0ID0gaW50QW5kKGZpcnN0LCBzZWNv
bmQpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5maXJzdCArIHJlc3VsdC5zZWNvbmQ7Ci0g
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1NCksIG1ha2VJbnQocHJvZ3JhbSwg
MTIpXSksIDU0ICsgMTIpOwotfQotCi10ZXN0cy5wcm90b2NvbERvdWJsZVBvbHlTaWdEb3VibGVQ
b2x5RGVmID0gZnVuY3Rpb24oKQotewotICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgc3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAgICBpbnQgZmlyc3Q7Ci0gICAgICAg
ICAgICBUIHNlY29uZDsKLSAgICAgICAgICAgIFUgdGhpcmQ7Ci0gICAgICAgIH0KLSAgICAgICAg
SW50QW5kPFQsIFU+IGludEFuZDxULCBVPihpbnQgZmlyc3QsIFQgc2Vjb25kLCBVIHRoaXJkKQot
ICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8VCwgVT4gcmVzdWx0OwotICAgICAgICAgICAg
cmVzdWx0LmZpcnN0ID0gZmlyc3Q7Ci0gICAgICAgICAgICByZXN1bHQuc2Vjb25kID0gc2Vjb25k
OwotICAgICAgICAgICAgcmVzdWx0LnRoaXJkID0gdGhpcmQ7Ci0gICAgICAgICAgICByZXR1cm4g
cmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEludEFuZGFibGUgewotICAgICAg
ICAgICAgSW50QW5kPFQsIFU+IGludEFuZDxULCBVPihJbnRBbmRhYmxlLCBULCBVKTsKLSAgICAg
ICAgfQotICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwgaW50IHNlY29uZCwg
aW50IHRoaXJkKQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnRBbmQ8aW50LCBpbnQ+IHJlc3Vs
dCA9IGludEFuZChmaXJzdCwgc2Vjb25kLCB0aGlyZCk7Ci0gICAgICAgICAgICByZXR1cm4gcmVz
dWx0LmZpcnN0ICsgcmVzdWx0LnNlY29uZCArIHJlc3VsdC50aGlyZDsKLSAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDU0KSwgbWFrZUludChwcm9ncmFtLCAxMiksIG1ha2VJbnQo
cHJvZ3JhbSwgMzkpXSksIDU0ICsgMTIgKyAzOSk7Ci19Ci0KLXRlc3RzLnByb3RvY29sRG91Ymxl
UG9seVNpZ0RvdWJsZVBvbHlEZWZFeHBsaWNpdCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBJbnRBbmQ8VCwgVT4gewotICAgICAgICAg
ICAgaW50IGZpcnN0OwotICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICBVIHRoaXJk
OwotICAgICAgICB9Ci0gICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oaW50IGZpcnN0
LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAgSW50QW5kPFQsIFU+
IHJlc3VsdDsKLSAgICAgICAgICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAg
cmVzdWx0LnNlY29uZCA9IHNlY29uZDsKLSAgICAgICAgICAgIHJlc3VsdC50aGlyZCA9IHRoaXJk
OwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBwcm90b2Nv
bCBJbnRBbmRhYmxlIHsKLSAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8VCwgVT4oSW50
QW5kYWJsZSwgVCwgVSk7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbzxUOkludEFuZGFibGU+
KFQgZmlyc3QsIGludCBzZWNvbmQsIGludCB0aGlyZCkKLSAgICAgICAgewotICAgICAgICAgICAg
SW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8aW50LCBpbnQ+KGZpcnN0LCBzZWNvbmQs
IHRoaXJkKTsKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1bHQuc2Vjb25k
ICsgcmVzdWx0LnRoaXJkOwotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNTQp
LCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAzOSldKSwgNTQgKyAxMiAr
IDM5KTsKLX0KLQogdGVzdHMudmFyaWFibGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiB7CiAgICAg
bGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtMTIyOSw3ICsxMDc5LDcgQEAgdGVzdHMudmFyaWFi
bGVTaGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAg
fQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFtdKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSksIDgpOwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBp
bnQgZm9vKCkKICAgICAgICAgewpAQCAtMTI0Miw3ICsxMDkyLDcgQEAgdGVzdHMudmFyaWFibGVT
aGFkb3dpbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFtdKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSksIDcpOwogfQogCiB0ZXN0cy5pZlN0YXRlbWVudCA9IGZ1bmN0aW9uKCkK
QEAgLTEyNTcsMTMgKzExMDcsMTMgQEAgdGVzdHMuaWZTdGF0ZW1lbnQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDgpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgNik7CiB9CiAKIHRl
c3RzLmlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9uKCkKQEAgLTEyODAsMTMgKzExMzAsMTMgQEAg
dGVzdHMuaWZFbHNlU3RhdGVtZW50ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA5KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA4KV0pLCA5KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSks
IDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA5KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDYpXSksIDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0p
LCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDkpXSksIDkpOwogfQogCiB0ZXN0cy5pZkVsc2VJZlN0YXRlbWVu
dCA9IGZ1bmN0aW9uKCkKQEAgLTEzMDMsMTMgKzExNTMsMTMgQEAgdGVzdHMuaWZFbHNlSWZTdGF0
ZW1lbnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDkpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDgpXSksIDkpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgOSldKSwgNik7CiB9CiAKIHRlc3RzLmlmRWxzZUlmRWxzZVN0YXRlbWVudCA9IGZ1bmN0aW9u
KCkKQEAgLTEzMjgsMTMgKzExNzgsMTMgQEAgdGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFr
ZUludChwcm9ncmFtLCAzKV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgMTApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgOSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTAp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA4KV0pLCA5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDkpXSksIDEwKTsKIH0KIAogdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCkBAIC0xMzg3
LDEzICsxMjM3LDEzIEBAIHRlc3RzLnJldHVybklmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAg
fQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMTApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDQpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNildKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAx
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA4KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDgpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDEwKTsKICAgICBjaGVja0ZhaWwo
CiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAt
MTQxOSwxMyArMTI2OSwxMyBAQCB0ZXN0cy5yZXR1cm5JZiA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiB5OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwg
OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgOSk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgOCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgOCldKSwgOSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgOSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzKV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDgpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgOCldKSwgOSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCA5KTsKICAgICBjaGVja0ZhaWwo
CiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAt
MTQ0OSw3ICsxMjk5LDcgQEAgdGVzdHMucmV0dXJuSWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgNyldKSwgNik7CiB9CiAKIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rp
b24oKQpAQCAtMTQ2MiwzOSArMTMxMiw3IEBAIHRlc3RzLnNpbXBsZVdoaWxlID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCAxKV0pLCAxNik7Ci19Ci0KLXRlc3RzLnByb3RvY29sTW9ub1BvbHlTaWdEb3VibGVQb2x5
RGVmRXhwbGljaXQgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiB7Ci0gICAgICAgICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgICAgICAgICAg
c3RydWN0IEludEFuZDxULCBVPiB7Ci0gICAgICAgICAgICAgICAgICAgIGludCBmaXJzdDsKLSAg
ICAgICAgICAgICAgICAgICAgVCBzZWNvbmQ7Ci0gICAgICAgICAgICAgICAgICAgIFUgdGhpcmQ7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiBpbnRBbmQ8
VCwgVT4oaW50IGZpcnN0LCBUIHNlY29uZCwgVSB0aGlyZCkKLSAgICAgICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgICAgIEludEFuZDxULCBVPiByZXN1bHQ7Ci0gICAgICAgICAgICAgICAg
ICAgIHJlc3VsdC5maXJzdCA9IGZpcnN0OwotICAgICAgICAgICAgICAgICAgICByZXN1bHQuc2Vj
b25kID0gc2Vjb25kOwotICAgICAgICAgICAgICAgICAgICByZXN1bHQudGhpcmQgPSB0aGlyZDsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgcHJvdG9jb2wgSW50QW5kYWJsZSB7Ci0gICAgICAgICAgICAgICAgICAg
IEludEFuZDxULCBpbnQ+IGludEFuZDxUPihJbnRBbmRhYmxlLCBULCBpbnQpOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICBpbnQgZm9vPFQ6SW50QW5kYWJsZT4oVCBmaXJzdCwg
aW50IHNlY29uZCwgaW50IHRoaXJkKQotICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAgICAgSW50QW5kPGludCwgaW50PiByZXN1bHQgPSBpbnRBbmQ8aW50PihmaXJzdCwgc2Vjb25k
LCB0aGlyZCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3QgKyByZXN1
bHQuc2Vjb25kICsgcmVzdWx0LnRoaXJkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGApOwotICAgICAgICAgICAgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgNTQpLCBtYWtlSW50KHByb2dyYW0sIDEyKSwgbWFrZUludChwcm9ncmFtLCAz
OSldKTsKLSAgICAgICAgfSwKLSAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9y
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDEpXSksIDE2KTsKIH0KIAogdGVzdHMuYW1iaWd1b3VzT3ZlcmxvYWRT
aW1wbGUgPSBmdW5jdGlvbigpCkBAIC0xNTM3LDcgKzEzNTUsNyBAQCB0ZXN0cy5pbnRPdmVybG9h
ZFJlc29sdXRpb24gPSBmdW5jdGlvbigpCiAgICAgICAgIGludCBmb28oZmxvYXQpIHsgcmV0dXJu
IDM7IH0KICAgICAgICAgaW50IGJhcigpIHsgcmV0dXJuIGZvbyg0Mik7IH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbXSks
IDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwg
W10pLCAxKTsKIH0KIAogdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVyID0g
ZnVuY3Rpb24oKQpAQCAtMTU0OCw3ICsxMzY2LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0
aW9uUmV2ZXJzZU9yZGVyID0gZnVuY3Rpb24oKQogICAgICAgICBpbnQgZm9vKGludCkgeyByZXR1
cm4gMTsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtd
KSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbXSksIDEpOwogfQogCiB0ZXN0cy5pbnRPdmVybG9hZFJlc29sdXRpb25HZW5lcmljID0gZnVu
Y3Rpb24oKQpAQCAtMTU1OCw3ICsxMzc2LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9u
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IGZvbzxUPihUKSB7IHJldHVybiAyOyB9
CiAgICAgICAgIGludCBiYXIoKSB7IHJldHVybiBmb28oNDIpOyB9CiAgICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAxKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdKSwg
MSk7CiB9CiAKIHRlc3RzLmludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU2Nywx
OSArMTM4NSw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQogICAgICAg
ICBpbnQgZm9vPFQ+KFQgeCkgeyByZXR1cm4gMzQ3ODsgfQogICAgICAgICBpbnQgYmFyKCkgeyBy
ZXR1cm4gZm9vKDQyKTsgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgMzQ3OCk7Ci19Ci0KLXRlc3RzLmludExpdGVy
YWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb0ludCB7Ci0gICAgICAg
ICAgICBvcGVyYXRvciBpbnQoTXlDb252ZXJ0aWJsZVRvSW50KTsKLSAgICAgICAgfQotICAgICAg
ICBpbnQgZm9vPFQ6TXlDb252ZXJ0aWJsZVRvSW50PihUIHgpIHsgcmV0dXJuIGludCh4KTsgfQot
ICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKDQyKTsgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFtdKSwgNDIpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10pLCAz
NDc4KTsKIH0KIAogdGVzdHMudWludExpdGVyYWxHZW5lcmljID0gZnVuY3Rpb24oKQpAQCAtMTU4
OCwxOSArMTM5NCw3IEBAIHRlc3RzLnVpbnRMaXRlcmFsR2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgaW50IGZvbzxUPihUIHgpIHsgcmV0dXJuIDM0Nzg7IH0KICAgICAgICAgaW50IGJhcigp
IHsgcmV0dXJuIGZvbyg0MnUpOyB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW10pLCAzNDc4KTsKLX0KLQotdGVzdHMudWlu
dExpdGVyYWxHZW5lcmljV2l0aFByb3RvY29scyA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIE15Q29udmVydGlibGVUb1VpbnQgewot
ICAgICAgICAgICAgb3BlcmF0b3IgdWludChNeUNvbnZlcnRpYmxlVG9VaW50KTsKLSAgICAgICAg
fQotICAgICAgICB1aW50IGZvbzxUOk15Q29udmVydGlibGVUb1VpbnQ+KFQgeCkgeyByZXR1cm4g
dWludCh4KTsgfQotICAgICAgICB1aW50IGJhcigpIHsgcmV0dXJuIGZvbyg0MnUpOyB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwg
W10sIFtdKSwgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmFyIiwgW10pLCAzNDc4KTsKIH0KIAogdGVzdHMuaW50TGl0ZXJhbEdlbmVyaWNTcGVjaWZp
YyA9IGZ1bmN0aW9uKCkKQEAgLTE2MDksNyArMTQwMyw3IEBAIHRlc3RzLmludExpdGVyYWxHZW5l
cmljU3BlY2lmaWMgPSBmdW5jdGlvbigpCiAgICAgICAgIFQgZm9vPFQ+KFQgeCkgeyByZXR1cm4g
eDsgfQogICAgICAgICBpbnQgYmFyKCkgeyByZXR1cm4gZm9vKGludCg0MikpOyB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwg
W10pLCA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJi
YXIiLCBbXSksIDQyKTsKIH0KIAogdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQpA
QCAtMTYyNCw3ICsxNDE4LDcgQEAgdGVzdHMuc2ltcGxlQ29uc3RleHByID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGZvbzw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7
CiB9CiAKIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQpAQCAtMTY0MCw4ICsxNDM0LDggQEAgdGVz
dHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEwKV0p
LCAyMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAyMCk7CiAg
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsK
QEAgLTE2NTgsOCArMTQ1Miw4IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgCiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAxMCldKSwgMTkpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAg
ICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNjk1LDcgKzE0ODksNyBAQCB0ZXN0cy5icmVh
ayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAg
ICAgICAgICAgIHsKQEAgLTE3MDUsNyArMTQ5OSw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgICAgIHJldHVybiB4OwogICAgICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgMSk7CiAgICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKCkKICAgICAgICAgICAgIHsKQEAgLTE3
MTQsNyArMTUwOCw3IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3KTsKICAgICBjaGVja0ZhaWwoCiAg
ICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc0
Myw3ICsxNTM3LDcgQEAgdGVzdHMuY29udGludWUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDE4KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDEpXSksIDE4KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRv
UHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGludCB4KQpAQCAtMTc2OSw4ICsxNTYzLDggQEAg
dGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB5OwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwg
MTEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMSldKSwgOCk7
CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAg
IHsKQEAgLTE3ODIsNyArMTU3Niw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEp
XSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAg
ICAgICAgIGludCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE3OTgsNyArMTU5Miw3IEBAIHRl
c3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgMTkpOwogfQogCiB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQpAQCAtMTgxNCw5ICsxNjA4
LDkgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBzdW07
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTAp
OwogICAgIHByb2dyYW0gPSBkb1ByZXAoYAogICAgICAgICBpbnQgZm9vKGludCB4KQogICAgICAg
ICB7CkBAIC0xODI3LDkgKzE2MjEsOSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMCk7CiAgICAgcHJvZ3JhbSA9IGRvUHJlcChgCiAgICAgICAgIGlu
dCBmb28oaW50IHgpCiAgICAgICAgIHsKQEAgLTE4NDEsOSArMTYzNSw5IEBAIHRlc3RzLmZvckxv
b3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKICAgICBwcm9ncmFtID0g
ZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTg1NiwxMCAr
MTY1MCwxMCBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDYpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsK
ICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAg
ewpAQCAtMTg3MiwxMSArMTY2NiwxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAg
ICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyld
KSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDcpXSksIDEwKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAgaW50IGZvbyhpbnQg
eCkKICAgICAgICAgewpAQCAtMTg4OSwxMSArMTY4MywxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQo
cHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0
KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVwKGAKICAgICAgICAg
aW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkwNywxMSArMTcwMSwxMSBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQog
ICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAx
NSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBwcm9ncmFtID0gZG9QcmVw
KGAKICAgICAgICAgaW50IGZvbyhpbnQgeCkKICAgICAgICAgewpAQCAtMTkyNiwxMSArMTcyMCwx
MSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHN1bTsK
ICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDE1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKICAgICBjaGVj
a0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICB2b2lkIGZvbyhpbnQg
eCkKQEAgLTE5NTAsMTEgKzE3NDQsMTEgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKICAg
ICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9v
KGludCB4KQpAQCAtMTk3MywxMSArMTc2NywxMSBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwg
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZUludChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcp
OwogfQogCiB0ZXN0cy5jaGFpbkNvbnN0ZXhwciA9IGZ1bmN0aW9uKCkKQEAgLTE5OTYsNyArMTc5
MCw3IEBAIHRlc3RzLmNoYWluQ29uc3RleHByID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIGJhcjw0Mj4oYik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA1OCld
KSwgNTggKyA0Mik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCA1OCldKSwgNTggKyA0Mik7CiB9CiAKIHRlc3RzLmNo
YWluR2VuZXJpYyA9IGZ1bmN0aW9uKCkKQEAgLTIwMTUsNyArMTgwOSw3IEBAIHRlc3RzLmNoYWlu
R2VuZXJpYyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBiYXIoJngpOwogICAgICAg
ICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXoiLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMzcpXSksIDM3KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDM3
KV0pLCAzNyk7CiB9CiAKIHRlc3RzLmNoYWluU3RydWN0ID0gZnVuY3Rpb24oKQpAQCAtMjAzOCw3
ICsxODMyLDcgQEAgdGVzdHMuY2hhaW5TdHJ1Y3QgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gZm9vKCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDQ2NTcp
XSksIDQ2NTcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
YmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgNDY1NyldKSwgNDY1Nyk7CiB9CiAKIHRlc3RzLmNoYWlu
U3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKQEAgLTIwNjMsNyArMTg1Nyw3IEBAIHRlc3Rz
LmNoYWluU3RydWN0TmV3bHlWYWxpZCA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVm
ZmVyID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA3ODQ1Myk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFs
dWUuYm94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUuYm94
KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5zaWNz
LmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzg0NTMpOwogfQogCiB0ZXN0cy5jaGFp
blN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKQEAgLTIwODgsNyArMTg4Miw3IEBAIHRlc3RzLmNo
YWluU3RydWN0RGV2aWNlID0gZnVuY3Rpb24oKQogICAgIGApOwogICAgIGxldCBidWZmZXIgPSBu
ZXcgRUJ1ZmZlcigxKTsKICAgICBidWZmZXIuc2V0KDAsIDc5MjAxKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtdLCBbVHlwZWRWYWx1ZS5ib3go
bmV3IFB0clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3Mu
aW50MzIpLCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbVHlwZWRWYWx1ZS5ib3gobmV3IFB0
clR5cGUoZXh0ZXJuYWxPcmlnaW4sICJkZXZpY2UiLCBwcm9ncmFtLmludHJpbnNpY3MuaW50MzIp
LCBuZXcgRVB0cihidWZmZXIsIDApKV0pLCA3OTIwMSk7CiB9CiAKIHRlc3RzLnBhcmFtQ2hhaW5T
dHJ1Y3REZXZpY2UgPSBmdW5jdGlvbigpCkBAIC0yMTEzLDg5ICsxOTA3LDcgQEAgdGVzdHMucGFy
YW1DaGFpblN0cnVjdERldmljZSA9IGZ1bmN0aW9uKCkKICAgICBgKTsKICAgICBsZXQgYnVmZmVy
ID0gbmV3IEVCdWZmZXIoMSk7CiAgICAgYnVmZmVyLnNldCgwLCA3OTIwMSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwotfQotCi10ZXN0cy5z
aW1wbGVQcm90b2NvbEV4dGVuZHMgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhy
ZWFkIEZvbyopOwotICAgICAgICB9Ci0gICAgICAgIHByb3RvY29sIEJhciA6IEZvbyB7Ci0gICAg
ICAgICAgICB2b2lkIGJhcih0aHJlYWQgQmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBm
dXp6PFQ6Rm9vPih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vKHApOwot
ICAgICAgICB9Ci0gICAgICAgIHZvaWQgYnV6ejxUOkJhcj4odGhyZWFkIFQqIHApCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZ1enoocCk7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0K
LSAgICAgICAgdm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAg
KnAgPSAqcCArIDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBw
KQotICAgICAgICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAg
ICAgaW50IHRoaW5neShpbnQgYSkKLSAgICAgICAgewotICAgICAgICAgICAgYnV6eigmYSk7Ci0g
ICAgICAgICAgICByZXR1cm4gYTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGhpbmd5IiwgW10sIFttYWtlSW50KHByb2dy
YW0sIDY0MildKSwgNjQyICsgNzQzICsgOTEpOwotfQotCi10ZXN0cy5wcm90b2NvbEV4dGVuZHNU
d28gPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgdm9pZCBmb28odGhyZWFkIEZvbyopOwotICAgICAg
ICB9Ci0gICAgICAgIHByb3RvY29sIEJhciB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0aHJlYWQg
QmFyKik7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmF6IDogRm9vLCBCYXIgewotICAg
ICAgICAgICAgdm9pZCBiYXoodGhyZWFkIEJheiopOwotICAgICAgICB9Ci0gICAgICAgIHZvaWQg
ZnV6ejxUOkZvbz4odGhyZWFkIFQqIHApCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvbyhwKTsK
LSAgICAgICAgfQotICAgICAgICB2b2lkIGJ1eno8VDpCYXI+KHRocmVhZCBUKiBwKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBiYXIocCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCB4dXp6PFQ6
QmF6Pih0aHJlYWQgVCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgZnV6eihwKTsKLSAgICAg
ICAgICAgIGJ1enoocCk7Ci0gICAgICAgICAgICBiYXoocCk7Ci0gICAgICAgIH0KLSAgICAgICAg
dm9pZCBmb28odGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCAr
IDc0MzsKLSAgICAgICAgfQotICAgICAgICB2b2lkIGJhcih0aHJlYWQgaW50KiBwKQotICAgICAg
ICB7Ci0gICAgICAgICAgICAqcCA9ICpwICsgOTE7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBi
YXoodGhyZWFkIGludCogcCkKLSAgICAgICAgewotICAgICAgICAgICAgKnAgPSAqcCArIDM5Owot
ICAgICAgICB9Ci0gICAgICAgIGludCB0aGluZ3koaW50IGEpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHh1enooJmEpOwotICAgICAgICAgICAgcmV0dXJuIGE7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRoaW5neSIsIFtd
LCBbbWFrZUludChwcm9ncmFtLCA2NDIpXSksIDY0MiArIDc0MyArIDkxICsgMzkpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW1R5cGVkVmFsdWUu
Ym94KG5ldyBQdHJUeXBlKGV4dGVybmFsT3JpZ2luLCAiZGV2aWNlIiwgcHJvZ3JhbS5pbnRyaW5z
aWNzLmludDMyKSwgbmV3IEVQdHIoYnVmZmVyLCAwKSldKSwgNzkyMDEpOwogfQogCiB0ZXN0cy5w
cmVmaXhQbHVzUGx1cyA9IGZ1bmN0aW9uKCkKQEAgLTIyMDcsNyArMTkxOSw3IEBAIHRlc3RzLnBy
ZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAg
IH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQp
XSksIDY1KTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXNSZXN1bHQgPSBmdW5jdGlvbigpCkBA
IC0yMjE4LDcgKzE5MzAsNyBAQCB0ZXN0cy5wcmVmaXhQbHVzUGx1c1Jlc3VsdCA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiArK3g7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChw
cm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDY1KTsKIH0KIAogdGVzdHMu
cG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtMjIzMCw3ICsxOTQyLDcgQEAgdGVzdHMu
cG9zdGZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjUpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NjQpXSksIDY1KTsKIH0KIAogdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVuY3Rpb24o
KQpAQCAtMjI0MSw3ICsxOTUzLDcgQEAgdGVzdHMucG9zdGZpeFBsdXNQbHVzUmVzdWx0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgrKzsKICAgICAgICAgfQogICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
SW50KHByb2dyYW0sIDY0KV0pLCA2NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOwogfQogCiB0
ZXN0cy5wcmVmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQpAQCAtMjI1Myw3ICsxOTY1LDcgQEAg
dGVzdHMucHJlZml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4
OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDY0KV0pLCA2Myk7CiB9CiAKIHRlc3RzLnByZWZpeE1pbnVzTWludXNSZXN1bHQgPSBm
dW5jdGlvbigpCkBAIC0yMjY0LDcgKzE5NzYsNyBAQCB0ZXN0cy5wcmVmaXhNaW51c01pbnVzUmVz
dWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIC0teDsKICAgICAgICAgfQogICAg
IGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDY0KV0pLCA2Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjMp
OwogfQogCiB0ZXN0cy5wb3N0Zml4TWludXNNaW51cyA9IGZ1bmN0aW9uKCkKQEAgLTIyNzYsNyAr
MTk4OCw3IEBAIHRlc3RzLnBvc3RmaXhNaW51c01pbnVzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwg
NjMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNjQpXSksIDYzKTsKIH0KIAogdGVzdHMucG9zdGZpeE1pbnVzTWlu
dXNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMjg3LDcgKzE5OTksNyBAQCB0ZXN0cy5wb3N0Zml4
TWludXNNaW51c1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LS07CiAg
ICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NCldKSwgNjQpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNjQpXSksIDY0KTsKIH0KIAogdGVzdHMucGx1c0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIy
OTksNyArMjAxMSw3IEBAIHRlc3RzLnBsdXNFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwg
Mzg1ICsgNDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAzODUgKyA0Mik7CiB9CiAKIHRlc3RzLnBs
dXNFcXVhbHNSZXN1bHQgPSBmdW5jdGlvbigpCkBAIC0yMzEwLDcgKzIwMjIsNyBAQCB0ZXN0cy5w
bHVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKz0gNDI7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSArIDQyKTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDM4NSldKSwgMzg1ICsgNDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFscyA9
IGZ1bmN0aW9uKCkKQEAgLTIzMjIsNyArMjAzNCw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0g
NDIpOwogfQogCiB0ZXN0cy5taW51c0VxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzMzMs
NyArMjA0NSw3IEBAIHRlc3RzLm1pbnVzRXF1YWxzUmVzdWx0ID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHggLT0gNDI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCAzODUpXSksIDM4NSAtIDQyKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4NSldKSwgMzg1IC0gNDIpOwogfQog
CiB0ZXN0cy50aW1lc0VxdWFscyA9IGZ1bmN0aW9uKCkKQEAgLTIzNDUsNyArMjA1Nyw3IEBAIHRl
c3RzLnRpbWVzRXF1YWxzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDM4NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy50aW1lc0VxdWFsc1Jlc3VsdCA9
IGZ1bmN0aW9uKCkKQEAgLTIzNTYsNyArMjA2OCw3IEBAIHRlc3RzLnRpbWVzRXF1YWxzUmVzdWx0
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHggKj0gNDI7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksIDM4NSAqIDQyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDM4
NSldKSwgMzg1ICogNDIpOwogfQogCiB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCkBA
IC0yMzY4LDcgKzIwODAsNyBAQCB0ZXN0cy5kaXZpZGVFcXVhbHMgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDM4
NSldKSwgKDM4NSAvIDQyKSB8IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwg
MCk7CiB9CiAKIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKQEAgLTIzNzks
NyArMjA5MSw3IEBAIHRlc3RzLmRpdmlkZUVxdWFsc1Jlc3VsdCA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4IC89IDQyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMzg1KV0pLCAoMzg1IC8gNDIpIHwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzODUpXSksICgzODUgLyA0
MikgfCAwKTsKIH0KIAogdGVzdHMudHdvSW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0yMzkw
LDcgKzIxMDIsNyBAQCB0ZXN0cy50d29JbnRMaXRlcmFscyA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiA0MiA9PSA0MjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOworICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgdHJ1
ZSk7CiB9CiAKIHRlc3RzLnVuaWZ5RGlmZmVyZW50TGl0ZXJhbHMgPSBmdW5jdGlvbigpCkBAIC0y
NDc5LDcgKzIxOTEsNyBAQCB0ZXN0cy5idWlsZEFycmF5VGhlblN1bUl0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDIgKiA1
ICsgNDIgKiA0MSAvIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCA0MiAqIDUgKyA0MiAqIDQxIC8gMik7CiB9CiAKIHRlc3RzLmJ1aWxk
QXJyYXlUaGVuU3VtSXRVc2luZ0FycmF5UmVmZXJlbmNlID0gZnVuY3Rpb24oKQpAQCAtMjUwMCw3
ICsyMjEyLDcgQEAgdGVzdHMuYnVpbGRBcnJheVRoZW5TdW1JdFVzaW5nQXJyYXlSZWZlcmVuY2Ug
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYmFyKEBhcnJheSk7CiAgICAgICAgIH0K
ICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDQyICogNSArIDQyICogNDEgLyAyKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDIgKiA1ICsgNDIgKiA0MSAvIDIp
OwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdCA9IGZ1bmN0aW9uKCkKQEAgLTI1
MjYsNyArMjIzOCw3IEBAIHRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXSAqIDM7CiAgICAgICAgIH0KICAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksIDQ5OCArIDE5ICogMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5ICogMyk7CiB9CiAKIHRlc3RzLm92ZXJy
aWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgPSBmdW5jdGlvbigpCkBAIC0yNTUyLDcgKzIy
NjQsNyBAQCB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZERvU3RvcmVzID0gZnVuY3Rp
b24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtd
LCBbXSksIDQ5OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlw
dFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gZnVuY3Rpb24oKQpAQCAtMjU4Miw3ICsyMjk0LDcgQEAg
dGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRVc2VQb2ludGVycyA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBiYXIoJmZvbyk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDQ5
OCArIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgNDk4ICsgMTkpOwogfQogCiB0ZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFu
ZFVzZVBvaW50ZXJzSW5jb3JyZWN0bHkgPSBmdW5jdGlvbigpCkBAIC0yNjI5LDcgKzIzNDEsNyBA
QCB0ZXN0cy5tYWtlQXJyYXlSZWZGcm9tTG9jYWwgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYmFyKEB4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9CiAKIHRl
c3RzLm1ha2VBcnJheVJlZkZyb21Qb2ludGVyID0gZnVuY3Rpb24oKQpAQCAtMjY0OSw3ICsyMzYx
LDcgQEAgdGVzdHMubWFrZUFycmF5UmVmRnJvbVBvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICByZXR1cm4gYmF6KCZ4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDgpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0OCk7CiB9
CiAKIHRlc3RzLm1ha2VBcnJheVJlZkZyb21BcnJheVJlZiA9IGZ1bmN0aW9uKCkKQEAgLTI2ODIs
NyArMjM5NCw3IEBAIHRlc3RzLnNpbXBsZUxlbmd0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiAoQGFycmF5KS5sZW5ndGg7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NTQpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
NzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZBcnJheUxlbmd0aFN1Y2NlZWQgPSBmdW5jdGlv
bigpCkBAIC0yNjk0LDcgKzI0MDYsNyBAQCB0ZXN0cy5ub25BcnJheVJlZkFycmF5TGVuZ3RoU3Vj
Y2VlZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA3NTQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNzU0KTsKIH0KIAogdGVzdHMubm9uQXJyYXlSZWZB
cnJheUxlbmd0aEZhaWwgPSBmdW5jdGlvbigpCkBAIC0yNzkzLDcgKzI1MDUsNyBAQCB0ZXN0cy5z
aW1wbGVHZXR0ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLnk7CiAgICAg
ICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbXSksIDc4MDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3ODA0KTsKIH0KIAogdGVzdHMuc2ltcGxlU2V0dGVy
ID0gZnVuY3Rpb24oKQpAQCAtMjgxOCw3ICsyNTMwLDcgQEAgdGVzdHMuc2ltcGxlU2V0dGVyID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZvby54OwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W10pLCA3ODA0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdKSwgNzgwNCk7CiB9CiAKIHRlc3RzLmdlbmVyaWNBY2Nlc3NvcnMgPSBmdW5jdGlv
bigpCkBAIC0yOTAzLDM1NCArMjYxNSwxMDMgQEAgdGVzdHMuZ2VuZXJpY0FjY2Vzc29ycyA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBmb28uc3VtOwogICAgICAgICB9CiAgICAgYCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJC
YXNpYyIsIFtdLCBbXSksIDEgKyAyICsgMyArIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpTZXR0ZXJEaWRTZXRZIiwgW10sIFtdKSwgOTMyKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RaU2V0dGVy
IiwgW10sIFtdKSwgNTMgKyA5MzIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSwgW10pLCAxICsgMyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0TFZhbHVlRW11bGF0aW9uIiwgW10s
IFtdKSwgMSArIDIgKyAzICogNSArIDQpOwotfQotCi10ZXN0cy5iaXRTdWJzY3JpcHRBY2Nlc3Nv
ciA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHBy
b3RvY29sIE15Qml0bWFza2FibGUgOiBFcXVhdGFibGUgewotICAgICAgICAgICAgTXlCaXRtYXNr
YWJsZSBvcGVyYXRvciYoTXlCaXRtYXNrYWJsZSwgTXlCaXRtYXNrYWJsZSk7Ci0gICAgICAgICAg
ICBNeUJpdG1hc2thYmxlIG9wZXJhdG9yfChNeUJpdG1hc2thYmxlLCBNeUJpdG1hc2thYmxlKTsK
LSAgICAgICAgICAgIE15Qml0bWFza2FibGUgb3BlcmF0b3J+KE15Qml0bWFza2FibGUpOwotICAg
ICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcjw8KE15Qml0bWFza2FibGUsIHVpbnQpOwot
ICAgICAgICAgICAgTXlCaXRtYXNrYWJsZSBvcGVyYXRvcj4+KE15Qml0bWFza2FibGUsIHVpbnQp
OwotICAgICAgICAgICAgb3BlcmF0b3IgTXlCaXRtYXNrYWJsZShpbnQpOwotICAgICAgICB9Ci0g
ICAgICAgIFQgbWFza0ZvckJpdEluZGV4PFQ6TXlCaXRtYXNrYWJsZT4odWludCBpbmRleCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIFQoMSkgPDwgaW5kZXg7Ci0gICAgICAgIH0KLSAg
ICAgICAgYm9vbCBvcGVyYXRvcltdPFQ6TXlCaXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRl
eCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJvb2wodmFsdWUgJiBtYXNrRm9yQml0
SW5kZXg8VD4oaW5kZXgpKTsKLSAgICAgICAgfQotICAgICAgICBUIG9wZXJhdG9yW109PFQ6TXlC
aXRtYXNrYWJsZT4oVCB2YWx1ZSwgdWludCBpbmRleCwgYm9vbCBiaXQpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIFQgbWFzayA9IG1hc2tGb3JCaXRJbmRleDxUPihpbmRleCk7Ci0gICAgICAgICAg
ICBpZiAoYml0KQotICAgICAgICAgICAgICAgIHZhbHVlIHw9IG1hc2s7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgdmFsdWUgJj0gfm1hc2s7Ci0gICAgICAgICAgICByZXR1cm4g
dmFsdWU7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoaW50KQotICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gMzI7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgodWludCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIDMyOwot
ICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0SW50U2V0Qml0MygpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGludCBmb287Ci0gICAgICAgICAgICBmb29bM10gPSB0cnVlOwotICAgICAgICAgICAg
cmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICBib29sIHRlc3RJbnRTZXRHZXRCaXQ1KCkK
LSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbzsKLSAgICAgICAgICAgIGZvb1s1XSA9IHRy
dWU7Ci0gICAgICAgICAgICByZXR1cm4gZm9vWzVdOwotICAgICAgICB9Ci0gICAgICAgIGJvb2wg
dGVzdEludEdldEJpdDEoKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgZm9vOwotICAgICAg
ICAgICAgcmV0dXJuIGZvb1sxXTsKLSAgICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTdW1C
aXRzKCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IGZvbyA9IDQyOwotICAgICAgICAgICAg
aW50IHJlc3VsdDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZvby5sZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChmb29baV0pCi0gICAgICAgICAgICAgICAgICAg
IHJlc3VsdCsrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgdGVzdFVpbnRTd2FwQml0cygpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGludCBmb28gPSA0MjsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gMDsgaSA8IGZv
by5sZW5ndGggLyAyOyArK2kpIHsKLSAgICAgICAgICAgICAgICBib29sIHRtcCA9IGZvb1tpXTsK
LSAgICAgICAgICAgICAgICBmb29baV0gPSBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXTsKLSAgICAg
ICAgICAgICAgICBmb29bZm9vLmxlbmd0aCAtIGkgLSAxXSA9IHRtcDsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiBmb287Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEZvbyB7
Ci0gICAgICAgICAgICB1aW50IGY7Ci0gICAgICAgICAgICB1aW50IGc7Ci0gICAgICAgIH0KLSAg
ICAgICAgb3BlcmF0b3IgRm9vKHVpbnQgZiwgdWludCBnKQotICAgICAgICB7Ci0gICAgICAgICAg
ICBGb28gcmVzdWx0OwotICAgICAgICAgICAgcmVzdWx0LmYgPSBmOwotICAgICAgICAgICAgcmVz
dWx0LmcgPSBnOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQotICAgICAg
ICBpbnQgb3BlcmF0b3IuaChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4g
aW50KChmb28uZiAmIDB4ZmZmZikgfCAoKGZvby5nICYgMHhmZmZmKSA8PCAxNikpOwotICAgICAg
ICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5oPShGb28gZm9vLCBpbnQgdmFsdWUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIGZvby5mICY9IH4weGZmZmZ1OwotICAgICAgICAgICAgZm9vLmYgfD0g
dWludCh2YWx1ZSkgJiAweGZmZmY7Ci0gICAgICAgICAgICBmb28uZyAmPSB+MHhmZmZmdTsKLSAg
ICAgICAgICAgIGZvby5nIHw9ICh1aW50KHZhbHVlKSA+PiAxNikgJiAweGZmZmY7Ci0gICAgICAg
ICAgICByZXR1cm4gZm9vOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0TFZhbHVlRW11bGF0
aW9uKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsKLSAgICAgICAgICAgIGZvby5m
ID0gNDI7Ci0gICAgICAgICAgICBmb28uZyA9IDM3OwotICAgICAgICAgICAgZm9yICh1aW50IGkg
PSAwOyBpIDwgZm9vLmgubGVuZ3RoOyArK2kpCi0gICAgICAgICAgICAgICAgZm9vLmhbaV0gXj0g
dHJ1ZTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoZm9vLmYgKyBmb28uZyk7Ci0gICAgICAgIH0K
LSAgICAgICAgc3RydWN0IEJhciB7Ci0gICAgICAgICAgICBGb28gYTsKLSAgICAgICAgICAgIEZv
byBiOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvci5jKEJhciBiYXIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBGb28odWludChiYXIuYS5oKSwgdWludChiYXIuYi5oKSk7
Ci0gICAgICAgIH0KLSAgICAgICAgQmFyIG9wZXJhdG9yLmM9KEJhciBiYXIsIEZvbyBmb28pCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hLmggPSBpbnQoZm9vLmYpOwotICAgICAgICAgICAg
YmFyLmIuaCA9IGludChmb28uZyk7Ci0gICAgICAgICAgICByZXR1cm4gYmFyOwotICAgICAgICB9
Ci0gICAgICAgIGludCB0ZXN0Q3JhenlMVmFsdWVFbXVsYXRpb24oKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBCYXIgYmFyOwotICAgICAgICAgICAgYmFyLmEuZiA9IDE7Ci0gICAgICAgICAgICBi
YXIuYS5nID0gMjsKLSAgICAgICAgICAgIGJhci5iLmYgPSAzOwotICAgICAgICAgICAgYmFyLmIu
ZyA9IDQ7Ci0gICAgICAgICAgICBmb3IgKHVpbnQgaSA9IDA7IGkgPCBiYXIuYy5oLmxlbmd0aDsg
aSArPSAyKQotICAgICAgICAgICAgICAgIGJhci5jLmhbaV0gXj0gdHJ1ZTsKLSAgICAgICAgICAg
IHJldHVybiBpbnQoYmFyLmEuZiArIGJhci5hLmcgKyBiYXIuYi5mICsgYmFyLmIuZyk7Ci0gICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RJbnRTZXRCaXQzIiwgW10sIFtdKSwgOCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEludFNldEdldEJpdDUiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0SW50
R2V0Qml0MSIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RVaW50U3VtQml0cyIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFVpbnRTd2FwQml0cyIsIFtd
LCBbXSksIDE0MDkyODYxNDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdExWYWx1ZUVtdWxhdGlvbiIsIFtdLCBbXSksIDEzMDk5MSk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Q3JhenlMVmFsdWVFbXVs
YXRpb24iLCBbXSwgW10pLCA0MzY5Nik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJ0ZXN0U3VwZXJCYXNpYyIsIFtdKSwgMSArIDIgKyAzICsgNCk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WlNldHRlckRpZFNl
dFkiLCBbXSksIDkzMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ0ZXN0WlNldHRlciIsIFtdKSwgNTMgKyA5MzIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFpHZXR0ZXIiLCBbXSksIDEgKyAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RMVmFsdWVFbXVsYXRp
b24iLCBbXSksIDEgKyAyICsgMyAqIDUgKyA0KTsKIH0KIAogdGVzdHMubmVzdGVkU3Vic2NyaXB0
TFZhbHVlRW11bGF0aW9uU2ltcGxlID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAgICAgICAgICBpbnRbN10gYXJyYXk7
Ci0gICAgICAgIH0KLSAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludCBpbmRleCkK
LSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGZvby5hcnJheVtpbmRleF07Ci0gICAgICAg
IH0KLSAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwotICAg
ICAgICAgICAgcmV0dXJuIGZvbzsKLSAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxl
bmd0aChGb28gZm9vKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxl
bmd0aDsKLSAgICAgICAgfQotICAgICAgICBpbnQgc3VtKEZvbyBmb28pCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIGludCByZXN1bHQgPSAwOwotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBmb28u
bGVuZ3RoOyBpLS07KQotICAgICAgICAgICAgICAgIHJlc3VsdCArPSBmb29baV07Ci0gICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHN0cnVjdCBCYXIgewotICAg
ICAgICAgICAgRm9vWzZdIGFycmF5OwotICAgICAgICB9Ci0gICAgICAgIHVpbnQgb3BlcmF0b3Iu
bGVuZ3RoKEJhciBiYXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXku
bGVuZ3RoOwotICAgICAgICB9Ci0gICAgICAgIEZvbyBvcGVyYXRvcltdKEJhciBiYXIsIHVpbnQg
aW5kZXgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBiYXIuYXJyYXlbaW5kZXhdOwot
ICAgICAgICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIgYmFyLCB1aW50IGluZGV4LCBG
b28gdmFsdWUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJhci5hcnJheVtpbmRleF0gPSB2YWx1
ZTsKLSAgICAgICAgICAgIHJldHVybiBiYXI7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IHN1bShC
YXIgYmFyKQotICAgICAgICB7Ci0gICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAg
ICAgIGZvciAodWludCBpID0gYmFyLmxlbmd0aDsgaS0tOykKLSAgICAgICAgICAgICAgICByZXN1
bHQgKz0gc3VtKGJhcltpXSk7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9
Ci0gICAgICAgIHN0cnVjdCBCYXogewotICAgICAgICAgICAgQmFyWzVdIGFycmF5OwotICAgICAg
ICB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVpbnQgaW5kZXgpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhdOwotICAgICAgICB9Ci0gICAg
ICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGJhei5hcnJheVtpbmRleF0gPSB2YWx1ZTsKLSAgICAgICAgICAg
IHJldHVybiBiYXo7Ci0gICAgICAgIH0KLSAgICAgICAgdWludCBvcGVyYXRvci5sZW5ndGgoQmF6
IGJheikKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhei5hcnJheS5sZW5ndGg7Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IHN1bShCYXogYmF6KQotICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQgcmVzdWx0ID0gMDsKLSAgICAgICAgICAgIGZvciAodWludCBpID0gYmF6Lmxlbmd0aDsg
aS0tOykKLSAgICAgICAgICAgICAgICByZXN1bHQgKz0gc3VtKGJheltpXSk7Ci0gICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwotICAgICAgICB9Ci0gICAgICAgIHZvaWQgc2V0VmFsdWVzKHRocmVh
ZCBCYXoqIGJheikKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXotPmxl
bmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gKCpiYXopW2ldLmxl
bmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9ICgqYmF6KVtp
XVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAgICAgICAoKmJheilbaV1bal1b
a10gPSBpbnQoaSArIGogKyBrKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICAgICAgaW50IHRlc3RTZXRWYWx1ZXNBbmRTdW0oKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBCYXogYmF6OwotICAgICAgICAgICAgc2V0VmFsdWVzKCZiYXopOwotICAgICAg
ICAgICAgcmV0dXJuIHN1bShiYXopOwotICAgICAgICB9Ci0gICAgICAgIGludCB0ZXN0U2V0VmFs
dWVzTXV0YXRlVmFsdWVzQW5kU3VtKCkKLSAgICAgICAgewotICAgICAgICAgICAgQmF6IGJhejsK
LSAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKLSAgICAgICAgICAgIGZvciAodWludCBpID0g
YmF6Lmxlbmd0aDsgaS0tOykgewotICAgICAgICAgICAgICAgIGZvciAodWludCBqID0gYmF6W2ld
Lmxlbmd0aDsgai0tOykgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHVpbnQgayA9IGJheltp
XVtqXS5sZW5ndGg7IGstLTspCi0gICAgICAgICAgICAgICAgICAgICAgICBiYXpbaV1bal1ba10g
Kj0gaW50KGspOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHJldHVybiBzdW0oYmF6KTsKLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc0FuZFN1bSIsIFtdLCBbXSks
IDE1NzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtdLCBbXSksIDU1NjUpOwotfQotCi10ZXN0
cy5uZXN0ZWRTdWJzY3JpcHRMVmFsdWVFbXVsYXRpb25HZW5lcmljID0gZnVuY3Rpb24oKQotewot
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgc3RydWN0IEZvbzxUPiB7Ci0gICAg
ICAgICAgICBUWzddIGFycmF5OworICAgICAgICAgICAgaW50WzddIGFycmF5OwogICAgICAgICB9
Ci0gICAgICAgIFQgb3BlcmF0b3JbXTxUPihGb288VD4gZm9vLCB1aW50IGluZGV4KQorICAgICAg
ICBpbnQgb3BlcmF0b3JbXShGb28gZm9vLCB1aW50IGluZGV4KQogICAgICAgICB7CiAgICAgICAg
ICAgICByZXR1cm4gZm9vLmFycmF5W2luZGV4XTsKICAgICAgICAgfQotICAgICAgICBGb288VD4g
b3BlcmF0b3JbXT08VD4oRm9vPFQ+IGZvbywgdWludCBpbmRleCwgVCB2YWx1ZSkKKyAgICAgICAg
Rm9vIG9wZXJhdG9yW109KEZvbyBmb28sIHVpbnQgaW5kZXgsIGludCB2YWx1ZSkKICAgICAgICAg
ewogICAgICAgICAgICAgZm9vLmFycmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0
dXJuIGZvbzsKICAgICAgICAgfQotICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aDxUPihGb288
VD4gZm9vKQorICAgICAgICB1aW50IG9wZXJhdG9yLmxlbmd0aChGb28gZm9vKQogICAgICAgICB7
CiAgICAgICAgICAgICByZXR1cm4gZm9vLmFycmF5Lmxlbmd0aDsKICAgICAgICAgfQotICAgICAg
ICBwcm90b2NvbCBNeUFkZGFibGUgewotICAgICAgICAgICAgTXlBZGRhYmxlIG9wZXJhdG9yKyhN
eUFkZGFibGUsIE15QWRkYWJsZSk7Ci0gICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFi
bGU+KEZvbzxUPiBmb28pCisgICAgICAgIGludCBzdW0oRm9vIGZvbykKICAgICAgICAgewotICAg
ICAgICAgICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAg
ICAgIGZvciAodWludCBpID0gZm9vLmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1
bHQgKz0gZm9vW2ldOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAg
ICAgICBzdHJ1Y3QgQmFyPFQ+IHsKLSAgICAgICAgICAgIEZvbzxUPls2XSBhcnJheTsKKyAgICAg
ICAgc3RydWN0IEJhciB7CisgICAgICAgICAgICBGb29bNl0gYXJyYXk7CiAgICAgICAgIH0KLSAg
ICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmFyPFQ+IGJhcikKKyAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgoQmFyIGJhcikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJh
ci5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgRm9vPFQ+IG9wZXJhdG9yW108VD4o
QmFyPFQ+IGJhciwgdWludCBpbmRleCkKKyAgICAgICAgRm9vIG9wZXJhdG9yW10oQmFyIGJhciwg
dWludCBpbmRleCkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJhci5hcnJheVtpbmRl
eF07CiAgICAgICAgIH0KLSAgICAgICAgQmFyPFQ+IG9wZXJhdG9yW109PFQ+KEJhcjxUPiBiYXIs
IHVpbnQgaW5kZXgsIEZvbzxUPiB2YWx1ZSkKKyAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciBi
YXIsIHVpbnQgaW5kZXgsIEZvbyB2YWx1ZSkKICAgICAgICAgewogICAgICAgICAgICAgYmFyLmFy
cmF5W2luZGV4XSA9IHZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGJhcjsKICAgICAgICAgfQot
ICAgICAgICBUIHN1bTxUOk15QWRkYWJsZT4oQmFyPFQ+IGJhcikKKyAgICAgICAgaW50IHN1bShC
YXIgYmFyKQogICAgICAgICB7Ci0gICAgICAgICAgICBUIHJlc3VsdDsKKyAgICAgICAgICAgIGlu
dCByZXN1bHQgPSAwOwogICAgICAgICAgICAgZm9yICh1aW50IGkgPSBiYXIubGVuZ3RoOyBpLS07
KQogICAgICAgICAgICAgICAgIHJlc3VsdCArPSBzdW0oYmFyW2ldKTsKICAgICAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJhejxUPiB7Ci0gICAgICAg
ICAgICBCYXI8VD5bNV0gYXJyYXk7CisgICAgICAgIHN0cnVjdCBCYXogeworICAgICAgICAgICAg
QmFyWzVdIGFycmF5OwogICAgICAgICB9Ci0gICAgICAgIEJhcjxUPiBvcGVyYXRvcltdPFQ+KEJh
ejxUPiBiYXosIHVpbnQgaW5kZXgpCisgICAgICAgIEJhciBvcGVyYXRvcltdKEJheiBiYXosIHVp
bnQgaW5kZXgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiBiYXouYXJyYXlbaW5kZXhd
OwogICAgICAgICB9Ci0gICAgICAgIEJhejxUPiBvcGVyYXRvcltdPTxUPihCYXo8VD4gYmF6LCB1
aW50IGluZGV4LCBCYXI8VD4gdmFsdWUpCisgICAgICAgIEJheiBvcGVyYXRvcltdPShCYXogYmF6
LCB1aW50IGluZGV4LCBCYXIgdmFsdWUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGJhei5hcnJh
eVtpbmRleF0gPSB2YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBiYXo7CiAgICAgICAgIH0KLSAg
ICAgICAgdWludCBvcGVyYXRvci5sZW5ndGg8VD4oQmF6PFQ+IGJheikKKyAgICAgICAgdWludCBv
cGVyYXRvci5sZW5ndGgoQmF6IGJheikKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGJh
ei5hcnJheS5sZW5ndGg7CiAgICAgICAgIH0KLSAgICAgICAgVCBzdW08VDpNeUFkZGFibGU+KEJh
ejxUPiBiYXopCisgICAgICAgIGludCBzdW0oQmF6IGJheikKICAgICAgICAgewotICAgICAgICAg
ICAgVCByZXN1bHQ7CisgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICAgICAgICAgIGZv
ciAodWludCBpID0gYmF6Lmxlbmd0aDsgaS0tOykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0g
c3VtKGJheltpXSk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAg
ICAgIHByb3RvY29sIE15Q29udmVydGlibGVGcm9tVWludCB7Ci0gICAgICAgICAgICBvcGVyYXRv
ciBNeUNvbnZlcnRpYmxlRnJvbVVpbnQodWludCk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJvdG9j
b2wgU2V0VmFsdWFibGUgOiBNeUFkZGFibGUsIE15Q29udmVydGlibGVGcm9tVWludCB7IH0KLSAg
ICAgICAgdm9pZCBzZXRWYWx1ZXM8VDpTZXRWYWx1YWJsZT4odGhyZWFkIEJhejxUPiogYmF6KQor
ICAgICAgICB2b2lkIHNldFZhbHVlcyh0aHJlYWQgQmF6KiBiYXopCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGZvciAodWludCBpID0gYmF6LT5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAgICAg
ICBmb3IgKHVpbnQgaiA9ICgqYmF6KVtpXS5sZW5ndGg7IGotLTspIHsKICAgICAgICAgICAgICAg
ICAgICAgZm9yICh1aW50IGsgPSAoKmJheilbaV1bal0ubGVuZ3RoOyBrLS07KQotICAgICAgICAg
ICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gVChpICsgaiArIGspOworICAgICAgICAg
ICAgICAgICAgICAgICAgKCpiYXopW2ldW2pdW2tdID0gaW50KGkgKyBqICsgayk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGludCB0ZXN0U2V0
VmFsdWVzQW5kU3VtKCkKICAgICAgICAgewotICAgICAgICAgICAgQmF6PGludD4gYmF6OworICAg
ICAgICAgICAgQmF6IGJhejsKICAgICAgICAgICAgIHNldFZhbHVlcygmYmF6KTsKICAgICAgICAg
ICAgIHJldHVybiBzdW0oYmF6KTsKICAgICAgICAgfQogICAgICAgICBpbnQgdGVzdFNldFZhbHVl
c011dGF0ZVZhbHVlc0FuZFN1bSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEJhejxpbnQ+IGJh
ejsKKyAgICAgICAgICAgIEJheiBiYXo7CiAgICAgICAgICAgICBzZXRWYWx1ZXMoJmJheik7CiAg
ICAgICAgICAgICBmb3IgKHVpbnQgaSA9IGJhei5sZW5ndGg7IGktLTspIHsKICAgICAgICAgICAg
ICAgICBmb3IgKHVpbnQgaiA9IGJheltpXS5sZW5ndGg7IGotLTspIHsKQEAgLTMyNjEsOCArMjcy
Miw4IEBAIHRlc3RzLm5lc3RlZFN1YnNjcmlwdExWYWx1ZUVtdWxhdGlvbkdlbmVyaWMgPSBmdW5j
dGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtKGJheik7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1
ZXNBbmRTdW0iLCBbXSwgW10pLCAxNTc1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgInRlc3RTZXRWYWx1ZXNNdXRhdGVWYWx1ZXNBbmRTdW0iLCBbXSwgW10p
LCA1NTY1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTZXRWYWx1ZXNBbmRTdW0iLCBbXSksIDE1NzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNldFZhbHVlc011dGF0ZVZhbHVlc0FuZFN1bSIsIFtd
KSwgNTU2NSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCkBAIC0zMjczLDEw
ICsyNzM0LDEwIEBAIHRlc3RzLmJvb2xCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gYSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0s
IHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOwotICAgIGNoZWNrQm9v
bChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCBmYWxzZSk7Ci0gICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9v
bChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29s
KHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIGZhbHNlKTsKKyAg
ICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJv
b2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VC
b29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9
CiAKIHRlc3RzLmJvb2xCaXRPciA9IGZ1bmN0aW9uKCkKQEAgLTMyODcsMTAgKzI3NDgsMTAgQEAg
dGVzdHMuYm9vbEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIGZhbHNlKV0pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJv
b2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBt
YWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUp
LCBtYWtlQm9vbChwcm9ncmFtLCB0cnVlKV0pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2Up
LCBtYWtlQm9vbChwcm9ncmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSksIG1ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVl
KSwgbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgdHJ1ZSk7CiB9CiAKIHRlc3RzLmJvb2xCaXRY
b3IgPSBmdW5jdGlvbigpCkBAIC0zMzAxLDEwICsyNzYyLDEwIEBAIHRlc3RzLmJvb2xCaXRYb3Ig
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSBeIGI7CiAgICAgICAgIH0KICAgICBg
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VCb29sKHByb2dyYW0sIGZhbHNlKSwgbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpXSks
IGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpLCBtYWtlQm9vbChwcm9ncmFtLCBmYWxz
ZSldKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHByb2dyYW0s
IHRydWUpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSksIG1ha2VCb29sKHByb2dy
YW0sIHRydWUpXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUJvb2wocHJvZ3JhbSwgZmFsc2UpLCBtYWtlQm9vbChwcm9n
cmFtLCBmYWxzZSldKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgZmFsc2UpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCBmYWxzZSksIG1ha2VCb29sKHBy
b2dyYW0sIHRydWUpXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlQm9vbChwcm9ncmFtLCB0cnVlKSwgbWFrZUJvb2wocHJv
Z3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5ib29sQml0Tm90ID0gZnVuY3Rpb24o
KQpAQCAtMzMxNSw4ICsyNzc2LDggQEAgdGVzdHMuYm9vbEJpdE5vdCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3Jh
bSwgZmFsc2UpXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUJvb2wocHJvZ3JhbSwgdHJ1ZSldKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
Qm9vbChwcm9ncmFtLCBmYWxzZSldKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VCb29sKHByb2dyYW0sIHRydWUpXSksIGZh
bHNlKTsKIH0KIAogdGVzdHMuaW50Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzMyNywxMCArMjc4
OCwxMCBAQCB0ZXN0cy5pbnRCaXRBbmQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
YSAmIGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChw
cm9ncmFtLCA3KV0pLCAxKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2NTUzNSksIG1ha2VJbnQocHJvZ3Jh
bSwgNDIpXSksIDQyKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1ha2VJbnQocHJvZ3JhbSwgLTcp
XSksIC03KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwg
MCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFtLCA3KV0pLCAxKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNDIpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEp
LCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKSwgbWFrZUludChw
cm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLmludEJpdE9yID0gZnVuY3Rpb24oKQpA
QCAtMzM0MSwxMCArMjgwMiwxMCBAQCB0ZXN0cy5pbnRCaXRPciA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiBhIHwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0s
IDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwg
bWFrZUludChwcm9ncmFtLCA0MildKSwgNjU1MzUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFr
ZUludChwcm9ncmFtLCAtNyldKSwgLTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtlSW50KHBy
b2dyYW0sIDg1NzMyKV0pLCA4NTczMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZUludChwcm9ncmFt
LCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwg
NjU1MzUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlSW50KHByb2dyYW0sIC03KV0pLCAtMSk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAwKSwgbWFrZUludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0
ZXN0cy5pbnRCaXRYb3IgPSBmdW5jdGlvbigpCkBAIC0zMzU1LDEwICsyODE2LDEwIEBAIHRlc3Rz
LmludEJpdFhvciA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSks
IDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KSwgbWFrZUludChwcm9ncmFtLCA0MildKSwgNjU0
OTMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlSW50KHByb2dyYW0sIC0xKSwgbWFrZUludChwcm9ncmFtLCAtNyldKSwgNik7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3JhbSwgODU3MzIpXSksIDg1NzMyKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEpLCBtYWtlSW50KHByb2dyYW0sIDcpXSksIDYpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1
MzUpLCBtYWtlSW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAtMSksIG1h
a2VJbnQocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VJbnQocHJvZ3Jh
bSwgODU3MzIpXSksIDg1NzMyKTsKIH0KIAogdGVzdHMuaW50Qml0Tm90ID0gZnVuY3Rpb24oKQpA
QCAtMzM2OSwxMCArMjgzMCwxMCBAQCB0ZXN0cy5pbnRCaXROb3QgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gfmE7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAx
KV0pLCAtMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpXSksIC02NTUzNik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgLTEpXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIC0xKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDEpXSksIC0yKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDY1NTM1KV0pLCAtNjU1MzYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
LTEpXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgLTEpOwogfQogCiB0ZXN0cy5pbnRMU2hpZnQg
PSBmdW5jdGlvbigpCkBAIC0zMzgzLDEwICsyODQ0LDEwIEBAIHRlc3RzLmludExTaGlmdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhIDw8IGI7CiAgICAgICAgIH0KICAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
bWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUlu
dChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI2MjE0MCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJ
bnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAtMzIpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlSW50KHBy
b2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpLCBt
YWtlVWludChwcm9ncmFtLCA3KV0pLCAxMjgpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWlu
dChwcm9ncmFtLCAyKV0pLCAyNjIxNDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9n
cmFtLCA1KV0pLCAtMzIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSks
IDApOwogfQogCiB0ZXN0cy5pbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zMzk3LDEwICsyODU4
LDEwIEBAIHRlc3RzLmludFJTaGlmdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBh
ID4+IGI7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9n
cmFtLCAyKV0pLCAxNjM4Myk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAtMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dyYW0sIDMpXSks
IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAxNjM4Myk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIC0xKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDApLCBtYWtl
VWludChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9u
KCkKQEAgLTM0MTEsMTAgKzI4NzIsMTAgQEAgdGVzdHMudWludEJpdEFuZCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDEpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgODU3MzIpXSksIDApOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1NTM1KSwg
bWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDQyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWlu
dChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI4OSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCA4NTczMildKSwgMCk7CiB9CiAKIHRlc3RzLnVpbnRCaXRPciA9IGZ1bmN0aW9u
KCkKQEAgLTM0MjUsMTAgKzI4ODYsMTAgQEAgdGVzdHMudWludEJpdE9yID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGEgfCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFt
LCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTUzNSk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9n
cmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA0Mjk0OTY3Mjk1KTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDY1
NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NTM1KTsKKyAgICBjaGVja1VpbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgLTEp
LCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNDI5NDk2NzI5NSk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDAp
LCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0
WG9yID0gZnVuY3Rpb24oKQpAQCAtMzQzOSwxMCArMjkwMCwxMCBAQCB0ZXN0cy51aW50Qml0WG9y
ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgXiBiOwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDQyKV0pLCA2NTQ5Myk7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10s
IFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIC03KV0pLCA2KTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21h
a2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgNDIpXSksIDY1NDkzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCAtNyldKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApLCBt
YWtlVWludChwcm9ncmFtLCA4NTczMildKSwgODU3MzIpOwogfQogCiB0ZXN0cy51aW50Qml0Tm90
ID0gZnVuY3Rpb24oKQpAQCAtMzQ1MywxMCArMjkxNCwxMCBAQCB0ZXN0cy51aW50Qml0Tm90ID0g
ZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIH5hOwogICAgICAgICB9CiAgICAgYCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtt
YWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0OTY3Mjk0KTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDY1
NTM1KV0pLCA0Mjk0OTAxNzYwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKV0pLCA0Mjk0
OTY3Mjk0KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpXSksIDQyOTQ5MDE3NjApOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9n
cmFtLCAtMSldKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDApXSksIDQyOTQ5NjcyOTUpOwogfQogCiB0
ZXN0cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQpAQCAtMzQ2NywxMCArMjkyOCwxMCBAQCB0ZXN0
cy51aW50TFNoaWZ0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0s
IDcpXSksIDEyOCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpXSksIDI2MjE0MCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDQyOTQ5NjcyNjQpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQocHJvZ3JhbSwgMCksIG1ha2VVaW50KHByb2dy
YW0sIDMpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwg
MTI4KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNjIx
NDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDQyOTQ5Njcy
NjQpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAK
IHRlc3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCkBAIC0zNDgxLDEwICsyOTQyLDEwIEBAIHRl
c3RzLnVpbnRSU2hpZnQgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gYSA+PiBiOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFttYWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0s
IDIpXSksIDE2MzgzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQocHJvZ3JhbSwg
NSldKSwgMTM0MjE3NzI3KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFt
LCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDAp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDE2MzgzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxMzQyMTc3MjcpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CiB9CiAKIHRlc3Rz
LnVpbnQ4Qml0QW5kID0gZnVuY3Rpb24oKQpAQCAtMzQ5NSwxMCArMjk1NiwxMCBAQCB0ZXN0cy51
aW50OEJpdEFuZCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhICYgYjsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0s
IDcpXSksIDEpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFt
LCA0MildKSwgNDIpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VVaW50OChwcm9ncmFt
LCAtNyldKSwgMjQ5KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50OChwcm9ncmFt
LCA4NTczMildKSwgMCk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMSksIG1ha2VVaW50OChwcm9ncmFtLCA3
KV0pLCAxKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0Mild
KSwgNDIpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHByb2dyYW0sIC03KV0pLCAy
NDkpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDAp
OwogfQogCiB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQpAQCAtMzUwOSwxMCArMjk3MCwx
MCBAQCB0ZXN0cy51aW50OEJpdE9yID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGEg
fCBiOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDEpLCBtYWtlVWlu
dDgocHJvZ3JhbSwgNyldKSwgNyk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDQyKV0pLCAyNTUpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VV
aW50OChwcm9ncmFtLCAtNyldKSwgMjU1KTsKLSAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VV
aW50OChwcm9ncmFtLCA4NTczMildKSwgMjI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKSwgbWFrZVVp
bnQ4KHByb2dyYW0sIDcpXSksIDcpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQ4
KHByb2dyYW0sIDQyKV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKSwgbWFrZVVpbnQ4KHBy
b2dyYW0sIC03KV0pLCAyNTUpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWludDgocHJvZ3Jh
bSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0WG9yID0gZnVuY3Rpb24oKQpA
QCAtMzUyMywxMCArMjk4NCwxMCBAQCB0ZXN0cy51aW50OEJpdFhvciA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiBhIF4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAxKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDcpXSksIDYpOwotICAgIGNoZWNrVWludDgo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9n
cmFtLCA2NTUzNSksIG1ha2VVaW50OChwcm9ncmFtLCA0MildKSwgMjEzKTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgLTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQ4KHByb2dyYW0sIDg1NzMyKV0pLCAyMjgpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDEpLCBtYWtlVWludDgocHJvZ3JhbSwgNyldKSwgNik7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
NjU1MzUpLCBtYWtlVWludDgocHJvZ3JhbSwgNDIpXSksIDIxMyk7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
LTEpLCBtYWtlVWludDgocHJvZ3JhbSwgLTcpXSksIDYpOworICAgIGNoZWNrVWludDgocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBt
YWtlVWludDgocHJvZ3JhbSwgODU3MzIpXSksIDIyOCk7CiB9CiAKIHRlc3RzLnVpbnQ4Qml0Tm90
ID0gZnVuY3Rpb24oKQpAQCAtMzUzNywxMCArMjk5OCwxMCBAQCB0ZXN0cy51aW50OEJpdE5vdCA9
IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB+YTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwg
W21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOwotICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUz
NSldKSwgMCk7Ci0gICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIC0xKV0pLCAwKTsKLSAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgocHJv
Z3JhbSwgMCldKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAxKV0pLCAyNTQpOworICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDY1NTM1KV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSldKSwgMCk7CisgICAgY2hl
Y2tVaW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgo
cHJvZ3JhbSwgMCldKSwgMjU1KTsKIH0KIAogdGVzdHMudWludDhMU2hpZnQgPSBmdW5jdGlvbigp
CkBAIC0zNTUxLDEwICszMDEyLDEwIEBAIHRlc3RzLnVpbnQ4TFNoaWZ0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGEgPDwgYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgNjU1MzUpLCBtYWtlVWludChwcm9ncmFtLCAyKV0pLCAyNTIpOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAtMSksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDIyNCk7Ci0gICAgY2hlY2tV
aW50OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4
KHByb2dyYW0sIDApLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAwKTsKKyAgICBjaGVja1VpbnQ4
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFt
LCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMTI4KTsKKyAgICBjaGVja1VpbnQ4KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCA2NTUz
NSksIG1ha2VVaW50KHByb2dyYW0sIDIpXSksIDI1Mik7CisgICAgY2hlY2tVaW50OChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgLTEpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCAyMjQpOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDApLCBtYWtlVWlu
dChwcm9ncmFtLCAzKV0pLCAwKTsKIH0KIAogdGVzdHMudWludDhSU2hpZnQgPSBmdW5jdGlvbigp
CkBAIC0zNTY1LDEwICszMDI2LDEwIEBAIHRlc3RzLnVpbnQ4UlNoaWZ0ID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgcmV0dXJuIGEgPj4gYjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNr
VWludDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50
OChwcm9ncmFtLCAxKSwgbWFrZVVpbnQocHJvZ3JhbSwgNyldKSwgMCk7Ci0gICAgY2hlY2tVaW50
OChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHBy
b2dyYW0sIDY1NTM1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKLSAgICBjaGVja1Vp
bnQ4KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlVWludDgo
cHJvZ3JhbSwgLTEpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAyNTUpOwotICAgIGNoZWNrVWlu
dDgocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VVaW50OChw
cm9ncmFtLCAwKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgMCk7CisgICAgY2hlY2tVaW50OChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwg
MSksIG1ha2VVaW50KHByb2dyYW0sIDcpXSksIDApOworICAgIGNoZWNrVWludDgocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQ4KHByb2dyYW0sIDY1NTM1KSwg
bWFrZVVpbnQocHJvZ3JhbSwgMildKSwgMjU1KTsKKyAgICBjaGVja1VpbnQ4KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCAtMSksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDI1NSk7CisgICAgY2hlY2tVaW50OChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgMCksIG1ha2VVaW50KHBy
b2dyYW0sIDMpXSksIDApOwogfQogCiB0ZXN0cy5mbG9hdE1hdGggPSBmdW5jdGlvbigpCkBAIC0z
NjI0LDE3ICszMDg1LDE3IEBAIHRlc3RzLmZsb2F0TWF0aCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBmbG9hdCh4KTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdLCBbXSksIDcu
NSk7Ci0gICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb285IiwgW10sIFtdKSwgNy41KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSwgW10pLCA3LjUpOwotICAgIGNoZWNrRmxv
YXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMiIsIFtdLCBbXSksIDcpOwot
ICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMyIsIFtd
LCBbXSksIDcuNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtd
KSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOSIsIFtdKSwgNy41KTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSksIDcuNSk7CisgICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10pLCA3KTsKKyAgICBjaGVja0Zs
b2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIDcuNSk7CiAg
ICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGJh
cihpbnQgeCkKQEAgLTM3MjksNyArMzE5MCw3IEBAIHRlc3RzLmdlbmVyaWNDYXN0SW5mZXIgPSBm
dW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4geC5yZWFsICsgeC5pbWFnOwogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmJvb2xlYW5NYXRoID0gZnVuY3Rpb24o
KQpAQCAtMzc2OCwxNCArMzIyOSwxNCBAQCB0ZXN0cy5ib29sZWFuTWF0aCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZSB8fCBmYWxzZTsKICAgICAgICAgfQogICAgIGApOwot
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzIiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgZmFsc2UpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbXSwgW10p
LCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b282IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNyIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbXSwgW10pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzQiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCB0cnVlKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10p
LCBmYWxzZSk7CiB9CiAKIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBmdW5jdGlvbigp
CkBAIC0zODE2LDEwICszMjc3LDEwIEBAIHRlc3RzLmJvb2xlYW5TaG9ydGNpcmN1aXRpbmcgPSBm
dW5jdGlvbigpCiAgICAgICAgIH0KICAgICBgKTsKIAotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYW5kRmFsc2UiLCBbXSwgW10pLCAxKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIm9yVHJ1ZSIsIFtd
LCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
b3JGYWxzZSIsIFtdLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYW5kVHJ1ZSIsIFtdKSwgMik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJhbmRGYWxzZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJvclRydWUiLCBbXSksIDEpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAib3JGYWxzZSIsIFtdKSwgMik7CiB9
CiAKIHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKQEAgLTM4MzIsNyArMzI5Myw3IEBA
IHRlc3RzLnR5cGVkZWZBcnJheSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBhcnJh
eVR5cGVkZWZbMF07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDApOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKIH0KIAogdGVzdHMu
c2hhZGVyVHlwZXMgPSBmdW5jdGlvbigpCkBAIC00MDg0LDI0ICszNTQ1LDI0IEBAIHRlc3RzLmJ1
aWx0aW5WZWN0b3JzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10sIFtdKSwgNSk7Ci0gICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdLCBbXSks
IHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UyIiwgW10sIFtdKSwgNCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTMiLCBbXSwgW10pLCAzKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtdLCBb
XSksIDUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
b3U1IiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vdTYiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tGbG9hdChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVj
a0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjIiLCBbXSwgW10pLCA0
KTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjMi
LCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vZjQiLCBbXSwgW10pLCA1KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mNSIsIFtdLCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y2IiwgW10sIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAz
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBb
XSksIDQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MyIsIFtdKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb280IiwgW10pLCA1KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb281IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb282IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vdTIiLCBbXSksIDQpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb3UzIiwgW10pLCAzKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NCIsIFtd
KSwgNSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
dTUiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvb3U2IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBbXSksIDMpOworICAgIGNoZWNrRmxvYXQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMiIsIFtdKSwgNCk7CisgICAgY2hlY2tGbG9h
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YzIiwgW10pLCAzKTsKKyAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUp
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvb2Y1Iiwg
W10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb29mNiIsIFtdKSwgZmFsc2UpOwogfQogCiB0ZXN0cy5pbnN0YW50aWF0ZVN0cnVjdEluU3Ry
dWN0ID0gZnVuY3Rpb24oKQpAQCAtNDEyMSw3ICszNTgyLDcgQEAgdGVzdHMuaW5zdGFudGlhdGVT
dHJ1Y3RJblN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiB4LngueDsKICAg
ICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9CiAKIHRlc3RzLmluc3RhbnRpYXRlU3Ry
dWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKQEAgLTQxMzgsNyArMzU5OSw3IEBAIHRl
c3RzLmluc3RhbnRpYXRlU3RydWN0SW5TdHJ1Y3RXaXRoSW50MiA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiB4LngueDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Myk7CiB9
CiAKIHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCkBAIC00MjYzLDMyICszNzI0LDMyIEBA
IHRlc3RzLnNpbXBsZUVudW0gPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gRm9vKGlu
dERlYXRoKCkpOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtd
LCBbXSksIDIpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImRlYXRoIiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidGVzdFNpbXBsZUVxdWFsIiwgW10sIFtdKSwgdHJ1ZSk7Ci0gICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtd
LCBbXSksIHRydWUpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3ROb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2ltcGxlTm90RXF1YWwiLCBbXSwgW10pLCBm
YWxzZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dEFub3RoZXJOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90Tm90RXF1YWwiLCBbXSwgW10pLCB0cnVl
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhciIs
IFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiaW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdLCBbXSksIDMp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWUi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSwgW10pLCAyKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSwg
W10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
clZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10sIFtdKSwgMSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVM
aXRlcmFsIiwgW10sIFtdKSwgMik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrRW51
bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFdhckJhY2t3YXJkcyIsIFtdLCBb
XSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImlu
dEZhbWluZUJhY2t3YXJkcyIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSwgW10pLCAy
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0
aEJhY2t3YXJkcyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyKTsKKyAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIsIFtdKSwgMyk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBs
ZUVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSksIGZhbHNl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0U2lt
cGxlTm90RXF1YWwiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlck5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAg
Y2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFs
IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRGYW1pbmUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdKSwgMik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnREZWF0aCIsIFtdKSwgMyk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZSIsIFtd
KSwgMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1p
bmVWYWx1ZSIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSksIDIpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZSIsIFtdKSwgMyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSks
IDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5l
VmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgInBlc3RpbGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSksIDIpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBb
XSksIDMpOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImlu
dFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiaW50RmFtaW5lQmFja3dhcmRzIiwgW10pLCAxKTsKKyAgICBjaGVja0Vu
dW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRz
IiwgW10pLCAyKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJpbnREZWF0aEJhY2t3YXJkcyIsIFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1XaXRoTWFudWFs
VmFsdWVzID0gZnVuY3Rpb24oKQpAQCAtNDMxNywxMCArMzc3OCwxMCBAQCB0ZXN0cy5lbnVtV2l0
aE1hbnVhbFZhbHVlcyA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIHJldHVybiBGb28uRGVhdGg7
CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCA3Mik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdLCBbXSksIDIz
KTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aCIs
IFtdLCBbXSksIC00Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCAwKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10pLCAyMyk7CisgICAgY2hlY2tFbnVt
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBbXSksIC00Mik7CiB9CiAK
IHRlc3RzLmVudW1XaXRob3V0WmVybyA9IGZ1bmN0aW9uKCkKQEAgLTQzNzcsMTAgKzM4MzgsMTAg
QEAgdGVzdHMuZW51bVdpdGhTb21lTWFudWFsVmFsdWVzID0gZnVuY3Rpb24oKQogICAgICAgICAg
ICAgcmV0dXJuIEZvby5EZWF0aDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDcyKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10p
LCA3Myk7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVz
dGlsZW5jZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImRlYXRoIiwgW10sIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyIiwgW10pLCA3Mik7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lIiwgW10pLCA3Myk7CisgICAgY2hl
Y2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwg
MCk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgi
LCBbXSksIDEpOwogfQogCiB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY0Z1bmN0aW9uID0gZnVu
Y3Rpb24oKQpAQCAtNDM5MSw4ICszODUyLDggQEAgdGVzdHMuZW51bUNvbnN0ZXhwckdlbmVyaWNG
dW5jdGlvbiA9IGZ1bmN0aW9uKCkKICAgICAgICAgaW50IHRlc3RYKCkgeyByZXR1cm4gZm9vPEF4
aXMuWD4oKTsgfQogICAgICAgICBpbnQgdGVzdFkoKSB7IHJldHVybiBmb288QXhpcy5ZPigpOyB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0
ZXN0WCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFkiLCBbXSwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RZIiwgW10pLCAxKTsKIH0KIAogdGVzdHMuZW51
bUNvbnN0ZXhwckdlbmVyaWNTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC00NDEyLDggKzM4NzMsOCBA
QCB0ZXN0cy5lbnVtQ29uc3RleHByR2VuZXJpY1N0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiBmb28oZik7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RYIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0WSIsIFtdLCBbXSksIDEp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFgiLCBb
XSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVz
dFkiLCBbXSksIDEpOwogfQogCiB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQpAQCAtNDQzOSwxNCAr
MzkwMCwxNCBAQCB0ZXN0cy50cmFwID0gZnVuY3Rpb24oKQogICAgICAgICB9CiAgICAgYCk7CiAg
ICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdLCBbXSksCisgICAgICAgICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNCk7CiAgICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwKKyAgICAgICAgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwg
W21ha2VJbnQocHJvZ3JhbSwgMyldKSwKICAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1RyYXBF
cnJvcik7CiAgICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbXSwgW10pLAorICAgICAgICAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzMiLCBbXSksCiAgICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUcmFwRXJyb3IpOwogfQog
CkBAIC00NDcwLDkgKzM5MzEsOSBAQCB0ZXN0cy5zd2l6emxlID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgcmV0dXJuIHF1aXguejsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRmxvYXQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzKTsKLSAgICBj
aGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdLCBbXSks
IDYpOwotICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28z
IiwgW10sIFtdKSwgNCk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgMyk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzIiLCBbXSksIDYpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW10pLCA0KTsKIH0KIAogdGVzdHMuZW51bVdpdGhF
eHBsaWNpdEludEJhc2UgPSBmdW5jdGlvbigpCkBAIC00NTk3LDMyICs0MDU4LDMyIEBAIHRlc3Rz
LmVudW1XaXRoRXhwbGljaXRJbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJu
IEZvbyhpbnREZWF0aCgpKTsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndhciIsIFtdLCBbXSksIDApOwotICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3RpbGVu
Y2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJkZWF0aCIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdLCBbXSksIHRydWUpOwotICAg
IGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RBbm90aGVyRXF1
YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ0ZXN0Tm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10s
IFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgInRlc3RBbm90aGVyTm90RXF1YWwiLCBbXSwgW10pLCBmYWxzZSk7Ci0gICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdE5vdEVxdWFsIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJp
bnRXYXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImludEZhbWluZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZSIsIFtdLCBbXSksIDIpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSwg
W10pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgIndh
clZhbHVlIiwgW10sIFtdKSwgMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmYW1pbmVWYWx1ZSIsIFtdLCBbXSksIDEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVl
IiwgW10sIFtdKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJ3YXJWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDEp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5j
ZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDIpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAzKTsKLSAgICBj
aGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRXYXJCYWNrd2FyZHMi
LCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJpbnRGYW1pbmVCYWNrd2FyZHMiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVja0VudW0ocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJpbnRQZXN0aWxlbmNlQmFja3dhcmRzIiwgW10s
IFtdKSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7CisgICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIsIFtdKSwgMik7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGgiLCBb
XSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRl
c3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVxdWFsIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtdKSwgZmFsc2Up
OworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3RO
b3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJpbnRXYXIiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiaW50RmFtaW5lIiwgW10pLCAxKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludFBlc3RpbGVuY2UiLCBbXSksIDIpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50RGVhdGgiLCBbXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFs
dWUiLCBbXSksIDApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZmFtaW5lVmFsdWUiLCBbXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10pLCAyKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWUiLCBbXSksIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAid2FyVmFsdWVMaXRlcmFs
IiwgW10pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdKSwgMSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWVMaXRlcmFsIiwgW10pLCAyKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRoVmFsdWVMaXRl
cmFsIiwgW10pLCAzKTsKKyAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJpbnRXYXJCYWNrd2FyZHMiLCBbXSksIDApOworICAgIGNoZWNrRW51bShwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImludEZhbWluZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAg
Y2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiaW50UGVzdGlsZW5jZUJh
Y2t3YXJkcyIsIFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiaW50RGVhdGhCYWNrd2FyZHMiLCBbXSksIDMpOwogfQogCiB0ZXN0cy5lbnVtV2l0
aFVpbnRCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDc0NywzMiArNDIwOCwzMiBAQCB0ZXN0cy5lbnVt
V2l0aFVpbnRCYXNlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIEZvbyh1aW50RGVh
dGgoKSk7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmYW1pbmUiLCBbXSwgW10pLCAxKTsKLSAgICBjaGVj
a0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlIiwgW10sIFtd
KSwgMik7Ci0gICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVh
dGgiLCBbXSwgW10pLCAzKTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ0ZXN0U2ltcGxlRXF1YWwiLCBbXSwgW10pLCB0cnVlKTsKLSAgICBjaGVja0Jvb2wo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5vdGhlckVxdWFsIiwgW10sIFtd
KSwgdHJ1ZSk7Ci0gICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
dGVzdE5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3RTaW1wbGVOb3RFcXVhbCIsIFtdLCBbXSksIGZhbHNl
KTsKLSAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ0ZXN0QW5v
dGhlck5vdEVxdWFsIiwgW10sIFtdKSwgZmFsc2UpOwotICAgIGNoZWNrQm9vbChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgInRlc3ROb3ROb3RFcXVhbCIsIFtdLCBbXSksIHRydWUpOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXIiLCBb
XSwgW10pLCAwKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJ1aW50RmFtaW5lIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2UiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVj
a1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ1aW50RGVhdGgiLCBbXSwgW10p
LCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXJW
YWx1ZSIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZVZhbHVlIiwgW10sIFtdKSwgMik7
Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZGVhdGhWYWx1
ZSIsIFtdLCBbXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlTGl0ZXJhbCIsIFtdLCBbXSks
IDEpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInBlc3Rp
bGVuY2VWYWx1ZUxpdGVyYWwiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdLCBbXSksIDMpOwot
ICAgIGNoZWNrRW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnRXYXJCYWNr
d2FyZHMiLCBbXSwgW10pLCAwKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJ1aW50RmFtaW5lQmFja3dhcmRzIiwgW10sIFtdKSwgMSk7Ci0gICAgY2hlY2tF
bnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2Fy
ZHMiLCBbXSwgW10pLCAyKTsKLSAgICBjaGVja0VudW0ocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJ1aW50RGVhdGhCYWNrd2FyZHMiLCBbXSwgW10pLCAzKTsKKyAgICBjaGVja0VudW0o
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJ3YXIiLCBbXSksIDApOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZSIsIFtdKSwgMSk7Cisg
ICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAicGVzdGlsZW5jZSIs
IFtdKSwgMik7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
ZGVhdGgiLCBbXSksIDMpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgInRlc3RTaW1wbGVFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJFcXVhbCIsIFtdKSwgdHJ1ZSk7
CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdE5vdEVx
dWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAidGVzdFNpbXBsZU5vdEVxdWFsIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29s
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidGVzdEFub3RoZXJOb3RFcXVhbCIsIFtd
KSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InRlc3ROb3ROb3RFcXVhbCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhciIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWluZSIsIFtdKSwgMSk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFBlc3RpbGVuY2Ui
LCBbXSksIDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
InVpbnREZWF0aCIsIFtdKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAid2FyVmFsdWUiLCBbXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZhbWluZVZhbHVlIiwgW10pLCAxKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFsdWUiLCBbXSks
IDIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImRlYXRo
VmFsdWUiLCBbXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgIndhclZhbHVlTGl0ZXJhbCIsIFtdKSwgMCk7CisgICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZmFtaW5lVmFsdWVMaXRlcmFsIiwgW10pLCAxKTsKKyAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJwZXN0aWxlbmNlVmFs
dWVMaXRlcmFsIiwgW10pLCAyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJkZWF0aFZhbHVlTGl0ZXJhbCIsIFtdKSwgMyk7CisgICAgY2hlY2tFbnVtKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludFdhckJhY2t3YXJkcyIsIFtdKSwgMCk7
CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAidWludEZhbWlu
ZUJhY2t3YXJkcyIsIFtdKSwgMSk7CisgICAgY2hlY2tFbnVtKHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAidWludFBlc3RpbGVuY2VCYWNrd2FyZHMiLCBbXSksIDIpOworICAgIGNoZWNr
RW51bShwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInVpbnREZWF0aEJhY2t3YXJkcyIs
IFtdKSwgMyk7CiB9CiAKIHRlc3RzLmVudW1GbG9hdEJhc2UgPSBmdW5jdGlvbigpCkBAIC00ODE4
LDcgKzQyNzksNyBAQCB0ZXN0cy5lbXB0eVN0cnVjdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAg
IHJldHVybiA0NjsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFtdKSwgNDYpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA0Nik7CiB9CiAKIHRlc3Rz
LmVudW1TdHJ1Y3RCYXNlID0gZnVuY3Rpb24oKQpAQCAtNDg1Nyw5ICs0MzE4LDkgQEAgdGVzdHMu
c2ltcGxlU3dpdGNoID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSks
IDc2MjQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW10sIFttYWtlSW50KHByb2dyYW0sIDApXSksIDQ5KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDc2NyldKSwg
MjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2MjQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOwog
fQogCiB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODcwLDcg
KzQzMzEsNyBAQCB0ZXN0cy5leGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCiAgICAg
dGV4dCArPSAifSB9IjsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcCh0ZXh0KTsKICAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDB4ZmY7ICsraSkKLSAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZVVpbnQ4KHByb2dyYW0sIGkpXSks
IGkgKiAxLjUpOworICAgICAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKIH0KIAogdGVz
dHMubm90UXVpdGVFeGhhdXN0aXZlVWludDhTd2l0Y2ggPSBmdW5jdGlvbigpCkBAIC00ODkxLDcg
KzQzNTIsNyBAQCB0ZXN0cy5ub3RRdWl0ZUV4aGF1c3RpdmVVaW50OFN3aXRjaFdpdGhEZWZhdWx0
ID0gZnVuY3Rpb24oKQogICAgIHRleHQgKz0gIn0gfSI7CiAgICAgbGV0IHByb2dyYW0gPSBkb1By
ZXAodGV4dCk7CiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAweGZmOyArK2kpCi0gICAgICAgIGNo
ZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VV
aW50OChwcm9ncmFtLCBpKV0pLCBpICogMS41KTsKKyAgICAgICAgY2hlY2tGbG9hdChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludDgocHJvZ3JhbSwgaSldKSwg
aSAqIDEuNSk7CiB9CiAKIHRlc3RzLnN3aXRjaEZhbGxUaHJvdWdoID0gZnVuY3Rpb24oKQpAQCAt
NDkxMyw5ICs0Mzc0LDkgQEAgdGVzdHMuc3dpdGNoRmFsbFRocm91Z2ggPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgNzY3KV0pLCAyNyArIDc2MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgNjkpXSksIDc2
MjQgKyA0OSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VJbnQocHJvZ3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0p
LCAyNyArIDc2MjQgKyA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCArIDQ5KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDApXSksIDQ5KTsKIH0KIAogdGVzdHMuc3dpdGNoQnJlYWsgPSBmdW5jdGlvbigpCkBA
IC00OTM4LDkgKzQzOTksOSBAQCB0ZXN0cy5zd2l0Y2hCcmVhayA9IGZ1bmN0aW9uKCkKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFt
LCA3NjcpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFtdLCBbbWFrZUludChwcm9ncmFtLCA2OSldKSwgNzYyNCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VJbnQocHJv
Z3JhbSwgMCldKSwgNDkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCAyNyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2
OSldKSwgNzYyNCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAwKV0pLCA0OSk7CiB9CiAKIHRlc3RzLmVudW1Td2l0
Y2hCcmVha0V4aGF1c3RpdmUgPSBmdW5jdGlvbigpCkBAIC00OTY2LDkgKzQ0MjcsOSBAQCB0ZXN0
cy5lbnVtU3dpdGNoQnJlYWtFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtlRW51bShwcm9ncmFtLCAiRm9vIiwg
IkEiKV0pLCAyNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10sIFttYWtl
RW51bShwcm9ncmFtLCAiRm9vIiwgIkMiKV0pLCA0OSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJB
IildKSwgMjcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQiIpXSksIDc2MjQpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VFbnVtKHByb2dy
YW0sICJGb28iLCAiQyIpXSksIDQ5KTsKIH0KIAogdGVzdHMuZW51bVN3aXRjaEJyZWFrTm90UXVp
dGVFeGhhdXN0aXZlID0gZnVuY3Rpb24oKQpAQCAtNTAyMSw5ICs0NDgyLDkgQEAgdGVzdHMuZW51
bVN3aXRjaEJyZWFrTm90UXVpdGVFeGhhdXN0aXZlV2l0aERlZmF1bHQgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW21ha2VFbnVtKHBy
b2dyYW0sICJGb28iLCAiQSIpXSksIDI3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIild
KSwgNzYyNCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbXSwgW21ha2VFbnVtKHByb2dyYW0sICJGb28iLCAiQyIpXSksIDQ5KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlRW51bShwcm9n
cmFtLCAiRm9vIiwgIkEiKV0pLCAyNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJCIildKSwgNzYy
NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUVudW0ocHJvZ3JhbSwgIkZvbyIsICJDIildKSwgNDkpOwogfQogCiB0ZXN0cy5zaW1wbGVS
ZWN1cnNpdmVTdHJ1Y3QgPSBmdW5jdGlvbigpCkBAIC01MDcyLDcgKzQ1MzMsNyBAQCB0ZXN0cy5t
dXR1YWxseVJlY3Vyc2l2ZVN0cnVjdFdpdGhQb2ludGVyc0Jyb2tlbiA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgfQogICAgIGApOwogICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKSwKKyAg
ICAgICAgKCkgPT4gY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIC01MTEpLAogICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHJhcEVycm9yKTsKIH0K
IApAQCAtNTA5OCw3ICs0NTU5LDcgQEAgdGVzdHMubXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRo
UG9pbnRlcnMgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gZm9vLmJhci0+YmFyIC0g
YmFyLmZvby0+Zm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAtNTExKTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgLTUxMSk7CiB9CiAK
IHRlc3RzLmxpbmtlZExpc3QgPSBmdW5jdGlvbigpCkBAIC01MTE5LDcgKzQ1ODAsNyBAQCB0ZXN0
cy5saW5rZWRMaXN0ID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHgubmV4dC0+bmV4
dC0+dmFsdWU7CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSksIDMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKIH0KIAogdGVzdHMucG9p
bnRlclRvUG9pbnRlciA9IGZ1bmN0aW9uKCkKQEAgLTUxNDIsNyArNDYwMyw3IEBAIHRlc3RzLnBv
aW50ZXJUb1BvaW50ZXIgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiArIDM5ICsgODMpOwogfQog
CiB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigpCkBAIC01MTY1LDcgKzQ2MjYs
NyBAQCB0ZXN0cy5hcnJheVJlZlRvQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCA3NiArIDM5ICsgODMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCA3NiAr
IDM5ICsgODMpOwogfQogCiB0ZXN0cy5wb2ludGVyR2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNTI0
Niw5NCArNDcwNyw2IEBAIHRlc3RzLnNldHRlcldpdGhNYXRjaGVkVHlwZSA9IGZ1bmN0aW9uKCkK
ICAgICBgKTsKIH0KIAotdGVzdHMub3BlcmF0b3JXaXRoVW5pbmZlcnJhYmxlVHlwZVZhcmlhYmxl
ID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAK
LSAgICAgICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgICAgIGludCB4OwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgRm9vIG9wZXJhdG9yKzxUPihGb28gYSwgRm9vIGIpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsKLSAgICAgICAgICAgICAgICBy
ZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAg
ICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yV2l0aG91dFVuaW5mZXJyYWJsZVR5cGVWYXJpYWJs
ZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHN0
cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgIH0KLSAgICAgICAgRm9vIG9w
ZXJhdG9yKyhGb28gYSwgRm9vIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIEZvbyByZXN1bHQ7
Ci0gICAgICAgICAgICByZXN1bHQueCA9IGEueCArIGIueDsKLSAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7Ci0gICAgICAgIH0KLSAgICAgICAgaW50IGZvbygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEZvbyBhOwotICAgICAgICAgICAgYS54ID0gNjQ1OwotICAgICAgICAgICAgRm9vIGI7Ci0g
ICAgICAgICAgICBiLnggPSAtMzU7Ci0gICAgICAgICAgICByZXR1cm4gKGEgKyBiKS54OwotICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCA2NDUgLSAzNSk7Ci19Ci0KLXRlc3RzLm9wZXJhdG9yQ2FzdFdp
dGhVbmluZmVycmFibGVUeXBlVmFyaWFibGUgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWls
KAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgc3RydWN0IEZvbyB7Ci0gICAg
ICAgICAgICAgICAgaW50IHg7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBvcGVyYXRvcjxU
PiBGb28oaW50IHgpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgRm9vIHJlc3VsdDsK
LSAgICAgICAgICAgICAgICByZXN1bHQueCA9IHg7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5j
ZW9mIFdUeXBlRXJyb3IpOwotfQotCi10ZXN0cy5vcGVyYXRvckNhc3RXaXRoVHlwZVZhcmlhYmxl
SW5mZXJyZWRGcm9tUmV0dXJuVHlwZSA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHN0cnVjdCBGb28gewotICAgICAgICAgICAgaW50IHg7Ci0gICAg
ICAgIH0KLSAgICAgICAgcHJvdG9jb2wgQmFyYWJsZSB7Ci0gICAgICAgICAgICB2b2lkIGJhcih0
aHJlYWQgQmFyYWJsZSosIGludCk7Ci0gICAgICAgIH0KLSAgICAgICAgdm9pZCBiYXIodGhyZWFk
IGZsb2F0KiByZXN1bHQsIGludCB2YWx1ZSkKLSAgICAgICAgewotICAgICAgICAgICAgKnJlc3Vs
dCA9IGZsb2F0KHZhbHVlKTsKLSAgICAgICAgfQotICAgICAgICBvcGVyYXRvcjxUOkJhcmFibGU+
IFQoRm9vIGZvbykKLSAgICAgICAgewotICAgICAgICAgICAgVCByZXN1bHQ7Ci0gICAgICAgICAg
ICBiYXIoJnJlc3VsdCwgZm9vLngpOwotICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAg
ICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAgewotICAgICAgICAgICAgRm9vIGZvbzsK
LSAgICAgICAgICAgIGZvby54ID0gNzU7Ci0gICAgICAgICAgICBmbG9hdCB4ID0gZmxvYXQoZm9v
KTsKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCAqIDEuNSk7Ci0gICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBb
XSksIDExMik7Ci19Ci0KIHRlc3RzLmluY1dyb25nQXJndW1lbnRMZW5ndGggPSBmdW5jdGlvbigp
CiB7CiAgICAgY2hlY2tGYWlsKApAQCAtNTgyMyw3ICs1MTk2LDcgQEAgdGVzdHMuYW5kZXJXaXRo
Tm90aGluZ1dyb25nID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIHguZm9vOwogICAg
ICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuYW5kZXJXaXRoV3JvbmdO
dW1iZXJPZkFyZ3VtZW50cyA9IGZ1bmN0aW9uKCkKQEAgLTU4OTcsNyArNTI3MCw3IEBAIHRlc3Rz
LmFuZGVyV2l0aEFycmF5UmVmID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0dXJuIChAeCku
Zm9vOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMucG9pbnRl
ckluZGV4R2V0dGVyID0gZnVuY3Rpb24oKQpAQCAtNjA4Myw3ICs1NDU2LDcgQEAgdGVzdHMuaW5k
ZXhBbmRlcldpdGhOb3RoaW5nV3JvbmcgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4g
eFs2NjZdOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAxMyk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAogdGVzdHMuaW5k
ZXhBbmRlcldpdGhXcm9uZ051bWJlck9mQXJndW1lbnRzID0gZnVuY3Rpb24oKQpAQCAtNjE2OCw3
ICs1NTQxLDcgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIHJldHVybiAoQHgpW2Zsb2F0KC0xKV07CiAgICAgICAgIH0KICAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdLCBbXSks
IDEzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFtdKSwgMTMpOwogfQogCiB0ZXN0cy5kZXZpY2VQdHJQdHIgPSBmdW5jdGlvbigpCkBAIC02MjA3
LDMwNiArNTU4MCw2IEBAIHRlc3RzLmNvbnN0YW50UHRyUHRyID0gZnVuY3Rpb24oKQogICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbGxl
Z2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiBpbnQzMiogY29uc3RhbnQqIGNvbnN0
YW50IikgIT0gLTEpOwogfQogCi10ZXN0cy5wb2ludGVySW5kZXhHZXR0ZXJJblByb3RvY29sID0g
ZnVuY3Rpb24oKQotewotICAgIGZvciAobGV0IGFkZHJlc3NTcGFjZSBvZiBhZGRyZXNzU3BhY2Vz
KSB7Ci0gICAgICAgIGNoZWNrRmFpbCgKLSAgICAgICAgICAgICgpID0+IGRvUHJlcChgCi0gICAg
ICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IG9wZXJh
dG9yW10oJHthZGRyZXNzU3BhY2V9IEZvbyosIHVpbnQpOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgICAgIGludCBvcGVyYXRv
cltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgICAgIGApLAotICAgICAgICAg
ICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fu
bm90IGhhdmUgZ2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci0gICAgfQotfQotCi10
ZXN0cy5sb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7
Ci0gICAgICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50KTsKLSAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0
b3JbXT0oQmFyLCB1aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAg
ICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJF
dmVyeSBzZXR0ZXIgbXVzdCBoYXZlIGEgbWF0Y2hpbmcgZ2V0dGVyIikgIT0gLTEpOwotfQotCi10
ZXN0cy5ub3RMb25lSW5kZXhTZXR0ZXJJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGRv
UHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3Jb
XShGb28sIHVpbnQpOwotICAgICAgICAgICAgRm9vIG9wZXJhdG9yW109KEZvbywgdWludCwgaW50
KTsKLSAgICAgICAgfQotICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICBpbnQgb3BlcmF0
b3JbXShCYXIsIHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgIEJhciBvcGVyYXRvcltdPShC
YXIsIHVpbnQsIGludCkgeyByZXR1cm4gQmFyKCk7IH0KLSAgICBgKTsKLX0KLQotdGVzdHMuaW5k
ZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGVJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgZmxvYXQgb3BlcmF0b3JbXShGb28sIHVpbnQpOwotICAg
ICAgICAgICAgICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9y
W10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109
KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiU2V0dGVy
IGFuZCBnZXR0ZXIgbXVzdCBhZ3JlZSBvbiB2YWx1ZSB0eXBlIikgIT0gLTEpOwotfQotCi10ZXN0
cy5pbmRleE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigp
Ci17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAg
cHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXSgpOwotICAgICAg
ICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVy
YXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUg
PT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29s
J3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3QgbWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0x
KTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBw
cm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbyk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9w
ZXJhdG9yW10oQmFyLCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3Jy
ZWN0IG51bWJlciBvZiBwYXJhbWV0ZXJzIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgaW50IG9wZXJhdG9yW10oRm9vLCBpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1
aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSW5jb3JyZWN0IG51bWJlciBvZiBw
YXJhbWV0ZXJzIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdB
cmd1bWVudExlbmd0aEluUHJvdG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAot
ICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIsIHVpbnQpIHsg
cmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1aW50LCBpbnQp
IHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2Vv
ZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQcm90b2NvbCdzIHR5cGUgdmFyaWFi
bGUgKEZvbykgbm90IG1lbnRpb25lZCBpbiBzaWduYXR1cmUiKSAhPSAtMSk7Ci0gICAgY2hlY2tG
YWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsK
LSAgICAgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oRm9vKTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShCYXIs
IHVpbnQpIHsgcmV0dXJuIDQyOyB9Ci0gICAgICAgICAgICBCYXIgb3BlcmF0b3JbXT0oQmFyLCB1
aW50LCBpbnQpIHsgcmV0dXJuIEJhcigpOyB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUg
aW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVt
YmVyIG9mIHBhcmFtZXRlcnMiKSAhPSAtMSk7Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9
PiBkb1ByZXAoYAotICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXT0oRm9vLCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3Ry
dWN0IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1
cm4gNDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyBy
ZXR1cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1l
dGVycyIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0g
ICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvcltd
PShGb28sIGludCwgaW50LCBpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0
IEJhciB7IH0KLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4g
NDI7IH0KLSAgICAgICAgICAgIEJhciBvcGVyYXRvcltdPShCYXIsIHVpbnQsIGludCkgeyByZXR1
cm4gQmFyKCk7IH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBl
RXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1iZXIgb2YgcGFyYW1ldGVy
cyIpICE9IC0xKTsKLX0KLQotdGVzdHMubG9uZUluZGV4U2V0dGVyUG9pbnRlckluUHJvdG9jb2wg
PSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAot
ICAgICAgICAgICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiBv
cGVyYXRvcltdPSh0aHJlYWQgRm9vKiBwdHIsIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFy
LCB1aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwg
dWludCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBl
IGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiQ2Fubm90IGhhdmUg
c2V0dGVyIGZvciBwb2ludGVyIHR5cGUiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVy
V2l0aE5vR2V0dGVyT3ZlcmxvYWRJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNr
RmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7
Ci0gICAgICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oaW50LCBGb28pOwotICAgICAgICAgICAg
ICAgIEZvbyBvcGVyYXRvcltdPShGb28sIHVpbnQsIGludCk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oQmFyLCB1
aW50KSB7IHJldHVybiA0MjsgfQotICAgICAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWlu
dCwgaW50KSB7IHJldHVybiBCYXIoKTsgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiRGlkIG5vdCBmaW5kIGZ1
bmN0aW9uIG5hbWVkIG9wZXJhdG9yW109IHdpdGggYXJndW1lbnRzIEZvbyx1aW50MzIiKSAhPSAt
MSk7Ci19Ci0KLXRlc3RzLmluZGV4U2V0dGVyV2l0aE5vR2V0dGVyT3ZlcmxvYWRGaXhlZEluUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgZG9QcmVwKGAKLSAgICAgICAgcHJvdG9jb2wgRm9v
IHsKLSAgICAgICAgICAgIGludCBvcGVyYXRvcltdKEZvbywgdWludCk7Ci0gICAgICAgICAgICBG
b28gb3BlcmF0b3JbXT0oRm9vLCB1aW50LCBpbnQpOwotICAgICAgICB9Ci0gICAgICAgIHN0cnVj
dCBCYXIgeyB9Ci0gICAgICAgIGludCBvcGVyYXRvcltdKEJhciwgdWludCkgeyByZXR1cm4gNDI7
IH0KLSAgICAgICAgQmFyIG9wZXJhdG9yW109KEJhciwgdWludCwgaW50KSB7IHJldHVybiBCYXIo
KTsgfQotICAgIGApOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aE5vdGhpbmdXcm9uZ0luUHJv
dG9jb2wgPSBmdW5jdGlvbigpCi17Ci0gICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhy
ZWFkIEZvbyogZm9vLCB1aW50KTsKLSAgICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPihU
IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiB4WzQyXTsKLSAgICAgICAgfQotICAg
ICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJl
YWQgQmFyKiwgdWludCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7
Ci0gICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9v
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGJhcihCYXIoKSk7Ci0gICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdLCBbXSksIDEyMzQpOwotfQotCi10ZXN0cy5pbmRleEFuZGVyV2l0aFdyb25nTnVtYmVy
T2ZBcmd1bWVudHNJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAg
ICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAg
ICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZb
XSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQg
cmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3Ig
JiYgZS5tZXNzYWdlLmluZGV4T2YoIlByb3RvY29sJ3MgdHlwZSB2YXJpYWJsZSAoRm9vKSBub3Qg
bWVudGlvbmVkIGluIHNpZ25hdHVyZSIpICE9IC0xKTsKLSAgICBjaGVja0ZhaWwoCi0gICAgICAg
ICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2NvbCBGb28gewotICAgICAgICAgICAg
ICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbyk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAgICAgICAgdGhyZWFkIGludCog
b3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZyZXN1bHQ7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbmNvcnJlY3QgbnVtYmVyIG9mIHBhcmFt
ZXRlcnMgZm9yIG9wZXJhdG9yJltdIikgIT0gLTEpOwotICAgIGNoZWNrRmFpbCgKLSAgICAgICAg
KCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEZvbyogZm9vLCB1aW50LCB1aW50KTsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN0cnVjdCBCYXIgeyB9Ci0gICAgICAgICAgICB0
aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgQmFyKiwgdWludCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBpbnQgcmVzdWx0ID0gMTIzNDsKLSAgICAgICAgICAgICAgICByZXR1
cm4gJnJlc3VsdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgYCksCi0gICAgICAgIGUgPT4gZSBp
bnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmluZGV4T2YoIkluY29ycmVjdCBudW1i
ZXIgb2YgcGFyYW1ldGVycyBmb3Igb3BlcmF0b3ImW10iKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLmlu
ZGV4QW5kZXJEb2VzbnRSZXR1cm5Qb2ludGVySW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAg
ICBjaGVja0ZhaWwoCi0gICAgICAgICgpID0+IGRvUHJlcChgCi0gICAgICAgICAgICBwcm90b2Nv
bCBGb28gewotICAgICAgICAgICAgICAgIGludCBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28s
IHVpbnQpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RydWN0IEJhciB7IH0KLSAgICAg
ICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBCYXIqLCB1aW50KQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSAxMjM0OwotICAgICAgICAgICAg
ICAgIHJldHVybiAmcmVzdWx0OwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAg
ZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiUmV0dXJu
IHR5cGUgb2YgYW5kZXIgaXMgbm90IGEgcG9pbnRlciIpICE9IC0xKTsKLX0KLQotdGVzdHMuaW5k
ZXhBbmRlckRvZXNudFRha2VSZWZlcmVuY2VJblByb3RvY29sID0gZnVuY3Rpb24oKQotewotICAg
IGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHByb3RvY29s
IEZvbyB7Ci0gICAgICAgICAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10oRm9vIGZvbywg
dWludCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdHJ1Y3QgQmFyIHsgfQotICAgICAg
ICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhciosIHVpbnQpCi0gICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuICZyZXN1bHQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAgICBl
ID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJQYXJhbWV0
ZXIgdG8gYW5kZXIgaXMgbm90IGEgcmVmZXJlbmNlIikgIT0gLTEpOwotfQotCi10ZXN0cy5pbmRl
eEFuZGVyV2l0aEFycmF5UmVmSW5Qcm90b2NvbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBsZXQgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgICAgICB0aHJl
YWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vW10gYXJyYXksIGZsb2F0IGluZGV4KTsKLSAg
ICAgICAgfQotICAgICAgICBpbnQgYmFyPFQ6Rm9vPih0aHJlYWQgVFtdIHgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiB4WzEuNV07Ci0gICAgICAgIH0KLSAgICAgICAgc3RydWN0IEJh
ciB7IH0KLSAgICAgICAgdGhyZWFkIGludCogb3BlcmF0b3ImW10odGhyZWFkIEJhcltdLCBmbG9h
dCkKLSAgICAgICAgewotICAgICAgICAgICAgaW50IHJlc3VsdCA9IDEyMzQ7Ci0gICAgICAgICAg
ICByZXR1cm4gJnJlc3VsdDsKLSAgICAgICAgfQotICAgICAgICBpbnQgZm9vKCkKLSAgICAgICAg
ewotICAgICAgICAgICAgQmFyIHg7Ci0gICAgICAgICAgICByZXR1cm4gYmFyKEB4KTsKLSAgICAg
ICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10sIFtdKSwgMTIzNCk7Ci19Ci0KIHRlc3RzLmFuZFJldHVybmVkQXJyYXlSZWYg
PSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYApAQCAtNjUyMiw3ICs1
NTk1LDcgQEAgdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJlZiA9IGZ1bmN0aW9uKCkKICAgICAgICAg
ICAgIHJldHVybiAqcHRyOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSwgW10pLCAzNTQpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzNTQpOwogfQog
CiBva1RvVGVzdCA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UeXBlLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZS5qcwppbmRl
eCA3YzI4NzkxODk1M2E1YjFkNWUzNWU4NTBlMzMwZjM4OWRmNmU3NmU4Li4yMWEzMzE5NThlMTM0
YmQ5OTU4MDNiZGE4MWZjY2NjMWVmYjQ0YzZkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UeXBlLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGUuanMKQEAgLTI1LDcgKzI1LDYgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVHlwZSBl
eHRlbmRzIE5vZGUgewotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIFtdOyB9CiAg
ICAgZ2V0IGtpbmQoKSB7IHJldHVybiBUeXBlOyB9CiAgICAgZ2V0IGlzUHRyKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBnZXQgaXNBcnJheSgpIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC0zNywxNSAr
MzYsNiBAQCBjbGFzcyBUeXBlIGV4dGVuZHMgTm9kZSB7CiAgICAgZ2V0IGlzRW51bSgpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgZ2V0IGlzUHJpbWl0aXZlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICAKLSAgICBpbmhlcml0cyhwcm90b2NvbCkKLSAgICB7Ci0gICAgICAgIGlmICghcHJvdG9jb2wp
Ci0gICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIHJldHVybiBwcm90
b2NvbC5oYXNIZWlyKHRoaXMpOwotICAgIH0KLSAgICAKLSAgICBnZXQgaW5zdGFudGlhdGVkVHlw
ZSgpIHsgcmV0dXJuIHRoaXMudmlzaXQobmV3IEluc3RhbnRpYXRlSW1tZWRpYXRlcygpKTsgfQot
ICAgIAogICAgIC8vIEhhdmUgdG8gY2FsbCB0aGVzZSBvbiB0aGUgdW5pZnlOb2RlLgogICAgIGFy
Z3VtZW50Rm9yQW5kT3ZlcmxvYWQob3JpZ2luLCB2YWx1ZSkKICAgICB7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvVHlwZURlZi5qcwppbmRleCA2YzBmOWMxNzRmNTMyMzU2NDFmNGNkMzAy
Y2FiNGMzYWFiMjdjMTQzLi5kN2IwMGNkMmM3M2ViM2E1YTg4MjM0YmYyOWRjM2E2YWM3YjcxYzNm
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmLmpzCisr
KyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWYuanMKQEAgLTI1LDIzICsy
NSwyMSBAQAogInVzZSBzdHJpY3QiOwogCiBjbGFzcyBUeXBlRGVmIGV4dGVuZHMgVHlwZSB7Ci0g
ICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lLCB0eXBlUGFyYW1ldGVycywgdHlwZSkKKyAgICBj
b25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGUpCiAgICAgewogICAgICAgICBzdXBlcigpOwog
ICAgICAgICB0aGlzLl9vcmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1l
OwotICAgICAgICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzOwogICAgICAg
ICB0aGlzLl90eXBlID0gdHlwZTsKICAgICB9CiAgICAgCiAgICAgZ2V0IG9yaWdpbigpIHsgcmV0
dXJuIHRoaXMuX29yaWdpbjsgfQogICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsg
fQotICAgIGdldCB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0ZXJz
OyB9CiAgICAgZ2V0IHR5cGUoKSB7IHJldHVybiB0aGlzLl90eXBlOyB9CiAgICAgCiAgICAgdG9T
dHJpbmcoKQogICAgIHsKLSAgICAgICAgcmV0dXJuICJ0eXBlZGVmICIgKyB0aGlzLm5hbWUgKyAi
PCIgKyB0aGlzLnR5cGVQYXJhbWV0ZXJzICsgIj4gPSAiICsgdGhpcy50eXBlOworICAgICAgICBy
ZXR1cm4gInR5cGVkZWYgIiArIHRoaXMubmFtZSArICIgPSAiICsgdGhpcy50eXBlOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJl
c29sdmVyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZURlZlJlc29sdmVy
LmpzCmluZGV4IGE4MWVhYjQyZDk0OGZjYTNlOTMwYzY4NTdhOTY0ZGRjY2ZjZWU1N2YuLjA5MWI4
NDM1NDJhY2E1OTFkZmYyMmQwYTY1YTM1NDliOGNjZTAxZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVEZWZSZXNvbHZlci5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlRGVmUmVzb2x2ZXIuanMKQEAgLTM0LDIxICszNCw5IEBA
IGNsYXNzIFR5cGVEZWZSZXNvbHZlciBleHRlbmRzIFZpc2l0b3IgewogICAgIHZpc2l0VHlwZVJl
Zihub2RlKQogICAgIHsKICAgICAgICAgdGhpcy5fdmlzaXRpbmcuZG9WaXNpdChub2RlLCAoKSA9
PiB7Ci0gICAgICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJndW1l
bnRzKQotICAgICAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAg
ICAgIGlmIChub2RlLnR5cGUgaW5zdGFuY2VvZiBUeXBlRGVmKSB7Ci0gICAgICAgICAgICAgICAg
bGV0IHVuaWZpY2F0aW9uQ29udGV4dCA9IG5ldyBVbmlmaWNhdGlvbkNvbnRleHQobm9kZS50eXBl
LnR5cGVQYXJhbWV0ZXJzKTsKLSAgICAgICAgICAgICAgICBpZiAobm9kZS50eXBlQXJndW1lbnRz
Lmxlbmd0aCAhPSBub2RlLnR5cGUudHlwZVBhcmFtZXRlcnMubGVuZ3RoKQotICAgICAgICAgICAg
ICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImFyZ3VtZW50L3BhcmFtZXRlciBtaXNtYXRjaCAoc2hv
dWxkIGhhdmUgYmVlbiBjYXVnaHQgZWFybGllcikiKTsKLSAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IG5vZGUudHlwZUFyZ3VtZW50cy5sZW5ndGg7ICsraSkKLSAgICAgICAgICAg
ICAgICAgICAgbm9kZS50eXBlQXJndW1lbnRzW2ldLnVuaWZ5KHVuaWZpY2F0aW9uQ29udGV4dCwg
bm9kZS50eXBlLnR5cGVQYXJhbWV0ZXJzW2ldKTsKLSAgICAgICAgICAgICAgICBsZXQgdmVyaWZp
Y2F0aW9uUmVzdWx0ID0gdW5pZmljYXRpb25Db250ZXh0LnZlcmlmeSgpOwotICAgICAgICAgICAg
ICAgIGlmICghdmVyaWZpY2F0aW9uUmVzdWx0LnJlc3VsdCkKLSAgICAgICAgICAgICAgICAgICAg
dGhyb3cgbmV3IFdUeXBlRXJyb3Iobm9kZS5vcmlnaW4ub3JpZ2luU3RyaW5nLCAiVHlwZSByZWZl
cmVuY2UgdG8gYSB0eXBlIGRlZmluaXRpb24gdmlvbGF0ZXMgcHJvdG9jb2wgY29uc3RyYWludHM6
ICIgKyB2ZXJpZmljYXRpb25SZXN1bHQucmVhc29uKTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBsZXQgbmV3VHlwZSA9IG5vZGUudHlwZS50eXBlLnN1YnN0aXR1dGVUb1VuaWZp
Y2F0aW9uKG5vZGUudHlwZS50eXBlUGFyYW1ldGVycywgdW5pZmljYXRpb25Db250ZXh0KTsKLSAg
ICAgICAgICAgICAgICBuZXdUeXBlLnZpc2l0KHRoaXMpOwotICAgICAgICAgICAgICAgIG5vZGUu
c2V0VHlwZUFuZEFyZ3VtZW50cyhuZXdUeXBlLCBbXSk7CisgICAgICAgICAgICAgICAgbm9kZS50
eXBlLnZpc2l0KHRoaXMpOworICAgICAgICAgICAgICAgIG5vZGUuc2V0VHlwZShub2RlLnR5cGUu
dHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVQYXJhbWV0ZXJSZXdyaXRlci5qcwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2JkMDM3YzkyNzI3NTE2MGZjNDVlYjJmOWE4NjY5
MTc3NzExNmJhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUGFyYW1ldGVyUmV3cml0ZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIFR5cGVQYXJhbWV0ZXJS
ZXdyaXRlciB7Ci0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5vZGUpCi0gICAgewot
ICAgICAgICByZXR1cm4gbmV3IENvbnN0ZXhwclR5cGVQYXJhbWV0ZXIobm9kZS5vcmlnaW4sIG5v
ZGUubmFtZSwgbm9kZS50eXBlLnZpc2l0KG5ldyBSZXdyaXRlcigpKSk7Ci0gICAgfQotICAgIAot
ICAgIHZpc2l0VHlwZVZhcmlhYmxlKG5vZGUpCi0gICAgewotICAgICAgICByZXR1cm4gbmV3IFR5
cGVWYXJpYWJsZShub2RlLm9yaWdpbiwgbm9kZS5uYW1lLCBub2RlLnByb3RvY29sKTsKLSAgICB9
Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVSZWYu
anMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlUmVmLmpzCmluZGV4IGYyYjMy
MmYzYWY2YTczMDg2MTQxZTU2ZDY5M2VmY2UxYzM1MWRhZmMuLjRmNzQ5Yjc0MDg1ODI5M2E5N2Vi
NGE4MTMzY2VmN2JiOGYwOWIwNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL1R5cGVSZWYuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlw
ZVJlZi5qcwpAQCAtMjUsNjkgKzI1LDU4IEBACiAidXNlIHN0cmljdCI7CiAKIGNsYXNzIFR5cGVS
ZWYgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHR5cGVBcmd1
bWVudHMpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1lKQogICAgIHsKICAgICAgICAgc3Vw
ZXIoKTsKICAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2luOwogICAgICAgICB0aGlzLl9uYW1l
ID0gbmFtZTsKICAgICAgICAgdGhpcy50eXBlID0gbnVsbDsKLSAgICAgICAgdGhpcy5fdHlwZUFy
Z3VtZW50cyA9IHR5cGVBcmd1bWVudHM7CiAgICAgfQogICAgIAogICAgIHN0YXRpYyB3cmFwKHR5
cGUpCiAgICAgewotICAgICAgICBpZiAodHlwZSBpbnN0YW5jZW9mIFR5cGVSZWYgJiYgIXR5cGUu
dHlwZUFyZ3VtZW50cykKKyAgICAgICAgaWYgKHR5cGUgaW5zdGFuY2VvZiBUeXBlUmVmKQogICAg
ICAgICAgICAgcmV0dXJuIHR5cGU7CiAgICAgICAgIGxldCBuYW1lID0gdHlwZS5uYW1lOwotICAg
ICAgICBsZXQgcmVzdWx0ID0gbmV3IFR5cGVSZWYodHlwZS5vcmlnaW4sIG5hbWUsIFtdKTsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCBuYW1lKTsKICAgICAg
ICAgcmVzdWx0LnR5cGUgPSB0eXBlOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAg
ICAKLSAgICBzdGF0aWMgaW5zdGFudGlhdGUodHlwZSwgdHlwZUFyZ3VtZW50cykKKyAgICBzdGF0
aWMgaW5zdGFudGlhdGUodHlwZSkKICAgICB7Ci0gICAgICAgIGxldCByZXN1bHQgPSBuZXcgVHlw
ZVJlZih0eXBlLm9yaWdpbiwgdHlwZS5uYW1lLCB0eXBlQXJndW1lbnRzKTsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IG5ldyBUeXBlUmVmKHR5cGUub3JpZ2luLCB0eXBlLm5hbWUpOwogICAgICAgICBy
ZXN1bHQudHlwZSA9IHR5cGU7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogIAogICAg
IGdldCBvcmlnaW4oKSB7IHJldHVybiB0aGlzLl9vcmlnaW47IH0KICAgICBnZXQgbmFtZSgpIHsg
cmV0dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgdHlwZUFyZ3VtZW50cygpIHsgcmV0dXJuIHRo
aXMuX3R5cGVBcmd1bWVudHM7IH0KICAgICAKICAgICBnZXQgdW5pZnlOb2RlKCkKICAgICB7Ci0g
ICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVy
biB0aGlzLnR5cGUudW5pZnlOb2RlOwotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0
dXJuIHRoaXMudHlwZS51bmlmeU5vZGU7CiAgICAgfQogICAgIAogICAgIHBvcHVsYXRlRGVmYXVs
dFZhbHVlKGJ1ZmZlciwgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1
bWVudHMubGVuZ3RoKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5wb3B1bGF0ZURlZmF1
bHRWYWx1ZShidWZmZXIsIG9mZnNldCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90
IGdldCBkZWZhdWx0IHZhbHVlIG9mIGEgdHlwZSBpbnN0YW50aWF0aW9uIik7CisgICAgICAgIHJl
dHVybiB0aGlzLnR5cGUucG9wdWxhdGVEZWZhdWx0VmFsdWUoYnVmZmVyLCBvZmZzZXQpOwogICAg
IH0KICAgICAKICAgICBnZXQgc2l6ZSgpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMudHlwZUFy
Z3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy50eXBlLnNpemU7Ci0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGdldCBzaXplIG9mIGEgdHlwZSBpbnN0YW50aWF0
aW9uIik7CisgICAgICAgIHJldHVybiB0aGlzLnR5cGUuc2l6ZTsKICAgICB9CiAgICAgCiAgICAg
Z2V0IGlzUHJpbWl0aXZlKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy50eXBlQXJndW1lbnRz
Lmxlbmd0aCkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUuaXNQcmltaXRpdmU7Ci0gICAg
ICAgIHRocm93IG5ldyBFcnJvcigiQ2Fubm90IGRldGVybWluZSBpZiBhbiB1bmluc3RhbnRpYXRl
ZCB0eXBlIGlzIHByaW1pdGl2ZTogIiArIHRoaXMpOworICAgICAgICByZXR1cm4gdGhpcy50eXBl
LmlzUHJpbWl0aXZlOwogICAgIH0KICAgICAKLSAgICBzZXRUeXBlQW5kQXJndW1lbnRzKHR5cGUs
IHR5cGVBcmd1bWVudHMpCisgICAgc2V0VHlwZSh0eXBlKQogICAgIHsKICAgICAgICAgdGhpcy5f
bmFtZSA9IG51bGw7CiAgICAgICAgIHRoaXMudHlwZSA9IHR5cGU7Ci0gICAgICAgIHRoaXMuX3R5
cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzOwogICAgIH0KICAgICAKICAgICB1bmlmeUltcGwo
dW5pZmljYXRpb25Db250ZXh0LCBvdGhlcikKQEAgLTk2LDEyICs4NSw2IEBAIGNsYXNzIFR5cGVS
ZWYgZXh0ZW5kcyBUeXBlIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYg
KCF0aGlzLnR5cGUudW5pZnkodW5pZmljYXRpb25Db250ZXh0LCBvdGhlci50eXBlKSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKHRoaXMudHlwZUFyZ3VtZW50cy5sZW5n
dGggIT0gb3RoZXIudHlwZUFyZ3VtZW50cy5sZW5ndGgpCi0gICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50eXBlQXJndW1lbnRzLmxlbmd0
aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAoIXRoaXMudHlwZUFyZ3VtZW50c1tpXS51bmlmeSh1
bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyLnR5cGVBcmd1bWVudHNbaV0pKQotICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAgICAgCkBAIC0xMDksOSArOTIsNyBAQCBjbGFzcyBUeXBlUmVmIGV4dGVuZHMgVHlwZSB7CiAg
ICAgewogICAgICAgICBpZiAoIXRoaXMubmFtZSkKICAgICAgICAgICAgIHJldHVybiB0aGlzLnR5
cGUudG9TdHJpbmcoKTsKLSAgICAgICAgaWYgKCF0aGlzLnR5cGVBcmd1bWVudHMubGVuZ3RoKQot
ICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZTsKLSAgICAgICAgcmV0dXJuIHRoaXMubmFtZSAr
ICI8IiArIHRoaXMudHlwZUFyZ3VtZW50cyArICI+IjsKKyAgICAgICAgcmV0dXJuIHRoaXMubmFt
ZTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L1R5cGVWYXJpYWJsZS5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1R5cGVWYXJp
YWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzMyMThhOTU5ZjUxZDFlZWI5
ZDA1MTRiOTUwZGVjOTY3MmZhMGI3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFyaWFibGUu
anMKKysrIC9kZXYvbnVsbApAQCAtMSwxMDYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFzcyBUeXBlVmFyaWFi
bGUgZXh0ZW5kcyBUeXBlIHsKLSAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHByb3RvY29s
KQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fb3JpZ2luID0gb3JpZ2lu
OwotICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKLSAgICAgICAgdGhpcy5fcHJvdG9jb2wgPSBw
cm90b2NvbDsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IG9yaWdpbigpIHsgcmV0dXJuIHRoaXMuX29y
aWdpbjsgfQotICAgIGdldCBuYW1lKCkgeyByZXR1cm4gdGhpcy5fbmFtZTsgfQotICAgIGdldCBw
cm90b2NvbCgpIHsgcmV0dXJuIHRoaXMuX3Byb3RvY29sOyB9Ci0gICAgCi0gICAgZ2V0IGlzUHJp
bWl0aXZlKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9wcm90b2NvbCAmJiB0aGlzLl9w
cm90b2NvbC5pc1ByaW1pdGl2ZTsKLSAgICB9Ci0gICAgCi0gICAgZ2V0IGlzVW5pZmlhYmxlKCkg
eyByZXR1cm4gdHJ1ZTsgfQotICAgIAotICAgIGluaGVyaXRzKHByb3RvY29sKQotICAgIHsKLSAg
ICAgICAgaWYgKCFwcm90b2NvbCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiB0cnVlfTsK
LSAgICAgICAgaWYgKCF0aGlzLnByb3RvY29sKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6
IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlICIgKyB0aGlzICsgIiBkb2VzIG5vdCBoYXZl
IGEgcHJvdG9jb2wifTsKLSAgICAgICAgcmV0dXJuIHRoaXMucHJvdG9jb2wuaW5oZXJpdHMocHJv
dG9jb2wpOwotICAgIH0KLSAgICAKLSAgICB0eXBlVmFyaWFibGVVbmlmeSh1bmlmaWNhdGlvbkNv
bnRleHQsIG90aGVyKQotICAgIHsKLSAgICAgICAgaWYgKCEob3RoZXIgaW5zdGFuY2VvZiBUeXBl
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHJldHVybiB0
aGlzLl90eXBlVmFyaWFibGVVbmlmeUltcGwodW5pZmljYXRpb25Db250ZXh0LCBvdGhlcik7Ci0g
ICAgfQotICAgIAotICAgIHVuaWZ5SW1wbCh1bmlmaWNhdGlvbkNvbnRleHQsIG90aGVyKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIHRoaXMudHlwZVZhcmlhYmxlVW5pZnkodW5pZmljYXRpb25Db250
ZXh0LCBvdGhlcik7Ci0gICAgfQotICAgIAotICAgIHZlcmlmeUFzQXJndW1lbnQodW5pZmljYXRp
b25Db250ZXh0KQotICAgIHsKLSAgICAgICAgbGV0IHJlYWxUaGlzID0gdW5pZmljYXRpb25Db250
ZXh0LmZpbmQodGhpcyk7Ci0gICAgICAgIAotICAgICAgICAvLyBUaGUgdGhpbmcgd2UgZ2V0IHVu
aWZpZWQgd2l0aCBtdXN0IGJlIGEgdHlwZSB2YXJpYWJsZSB0aGF0IGFjY2VwdHMgYSBicm9hZGVy
IHNldCBvZgotICAgICAgICAvLyB0aGluZ3MgdGhhbiB3ZSBkby4KLSAgICAgICAgaWYgKCEocmVh
bFRoaXMgaW5zdGFuY2VvZiBUeXBlVmFyaWFibGUpKQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1
bHQ6IGZhbHNlLCByZWFzb246ICJUeXBlIHZhcmlhYmxlIGFyZ3VtZW50ICIgKyB0aGlzICsgIiBj
YW5ub3QgYmUgcGFzc2VkIHRvIG5vbi10eXBlLXZhcmlhYmxlIHBhcmFtZXRlciB0eXBlICIgKyBy
ZWFsVGhpc307Ci0gICAgICAgIAotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpIHsKLSAgICAg
ICAgICAgIGlmIChyZWFsVGhpcy5wcm90b2NvbCkKLSAgICAgICAgICAgICAgICByZXR1cm4ge3Jl
c3VsdDogZmFsc2UsIHJlYXNvbjogIlR5cGUgdmFyaWFibGUgd2l0aG91dCBwcm90b2NvbCAiICsg
dGhpcyArICIgY2Fubm90IGJlIHBhc3NlZCB0byBwYXJhbWV0ZXIgdHlwZSB2YXJpYWJsZSB3aXRo
IHByb3RvY29sICIgKyByZWFsVGhpcy5wcm90b2NvbH07Ci0gICAgICAgICAgICByZXR1cm4ge3Jl
c3VsdDogdHJ1ZX07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGxldCByZXN1bHQgPSB0
aGlzLnByb3RvY29sLmluaGVyaXRzKHJlYWxUaGlzLnByb3RvY29sKTsKLSAgICAgICAgaWYgKCFy
ZXN1bHQucmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IGZhbHNlLCByZWFzb246
ICJQcm90b2NvbCAiICsgdGhpcy5wcm90b2NvbCArICIgZG9lcyBub3Qgc3Vic3VtZSBwcm90b2Nv
bCAiICsgcmVhbFRoaXMucHJvdG9jb2wgKyAiIChwYXNzaW5nIHR5cGUgIiArIHRoaXMgKyAiIHRv
IHR5cGUgIiArIHJlYWxUaGlzICsgIik6ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0
dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgIH0KLSAgICAKLSAgICB2ZXJpZnlBc1BhcmFtZXRlcih1
bmlmaWNhdGlvbkNvbnRleHQpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMucHJvdG9jb2wpCi0g
ICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07Ci0gICAgICAgIGxldCByZWFsVGhpcyA9
IHVuaWZpY2F0aW9uQ29udGV4dC5maW5kKHRoaXMpOwotICAgICAgICBsZXQgcmVzdWx0ID0gcmVh
bFRoaXMuaW5oZXJpdHModGhpcy5wcm90b2NvbCk7Ci0gICAgICAgIGlmICghcmVzdWx0LnJlc3Vs
dCkKLSAgICAgICAgICAgIHJldHVybiB7cmVzdWx0OiBmYWxzZSwgcmVhc29uOiAiVHlwZSAiICsg
cmVhbFRoaXMgKyAiIGRvZXMgbm90IGluaGVyaXQgcHJvdG9jb2wgIiArIHRoaXMucHJvdG9jb2wg
KyAiIChwYXNzaW5nIHR5cGUgIiArIHJlYWxUaGlzICsgIiB0byB0eXBlICIgKyB0aGlzICsgIik6
ICIgKyByZXN1bHQucmVhc29ufTsKLSAgICAgICAgcmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAg
IH0KLSAgICAKLSAgICB0b1N0cmluZygpCi0gICAgewotICAgICAgICByZXR1cm4gdGhpcy5uYW1l
ICsgKHRoaXMucHJvdG9jb2wgPyAiOiIgKyB0aGlzLnByb3RvY29sLm5hbWUgOiAiIik7Ci0gICAg
fQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFy
aWFibGVUcmFja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVHlwZVZhcmlh
YmxlVHJhY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU5ZTI5YWFlMTQ1
NDkyN2NkMGQ1MTM5YzA4NTIzOTFmODM1ZjdjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UeXBlVmFy
aWFibGVUcmFja2VyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotInVzZSBzdHJpY3QiOwotCi1jbGFz
cyBUeXBlVmFyaWFibGVUcmFja2VyIGV4dGVuZHMgVmlzaXRvciB7Ci0gICAgY29uc3RydWN0b3Io
KQotICAgIHsKLSAgICAgICAgc3VwZXIoKTsKLSAgICAgICAgdGhpcy5fc2V0ID0gbmV3IFNldCgp
OwotICAgIH0KLSAgICAKLSAgICBnZXQgc2V0KCkgeyByZXR1cm4gdGhpcy5fc2V0OyB9Ci0gICAg
Ci0gICAgX2NvbnNpZGVyKHRoaW5nKQotICAgIHsKLSAgICAgICAgaWYgKHRoaW5nLmlzVW5pZmlh
YmxlKQotICAgICAgICAgICAgdGhpcy5fc2V0LmFkZCh0aGluZyk7Ci0gICAgfQotICAgIAotICAg
IHZpc2l0VHlwZVJlZihub2RlKQotICAgIHsKLSAgICAgICAgaWYgKG5vZGUudHlwZUFyZ3VtZW50
cy5sZW5ndGgpIHsKLSAgICAgICAgICAgIGZvciAobGV0IHR5cGVBcmd1bWVudCBvZiBub2RlLnR5
cGVBcmd1bWVudHMpCi0gICAgICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5v
ZGUudHlwZSk7Ci0gICAgfQotICAgIAotICAgIHZpc2l0VmFyaWFibGVSZWYobm9kZSkKLSAgICB7
Ci0gICAgICAgIHRoaXMuX2NvbnNpZGVyKG5vZGUudmFyaWFibGUpOwotICAgIH0KLX0KLQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0
LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVW5pZmljYXRpb25Db250ZXh0Lmpz
CmluZGV4IDBhMTNkZTQzZDUzMjZlMTM1N2M4N2Y4ODU5ZDlkNjAxNWUwY2FkNDcuLjBiNWZjNGQw
ODZiNjQ2MWZmZjk5ODhjMDk3Y2U3MGM3NDgxZjE0ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1VuaWZpY2F0aW9uQ29udGV4dC5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9VbmlmaWNhdGlvbkNvbnRleHQuanMKQEAgLTI1LDkgKzI1LDgg
QEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgVW5pZmljYXRpb25Db250ZXh0IHsKLSAgICBjb25z
dHJ1Y3Rvcih0eXBlUGFyYW1ldGVycykKKyAgICBjb25zdHJ1Y3RvcigpCiAgICAgewotICAgICAg
ICB0aGlzLl90eXBlUGFyYW1ldGVycyA9IG5ldyBTZXQodHlwZVBhcmFtZXRlcnMpOwogICAgICAg
ICB0aGlzLl9uZXh0TWFwID0gbmV3IE1hcCgpOwogICAgICAgICB0aGlzLl9leHRyYU5vZGVzID0g
bmV3IFNldCgpOwogICAgIH0KQEAgLTQ1LDEwICs0NCw2IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29u
dGV4dCB7CiAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgdW5pZnkgbm9u
LXVuaWZpYWJsZSB0aGluZ3MgIiArIGEgKyAiIGFuZCAiICsgYik7CiAgICAgICAgIH0KICAgICAg
ICAgCi0gICAgICAgIC8vIE1ha2Ugc3VyZSB0aGF0IHR5cGUgcGFyYW1ldGVycyBkb24ndCBlbmQg
dXAgYmVpbmcgcm9vdHMuCi0gICAgICAgIGlmIChhLmlzVW5pZmlhYmxlICYmIGIuaXNVbmlmaWFi
bGUgJiYgdGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKGIpKQotICAgICAgICAgICAgW2EsIGJdID0g
W2IsIGFdOwotICAgICAgICAKICAgICAgICAgdGhpcy5fbmV4dE1hcC5zZXQoYSwgYik7CiAgICAg
fQogICAgIApAQCAtODQsMTUgKzc5LDEyIEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAg
ICAgICAgICAgICByZXN1bHQuYWRkKG5vZGUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KLSAgICAKLSAgICB0eXBlUGFyYW1ldGVycygpIHsgcmV0dXJuIHRoaXMuX3R5cGVQYXJhbWV0
ZXJzOyB9CisKICAgICAqdHlwZUFyZ3VtZW50cygpCiAgICAgewogICAgICAgICBmb3IgKGxldCB0
eXBlQXJndW1lbnQgb2YgdGhpcy5ub2RlcykgewogICAgICAgICAgICAgaWYgKCF0eXBlQXJndW1l
bnQuaXNVbmlmaWFibGUpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBp
ZiAodGhpcy5fdHlwZVBhcmFtZXRlcnMuaGFzKHR5cGVBcmd1bWVudCkpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB5aWVsZCB0eXBlQXJndW1lbnQ7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xMTEsMjggKzEwMyw5IEBAIGNsYXNzIFVuaWZpY2F0aW9uQ29udGV4dCB7CiAg
ICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgZm9yIChsZXQgdHlwZVBhcmFtZXRl
ciBvZiB0aGlzLl90eXBlUGFyYW1ldGVycykgewotICAgICAgICAgICAgbGV0IHJlc3VsdCA9IHR5
cGVQYXJhbWV0ZXIudmVyaWZ5QXNQYXJhbWV0ZXIodGhpcyk7Ci0gICAgICAgICAgICBpZiAoIXJl
c3VsdC5yZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICAgICAgfQot
ICAgICAgICBsZXQgbnVtVHlwZVZhcmlhYmxlQXJndW1lbnRzID0gMDsKLSAgICAgICAgbGV0IGFy
Z3VtZW50U2V0ID0gbmV3IFNldCgpOwotICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Yg
dGhpcy50eXBlQXJndW1lbnRzKCkpIHsKLSAgICAgICAgICAgIGxldCByZXN1bHQgPSB0eXBlQXJn
dW1lbnQudmVyaWZ5QXNBcmd1bWVudCh0aGlzKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LnJl
c3VsdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgaWYgKHR5
cGVBcmd1bWVudC5pc0xpdGVyYWwpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICBhcmd1bWVudFNldC5hZGQodGhpcy5maW5kKHR5cGVBcmd1bWVudCkpOwotICAgICAgICAg
ICAgbnVtVHlwZVZhcmlhYmxlQXJndW1lbnRzKys7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGFy
Z3VtZW50U2V0LnNpemUgPT0gbnVtVHlwZVZhcmlhYmxlQXJndW1lbnRzKQotICAgICAgICAgICAg
cmV0dXJuIHtyZXN1bHQ6IHRydWV9OwotICAgICAgICByZXR1cm4ge3Jlc3VsdDogZmFsc2UsIHJl
YXNvbjogIlR5cGUgdmFyaWFibGVzIHVzZWQgYXMgYXJndW1lbnRzIGdvdCB1bmlmaWVkIHdpdGgg
ZWFjaCBvdGhlciJ9OworICAgICAgICByZXR1cm4ge3Jlc3VsdDogdHJ1ZX07CiAgICAgfQotICAg
IAorCiAgICAgZ2V0IGNvbnZlcnNpb25Db3N0KCkKICAgICB7CiAgICAgICAgIGxldCByZXN1bHQg
PSAwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmFyaWFibGVS
ZWYuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZVJlZi5qcwppbmRl
eCAwMDc1OTY5M2YzNzYzYzg5MTE3ZGQ0MTFjZjA2M2EyNmEyMjU4ZGRhLi5jOWZhYTE1NmY5NzQ3
NzRmZjhlNDhkZGZhMWM3ODhmMGQ5ODZhYWI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9WYXJpYWJsZVJlZi5qcworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9WYXJpYWJsZVJlZi5qcwpAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBWYXJpYWJsZVJl
ZiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgIH0KICAgICAKICAgICBnZXQgbmFtZSgpIHsgcmV0
dXJuIHRoaXMuX25hbWU7IH0KLSAgICBnZXQgaXNDb25zdGV4cHIoKSB7IHJldHVybiB0aGlzLnZh
cmlhYmxlLmlzQ29uc3RleHByOyB9CisgICAgZ2V0IGlzQ29uc3RleHByKCkgeyByZXR1cm4gdGhp
cy52YXJpYWJsZSAmJiB0aGlzLnZhcmlhYmxlLmlzQ29uc3RleHByOyB9CiAgICAgZ2V0IHVuaWZ5
Tm9kZSgpIHsgcmV0dXJuIHRoaXMudmFyaWFibGUudW5pZnlOb2RlOyB9IC8vIFRoaXMgb25seSBt
YWtlcyBzZW5zZSB3aGVuIHRoaXMgaXMgYSBjb25zdGV4cHIuCiAgICAgZ2V0IGlzTFZhbHVlKCkg
eyByZXR1cm4gdGhpcy52YXJpYWJsZS52YXJJc0xWYWx1ZTsgfQogICAgIGdldCBhZGRyZXNzU3Bh
Y2UoKSB7IHJldHVybiAidGhyZWFkIjsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvVmlzaXRvci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Zp
c2l0b3IuanMKaW5kZXggNGJmMDUzMTNlMjg1N2Q3MWVmZTUxM2VlMWUzNWYwNTBkZWY1MzM2ZC4u
MDI2N2RhNWQ0YjBmNGQ5MjRmYjUxOWFkYWYzODZlMTY5ODEzYjk4OSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVmlzaXRvci5qcworKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9WaXNpdG9yLmpzCkBAIC0zNCwxNyArMzQsMTAgQEAgY2xhc3MgVmlz
aXRvciB7CiAgICAgdmlzaXRGdW5jKG5vZGUpCiAgICAgewogICAgICAgICBub2RlLnJldHVyblR5
cGUudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQYXJhbWV0ZXIgb2Ygbm9kZS50
eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAg
ICAgICAgIGZvciAobGV0IHBhcmFtZXRlciBvZiBub2RlLnBhcmFtZXRlcnMpCiAgICAgICAgICAg
ICBwYXJhbWV0ZXIudmlzaXQodGhpcyk7CiAgICAgfQogICAgIAotICAgIHZpc2l0UHJvdG9jb2xG
dW5jRGVjbChub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7Ci0gICAg
fQotICAgIAogICAgIHZpc2l0RnVuY1BhcmFtZXRlcihub2RlKQogICAgIHsKICAgICAgICAgbm9k
ZS50eXBlLnZpc2l0KHRoaXMpOwpAQCAtNjEsMTIgKzU0LDYgQEAgY2xhc3MgVmlzaXRvciB7CiAg
ICAgICAgIHRoaXMudmlzaXRGdW5jKG5vZGUpOwogICAgIH0KICAgICAKLSAgICB2aXNpdE5hdGl2
ZUZ1bmNJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgdGhpcy52aXNpdEZ1bmMobm9kZSk7
Ci0gICAgICAgIG5vZGUuZnVuYy52aXNpdEltcGxlbWVudGF0aW9uRGF0YShub2RlLmltcGxlbWVu
dGF0aW9uRGF0YSwgdGhpcyk7Ci0gICAgfQotICAgIAogICAgIHZpc2l0QmxvY2sobm9kZSkKICAg
ICB7CiAgICAgICAgIGZvciAobGV0IHN0YXRlbWVudCBvZiBub2RlLnN0YXRlbWVudHMpCkBAIC03
OSw2MiArNjYsMjcgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgICAgICAgICBleHByZXNzaW9uLnZp
c2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNpdFByb3RvY29sUmVmKG5vZGUpCi0gICAg
ewotICAgIH0KLSAgICAKLSAgICB2aXNpdFByb3RvY29sRGVjbChub2RlKQotICAgIHsKLSAgICAg
ICAgZm9yIChsZXQgcHJvdG9jb2wgb2Ygbm9kZS5leHRlbmRzKQotICAgICAgICAgICAgcHJvdG9j
b2wudmlzaXQodGhpcyk7Ci0gICAgICAgIGZvciAobGV0IHNpZ25hdHVyZSBvZiBub2RlLnNpZ25h
dHVyZXMpCi0gICAgICAgICAgICBzaWduYXR1cmUudmlzaXQodGhpcyk7Ci0gICAgfQotICAgIAog
ICAgIHZpc2l0VHlwZVJlZihub2RlKQogICAgIHsKLSAgICAgICAgZm9yIChsZXQgdHlwZUFyZ3Vt
ZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAgICAgICAgIHR5cGVBcmd1bWVudC52aXNp
dCh0aGlzKTsKICAgICB9CiAgICAgCiAgICAgdmlzaXROYXRpdmVUeXBlKG5vZGUpCiAgICAgewot
ICAgICAgICBmb3IgKGxldCB0eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0g
ICAgICAgICAgICB0eXBlUGFyYW1ldGVyLnZpc2l0KHRoaXMpOwotICAgIH0KLSAgICAKLSAgICB2
aXNpdE5hdGl2ZVR5cGVJbnN0YW5jZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZS50eXBlLnZp
c2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCB0eXBlQXJndW1lbnQgb2Ygbm9kZS50eXBlQXJn
dW1lbnRzKQogICAgICAgICAgICAgdHlwZUFyZ3VtZW50LnZpc2l0KHRoaXMpOwogICAgIH0KICAg
ICAKICAgICB2aXNpdFR5cGVEZWYobm9kZSkKICAgICB7Ci0gICAgICAgIGZvciAobGV0IHR5cGVQ
YXJhbWV0ZXIgb2Ygbm9kZS50eXBlUGFyYW1ldGVycykKLSAgICAgICAgICAgIHR5cGVQYXJhbWV0
ZXIudmlzaXQodGhpcyk7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0aGlzKTsKICAgICB9CiAg
ICAgCiAgICAgdmlzaXRTdHJ1Y3RUeXBlKG5vZGUpCiAgICAgewotICAgICAgICBmb3IgKGxldCB0
eXBlUGFyYW1ldGVyIG9mIG5vZGUudHlwZVBhcmFtZXRlcnMpCi0gICAgICAgICAgICB0eXBlUGFy
YW1ldGVyLnZpc2l0KHRoaXMpOwogICAgICAgICBmb3IgKGxldCBmaWVsZCBvZiBub2RlLmZpZWxk
cykKICAgICAgICAgICAgIGZpZWxkLnZpc2l0KHRoaXMpOwogICAgIH0KICAgICAKLSAgICB2aXNp
dFR5cGVWYXJpYWJsZShub2RlKQotICAgIHsKLSAgICAgICAgTm9kZS52aXNpdChub2RlLnByb3Rv
Y29sLCB0aGlzKTsKLSAgICB9Ci0gICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVy
KG5vZGUpCi0gICAgewotICAgICAgICBub2RlLnR5cGUudmlzaXQodGhpcyk7Ci0gICAgfQotICAg
IAogICAgIHZpc2l0RmllbGQobm9kZSkKICAgICB7CiAgICAgICAgIG5vZGUudHlwZS52aXNpdCh0
aGlzKTsKQEAgLTIwOCw2ICsxNjAsMTMgQEAgY2xhc3MgVmlzaXRvciB7CiAgICAgewogICAgICAg
ICBub2RlLnB0ci52aXNpdCh0aGlzKTsKICAgICB9CisKKyAgICB2aXNpdFRlcm5hcnlFeHByZXNz
aW9uKG5vZGUpCisgICAgeworICAgICAgICBub2RlLnByZWRpY2F0ZS52aXNpdCh0aGlzKTsKKyAg
ICAgICAgbm9kZS5ib2R5RXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKKyAgICAgICAgbm9kZS5lbHNl
RXhwcmVzc2lvbi52aXNpdCh0aGlzKTsKKyAgICB9CiAgICAgCiAgICAgX2hhbmRsZVByb3BlcnR5
QWNjZXNzRXhwcmVzc2lvbihub2RlKQogICAgIHsKQEAgLTMzNiwxOCArMjk1LDggQEAgY2xhc3Mg
VmlzaXRvciB7CiAgICAgCiAgICAgdmlzaXRDYWxsRXhwcmVzc2lvbihub2RlKQogICAgIHsKLSAg
ICAgICAgZm9yIChsZXQgdHlwZUFyZ3VtZW50IG9mIG5vZGUudHlwZUFyZ3VtZW50cykKLSAgICAg
ICAgICAgIHR5cGVBcmd1bWVudC52aXNpdCh0aGlzKTsKICAgICAgICAgZm9yIChsZXQgYXJndW1l
bnQgb2Ygbm9kZS5hcmd1bWVudExpc3QpCiAgICAgICAgICAgICBOb2RlLnZpc2l0KGFyZ3VtZW50
LCB0aGlzKTsKLSAgICAgICAgbGV0IGhhbmRsZVR5cGVBcmd1bWVudHMgPSBhY3R1YWxUeXBlQXJn
dW1lbnRzID0+IHsKLSAgICAgICAgICAgIGlmIChhY3R1YWxUeXBlQXJndW1lbnRzKSB7Ci0gICAg
ICAgICAgICAgICAgZm9yIChsZXQgYXJndW1lbnQgb2YgYWN0dWFsVHlwZUFyZ3VtZW50cykKLSAg
ICAgICAgICAgICAgICAgICAgYXJndW1lbnQudmlzaXQodGhpcyk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH07Ci0gICAgICAgIGhhbmRsZVR5cGVBcmd1bWVudHMobm9kZS5hY3R1YWxUeXBlQXJn
dW1lbnRzKTsKLSAgICAgICAgaGFuZGxlVHlwZUFyZ3VtZW50cyhub2RlLmluc3RhbnRpYXRlZEFj
dHVhbFR5cGVBcmd1bWVudHMpOwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUubmF0aXZlRnVuY0lu
c3RhbmNlLCB0aGlzKTsKICAgICAgICAgTm9kZS52aXNpdChub2RlLnJldHVyblR5cGUsIHRoaXMp
OwogICAgICAgICBOb2RlLnZpc2l0KG5vZGUucmVzdWx0VHlwZSwgdGhpcyk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9XU0wubWQgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9XU0wubWQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzYjY2
NTY3ODI2YTUxZGQ2Yzc1NGQ0ZTliMjRkNzU3ODk3MmJiM2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
V1NMLm1kCisrKyAvZGV2L251bGwKQEAgLTEsNDc5ICswLDAgQEAKLSMgV2ViR1BVIFNoYWRpbmcg
TGFuZ3VhZ2UKLQotV2ViR1BVIFNoYWRpbmcgTGFuZ3VhZ2UsIG9yIFdTTCBmb3Igc2hvcnQsIGlz
IGEgdHlwZS1zYWZlIGxvdy1vdmVyaGVhZCBwcm9ncmFtbWluZyBsYW5ndWFnZSBmb3IgR1BVcyAo
Z3JhcGhpY3MgcHJvY2Vzc2luZyB1bml0cykuIFRoaXMgZG9jdW1lbnQgZXhwbGFpbnMgaG93IFdT
TCB3b3Jrcy4KLQotIyBHb2FscwotCi1XU0wgaXMgZGVzaWduZWQgdG8gYWNoaWV2ZSB0aGUgZm9s
bG93aW5nIGdvYWxzOgotCi0tIFdTTCBzaG91bGQgZmVlbCAqZmFtaWxpYXIqIHRvIEMrKyBwcm9n
cmFtbWVycy4KLS0gV1NMIHNob3VsZCBiZSBoYXZlIGEgKnNvdW5kKiBhbmQgKmRlY2lkYWJsZSog
dHlwZSBzeXN0ZW0uCi0tIFdTTCBzaG91bGQgbm90IHBlcm1pdCAqb3V0LW9mLWJvdW5kcyogbWVt
b3J5IGFjY2Vzc2VzLgotLSBXU0wgc2hvdWxkIGJlIGhhdmUgKmxvdyBvdmVyaGVhZCouCi0KLVRo
ZSBjb21iaW5hdGlvbiBvZiBhIHNvdW5kIHR5cGUgc3lzdGVtIGFuZCBib3VuZHMgY2hlY2tpbmcg
bWFrZXMgV1NMIGEgc2VjdXJlIHNoYWRlciBsYW5ndWFnZTogdGhlIGxhbmd1YWdlIGl0c2VsZiBp
cyByZXNwb25zaWJsZSBmb3IgaXNvbGF0aW5nIHRoZSBzaGFkZXIgZnJvbSB0aGUgcmVzdCBvZiB0
aGUgR1BVLgotCi0jIEZhbWlsaWFyIFN5bnRheAotCi1XU0wgaXMgYmFzZWQgb24gQyBzeW50YXgs
IGJ1dCBleGNsdWRlcyBmZWF0dXJlcyB0aGF0IGFyZSBlaXRoZXIgdW5uZWNlc3NhcnksIGluc2Vj
dXJlLCBvciByZXBsYWNlZCBieSBvdGhlciBXU0wgZmVhdHVyZXM6Ci0KLS0gTm8gc3RyaW5ncy4K
LS0gTm8gYHJlZ2lzdGVyYCwgYHZvbGF0aWxlYCwgYGNvbnN0YCwgYHJlc3RyaWN0YCwgb3IgYGV4
dGVybmAga2V5d29yZHMuCi0tIE5vIHVuaW9ucy4gYHVuaW9uYCBpcyBub3QgYSBrZXl3b3JkLgot
LSBObyBnb3RvIG9yIGxhYmVscy4gYGdvdG9gIGlzIG5vdCBhIGtleXdvcmQuCi0tIE5vIGAqYCBw
b2ludGVycy4KLS0gRWZmZWN0bGVzcyBleHByZXNzaW9ucyBhcmUgbm90IHN0YXRlbWVudHMgKGBh
ICsgYjtgIGlzIGEgcGFyc2UgZXJyb3IpLgotLSBObyB1bmRlZmluZWQgdmFsdWVzIChgaW50IHg7
YCBpbml0aWFsaXplcyB4IHRvIDApLgotLSBObyBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9ucyAo
YGludCB4OyB1aW50IHkgPSB4O2AgaXMgYSB0eXBlIGVycm9yKS4KLS0gTm8gcmVjdXJzaW9uLgot
LSBObyBkeW5hbWljIG1lbW9yeSBhbGxvY2F0aW9uLgotLSBObyBtb2R1bGFyaXR5LiBUaGUgd2hv
bGUgcHJvZ3JhbSBpcyBvbmUgZmlsZS4KLQotT24gdG9wIG9mIHRoaXMgYmFyZSBDLWxpa2UgZm91
bmRhdGlvbiwgV1NMIGFkZHMgc2VjdXJlIHZlcnNpb25zIG9mIGZhbWlsaWFyIEMrKyBmZWF0dXJl
czoKLQotLSBUeXBlLXNhZmUgcG9pbnRlcnMgKGBeYCkgYW5kIGFycmF5IHJlZmVyZW5jZXMgKGBb
XWApLgotLSBHZW5lcmljcyB0byByZXBsYWNlIHRlbXBsYXRlcy4KLS0gT3BlcmF0b3Igb3Zlcmxv
YWRpbmcuIEJ1aWx0LWluIG9wZXJhdGlvbnMgbGlrZSBgaW50IG9wZXJhdG9yKyhpbnQsIGludClg
IGFyZSBqdXN0IG5hdGl2ZSBmdW5jdGlvbnMuCi0tIENhc3Qgb3ZlcmxvYWRpbmcuIEJ1aWx0LWlu
IGNhc3RzIGxpa2UgYG9wZXJhdG9yIGludChkb3VibGUpYCBhcmUganVzdCBuYXRpdmUgZnVuY3Rp
b25zLgotLSBHZXR0ZXJzIGFuZCBzZXR0ZXJzLiBQcm9wZXJ0eSBhY2Nlc3NlcyBsaWtlIGB2ZWMu
eGAgcmVzb2x2ZSB0byBvdmVybG9hZHMgbGlrZSBgZmxvYXQgb3BlcmF0b3IuZmllbGQoZmxvYXQ0
KWAuCi0tIEFycmF5IGFjY2VzcyBvdmVybG9hZGluZy4gQXJyYXkgYWNjZXNzZXMgbGlrZSBgdmVj
WzBdYCByZXNvbHZlIHRvIHZlcmxvYWRzIGxpa2UgYGZsb2F0IG9wZXJhdG9yW10oZmxvYXQ0LCB1
aW50KWAuCi0KLUluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMsIFdTTCBpcyBzaG93biBieSBleGFt
cGxlIHN0YXJ0aW5nIHdpdGggaXRzIEMtbGlrZSBmb3VuZGF0aW9uIGFuZCB0aGVuIGJ1aWxkaW5n
IHVwIHRvIGluY2x1ZGUgbW9yZSBzb3BoaXN0aWNhdGVkIGZlYXR1cmVzIGxpa2UgZ2VuZXJpY3Mu
Ci0KLSMjIENvbW1vbiBzdWJzZXQgb2YgQyBhbmQgV1NMCi0KLVRoZSBmb2xsb3dpbmcgaXMgYSB2
YWxpZCBXU0wgZnVuY3Rpb24gZGVmaW5pdGlvbjoKLQotICAgIGludCBmb28oaW50IHgsIGludCB5
LCBib29sIHApCi0gICAgewotICAgICAgICBpZiAocCkKLSAgICAgICAgICAgIHJldHVybiB4IC0g
eTsKLSAgICAgICAgcmV0dXJuIHggKyB5OwotICAgIH0KLQotV1NMIHNvdXJjZSBmaWxlcyBiZWhh
dmUgc2ltaWxhcmx5IHRvIEMgc291cmNlIGZpbGVzOgotCi0tIFRvcC1sZXZlbCBzdGF0ZW1lbnRz
IG11c3QgYmUgdHlwZSBvciBmdW5jdGlvbiBkZWZpbml0aW9ucy4KLS0gV1NMIHVzZXMgc3RydWN0
dXJlZCBDIGNvbnRyb2wgZmxvdyBjb25zdHJ1Y3RzLCBsaWtlIGBpZmAsIGB3aGlsZWAsIGBmb3Jg
LCBgZG9gLCBgYnJlYWtgLCBhbmQgYGNvbnRpbnVlYC4KLS0gV1NMIHVzZXMgQy1saWtlIGBzd2l0
Y2hgIHN0YXRlbWVudHMsIGJ1dCBkb2VzIG5vdCBhbGxvdyB0aGVtIHRvIG92ZXJsYXAgb3RoZXIg
Y29udHJvbCBmbG93IChpLmUuIG5vIFtEdWZmJ3MgZGV2aWNlXShodHRwczovL2VuLndpa2lwZWRp
YS5vcmcvd2lraS9EdWZmJTI3c19kZXZpY2UpKS4KLS0gV1NMIGFsbG93cyB2YXJpYWJsZSBkZWNs
YXJhdGlvbnMgYW55d2hlcmUgQysrIHdvdWxkLgotCi1XU0wgdHlwZXMgZGlmZmVyIGZyb20gQyB0
eXBlcy4gRm9yIGV4YW1wbGUsIHRoaXMgaXMgYW4gYXJyYXkgb2YgNDIgaW50ZWdlcnMgaW4gV1NM
OgotCi0gICAgaW50WzQyXSBhcnJheTsKLQotVGhlIHR5cGUgbmV2ZXIgc3Vycm91bmRzIHRoZSB2
YXJpYWJsZSwgbGlrZSBpdCB3b3VsZCBpbiBDIChgaW50IGFycmF5WzQyXWApLgotCi0jIyBUeXBl
LXNhZmUgcG9pbnRlcnMKLQotV1NMIGluY2x1ZGVzIGEgc2VjdXJlIHBvaW50ZXIgdHlwZS4gVG8g
ZW1waGFzaXplIHRoYXQgaXQgaXMgbm90IGxpa2UgdGhlIEMgcG9pbnRlciwgV1NMIHVzZXMgYF5g
IGZvciB0aGUgcG9pbnRlciB0eXBlIGFuZCBmb3IgZGVyZWZlcmVuY2UuIExpa2UgaW4gQywgYCZg
IGlzIHVzZWQgdG8gdGFrZSB0aGUgYWRkcmVzcyBvZiBhIHZhbHVlLiAgQmVjYXVzZSBHUFVzIGhh
dmUgZGlmZmVyZW50IGtpbmRzIG9mIG1lbW9yaWVzLCBwb2ludGVycyBtdXN0IGJlIGFubm90YXRl
ZCB3aXRoIGFuIGFkZHJlc3Mgc3BhY2UgKG9uZSBvZiBgdGhyZWFkYCwgYHRocmVhZGdyb3VwYCwg
YGRldmljZWAsIG9yIGBjb25zdGFudGApLiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgYmFyKHRo
cmVhZCBpbnReIHApCi0gICAgewotICAgICAgICBecCArPSA0MjsKLSAgICB9Ci0gICAgaW50IGZv
bygpCi0gICAgewotICAgICAgICBpbnQgeCA9IDI0OwotICAgICAgICBiYXIoJngpOwotICAgICAg
ICByZXR1cm4geDsgLy8gUmV0dXJucyA2Ni4KLSAgICB9Ci0KLVBvaW50ZXJzIGNhbiBiZSBgbnVs
bGAuIEVhY2ggcG9pbnRlciBhY2Nlc3MgaXMgbnVsbC1jaGVja2VkLCB0aG91Z2ggbW9zdCBwb2lu
dGVyIGFjY2Vzc2VzIChsaWtlIHRoaXMgb25lKSB3aWxsIG5vdCBoYXZlIGEgbnVsbCBjaGVjay4g
V1NMIHBsYWNlcyBlbm91Z2ggY29uc3RyYWludHMgb24gdGhlIHByb2dyYW1tZXIgdGhhdCBwcm9n
cmFtcyBhcmUgZWFzeSBmb3IgdGhlIGNvbXBpbGVyIHRvIGFuYWx5emUuIFRoZSBjb21waWxlciB3
aWxsIGFsd2F5cyBrbm93IHRoYXQgYF5wICs9IDQyYCBhZGRzIGA0MmAgdG8gYHhgIGluIHRoaXMg
Y2FzZS4KLQotV1NMIHBvaW50ZXJzIGRvIG5vdCBzdXBwb3J0IGNhc3Rpbmcgb3IgcG9pbnRlciBh
cml0aG1ldGljLiBBbGwgbWVtb3J5IGFjY2Vzc2libGUgdG8gYSBzaGFkZXIgb3V0bGl2ZXMgdGhl
IHNoYWRlci4gVGhpcyBpcyBldmVuIHRydWUgb2YgbG9jYWwgdmFyaWFibGVzLiBUaGlzIGlzIHBv
c3NpYmxlIGJlY2F1c2UgV1NMIGRvZXMgbm90IHN1cHBvcnQgcmVjdXJzaW9uLiBUaGVyZWZvcmUs
IGxvY2FsIHZhcmlhYmxlcyBzaW1wbHkgZ2V0IGdsb2JhbCBzdG9yYWdlLiBMb2NhbCB2YXJpYWJs
ZXMgYXJlIGluaXRpYWxpemVkIGF0IHRoZSBwb2ludCBvZiB0aGVpciBkZWNsYXJhdGlvbi4gSGVu
Y2UsIHRoZSBmb2xsb3dpbmcgaXMgYSB2YWxpZCBwcm9ncmFtLCB3aGljaCB3aWxsIGV4aGliaXQg
dGhlIHNhbWUgYmVoYXZpb3Igb24gZXZlcnkgV1NMIGltcGxlbWVudGF0aW9uOgotCi0gICAgdGhy
ZWFkIGludF4gZm9vKCkKLSAgICB7Ci0gICAgICAgIGludCB4ID0gNDI7Ci0gICAgICAgIHJldHVy
biAmeDsKLSAgICB9Ci0gICAgaW50IGJhcigpCi0gICAgewotICAgICAgICB0aHJlYWQgaW50XiBw
ID0gZm9vKCk7Ci0gICAgICAgIHRocmVhZCBpbnReIHEgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1
MzsKLSAgICAgICAgcmV0dXJuIF5xOyAvLyBSZXR1cm5zIDUzLgotICAgIH0KLSAgICBpbnQgYmF6
KCkKLSAgICB7Ci0gICAgICAgIHRocmVhZCBpbnReIHAgPSBmb28oKTsKLSAgICAgICAgXnAgPSA1
MzsKLSAgICAgICAgZm9vKCk7Ci0gICAgICAgIHJldHVybiBecDsgLy8gUmV0dXJucyA0Mi4KLSAg
ICB9Ci0KLUl0J3MgcG9zc2libGUgdG8gcG9pbnQgdG8gYW55IGtpbmQgb2YgZGF0YSB0eXBlLiBG
b3IgZXhhbXBsZSwgYHRocmVhZCBkb3VibGVbNDJdXmAgaXMgYSBwb2ludGVyIHRvIGFuIGFycmF5
IG9mIDQyIGRvdWJsZXMuCi0KLSMjIFR5cGUtc2FmZSBhcnJheSByZWZlcmVuY2VzCi0KLVdTTCBz
dXBwb3J0cyBhcnJheSByZWZlcmVuY2VzIHRoYXQgY2FycnkgYSBwb2ludGVyIHRvIHRoZSBiYXNl
IG9mIHRoZSBhcnJheSBhbmQgdGhlIGFycmF5J3MgbGVuZ3RoLiBUaGlzIGFsbG93cyBhY2Nlc3Nl
cyB0byB0aGUgYXJyYXkgdG8gYmUgYm91bmRzLWNoZWNrZWQuCi0KLUFuIGFycmF5IHJlZmVyZW5j
ZSBjYW4gYmUgY3JlYXRlZCB1c2luZyB0aGUgYEBgIG9wZXJhdG9yOgotCi0gICAgaW50WzQyXSBh
cnJheTsKLSAgICB0aHJlYWQgaW50W10gYXJyYXlSZWYgPSBAYXJyYXk7Ci0KLUJvdGggYXJyYXlz
IGFuZCBhcnJheSByZWZlcmVuY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSBhbmQgc3RvcmVkIHRvIHVz
aW5nIGBvcGVyYXRvcltdYDoKLQotICAgIGludCB4ID0gYXJyYXlbaV07Ci0gICAgaW50IHkgPSBh
cnJheVJlZltpXTsKLQotQm90aCBhcnJheXMgYW5kIGFycmF5IHJlZmVyZW5jZXMga25vdyB0aGVp
ciBsZW5ndGg6Ci0KLSAgICB1aW50IGFycmF5TGVuZ3RoID0gYXJyYXkubGVuZ3RoOwotICAgIHVp
bnQgYXJyYXlSZWZMZW5ndGggPSBhcnJheVJlZi5sZW5ndGg7Ci0KLUdpdmVuIGFuIGFycmF5IG9y
IGFycmF5IHJlZmVyZW5jZSwgaXQncyBwb3NzaWJsZSB0byBnZXQgYSBwb2ludGVyIHRvIG9uZSBv
ZiBpdHMgZWxlbWVudHM6Ci0KLSAgICB0aHJlYWQgaW50XiBwdHIxID0gJmFycmF5W2ldOwotICAg
IHRocmVhZCBpbnReIHB0cjIgPSAmYXJyYXlSZWZbaV07Ci0KLUEgcG9pbnRlciBpcyBsaWtlIGFu
IGFycmF5IHJlZmVyZW5jZSB3aXRoIG9uZSBlbGVtZW50LiBJdCdzIHBvc3NpYmxlIHRvIHBlcmZv
cm0gdGhpcyBjb252ZXJzaW9uOgotCi0gICAgdGhyZWFkIGludFtdIHJlZiA9IEBwdHIxOwotICAg
IHJlZlswXSAvLyBFcXVpdmFsZW50IHRvIF5wdHIxLgotICAgIHJlZi5sZW5ndGggLy8gMCBpZiBw
dHIxIHdhcyBudWxsLCAxIGlmIHB0cjEgd2FzIG5vdCBudWxsLgotCi1TaW1pbGFybHksIHVzaW5n
IGBAYCBvbiBhIG5vbi1wb2ludGVyIHZhbHVlIHJlc3VsdHMgaW4gYSByZWZlcmVuY2Ugb2YgbGVu
Z3RoIDE6Ci0KLSAgICBpbnQgeDsKLSAgICB0aHJlYWQgaW50W10gcmVmID0gQHg7Ci0gICAgcmVm
WzBdIC8vIEFsaWFzZXMgeC4KLSAgICByZWYubGVuZ3RoIC8vIFJldHVybnMgMS4KLQotSXQncyBu
b3QgbGVnYWwgdG8gdXNlIGBAYCBvbiBhbiBhcnJheSByZWZlcmVuY2U6Ci0KLSAgICB0aHJlYWQg
aW50W10gcmVmOwotICAgIHRocmVhZCBpbnRbXVtdIHJlZmVyZWYgPSBAcmVmOyAvLyBFcnJvciEK
LQotIyMgR2VuZXJpY3MKLQotV1NMIHN1cHBvcnRzIGdlbmVyaWMgdHlwZXMgdXNpbmcgYSBzaW1w
bGUgc3ludGF4LiBXU0wncyBnZW5lcmljIGFyZSBkZXNpZ25lZCB0byBpbnRlZ3JhdGUgY2xlYW5s
eSBpbnRvIHRoZSBjb21waWxlciBwaXBlbGluZToKLQotLSBHZW5lcmljcyBoYXZlIHVuYW1iaWd1
b3VzIHN5bnRheC4KLS0gR2VuZXJpYyBmdW5jdGlvbnMgY2FuIGJlIHR5cGUgY2hlY2tlZCBiZWZv
cmUgdGhleSBhcmUgaW5zdGFudGlhdGVkLgotCi1TZW1hbnRpYyBlcnJvcnMgaW5zaWRlIGdlbmVy
aWMgZnVuY3Rpb25zIHNob3cgdXAgb25jZSByZWdhcmRsZXNzIG9mIHRoZSBudW1iZXIgb2YgdGlt
ZXMgdGhlIGdlbmVyaWMgZnVuY3Rpb24gaXMgaW5zdGFudGlhdGVkLgotCi1UaGlzIGlzIGEgc2lt
cGxlIGdlbmVyaWMgZnVuY3Rpb246Ci0KLSAgICBUIGlkZW50aXR5PFQ+KFQgdmFsdWUpCi0gICAg
ewotICAgICAgICBUIHRtcCA9IHZhbHVlOwotICAgICAgICByZXR1cm4gdG1wOwotICAgIH0KLQot
V1NMIGFsc28gc3VwcG9ydHMgc3RydWN0cywgd2hpY2ggYXJlIGFsc28gYWxsb3dlZCB0byBiZSBn
ZW5lcmljOgotCi0gICAgLy8gTm90IGdlbmVyaWMuCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAg
IGludCB4OwotICAgICAgICBkb3VibGUgeTsKLSAgICB9Ci0gICAgLy8gR2VuZXJpYy4KLSAgICBz
dHJ1Y3QgQmFyPFQsIFU+IHsKLSAgICAgICAgVCB4OwotICAgICAgICBVIHk7Ci0gICAgfQotCi1U
eXBlIHBhcmFtZXRlcnMgY2FuIGFsc28gYmUgY29uc3RhbnQgZXhwcmVzc2lvbnMuIEZvciBleGFt
cGxlOgotCi0gICAgdm9pZCBpbml0aWFsaXplQXJyYXk8VCwgdWludCBsZW5ndGg+KHRocmVhZCBU
W2xlbmd0aF1eIGFycmF5LCBUIHZhbHVlKQotICAgIHsKLSAgICAgICAgZm9yICh1aW50IGkgPSBs
ZW5ndGg7IGktLTspCi0gICAgICAgICAgICAoXmFycmF5KVtpXSA9IHZhbHVlOwotICAgIH0KLQot
Q29uc3RhbnQgZXhwcmVzc2lvbnMgcGFzc2VkIGFzIHR5cGUgYXJndW1lbnRzIG11c3Qgb2JleSBh
IHZlcnkgbmFycm93IGRlZmluaXRpb24gb2YgY29uc3RhbnRuZXNzLiBPbmx5IGxpdGVyYWxzIGFu
ZCByZWZlcmVuY2VzIHRvIG90aGVyIGNvbnN0YW50IHBhcmFtZXRlcnMgcXVhbGlmeS4KLQotV1NM
IGlzIGd1YXJhbnRlZWQgdG8gY29tcGlsZSBnZW5lcmljcyBieSBpbnN0YW50aWF0aW9uLiBUaGlz
IGlzIG9ic2VydmFibGUsIHNpbmNlIGZ1bmN0aW9ucyBjYW4gcmV0dXJuIHBvaW50ZXJzIHRvIHRo
ZWlyIGxvY2Fscy4gSGVyZSBpcyBhbiBleGFtcGxlIG9mIHRoaXMgcGhlbm9tZW5vbjoKLQotICAg
IHRocmVhZCBpbnReIGFsbG9jYXRlPHVpbnQ+KCkKLSAgICB7Ci0gICAgICAgIGludCB4OwotICAg
ICAgICByZXR1cm4gJng7Ci0gICAgfQotCi1UaGUgYGFsbG9jYXRlYCBmdW5jdGlvbiB3aWxsIHJl
dHVybiBhIGRpZmZlcmVudCBwb2ludGVyIGZvciBlYWNoIHVuc2lnbmVkIGludGVnZXIgY29uc3Rh
bnQgcGFzc2VkIGFzIGEgdHlwZSBwYXJhbWV0ZXIuIFRoaXMgYWxsb2NhdGlvbiBpcyBjb21wbGV0
ZWx5IHN0YXRpYywgc2luY2UgdGhlIGB1aW50YCBwYXJhbWV0ZXIgbXVzdCBiZSBnaXZlbiBhIGNv
bXBpbGUtdGltZSBjb25zdGFudC4KLQotV1NMJ3MgYHR5cGVkZWZgIHVzZXMgYSBzbGlnaHRseSBk
aWZmZXJlbnQgc3ludGF4IHRoYW4gQy4gRm9yIGV4YW1wbGU6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxl
eDxUPiB7Ci0gICAgICAgIFQgcmVhbDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICB0eXBl
ZGVmIEZDb21wbGV4ID0gQ29tcGxleDxmbG9hdD47Ci0KLWB0eXBlZGVmYCBjYW4gYmUgdXNlZCB0
byBjcmVhdGUgZ2VuZXJpYyB0eXBlczoKLQotICAgIHN0cnVjdCBGb288VCwgVT4gewotICAgICAg
ICBUIHg7Ci0gICAgICAgIFUgeTsKLSAgICB9Ci0gICAgdHlwZWRlZiBCYXI8VD4gPSBGb288VCwg
VD47Ci0KLSMjIFByb3RvY29scwotCi1Qcm90b2NvbHMgZW5hYmxlIGdlbmVyaWMgZnVuY3Rpb25z
IHRvIHdvcmsgd2l0aCBkYXRhIG9mIGdlbmVyaWMgdHlwZS4gQmVjYXVzZSBhIGZ1bmN0aW9uIG11
c3QgYmUgdHlwZS1jaGVja2FibGUgYmVmb3JlIGluc3RhbnRpYXRpb24sIHRoZSBmb2xsb3dpbmcg
d291bGQgbm90IGJlIGxlZ2FsOgotCi0gICAgaW50IGJhcihpbnQpIHsgLi4uIH0KLSAgICBkb3Vi
bGUgYmFyKGRvdWJsZSkgeyAuLi4gfQotICAgIAotICAgIFQgZm9vPFQ+KFQgdmFsdWUpCi0gICAg
ewotICAgICAgICByZXR1cm4gYmFyKHZhbHVlKTsgLy8gRXJyb3IhCi0gICAgfQotCi1UaGUgY2Fs
bCB0byBgYmFyYCBkb2Vzbid0IHR5cGUgY2hlY2sgYmVjYXVzZSB0aGUgY29tcGlsZXIgY2Fubm90
IGtub3cgdGhhdCBgZm9vPFQ+YCB3aWxsIGJlIGluc3RhbnRpYXRlZCB3aXRoIGBUID0gaW50YCBv
ciBgVCA9IGRvdWJsZWAuIFByb3RvY29scyBlbmFibGUgdGhlIHByb2dyYW1tZXIgdG8gdGVsbCB0
aGUgY29tcGlsZXIgd2hhdCB0byBleHBlY3Qgb2YgYSB0eXBlIHZhcmlhYmxlOgotCi0gICAgaW50
IGJhcihpbnQpIHsgLi4uIH0KLSAgICBkb3VibGUgYmFyKGRvdWJsZSkgeyAuLi4gfQotICAgIAot
ICAgIHByb3RvY29sIFN1cHBvcnRzQmFyIHsKLSAgICAgICAgU3VwcG9ydHNCYXIgYmFyKFN1cHBv
cnRzQmFyKTsKLSAgICB9Ci0gICAgCi0gICAgVCBmb288VDpTdXBwb3J0c0Jhcj4oVCB2YWx1ZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBiYXIodmFsdWUpOwotICAgIH0KLSAgICAKLSAgICBpbnQg
eCA9IGZvbyg0Mik7Ci0gICAgZG91YmxlIHkgPSBmb28oNC4yKTsKLQotUHJvdG9jb2xzIGhhdmUg
YXV0b21hdGljIHJlbGF0aW9uc2hpcHMgdG8gb25lIGFub3RoZXIgYmFzZWQgb24gd2hhdCBmdW5j
dGlvbnMgdGhleSBjb250YWluOgotCi0gICAgcHJvdG9jb2wgRm9vIHsKLSAgICAgICAgdm9pZCBm
b28oRm9vKTsKLSAgICB9Ci0gICAgcHJvdG9jb2wgQmFyIHsKLSAgICAgICAgdm9pZCBmb28oQmFy
KTsKLSAgICAgICAgdm9pZCBiYXIoQmFyKTsKLSAgICB9Ci0gICAgdm9pZCBmdXp6PFQ6Rm9vPihU
IHgpIHsgLi4uIH0KLSAgICB2b2lkIGJ1eno8VDpCYXI+KFQgeCkKLSAgICB7Ci0gICAgICAgIGZ1
enooeCk7IC8vIE9LLCBiZWNhdXNlIEJhciBpcyBtb3JlIHNwZWNpZmljIHRoYW4gRm9vLiAgICAK
LSAgICB9Ci0KLVByb3RvY29scyBjYW4gYWxzbyBtaXggb3RoZXIgcHJvdG9jb2xzIGluIGV4cGxp
Y2l0bHkuIExpa2UgaW4gdGhlIGV4YW1wbGUgYWJvdmUsIHRoZSBleGFtcGxlIGJlbG93IHJlbGll
cyBvbiB0aGUgZmFjdCB0aGF0IGBCYXJgIGlzIGEgbW9yZSBzcGVjaWZpYyBwcm90b2NvbCB0aGFu
IGBGb29gLiBIb3dldmVyLCB0aGlzIGV4YW1wbGUgZGVjbGFyZXMgdGhpcyBleHBsaWNpdGx5IChg
cHJvdG9jb2wgQmFyIDogRm9vYCkgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZSBsYW5ndWFnZSB0
byBpbmZlciBpdDoKLQotICAgIHByb3RvY29sIEZvbyB7Ci0gICAgICAgIHZvaWQgZm9vKEZvbyk7
Ci0gICAgfQotICAgIHByb3RvY29sIEJhciA6IEZvbyB7Ci0gICAgICAgIHZvaWQgYmFyKEJhcik7
Ci0gICAgfQotICAgIHZvaWQgZnV6ejxUOkZvbz4oVCB4KSB7IC4uLiB9Ci0gICAgdm9pZCBidXp6
PFQ6QmFyPihUIHgpCi0gICAgewotICAgICAgICBmdXp6KHgpOyAvLyBPSywgYmVjYXVzZSBCYXIg
aXMgbW9yZSBzcGVjaWZpYyB0aGFuIEZvby4gICAgCi0gICAgfQotCi0jIyBPdmVybG9hZGluZwot
Ci1XU0wgc3VwcG9ydHMgb3ZlcmxvYWRpbmcgdmVyeSBzaW1pbGFybHkgdG8gaG93IEMrKyBkb2Vz
IGl0LiBGb3IgZXhhbXBsZToKLQotICAgIHZvaWQgZm9vKGludCk7ICAgIC8vIDEKLSAgICB2b2lk
IGZvbyhkb3VibGUpOyAvLyAyCi0gICAgCi0gICAgaW50IHg7Ci0gICAgZm9vKHgpOyAvLyBjYWxs
cyAxCi0gICAgCi0gICAgZG91YmxlIHk7Ci0gICAgZm9vKHkpOyAvLyBjYWxscyAyCi0KLVdTTCBh
dXRvbWF0aWNhbGx5IHNlbGVjdHMgdGhlIG1vc3Qgc3BlY2lmaWMgb3ZlcmxvYWQgaWYgZ2l2ZW4g
bXVsdGlwbGUgY2hvaWNlcy4gRm9yIGV4YW1wbGU6Ci0KLSAgICB2b2lkIGZvbyhpbnQpOyAgICAv
LyAxCi0gICAgdm9pZCBmb28oZG91YmxlKTsgLy8gMgotICAgIHZvaWQgZm9vPFQ+KFQpOyAgIC8v
IDMKLQotICAgIGZvbygxKTsgLy8gY2FsbHMgMQotICAgIGZvbygxLik7IC8vIGNhbGxzIDIKLSAg
ICBmb28oMXUpOyAvLyBjYWxscyAzCi0KLUdlbmVyaWMgZnVuY3Rpb25zIGxpa2UgYGZvbzxUPmAg
Y2FuIGJlIGNhbGxlZCB3aXRoIG9yIHdpdGhvdXQgYWxsIG9mIHRoZWlyIHR5cGUgYXJndW1lbnRz
IHN1cHBsaWVkLiBJZiB0aGV5IGFyZSBub3Qgc3VwcGxpZWQsIHRoZSBmdW5jdGlvbiBwYXJ0aWNp
cGF0ZXMgaW4gb3ZlcmxvYWQgcmVzb2x1dGlvbiBsaWtlIGFueSBvdGhlciBmdW5jdGlvbiB3b3Vs
ZC4gRnVuY3Rpb25zIGFyZSByYW5rZWQgYnkgaG93IHNwZWNpZmljIHRoZXkgYXJlOyBmdW5jdGlv
biBBIGlzIG1vcmUgc3BlY2lmaWMgdGhhbiBmdW5jdGlvbiBCIGlmIEEncyBwYXJhbWV0ZXIgdHlw
ZXMgY2FuIGJlIHVzZWQgYXMgYXJndW1lbnQgdHlwZXMgZm9yIGEgY2FsbCB0byBCIGJ1dCBub3Qg
dmljZS12ZXJzYS4gSWYgb25lIGZ1bmN0aW9ucyBtb3JlIHNwZWNpZmljIHRoYW4gYWxsIG90aGVy
cyB0aGVuIHRoaXMgZnVuY3Rpb24gaXMgc2VsZWN0ZWQsIG90aGVyd2lzZSBhIHR5cGUgZXJyb3Ig
aXMgaXNzdWVkLgotCi0jIyBPcGVyYXRvciBPdmVybG9hZGluZwotCi1NYW55IFdTTCBvcGVyYXRp
b25zIGRlc3VnYXIgdG8gY2FsbHMgdG8gZnVuY3Rpb25zLiBUaG9zZSBmdW5jdGlvbnMgYXJlIGNh
bGxlZCAqb3BlcmF0b3Igb3ZlcmxvYWRzKiBhbmQgYXJlIGRlY2xhcmVkIHVzaW5nIHN5bnRheCB0
aGF0IGludm9sdmVzIHRoZSBrZXl3b3JkIGBvcGVyYXRvcmAuIFRoZSBmb2xsb3dpbmcgb3BlcmF0
aW9ucyByZXN1bHQgaW4gY2FsbHMgdG8gb3BlcmF0b3Igb3ZlcmxvYWRzOgotCi0tIE51bWVyaWNh
bCBvcGVyYXRvcnMgKGArYCwgYC1gLCBgKmAsIGAvYCwgZXRjLikuCi0tIEluY3JlbWVudCBhbmQg
ZGVjcmVtZW50IChgKytgLCBgLS1gKS4KLS0gQ2FzdGluZyAoYHR5cGUodmFsdWUpYCkuCi0tIEFj
Y2Vzc2luZyB2YWx1ZXMgaW4gYXJyYXlzIChgW11gLCBgW109YCwgYCZbXWApLgotLSBBY2Nlc3Np
bmcgZmllbGRzIChgLmZpZWxkYCwgYC5maWVsZD1gLCBgJi5maWVsZGApLgotCi1XU0wncyBvcGVy
YXRvciBvdmVybG9hZGluZyBpcyBkZXNpZ25lZCB0byBzeW50aGVzaXplIG1hbnkgb3BlcmF0b3Jz
IGZvciB5b3U6Ci0KLS0gUmVhZC1tb2RpZnktd3JpdGUgb3BlcmF0b3JzIGxpa2UgYCs9YCBhcmUg
ZGVzdWdhcmVkIHRvIGEgbG9hZCBvZiB0aGUgbG9hZCB2YWx1ZSwgdGhlIHVuZGVybHlpbmcgb3Bl
cmF0b3IgKGxpa2UgYCtgKSwgYW5kIGEgc3RvcmUgb2YgdGhlIG5ldyB2YWx1ZS4gSXQncyBub3Qg
cG9zc2libGUgdG8gb3ZlcnJpZGUgYCs9YCwgYC09YCwgZXRjLgotLSBgeCsrYCBhbmQgYCsreGAg
Ym90aCBjYWxsIHRoZSBzYW1lIG9wZXJhdG9yIG92ZXJsb2FkLiBgb3BlcmF0b3IrK2AgdGFrZXMg
dGhlIG9sZCB2YWx1ZSBhbmQgcmV0dXJucyBhIG5ldyBvbmU7IGZvciBleGFtcGxlIHRoZSBidWls
dC1pbiBgKytgIGZvciBgaW50YCBjb3VsZCBiZSB3cml0dGVuIGFzOiBgaW50IG9wZXJhdG9yKyso
aW50IHZhbHVlKSB7IHJldHVybiB2YWx1ZSArIDE7IH1gLgotLSBgb3BlcmF0b3I9PWAgY2FuIGJl
IG92ZXJsb2FkZWQsIGJ1dCBgIT1gIGlzIGF1dG9tYXRpY2FsbHkgc3ludGhlc2l6ZWQgYW5kIGNh
bm5vdCBiZSBvdmVybG9hZGVkLgotCi1Tb21lIG9wZXJhdG9ycyBhbmQgb3ZlcmxvYWRzIGFyZSBy
ZXN0cmljdGVkOgotCi0tIGAhYCwgYCYmYCwgYW5kIGB8fGAgYXJlIGJ1aWx0LWluIG9wZXJhdGlv
bnMgb24gdGhlIGBib29sYCB0eXBlLgotLSBTZWxmLWNhc3RzIChgVChUKWApIGFyZSBhbHdheXMg
dGhlIGlkZW50aXR5IGZ1bmN0aW9uLgotLSBDYXN0cyB3aXRoIG5vIGFyZ3VtZW50cyAoYFQoKWAp
IGFsd2F5cyByZXR1cm4gdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoYXQgdHlwZS4gRXZlcnkgdHlw
ZSBoYXMgYSBkZWZhdWx0IHZhbHVlIChgMGAsIGBudWxsYCwgb3IgdGhlIGVxdWl2YWxlbnQgZm9y
IGVhY2ggZmllbGQpLgotCi1DYXN0IG92ZXJsb2FkaW5nIGFsbG93cyBmb3Igc3VwcG9ydGluZyBj
b252ZXJzaW9ucyBiZXR3ZWVuIHR5cGVzIGFuZCBmb3IgY3JlYXRpbmcgY29uc3RydWN0b3JzIGZv
ciBjdXN0b20gdHlwZXMuIEhlcmUgaXMgYW4gZXhhbXBsZSBvZiBjYXN0IG92ZXJsb2FkaW5nIGJl
aW5nIHVzZWQgdG8gY3JlYXRlIGEgY29uc3RydWN0b3I6Ci0KLSAgICBzdHJ1Y3QgQ29tcGxleDxU
PiB7Ci0gICAgICAgIFQgcmVhbDsKLSAgICAgICAgVCBpbWFnOwotICAgIH0KLSAgICBvcGVyYXRv
cjxUPiBDb21wbGV4PFQ+KFQgcmVhbCwgVCBpbWFnKQotICAgIHsKLSAgICAgICAgQ29tcGxleDxU
PiByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5yZWFsID0gcmVhbDsKLSAgICAgICAgcmVzdWx0Lmlt
YWcgPSBpbWFnOwotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIH0KLSAgICAKLSAgICBDb21w
bGV4PGZsb2F0PiBpID0gQ29tcGxleDxmbG9hdD4oMCwgMSk7Ci0KLVdTTCBzdXBwb3J0cyBhY2Nl
c3NvciBvdmVybG9hZGluZyBhcyBwYXJ0IG9mIHRoZSBvcGVyYXRvciBvdmVybG9hZGluZyBzeW50
YXguIFRoaXMgZ2l2ZXMgdGhlIHByb2dyYW1tZXIgYnJvYWQgcG93ZXJzLiBGb3IgZXhhbXBsZToK
LQotICAgIHN0cnVjdCBGb28gewotICAgICAgICBpbnQgeDsKLSAgICAgICAgaW50IHk7Ci0gICAg
fQotICAgIGludCBvcGVyYXRvci5zdW0oRm9vIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiBm
b28ueCArIGZvby55OwotICAgIH0KLQotSXQncyBwb3NzaWJsZSB0byBzYXkgYGZvby5zdW1gIHRv
IGNhbGwgdGhlIGBvcGVyYXRvci5zdW1gIGZ1bmN0aW9uLiBCb3RoIGdldHRlcnMgYW5kIHNldHRl
cnMgY2FuIGJlIHByb3ZpZGVkOgotCi0gICAgc3RydWN0IEZvbyB7Ci0gICAgICAgIGludCB2YWx1
ZTsKLSAgICB9Ci0gICAgZG91YmxlIG9wZXJhdG9yLmRvdWJsZVZhbHVlKEZvbyB2YWx1ZSkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBkb3VibGUodmFsdWUudmFsdWUpOwotICAgIH0KLSAgICBGb28g
b3BlcmF0b3IuZG91YmxlVmFsdWU9KEZvbyB2YWx1ZSwgZG91YmxlIGRvdWJsZVZhbHVlKQotICAg
IHsKLSAgICAgICAgdmFsdWUudmFsdWUgPSBpbnQoZG91YmxlVmFsdWUpOwotICAgICAgICByZXR1
cm4gdmFsdWU7Ci0gICAgfQotCi1Qcm92aWRpbmcgYm90aCBnZXR0ZXIgYW5kIHNldHRlciBvdmVy
bG9hZHMgbWFrZXMgYGRvdWJsZVZhbHVlYCBiZWhhdmUgYWxtb3N0IGFzIGlmIGl0IHdhcyBhIGZp
ZWxkIG9mIGBGb29gLiBGb3IgZXhhbXBsZSwgaXQncyBwb3NzaWJsZSB0byBzYXk6Ci0KLSAgICBG
b28gZm9vOwotICAgIGZvby52YWx1ZSA9IDQyOwotICAgIGZvby5kb3VibGVWYWx1ZSAqPSAyOyAv
LyBOb3cgZm9vLnZhbHVlIGlzIDg0Ci0KLUl0J3MgYWxzbyBwb3NzaWJsZSB0byBwcm92aWRlIGFu
IGFkZHJlc3MtZ2V0dGluZyBvdmVybG9hZCBjYWxsZWQgYW4gKmFuZGVyKjoKLQotICAgIHN0cnVj
dCBGb28gewotICAgICAgICBpbnQgdmFsdWU7Ci0gICAgfQotICAgIHRocmVhZCBpbnReIG9wZXJh
dG9yJi52YWx1ZUFsaWFzKHRocmVhZCBGb29eIGZvbykKLSAgICB7Ci0gICAgICAgIHJldHVybiAm
Zm9vLT52YWx1ZTsKLSAgICB9Ci0KLVByb3ZpZGluZyBqdXN0IHRoaXMgb3ZlcmxvYWQgZm9yIGEg
cG9pbnRlciB0eXBlIGluIGV2ZXJ5IGFkZHJlc3Mgc3BhY2UgZ2l2ZXMgdGhlIHNhbWUgcG93ZXIg
YXMgb3ZlcmxvYWRpbmcgZ2V0dGVycyBhbmQgc2V0dGVycy4gQWRkaXRpb25hbGx5LCBpdCBtYWtl
cyBpdCBwb3NzaWJsZSB0byBgJmZvby52YWx1ZUFsaWFzYC4KLQotVGhlIHNhbWUgb3ZlcmxvYWRp
bmcgcG93ZXIgaXMgcHJvdmlkZWQgZm9yIGFycmF5IGFjY2Vzc2VzLiBGb3IgZXhhbXBsZToKLQot
ICAgIHN0cnVjdCBWZWN0b3I8VD4gewotICAgICAgICBUIHg7Ci0gICAgICAgIFQgeTsKLSAgICB9
Ci0gICAgdGhyZWFkIFReIG9wZXJhdG9yJltdKHRocmVhZCBUXiBwdHIsIHVpbnQgaW5kZXgpCi0g
ICAgewotICAgICAgICByZXR1cm4gaW5kZXggPyAmcHRyLT55IDogJnB0ci0+eDsKLSAgICB9Ci0K
LUFsdGVybmF0aXZlbHksIGl0J3MgcG9zc2libGUgdG8gb3ZlcmxvYWQgZ2V0dGVycyBhbmQgc2V0
dGVycyAoYG9wZXJhdG9yW11gIGFuZCBgb3BlcmF0b3JbXT1gKS4KLQotIyBNYXBwaW5nIG9mIEFQ
SSBjb25jZXB0cwotCi1XU0wgaXMgZGVzaWduZWQgdG8gYmUgdXNlZnVsIGFzIGJvdGggYSBncmFw
aGljcyBzaGFkaW5nIGxhbmd1YWdlIGFuZCBhcyBhIGNvbXB1dGF0aW9uIGxhbmd1YWdlLiBIb3dl
dmVyLCB0aGVzZSB0d28gZW52aXJvbm1lbnRzIGhhdmUKLXNsaWdodGx5IGRpZmZlcmVudCBzZW1h
bnRpY3MuCi0KLVdoZW4gdXNpbmcgV1NMIGFzIGEgZ3JhcGhpY3Mgc2hhZGluZyBsYW5ndWFnZSwg
dGhlcmUgaXMgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuICplbnRyeS1wb2ludHMqIGFuZCAqbm9uLWVu
dHJ5LXBvaW50cyouIEVudHJ5IHBvaW50cyBhcmUgdG9wLWxldmVsIGZ1bmN0aW9ucyB3aGljaCBo
YXZlIGVpdGhlciB0aGUgYHZlcnRleGAgb3IgYGZyYWdtZW50YCBrZXl3b3JkIGluIGZyb250IG9m
IHRoZWlyIGRlY2xhcmF0aW9uLiBFbnRyeSBwb2ludHMgbWF5IG5vdCBiZSBmb3J3YXJkIGRlY2xh
cmVkLiBBbiBlbnRyeSBwb2ludCBhbm5vdGF0ZWQgd2l0aCB0aGUgYHZlcnRleGAga2V5d29yZCBt
YXkgbm90IGJlIHVzZWQgYXMgYSBmcmFnbWVudCBzaGFkZXIsIGFuZCBhbiBlbnRyeSBwb2ludCBh
bm5vdGF0ZWQgd2l0aCB0aGUgYGZyYWdtZW50YCBrZXl3b3JkIG1heSBub3QgYmUgdXNlZCBhcyBh
IHZlcnRleCBzaGFkZXIuIE5vIGFyZ3VtZW50IG5vciByZXR1cm4gdmFsdWUgb2YgYW4gZW50cnkg
cG9pbnQgbWF5IGJlIGEgcG9pbnRlci4gRW50cnkgcG9pbnRzIG11c3Qgbm90IGFjY2VwdCB0eXBl
IGFyZ3VtZW50cyAoYWxzbyBrbm93biBhcyAiZ2VuZXJpY3MiKS4KLQotIyMgVmVydGV4IGVudHJ5
IHBvaW50cwotCi1XZWJHUFUncyBBUEkgcGFzc2VzIGRhdGEgdG8gYSBXU0wgdmVydGV4IHNoYWRl
ciBpbiBmb3VyIHdheXM6Ci0KLS0gQXR0cmlidXRlcwotLSBCdWZmZXJlZCBkYXRhCi0tIFRleHR1
cmUgZGF0YQotLSBTYW1wbGVycwotCi1FYWNoIG9mIHRoZXNlIEFQSSBvYmplY3RzIGlzIHJlZmVy
cmVkIHRvIGJ5IG5hbWUgZnJvbSB0aGUgQVBJLiBWYXJpYWJsZXMgaW4gV1NMIGFyZSBub3QgYW5u
b3RhdGVkIHdpdGggZXh0cmEgQVBJLXZpc2libGUgbmFtZXMgKGxpa2UgdGhleSBhcmUgaW4gc29t
ZSBvdGhlciBncmFwaGljcyBBUElzKS4KLQotVmFyaWFibGVzIGFyZSBwYXNzZWQgdG8gdmVydGV4
IHNoYWRlcnMgYXMgYXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50LiBFYWNoIGJ1ZmZl
ciBpcyByZXByZXNlbnRlZCBhcyBhbiBhcmd1bWVudCB3aXRoIGFuIGFycmF5IHJlZmVyZW5jZSB0
eXBlICh1c2luZyB0aGUgYFtdYCBzeW50YXgpLiBUZXh0dXJlcyBhbmQgc2FtcGxlcnMgYXJlIHJl
cHJlc2VudGVkIGJ5IGFyZ3VtZW50cyB3aXRoIHRoZSBgdGV4dHVyZWAgYW5kIGBzYW1wbGVyYCB0
eXBlcywgcmVzcGVjdGl2ZWx5LiBBbGwgb3RoZXIgbm9uLWJ1aWx0aW4gYXJndW1lbnRzIHRvIGEg
dmVydGV4IGVudHJ5IHBvaW50IGFyZSBpbXBsaWVkIHRvIGJlIGF0dHJpYnV0ZXMuCi0KLVNvbWUg
YXJndW1lbnRzIGFyZSByZWNvZ25pemVkIGJ5IHRoZSBjb21waWxlciBmcm9tIHRoZWlyIG5hbWUg
YW5kIHR5cGUuIFRoZXNlIGFyZ3VtZW50cyBwcm92aWRlIGJ1aWx0LWluIGZ1bmN0aW9uYWxpdHkg
aW5oZXJlbnQgaW4gdGhlIGdyYXBoaWNzIHBpcGVsaW5lLiBGb3IgZXhhbXBsZSwgYW4gYXJndW1l
bnQgb2YgdGhlIGZvcm0gYGludCB3c2xfdmVydGV4SURgIHJlZmVycyB0byB0aGUgSUQgb2YgdGhl
IGN1cnJlbnQgdmVydGV4LCBhbmQgaXMgbm90IHJlY29nbml6ZWQgYXMgYW4gYXR0cmlidXRlLiBB
bGwgbm9uLWJ1aWx0aW4gYXJndW1lbnRzIHRvIGEgdmVydGV4IGVudHJ5IHBvaW50IG11c3QgYmUg
YXNzb2NpYXRlZCB3aXRoIGFuIEFQSSBvYmplY3Qgd2hlbmV2ZXIgYW55IGRyYXcgY2FsbCB1c2lu
ZyB0aGUgdmVydGV4IGVudHJ5IHBvaW50IGlzIGludm9rZWQuIE90aGVyd2lzZSwgdGhlIGRyYXcg
Y2FsbCB3aWxsIGZhaWwuCi0KLVRoZSBvbmx5IHdheSB0byBwYXNzIGRhdGEgYmV0d2VlbiBzdWNj
ZXNzaXZlIHNoYWRlciBzdGFnZXMgd2l0aGluIGEgc2luZ2xlIGRyYXcgY2FsbCBpcyBieSByZXR1
cm4gdmFsdWUuIEFuIGVudHJ5IHBvaW50IG11c3QgaW5kaWNhdGUgdGhhdCBpdCByZXR1cm5zIGEg
Y29sbGVjdGlvbiBvZiB2YWx1ZXMgY29udGFpbmVkIHdpdGhpbiBhIHN0cnVjdHVyZS4gRXZlcnkg
dmFyaWFibGUgaW5zaWRlIHRoaXMgc3RydWN0dXJlLCByZWN1cnNpdmVseSwgaXMgcGFzc2VkIHRv
IHRoZSBuZXh0IHN0YWdlIGluIHRoZSBncmFwaGljcyBwaXBlbGluZS4gTWVtYmVycyBvZiB0aGlz
IHN0cnVjdCBtYXkgYWxzbyBiZSBvdXRwdXQgYnVpbHQtaW4gdmFyaWFibGVzLiBGb3IgZXhhbXBs
ZSwgYSB2ZXJ0ZXggZW50cnkgcG9pbnQgbWF5IHJldHVybiBhIHN0cnVjdCB3aGljaCBjb250YWlu
cyBhIG1lbWJlciBgZmxvYXQ0IHdzbF9Qb3NpdGlvbmAsIGFuZCB0aGlzIHZhcmlhYmxlIHdpbGwg
cmVwcmVzZW50IHRoZSByYXN0ZXJpemVkIHBvc2l0aW9uIG9mIHRoZSB2ZXJ0ZXguIEJ1ZmZlcnMg
KGFzIGRlc2NyaWJlZCBieSBXU0wgYXJyYXkgcmVmZXJlbmNlcyksIHRleHR1cmVzLCBhbmQgc2Ft
cGxlcnMgbXVzdCBub3QgYmUgcHJlc2VudCBpbiB0aGlzIHJldHVybmVkIHN0cnVjdC4gQnVpbHQt
aW4gdmFyaWFibGVzIG11c3QgbmV2ZXIgYXBwZWFyIHR3aWNlIGluc2lkZSB0aGUgcmV0dXJuZWQg
c3RydWN0dXJlLgotCi0jIyBGcmFnbWVudCBlbnRyeSBwb2ludHMKLQotRnJhZ21lbnQgZW50cnkg
cG9pbnRzIG1heSBhY2NlcHQgb25lIGFyZ3VtZW50IHdpdGggdGhlIHR5cGUgdGhhdCB0aGUgcHJl
dmlvdXMgc2hhZGVyIHN0YWdlIHJldHVybmVkLiBUaGUgYXJndW1lbnQgbmFtZSBmb3IgdGhpcyBh
cmd1bWVudCBtdXN0IGJlIGBzdGFnZUluYC4gSW4gYWRkaXRpb24gdG8gdGhpcyBhcmd1bWVudCwg
ZnJhZ21lbnQgZW50cnkgcG9pbnRzIG1heSBhY2NlcHQgYnVmZmVycywgdGV4dHVyZXMsIGFuZCBz
YW1wbGVycyBhcyBhcmd1bWVudHMgaW4gdGhlIHNhbWUgd2F5IHRoYXQgdmVydGV4IGVudHJ5IHBv
aW50cyBhY2NlcHQgdGhlbS4gRnJhZ21lbnQgZW50cnkgcG9pbnRzIGFsc28gbXVzdCByZXR1cm4g
YSBzdHJ1Y3QsIGFuZCBhbGwgbWVtYmVycyBvZiB0aGlzIHN0cnVjdCBtdXN0IGJlIGJ1aWx0LWlu
IHZhcmlhYmxlcy4gVGhlIHNldCBvZiByZWNvZ25pemVkIGJ1aWx0LWluIHZhcmlhYmxlcyB3aGlj
aCBtYXkgYmUgYWNjZXB0ZWQgb3IgcmV0dXJuZWQgZnJvbSBhbiBlbnRyeSBwb2ludCBpcyBkaWZm
ZXJlbnQgYmV0d2VlbiBhbGwgdHlwZXMgb2YgZW50cnkgcG9pbnRzLgotCi1Gb3IgZXhhbXBsZSwg
dGhpcyB3b3VsZCBiZSBhIHZhbGlkIGdyYXBoaWNzIHByb2dyYW06Ci0KLSAgICBzdHJ1Y3QgVmVy
dGV4SW5wdXQgewotICAgICAgICBmbG9hdDIgcG9zaXRpb247Ci0gICAgICAgIGZsb2F0MyBjb2xv
cjsKLSAgICB9Ci0gICAgCi0gICAgc3RydWN0IFZlcnRleE91dHB1dCB7Ci0gICAgICAgIGZsb2F0
NCB3c2xfUG9zaXRpb247Ci0gICAgICAgIGZsb2F0MyBjb2xvcjsKLSAgICB9Ci0gICAgCi0gICAg
c3RydWN0IEZyYWdtZW50T3V0cHV0IHsKLSAgICAgICAgZmxvYXQ0IHdzbF9Db2xvcjsKLSAgICB9
Ci0gICAgCi0gICAgdmVydGV4IFZlcnRleE91dHB1dCB2ZXJ0ZXhTaGFkZXIoVmVydGV4SW5wdXQg
dmVydGV4SW5wdXQpIHsKLSAgICAgICAgVmVydGV4T3V0cHV0IHJlc3VsdDsKLSAgICAgICAgcmVz
dWx0LndzbF9Qb3NpdGlvbiA9IGZsb2F0NCh2ZXJ0ZXhJbnB1dC5wb3NpdGlvbiwgMC4sIDEuKTsK
LSAgICAgICAgcmVzdWx0LmNvbG9yID0gdmVydGV4SW5wdXQuY29sb3I7Ci0gICAgICAgIHJldHVy
biByZXN1bHQ7Ci0gICAgfQotICAgIAotICAgIGZyYWdtZW50IEZyYWdtZW50T3V0cHV0IGZyYWdt
ZW50U2hhZGVyKFZlcnRleE91dHB1dCBzdGFnZUluKSB7Ci0gICAgICAgIEZyYWdtZW50T3V0cHV0
IHJlc3VsdDsKLSAgICAgICAgcmVzdWx0LndzbF9Db2xvciA9IGZsb2F0NChzdGFnZUluLmNvbG9y
LCAxLik7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0jIyBDb21wdXRlIGVudHJ5
IHBvaW50cwotCi1XZWJHUFUncyBBUEkgcGFzc2VzIGRhdGEgdG8gYSBjb21wdXRlIHNoYWRlciBp
biB0aHJlZSB3YXlzOgotCi0tIEJ1ZmZlcmVkIGRhdGEKLS0gVGV4dHVyZSBkYXRhCi0tIFNhbXBs
ZXJzCi0KLUNvbXB1dGUgZW50cnkgcG9pbnRzIHN0YXJ0IHdpdGggdGhlIGtleXdvcmQgYGNvbXB1
dGVgLiBUaGUgcmV0dXJuIHR5cGUgZm9yIGEgY29tcHV0ZSBlbnRyeSBwb2ludCBtdXN0IGJlIGB2
b2lkYC4gRWFjaCBidWZmZXIgaXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJndW1lbnQgd2l0aCBhbiBh
cnJheSByZWZlcmVuY2UgdHlwZSAodXNpbmcgdGhlIGBbXWAgc3ludGF4KS4gVGV4dHVyZXMgYW5k
IHNhbXBsZXJzIGFyZSByZXByZXNlbnRlZCBieSBhcmd1bWVudHMgd2l0aCB0aGUgYHRleHR1cmVg
IGFuZCBgc2FtcGxlcmAgdHlwZXMsIHJlc3BlY3RpdmVseS4gQ29tcHV0ZSBlbnRyeSBwb2ludHMg
bWF5IGFsc28gYWNjZXB0IGJ1aWx0LWluIHZhcmlhYmxlcyBhcyBhcmd1bWVudHMuIEFyZ3VtZW50
cyBvZiBhbnkgb3RoZXIgdHlwZSBhcmUgZGlzYWxsb3dlZC4gQXJndW1lbnRzIG1heSBub3QgdXNl
IHRoZSBgdGhyZWFkZ3JvdXBgIG1lbW9yeSBzcGFjZS4KLQotIyBFcnJvciBoYW5kbGluZwotCi1F
cnJvcnMgbWF5IG9jY3VyIGR1cmluZyBzaGFkZXIgcHJvY2Vzc2luZy4gRm9yIGV4YW1wbGUsIHRo
ZSBzaGFkZXIgbWF5IGF0dGVtcHQgdG8gZGVyZWZlcmVuY2UgYSBgbnVsbGAgYXJyYXkgcmVmZXJl
bmNlLiBJZiB0aGlzIG9jY3VycywgdGhlIHNoYWRlciBzdGFnZSBpbW1lZGlhdGVseSBjb21wbGV0
ZXMgc3VjY2Vzc2Z1bGx5LiBUaGUgZW50cnkgcG9pbnQgaW1tZWRpYXRlbHkgcmV0dXJucyBhIHN0
cnVjdCB3aXRoIGFsbCBmaWVsZHMgc2V0IHRvIDAuIEFmdGVyIHRoaXMgZXZlbnQsIHN1YnNlcXVl
bnQgc2hhZGVyIHN0YWdlcyB3aWxsIHByb2NlZWQgYXMgaWYgdGhlcmUgd2FzIG5vIHByb2JsZW0u
Ci0KLUJ1ZmZlciBhbmQgdGV4dHVyZSByZWFkcyBhbmQgd3JpdGVzIGJlZm9yZSB0aGUgZXJyb3Ig
YWxsIGNvbXBsZXRlLCBhbmQgaGF2ZSB0aGUgc2FtZSBzZW1hbnRpY3MgYXMgaWYgbm8gZXJyb3Ig
aGFkIG9jY3VycmVkLiBCdWZmZXIgYW5kIHRleHR1cmUgcmVhZHMgYW5kIHdyaXRlcyBhZnRlciB0
aGUgZXJyb3IgZG8gbm90IG9jY3VyLgotCi0jIFN1bW1hcnkKLQotV1NMIGlzIGEgdHlwZS1zYWZl
IGxhbmd1YWdlIGJhc2VkIG9uIEMgc3ludGF4LiBJdCBlbGltaW5hdGVzIHNvbWUgQyBmZWF0dXJl
cywgbGlrZSB1bmlvbnMgYW5kIHBvaW50ZXIgY2FzdHMsIGJ1dCBhZGRzIG90aGVyIG1vZGVybiBm
ZWF0dXJlcyBpbiB0aGVpciBwbGFjZSwgbGlrZSBnZW5lcmljcyBhbmQgb3ZlcmxvYWRpbmcuCi0K
LSMgQWRkaXRpb25hbCBMaW1pdGF0aW9ucwotCi1UaGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgbGlt
aXRhdGlvbnMgbWF5IGJlIHBsYWNlZCBvbiBhIFdTTCBwcm9ncmFtOgotCi0tIGBkZXZpY2VgLCBg
Y29uc3RhbnRgLCBhbmQgYHRocmVhZGdyb3VwYCBwb2ludGVycyBjYW5ub3QgcG9pbnQgdG8gZGF0
YSB0aGF0IG1heSBoYXZlIHBvaW50ZXJzIGluIGl0LiBUaGlzIHNhZmV0eSBjaGVjayBpcyBub3Qg
ZG9uZSBhcyBwYXJ0IG9mIHRoZSBub3JtYWwgdHlwZSBzeXN0ZW0gY2hlY2tzLiBJdCdzIHBlcmZv
cm1lZCBvbmx5IGFmdGVyIGluc3RhbnRpYXRpb24uCi0tIFBvaW50ZXJzIGFuZCBhcnJheSByZWZl
cmVuY2VzIChjb2xsZWN0aXZlbHksICpyZWZlcmVuY2VzKikgbWF5IGJlIHJlc3RyaWN0ZWQgdG8g
c3VwcG9ydCBjb21waWxpbmcgdG8gU1BJUi1WICpsb2dpY2FsIG1vZGUqLiBJbiB0aGlzIG1vZGUs
IGFycmF5cyBtdXN0IG5vdCB0cmFuc2l0aXZlbHkgaG9sZCByZWZlcmVuY2VzLiBSZWZlcmVuY2Vz
IG11c3QgYmUgaW5pdGlhbGl6ZWQgdXBvbiBkZWNsYXJhdGlvbiBhbmQgbmV2ZXIgcmVhc3NpZ25l
ZC4gRnVuY3Rpb25zIHRoYXQgcmV0dXJuIHJlZmVyZW5jZXMgbXVzdCBoYXZlIG9uZSByZXR1cm4g
cG9pbnQuIFRlcm5hcnkgZXhwcmVzc2lvbnMgbWF5IG5vdCByZXR1cm4gcmVmZXJlbmNlcy4KLS0g
R3JhcGhpY3MgZW50cnkgcG9pbnRzIG11c3QgdHJhbnNpdGl2ZWx5IG5ldmVyIHJlZmVyIHRvIHRo
ZSBgdGhyZWFkZ3JvdXBgIG1lbW9yeSBzcGFjZS4KLQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9XcmFwQ2hlY2tlci5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCmluZGV4IDRjYWRjN2QwZDllNmE2ZGZkYTU1NWRhYjg5
ZDAyNzE3NzBkYmQ5YTcuLjBlYjRlODFlYzJmYzM2Mzk5NzBkOWM2M2EzZmJjY2U5OTZjYjQxMGEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpz
CisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1dyYXBDaGVja2VyLmpzCkBAIC01
MiwxMSArNTIsNiBAQCBjbGFzcyBXcmFwQ2hlY2tlciBleHRlbmRzIFZpc2l0b3IgewogICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoIkZvdW5kIHVud3JhcHBlZCAiICsgbm9kZS5jb25zdHJ1Y3Rvci5u
YW1lICsgIiBhdCAiICsgb3JpZ2luU3RyaW5nKG5vZGUpICsgIjogIiArIG5vZGUgKyAiXG5XaGls
ZSB2aXNpdGluZyAiICsgdGhpcy5fc3RhcnROb2RlLmNvbnN0cnVjdG9yLm5hbWUgKyAiIGF0ICIg
KyBvcmlnaW5TdHJpbmcodGhpcy5fc3RhcnROb2RlLm9yaWdpbikgKyAiOiAiICsgdGhpcy5fc3Rh
cnROb2RlKTsKICAgICB9CiAgICAgCi0gICAgdmlzaXRDb25zdGV4cHJUeXBlUGFyYW1ldGVyKG5v
ZGUpCi0gICAgewotICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChub2RlKTsKLSAgICB9Ci0g
ICAgCiAgICAgdmlzaXRGdW5jUGFyYW1ldGVyKG5vZGUpCiAgICAgewogICAgICAgICB0aGlzLl9m
b3VuZFVud3JhcHBlZChub2RlKTsKQEAgLTc2LDE0ICs3MSw0IEBAIGNsYXNzIFdyYXBDaGVja2Vy
IGV4dGVuZHMgVmlzaXRvciB7CiAgICAgewogICAgICAgICB0aGlzLl9mb3VuZFVud3JhcHBlZChu
b2RlKTsKICAgICB9Ci0gICAgCi0gICAgdmlzaXRUeXBlVmFyaWFibGUobm9kZSkKLSAgICB7Ci0g
ICAgICAgIHRoaXMuX2ZvdW5kVW53cmFwcGVkKG5vZGUpOwotICAgIH0KLSAgICAKLSAgICAvLyBO
T1RFOiBUaGlzIGRvZXMgbm90IGtub3cgaG93IHRvIGhhbmRsZSBOYXRpdmVUeXBlSW5zdGFuY2Us
IGJlY2F1c2UgdGhpcyBpcyBuZXZlciBjYWxsZWQgb24gaW5zdGFudGlhdGVkCi0gICAgLy8gY29k
ZS4gT25jZSBjb2RlIGlzIGluc3RhbnRpYXRlZCwgeW91IGNhbm5vdCBpbnN0YW50aWF0ZSBpdCBm
dXJ0aGVyLgotICAgIAotICAgIC8vIE5PVEU6IFRoaXMgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5j
IHdpdGggQXV0b1dyYXBwZXIuCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9pbmRleC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXgu
aHRtbAppbmRleCA4MDk0YjE5Mzc4MWI0YWE5YjBjMzkwOWU5YTkxZDI4MTVmMmIyYWJhLi5hMjNl
M2IwMTBiMTFiMGJkMDJmNGMwYTNmYTM3NDRhNTY5ZDk2ZDhhIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRp
bmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKQEAgLTM2LDcgKzM2LDYgQEAKIDxzY3JpcHQgc3JjPSJD
bG9uZVByb2dyYW0uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkNvbW1hRXhwcmVzc2lvbi5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29uc3RleHByRm9sZGVyLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJDb25zdGV4cHJUeXBlUGFyYW1ldGVyLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJDb250aW51ZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iQ29udmVydFB0clRv
QXJyYXlSZWZFeHByZXNzaW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJEb1doaWxlTG9v
cC5qcyI+PC9zY3JpcHQ+CkBAIC01NSw3ICs1NCw2IEBACiA8c2NyaXB0IHNyYz0iRXh0ZXJuYWxP
cmlnaW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZpZWxkLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSJGaW5kSGlnaFpvbWJpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZs
YXR0ZW5Qcm90b2NvbEV4dGVuZHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsYXR0ZW5l
ZFN0cnVjdE9mZnNldEdhdGhlcmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJGbG9hdExp
dGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZsb2F0TGl0ZXJhbFR5cGUuanMiPjwv
c2NyaXB0PgpAQCAtNjMsNyArNjEsNiBAQAogPHNjcmlwdCBzcmM9IkZvckxvb3AuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZ1bmMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNE
ZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkZ1bmNJbnN0YW50aWF0b3IuanMiPjwvc2Ny
aXB0PgogPHNjcmlwdCBzcmM9IkZ1bmNQYXJhbWV0ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkZ1bmN0aW9uTGlrZUJsb2NrLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJIaWdoWm9t
YmllRmluZGVyLmpzIj48L3NjcmlwdD4KQEAgLTczLDcgKzcwLDYgQEAKIDxzY3JpcHQgc3JjPSJJ
bmZlclR5cGVzRm9yQ2FsbC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iSW5saW5lLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbmxpbmVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJJbnN0YW50aWF0ZUltbWVkaWF0ZXMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExp
dGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxUeXBlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KQEAgLTkwLDkgKzg2
LDcgQEAKIDxzY3JpcHQgc3JjPSJOYW1lRmluZGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJOYW1lUmVzb2x2ZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmMuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ik5hdGl2ZUZ1bmNJbnN0YW5jZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iTmF0aXZlVHlwZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTmF0
aXZlVHlwZUluc3RhbmNlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOb3JtYWxVc2VQcm9w
ZXJ0eVJlc29sdmVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJOdWxsTGl0ZXJhbC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTnVsbFR5cGUuanMiPjwvc2NyaXB0PgpAQCAtMTAzLDEw
ICs5Nyw2IEBACiA8c2NyaXB0IHNyYz0iUHJvcGVydHlSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iUHJvZ3JhbS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iUHJvZ3JhbVdp
dGhVbm5lY2Vzc2FyeVRoaW5nc1JlbW92ZWQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlBy
b3RvY29sLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJQcm90b2NvbERlY2wuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9IlByb3RvY29sRnVuY0RlY2wuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9IlByb3RvY29sUmVmLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJQdHJUeXBlLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWFkTW9kaWZ5V3JpdGVFeHByZXNzaW9uLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJSZWN1cnNpb25DaGVja2VyLmpzIj48L3NjcmlwdD4KQEAg
LTEyNywxNCArMTE3LDEyIEBACiA8c2NyaXB0IHNyYz0iU3dpdGNoU3RhdGVtZW50LmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJTeW50aGVzaXplRW51bUZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iU3ludGhlc2l6ZVN0cnVjdEFjY2Vzc29ycy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iVGVybmFyeUV4cHJlc3Npb24uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IlRyYXBTdGF0ZW1lbnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWYuanMiPjwv
c2NyaXB0PgogPHNjcmlwdCBzcmM9IlR5cGVEZWZSZXNvbHZlci5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0IHNyYz0iVHlwZU9yVmFyaWFibGVSZWYuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IlR5
cGVQYXJhbWV0ZXJSZXdyaXRlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVHlwZVJlZi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iVHlwZVZhcmlhYmxlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJUeXBlVmFyaWFibGVUcmFja2VyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PSJUeXBlZFZhbHVlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJVaW50TGl0ZXJhbC5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iVWludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KQEAg
LTM0NCw3ICszMzIsNyBAQCBmdW5jdGlvbiBzZWxlY3RlZFNoYWRlcnNDaGFuZ2VkKGZyb21Db21w
aWxhdGlvbiA9IGZhbHNlKSB7CiAgICAgY3VycmVudFZlcnRleFNoYWRlciA9IGF2YWlsYWJsZVZl
cnRleFNoYWRlcnNbdmVydGV4U2hhZGVyU2VsZWN0LnNlbGVjdGVkSW5kZXhdOwogICAgIGN1cnJl
bnRGcmFnbWVudFNoYWRlciA9IGF2YWlsYWJsZUZyYWdtZW50U2hhZGVyc1tmcmFnbWVudFNoYWRl
clNlbGVjdC5zZWxlY3RlZEluZGV4XTsKIAotICAgIGlubGluZWRWZXJ0ZXhTaGFkZXIgPSBwcm9n
cmFtLmZ1bmNJbnN0YW50aWF0b3IuZ2V0VW5pcXVlKGN1cnJlbnRWZXJ0ZXhTaGFkZXIsIFtdKTsK
KyAgICBpbmxpbmVkVmVydGV4U2hhZGVyID0gY3VycmVudFZlcnRleFNoYWRlcjsKICAgICBfaW5s
aW5lRnVuY3Rpb24ocHJvZ3JhbSwgaW5saW5lZFZlcnRleFNoYWRlciwgbmV3IFZpc2l0aW5nU2V0
KGN1cnJlbnRWZXJ0ZXhTaGFkZXIpKTsKIAogICAgIGFsbEFyZ3VtZW50SW5mb3MgPSBbXTsKQEAg
LTQyNiw3ICs0MTQsNyBAQCBmdW5jdGlvbiBydW5TaGFkZXJzKCkgewogICAgICAgICBmdW5jLnBh
cmFtZXRlcnNbaV0uZVB0ci5jb3B5RnJvbShhcmd1bWVudEVQdHJzW2ldLmVQdHIsIGFyZ3VtZW50
RVB0cnNbaV0uc2l6ZSk7CiAgICAgbGV0IHJlc3VsdCA9IG5ldyBFdmFsdWF0b3IocHJvZ3JhbSku
cnVuRnVuYyhmdW5jKTsKIAotICAgIGlubGluZWRGcmFnbWVudFNoYWRlciA9IHByb2dyYW0uZnVu
Y0luc3RhbnRpYXRvci5nZXRVbmlxdWUoY3VycmVudEZyYWdtZW50U2hhZGVyLCBbXSk7CisgICAg
aW5saW5lZEZyYWdtZW50U2hhZGVyID0gY3VycmVudEZyYWdtZW50U2hhZGVyOwogICAgIF9pbmxp
bmVGdW5jdGlvbihwcm9ncmFtLCBpbmxpbmVkRnJhZ21lbnRTaGFkZXIsIG5ldyBWaXNpdGluZ1Nl
dChjdXJyZW50RnJhZ21lbnRTaGFkZXIpKTsKICAgICBmdW5jID0gaW5saW5lZEZyYWdtZW50U2hh
ZGVyOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>